From 0d8250e6b0c2e6f08326ba5328947860c930cfaa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=93scar=20Gonz=C3=A1lez=20Fern=C3=A1ndez?= Date: Sun, 3 Jan 2010 17:18:36 +0100 Subject: [PATCH] ItEr41S20CUGravacionModelosUnidadesTraballoItEr40S25: Introducing macro component for order elements tree --- .../web/orders/OrderCRUDController.java | 13 +++-- .../orders/OrderElementTreeController.java | 1 - .../web/orders/components/TreeComponent.java | 53 +++++++++++++++++++ .../src/main/webapp/orders/_edition.zul | 5 +- .../{ => components}/_orderElementTree.zul | 30 +++++------ 5 files changed, 79 insertions(+), 23 deletions(-) create mode 100644 navalplanner-webapp/src/main/java/org/navalplanner/web/orders/components/TreeComponent.java rename navalplanner-webapp/src/main/webapp/orders/{ => components}/_orderElementTree.zul (74%) diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/OrderCRUDController.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/OrderCRUDController.java index c408b3e1b..2e29099c5 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/OrderCRUDController.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/OrderCRUDController.java @@ -41,6 +41,7 @@ import org.navalplanner.web.common.Level; import org.navalplanner.web.common.MessagesForUser; import org.navalplanner.web.common.OnlyOneVisible; import org.navalplanner.web.common.Util; +import org.navalplanner.web.orders.components.TreeComponent; import org.navalplanner.web.planner.order.IOrderPlanningGate; import org.navalplanner.web.users.OrderAuthorizationController; import org.springframework.beans.factory.annotation.Autowired; @@ -173,9 +174,10 @@ public class OrderCRUDController extends GenericForwardComposer { private void setupOrderElementTreeController(Component comp, OrderElementController orderElementController) throws Exception { - OrderElementTreeController controller = new OrderElementTreeController( - orderModel, orderElementController); - controller.doAfterCompose(editWindow.getFellowIfAny("orderElementTree")); + TreeComponent orderElementsTree = (TreeComponent) editWindow + .getFellow("orderElementTree"); + orderElementsTree.useController(new OrderElementTreeController( + orderModel, orderElementController)); } private IOrderElementModel getOrderElementModel() { @@ -404,8 +406,9 @@ public class OrderCRUDController extends GenericForwardComposer { } private void clearEditWindow() { - OrderElementTreeController controller = (OrderElementTreeController) editWindow.getVariable("orderElementTreeController", true); - controller.clear(); + TreeComponent treeComponent = (TreeComponent) editWindow + .getFellow("orderElementTree"); + treeComponent.clear(); } public void goToCreateForm() { diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/OrderElementTreeController.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/OrderElementTreeController.java index 26c1846f2..198aee67c 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/OrderElementTreeController.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/OrderElementTreeController.java @@ -293,7 +293,6 @@ public class OrderElementTreeController extends GenericForwardComposer { public void doAfterCompose(Component comp) throws Exception { super.doAfterCompose(comp); messagesForUser = new MessagesForUser(messagesContainer); - comp.setVariable("orderElementTreeController", this, true); } public class OrderElementTreeitemRenderer implements TreeitemRenderer, diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/components/TreeComponent.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/components/TreeComponent.java new file mode 100644 index 000000000..559a7e78c --- /dev/null +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/components/TreeComponent.java @@ -0,0 +1,53 @@ +/* + * This file is part of ###PROJECT_NAME### + * + * Copyright (C) 2009 Fundación para o Fomento da Calidade Industrial e + * Desenvolvemento Tecnolóxico de Galicia + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ +package org.navalplanner.web.orders.components; + +import org.navalplanner.web.orders.OrderElementTreeController; +import org.zkoss.zk.ui.HtmlMacroComponent; + +/** + * macro component for order elements tree and similar pages
+ * @author Óscar González Fernández + */ +public class TreeComponent extends HtmlMacroComponent { + + private static final String CONTROLLER_NAME = "treeController"; + + public void clear() { + OrderElementTreeController controller = (OrderElementTreeController) getVariable( + CONTROLLER_NAME, true); + controller.clear(); + } + + public void useController(OrderElementTreeController controller) { + doAfterComposeOnController(controller); + this.setVariable(CONTROLLER_NAME, controller, true); + } + + private void doAfterComposeOnController( + OrderElementTreeController controller) { + try { + controller.doAfterCompose(this); + } catch (Exception e) { + throw new RuntimeException(e); + } + } + +} diff --git a/navalplanner-webapp/src/main/webapp/orders/_edition.zul b/navalplanner-webapp/src/main/webapp/orders/_edition.zul index 6519b54fd..bcdfc5b33 100644 --- a/navalplanner-webapp/src/main/webapp/orders/_edition.zul +++ b/navalplanner-webapp/src/main/webapp/orders/_edition.zul @@ -18,7 +18,8 @@ along with this program. If not, see . --> - + @@ -104,7 +105,7 @@ - + diff --git a/navalplanner-webapp/src/main/webapp/orders/_orderElementTree.zul b/navalplanner-webapp/src/main/webapp/orders/components/_orderElementTree.zul similarity index 74% rename from navalplanner-webapp/src/main/webapp/orders/_orderElementTree.zul rename to navalplanner-webapp/src/main/webapp/orders/components/_orderElementTree.zul index 5852ae1cd..2856a980b 100644 --- a/navalplanner-webapp/src/main/webapp/orders/_orderElementTree.zul +++ b/navalplanner-webapp/src/main/webapp/orders/components/_orderElementTree.zul @@ -18,30 +18,30 @@ along with this program. If not, see . --> - +