From c60b48ad88f63a9db960d3db6ff750ab28e7ac89 Mon Sep 17 00:00:00 2001 From: Diego Pino Garcia Date: Thu, 7 Apr 2011 11:13:09 +0200 Subject: [PATCH] [Bug #876] Template tasks tree is not coherent with project details task tree * The operations in the 'selected node' bar were not implemented * The operation getSelectedNode() launched NullPointerException if no node was selected FEA: ItEr74S04BugFixing --- .../templates/TemplatesTreeController.java | 53 +++++++++++++++++-- .../navalplanner/web/tree/TreeController.java | 7 ++- .../orders/components/_orderElementTree.zul | 21 ++++---- 3 files changed, 64 insertions(+), 17 deletions(-) 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 @@