diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/templates/TemplatesTreeController.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/templates/TemplatesTreeController.java
index c0808d7fc..003ed13a1 100644
--- a/navalplanner-webapp/src/main/java/org/navalplanner/web/templates/TemplatesTreeController.java
+++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/templates/TemplatesTreeController.java
@@ -42,6 +42,7 @@ import org.zkoss.zul.Treeitem;
/**
* Controller for template element tree
* @author Óscar González Fernández
+ * @author Diego Pino García
*/
public class TemplatesTreeController extends
TreeController {
@@ -59,10 +60,6 @@ public class TemplatesTreeController extends
protected void addOperationsCell(Treeitem item,
OrderElementTemplate currentElement) {
addCell(createEditButton(currentElement),
- createDownButton(item, currentElement),
- createUpButton(item, currentElement),
- createUnindentButton(item, currentElement),
- createIndentButton(item, currentElement),
createRemoveButton(currentElement));
}
@@ -251,4 +248,50 @@ public class TemplatesTreeController extends
};
}
-}
+ /**
+ * Operations for a node
+ */
+
+ public void editSelectedNode() {
+ OrderElementTemplate node = getSelectedNode();
+ if (node != null) {
+ orderTemplatesController.showEditionFor(node);
+ }
+ }
+
+ public void moveSelectedNodeDown() {
+ OrderElementTemplate node = getSelectedNode();
+ if (node != null) {
+ down(node);
+ }
+ }
+
+ public void moveSelectedNodeUp() {
+ OrderElementTemplate node = getSelectedNode();
+ if (node != null) {
+ up(node);
+ }
+ }
+
+ public void unindentSelectedNode() {
+ OrderElementTemplate node = getSelectedNode();
+ if (node != null) {
+ unindent(node);
+ }
+ }
+
+ public void indentSelectedNode() {
+ OrderElementTemplate node = getSelectedNode();
+ if (node != null) {
+ indent(node);
+ }
+ }
+
+ public void deleteSelectedNode() {
+ OrderElementTemplate node = getSelectedNode();
+ if (node != null) {
+ remove(node);
+ }
+ }
+
+}
\ No newline at end of file
diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/tree/TreeController.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/tree/TreeController.java
index 20d72e013..78028c1c9 100644
--- a/navalplanner-webapp/src/main/java/org/navalplanner/web/tree/TreeController.java
+++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/tree/TreeController.java
@@ -155,7 +155,12 @@ public abstract class TreeController> extends
}
protected T getSelectedNode() {
- return type.cast(tree.getSelectedItemApi().getValue());
+ Treeitem item = tree.getSelectedItem();
+ if (item != null) {
+ Object value = item.getValue();
+ return value != null ? type.cast(value) : null;
+ }
+ return null;
}
public void move(Component dropedIn, Component dragged) {
diff --git a/navalplanner-webapp/src/main/webapp/orders/components/_orderElementTree.zul b/navalplanner-webapp/src/main/webapp/orders/components/_orderElementTree.zul
index fffb0fd8f..a1525a350 100644
--- a/navalplanner-webapp/src/main/webapp/orders/components/_orderElementTree.zul
+++ b/navalplanner-webapp/src/main/webapp/orders/components/_orderElementTree.zul
@@ -41,35 +41,34 @@
-
+
+
+
+
-
+ onClick="treeController.editSelectedNode();" />
+ onClick="treeController.moveSelectedNodeDown();" />
+ onClick="treeController.moveSelectedNodeUp();" />
+ onClick="treeController.unindentSelectedNode();" />
+ onClick="treeController.indentSelectedNode();" />
+ onClick="treeController.deleteSelectedNode();" />