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
+}