From 9bba8fdcc71c653acd94039a1852a3374a1e1af0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=93scar=20Gonz=C3=A1lez=20Fern=C3=A1ndez?= Date: Sun, 5 Jul 2009 17:15:31 +0200 Subject: [PATCH] ItEr15S12RFComportamentoGraficoPlanificadorItEr14S13: Adding columns to left pane tree. --- .../java/org/zkoss/ganttz/ListDetails.java | 13 ++--- .../java/org/zkoss/ganttz/TaskDetail.java | 50 ++++++++++++++++--- .../main/resources/metainfo/zk/lang-addon.xml | 6 --- .../resources/web/ganttz/zul/listdetails.zul | 7 ++- .../resources/web/ganttz/zul/taskdetail.zul | 35 +++++-------- 5 files changed, 68 insertions(+), 43 deletions(-) diff --git a/navalplanner-gantt-zk/src/main/java/org/zkoss/ganttz/ListDetails.java b/navalplanner-gantt-zk/src/main/java/org/zkoss/ganttz/ListDetails.java index a1e2206eb..9d18d003b 100644 --- a/navalplanner-gantt-zk/src/main/java/org/zkoss/ganttz/ListDetails.java +++ b/navalplanner-gantt-zk/src/main/java/org/zkoss/ganttz/ListDetails.java @@ -12,6 +12,8 @@ import org.apache.commons.logging.LogFactory; import org.zkoss.ganttz.TaskDetail.ITaskDetailNavigator; import org.zkoss.ganttz.util.TaskBean; import org.zkoss.ganttz.util.TaskContainerBean; +import org.zkoss.zk.ui.Component; +import org.zkoss.zk.ui.Executions; import org.zkoss.zk.ui.HtmlMacroComponent; import org.zkoss.zk.ui.event.Event; import org.zkoss.zk.ui.event.EventListener; @@ -20,10 +22,8 @@ import org.zkoss.zul.SimpleTreeModel; import org.zkoss.zul.SimpleTreeNode; import org.zkoss.zul.Tree; import org.zkoss.zul.TreeModel; -import org.zkoss.zul.Treecell; import org.zkoss.zul.Treeitem; import org.zkoss.zul.TreeitemRenderer; -import org.zkoss.zul.Treerow; public class ListDetails extends HtmlMacroComponent { @@ -31,11 +31,7 @@ public class ListDetails extends HtmlMacroComponent { public void render(Treeitem item, Object data) throws Exception { SimpleTreeNode node = (SimpleTreeNode) data; TaskBean taskBean = (TaskBean) node.getData(); - Treerow treerow = new Treerow(); - treerow.setParent(item); item.setOpen(isOpened(taskBean)); - Treecell treecell = new Treecell(); - treecell.setParent(treerow); final int[] path = tasksTreeModel.getPath(tasksTreeModel.getRoot(), node); TaskDetail taskDetail = TaskDetail.create(taskBean, @@ -43,9 +39,10 @@ public class ListDetails extends HtmlMacroComponent { if (taskBean instanceof TaskContainerBean) { expandWhenOpened((TaskContainerBean) taskBean, item); } - taskDetail.setParent(treecell); + Component row = Executions.getCurrent().createComponents( + "~./ganttz/zul/taskdetail.zul", item, null); + taskDetail.doAfterCompose(row); detailsForBeans.put(taskBean, taskDetail); - taskDetail.afterCompose(); } private void expandWhenOpened(final TaskContainerBean taskBean, diff --git a/navalplanner-gantt-zk/src/main/java/org/zkoss/ganttz/TaskDetail.java b/navalplanner-gantt-zk/src/main/java/org/zkoss/ganttz/TaskDetail.java index c5ae9a5d0..a1d4e914a 100644 --- a/navalplanner-gantt-zk/src/main/java/org/zkoss/ganttz/TaskDetail.java +++ b/navalplanner-gantt-zk/src/main/java/org/zkoss/ganttz/TaskDetail.java @@ -11,13 +11,14 @@ import org.apache.commons.logging.LogFactory; import org.zkoss.ganttz.util.TaskBean; import org.zkoss.util.Locales; import org.zkoss.zk.ui.Component; -import org.zkoss.zk.ui.HtmlMacroComponent; import org.zkoss.zk.ui.event.KeyEvent; -import org.zkoss.zk.ui.ext.AfterCompose; +import org.zkoss.zk.ui.util.GenericForwardComposer; import org.zkoss.zul.Datebox; import org.zkoss.zul.Textbox; +import org.zkoss.zul.Treecell; +import org.zkoss.zul.api.Treerow; -public class TaskDetail extends HtmlMacroComponent implements AfterCompose { +public class TaskDetail extends GenericForwardComposer { public interface ITaskDetailNavigator { TaskDetail getBelowDetail(); @@ -149,7 +150,7 @@ public class TaskDetail extends HtmlMacroComponent implements AfterCompose { } private ListDetails getListDetails() { - Component current = getParent(); + Component current = nameBox; while (!(current instanceof ListDetails)) { current = current.getParent(); } @@ -214,9 +215,12 @@ public class TaskDetail extends HtmlMacroComponent implements AfterCompose { associatedTextBox.setVisible(true); } + @Override - public void afterCompose() { - super.afterCompose(); + public void doAfterCompose(Component component) throws Exception { + super.doAfterCompose(component); + component.setVariable("top", this, true); + findComponents((Treerow) component); updateComponents(); taskBean.addFundamentalPropertiesChangeListener(new PropertyChangeListener() { @@ -227,6 +231,40 @@ public class TaskDetail extends HtmlMacroComponent implements AfterCompose { }); } + private void findComponents(Treerow row) { + List rowChildren = row.getChildren(); + List treeCells = Planner.findComponentsOfType(Treecell.class, + rowChildren); + assert treeCells.size() == 3; + findComponentsForNameCell(treeCells.get(0)); + findComponentsForStartDateCell(treeCells.get(1)); + findComponentsForEndDateCell(treeCells.get(2)); + } + + private static Datebox findDateBoxOfCell(Treecell treecell) { + List children = treecell.getChildren(); + return Planner.findComponentsOfType(Datebox.class, children).get(0); + } + + private static Textbox findTextBoxOfCell(Treecell treecell) { + List children = treecell.getChildren(); + return Planner.findComponentsOfType(Textbox.class, children).get(0); + } + + private void findComponentsForNameCell(Treecell treecell) { + nameBox = (Textbox) treecell.getChildren().get(0); + } + + private void findComponentsForStartDateCell(Treecell treecell) { + startDateTextBox = findTextBoxOfCell(treecell); + startDateBox = findDateBoxOfCell(treecell); + } + + private void findComponentsForEndDateCell(Treecell treecell) { + endDateBox = findDateBoxOfCell(treecell); + endDateTextBox = findTextBoxOfCell(treecell); + } + public void updateBean() { if (getEndDateBox().getValue().before(getStartDateBox().getValue())) { updateComponents(); diff --git a/navalplanner-gantt-zk/src/main/resources/metainfo/zk/lang-addon.xml b/navalplanner-gantt-zk/src/main/resources/metainfo/zk/lang-addon.xml index 988bd96d8..0a409e5e1 100755 --- a/navalplanner-gantt-zk/src/main/resources/metainfo/zk/lang-addon.xml +++ b/navalplanner-gantt-zk/src/main/resources/metainfo/zk/lang-addon.xml @@ -26,12 +26,6 @@ ~./ganttz/zul/listdetails.zul - - taskdetail - org.zkoss.ganttz.TaskDetail - ~./ganttz/zul/taskdetail.zul - - ganttpanel org.zkoss.ganttz.GanttPanel diff --git a/navalplanner-gantt-zk/src/main/resources/web/ganttz/zul/listdetails.zul b/navalplanner-gantt-zk/src/main/resources/web/ganttz/zul/listdetails.zul index 0a5572cea..6bf9fdcb4 100644 --- a/navalplanner-gantt-zk/src/main/resources/web/ganttz/zul/listdetails.zul +++ b/navalplanner-gantt-zk/src/main/resources/web/ganttz/zul/listdetails.zul @@ -4,8 +4,13 @@ onClick="self.getParent().addTask();" />