From 9652efb04d9870acdffefb5b945e011d60e3d972 Mon Sep 17 00:00:00 2001 From: Manuel Rego Casasnovas Date: Tue, 23 Jun 2009 10:14:39 +0200 Subject: [PATCH] ItEr14S11CUConfiguracionDeOrganizacionsDeTraballoConUnidadesTraballoItEr13S13: Extracting bind methods to the utilities class. --- .../org/navalplanner/web/common/Util.java | 182 ++++++++++++++++++ .../workorders/TaskWorksTreeController.java | 95 ++------- 2 files changed, 197 insertions(+), 80 deletions(-) diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/common/Util.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/common/Util.java index 30a7ef536..9e190f372 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/common/Util.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/common/Util.java @@ -1,11 +1,21 @@ package org.navalplanner.web.common; +import java.util.Date; + import org.zkoss.zk.ui.Component; +import org.zkoss.zk.ui.event.Event; +import org.zkoss.zk.ui.event.EventListener; +import org.zkoss.zk.ui.event.InputEvent; import org.zkoss.zkplus.databind.DataBinder; +import org.zkoss.zul.Datebox; +import org.zkoss.zul.Intbox; +import org.zkoss.zul.Textbox; /** * Utilities class.
+ * * @author Óscar González Fernández + * @author Manuel Rego Casasnovas */ public class Util { @@ -22,4 +32,176 @@ public class Util { return (DataBinder) component.getVariable("binder", false); } + /** + * Generic interface to represent a class with a typical get method. + * + * @author Manuel Rego Casasnovas + * + * @param + * The type of the variable to be returned. + */ + public static interface Getter { + /** + * Typical get method that returns a variable. + * + * @return A variable of type . + */ + public T get(); + } + + /** + * Generic interface to represent a class with a typical set method. + * + * @author Manuel Rego Casasnovas + * + * @param + * The type of the variable to be set. + */ + public static interface Setter { + /** + * Typical set method to store a variable. + * + * @param value + * A variable of type to be set. + */ + public void set(T value); + } + + /** + * Binds a {@link Textbox} with a {@link Getter}. The {@link Getter} will be + * used to get the value that is going to be showed in the {@link Textbox}. + * + * @param textBox + * The {@link Textbox} to be bound + * @param getter + * The {@link Getter} interface that will implement a get method. + * @return The {@link Textbox} bound + */ + public static Textbox bind(Textbox textBox, Getter getter) { + textBox.setValue(getter.get()); + textBox.setDisabled(true); + return textBox; + } + + /** + * Binds a {@link Textbox} with a {@link Getter}. The {@link Getter} will be + * used to get the value that is going to be showed in the {@link Textbox}. + * The {@link Setter} will be used to store the value inserted by the user + * in the {@link Textbox}. + * + * @param textBox + * The {@link Textbox} to be bound + * @param getter + * The {@link Getter} interface that will implement a get method. + * @param setter + * The {@link Setter} interface that will implement a set method. + * @return The {@link Textbox} bound + */ + public static Textbox bind(final Textbox textBox, + final Getter getter, final Setter setter) { + textBox.setValue(getter.get()); + textBox.addEventListener("onChange", new EventListener() { + + @Override + public void onEvent(Event event) throws Exception { + InputEvent newInput = (InputEvent) event; + String value = newInput.getValue(); + setter.set(value); + textBox.setValue(getter.get()); + } + }); + return textBox; + } + + /** + * Binds a {@link Intbox} with a {@link Getter}. The {@link Getter} will be + * used to get the value that is going to be showed in the {@link Intbox}. + * + * @param intBox + * The {@link Intbox} to be bound + * @param getter + * The {@link Getter} interface that will implement a get method. + * @return The {@link Intbox} bound + */ + public static Intbox bind(Intbox intBox, Getter getter) { + intBox.setValue(getter.get()); + intBox.setDisabled(true); + return intBox; + } + + /** + * Binds a {@link Intbox} with a {@link Getter}. The {@link Getter} will be + * used to get the value that is going to be showed in the {@link Intbox}. + * The {@link Setter} will be used to store the value inserted by the user + * in the {@link Intbox}. + * + * @param intBox + * The {@link Intbox} to be bound + * @param getter + * The {@link Getter} interface that will implement a get method. + * @param setter + * The {@link Setter} interface that will implement a set method. + * @return The {@link Intbox} bound + */ + public static Intbox bind(final Intbox intBox, + final Getter getter, final Setter setter) { + intBox.setValue(getter.get()); + intBox.addEventListener("onChange", new EventListener() { + + @Override + public void onEvent(Event event) throws Exception { + InputEvent newInput = (InputEvent) event; + String value = newInput.getValue(); + setter.set(Integer.valueOf(value)); + intBox.setValue(getter.get()); + } + }); + return intBox; + } + + /** + * Binds a {@link Datebox} with a {@link Getter}. The {@link Getter} will be + * used to get the value that is going to be showed in the {@link Datebox}. + * + * @param dateBox + * The {@link Datebox} to be bound + * @param getter + * The {@link Getter} interface that will implement a get method. + * @return The {@link Datebox} bound + */ + public static Datebox bind(final Datebox dateBox, + final Getter getter) { + dateBox.setValue(getter.get()); + dateBox.setDisabled(true); + return dateBox; + } + + /** + * Binds a {@link Datebox} with a {@link Getter}. The {@link Getter} will be + * used to get the value that is going to be showed in the {@link Datebox}. + * The {@link Setter} will be used to store the value inserted by the user + * in the {@link Datebox}. + * + * @param dateBox + * The {@link Datebox} to be bound + * @param getter + * The {@link Getter} interface that will implement a get method. + * @param setter + * The {@link Setter} interface that will implement a set method. + * @return The {@link Datebox} bound + */ + public static Datebox bind(final Datebox dateBox, + final Getter getter, final Setter setter) { + dateBox.setValue(getter.get()); + dateBox.addEventListener("onChange", new EventListener() { + + @Override + public void onEvent(Event event) throws Exception { + setter.set(dateBox.getValue()); + dateBox.setValue(getter.get()); + } + }); + return dateBox; + } + } diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/workorders/TaskWorksTreeController.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/workorders/TaskWorksTreeController.java index 5a6528563..13e67b6e4 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/workorders/TaskWorksTreeController.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/workorders/TaskWorksTreeController.java @@ -14,9 +14,7 @@ import org.navalplanner.business.workorders.entities.TaskWorkLeaf; import org.navalplanner.web.common.Util; import org.zkoss.zk.ui.Component; import org.zkoss.zk.ui.event.DropEvent; -import org.zkoss.zk.ui.event.Event; import org.zkoss.zk.ui.event.EventListener; -import org.zkoss.zk.ui.event.InputEvent; import org.zkoss.zk.ui.util.GenericForwardComposer; import org.zkoss.zul.Datebox; import org.zkoss.zul.Intbox; @@ -175,72 +173,6 @@ public class TaskWorksTreeController extends GenericForwardComposer { comp.setVariable("tasksTreeController", this, true); } - private static interface Getter { - public T get(); - } - - private static interface Setter { - public void set(T value); - } - - private static Textbox bind(Textbox textBox, Getter getter) { - textBox.setValue(getter.get()); - textBox.setDisabled(true); - return textBox; - } - - private static Textbox bind(final Textbox textBox, - final Getter getter, final Setter setter) { - textBox.setValue(getter.get()); - textBox.addEventListener("onChange", new EventListener() { - - @Override - public void onEvent(Event event) throws Exception { - InputEvent newInput = (InputEvent) event; - String value = newInput.getValue(); - setter.set(value); - textBox.setValue(getter.get()); - } - }); - return textBox; - } - - private static Intbox bind(Intbox intBox, Getter getter) { - intBox.setValue(getter.get()); - intBox.setDisabled(true); - return intBox; - } - - private static Intbox bind(final Intbox intBox, - final Getter getter, final Setter setter) { - intBox.setValue(getter.get()); - intBox.addEventListener("onChange", new EventListener() { - - @Override - public void onEvent(Event event) throws Exception { - InputEvent newInput = (InputEvent) event; - String value = newInput.getValue(); - setter.set(Integer.valueOf(value)); - intBox.setValue(getter.get()); - } - }); - return intBox; - } - - private static Datebox bind(final Datebox dateBox, - final Getter getter, final Setter setter) { - dateBox.setValue(getter.get()); - dateBox.addEventListener("onChange", new EventListener() { - - @Override - public void onEvent(Event event) throws Exception { - setter.set(dateBox.getValue()); - dateBox.setValue(getter.get()); - } - }); - return dateBox; - } - public class TaskWorkTreeitemRenderer implements TreeitemRenderer { private Map map = new HashMap(); @@ -259,13 +191,14 @@ public class TaskWorksTreeController extends GenericForwardComposer { // Contruct treecells int[] path = getTasksTreeModel().getPath(t); Treecell cellForName = new Treecell(pathAsString(path)); - cellForName.appendChild(bind(new Textbox(), new Getter() { + cellForName.appendChild(Util.bind(new Textbox(), + new Util.Getter() { @Override public String get() { return taskWork.getName(); } - }, new Setter() { + }, new Util.Setter() { @Override public void set(String value) { @@ -277,14 +210,14 @@ public class TaskWorksTreeController extends GenericForwardComposer { map.put(t, intboxHours); if (taskWork instanceof TaskWorkLeaf) { // If it's a leaf hours cell is editable - cellForHours.appendChild(bind(intboxHours, - new Getter() { + cellForHours.appendChild(Util.bind(intboxHours, + new Util.Getter() { @Override public Integer get() { return taskWork.getWorkHours(); } - }, new Setter() { + }, new Util.Setter() { @Override public void set(Integer value) { @@ -307,8 +240,8 @@ public class TaskWorksTreeController extends GenericForwardComposer { })); } else { // If it's a container hours cell is not editable - cellForHours.appendChild(bind(intboxHours, - new Getter() { + cellForHours.appendChild(Util.bind(intboxHours, + new Util.Getter() { @Override public Integer get() { @@ -317,13 +250,14 @@ public class TaskWorksTreeController extends GenericForwardComposer { })); } Treecell tcDateStart = new Treecell(); - tcDateStart.appendChild(bind(new Datebox(), new Getter() { + tcDateStart.appendChild(Util.bind(new Datebox(), + new Util.Getter() { @Override public Date get() { return taskWork.getInitDate(); } - }, new Setter() { + }, new Util.Setter() { @Override public void set(Date value) { @@ -331,13 +265,14 @@ public class TaskWorksTreeController extends GenericForwardComposer { } })); Treecell tcDateEnd = new Treecell(); - tcDateEnd.appendChild(bind(new Datebox(), new Getter() { + tcDateEnd.appendChild(Util.bind(new Datebox(), + new Util.Getter() { @Override public Date get() { return taskWork.getEndDate(); } - }, new Setter() { + }, new Util.Setter() { @Override public void set(Date value) { @@ -391,4 +326,4 @@ public class TaskWorksTreeController extends GenericForwardComposer { return result.toString(); } } -} \ No newline at end of file +}