From e015c61a09a4dba799b3d69f007840278cdaaac5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=93scar=20Gonz=C3=A1lez=20Fern=C3=A1ndez?= Date: Sat, 5 Dec 2009 19:32:25 +0100 Subject: [PATCH] Adding entry points to MultipleTabsPlannerController, allowing to go to a concrete perspective from the menu. --- .../web/common/CustomMenuController.java | 12 +++--- .../planner/tabs/IGlobalViewEntryPoints.java | 41 +++++++++++++++++++ .../tabs/MultipleTabsPlannerController.java | 32 ++++++++++++++- 3 files changed, 79 insertions(+), 6 deletions(-) create mode 100644 navalplanner-webapp/src/main/java/org/navalplanner/web/planner/tabs/IGlobalViewEntryPoints.java diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/common/CustomMenuController.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/common/CustomMenuController.java index 31674191b..9926e3f1d 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/common/CustomMenuController.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/common/CustomMenuController.java @@ -165,11 +165,13 @@ public class CustomMenuController extends Div implements IMenuItemsRegister { } public void initializeMenu() { - topItem(_("Scheduling"), "/planner/index.zul", subItem( - _("Company view"), "/planner/index.zul#company_view"), subItem( - _("General resource allocation"), - "/planner/index.zul#company_resources"), subItem( - _("Orders list"), "/planner/index.zul#company_orders")); + topItem(_("Scheduling"), "/planner/index.zul", + subItem(_("Company view"), + "/planner/index.zul;company_scheduling"), + subItem(_("General resource allocation"), + "/planner/index.zul;company_load"), + subItem(_("Orders list"), + "/planner/index.zul;orders_list")); topItem(_("Resources"), "/resources/worker/worker.zul", subItem(_("Workers List"), diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/tabs/IGlobalViewEntryPoints.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/tabs/IGlobalViewEntryPoints.java new file mode 100644 index 000000000..0e44122b5 --- /dev/null +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/tabs/IGlobalViewEntryPoints.java @@ -0,0 +1,41 @@ +/* + * 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.planner.tabs; + +import org.navalplanner.web.common.entrypoints.EntryPoint; +import org.navalplanner.web.common.entrypoints.EntryPoints; + +/** + * Entry points for {@link MultipleTabsPlannerController}
+ * @author Óscar González Fernández + */ +@EntryPoints(page = "/planner/index.zul", registerAs = "globalView") +public interface IGlobalViewEntryPoints { + + @EntryPoint("company_scheduling") + public void goToCompanyScheduling(); + + @EntryPoint("company_load") + public void goToCompanyLoad(); + + @EntryPoint("orders_list") + public void goToOrdersList(); + +} diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/tabs/MultipleTabsPlannerController.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/tabs/MultipleTabsPlannerController.java index 8bbd16ff7..cf059a4fa 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/tabs/MultipleTabsPlannerController.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/tabs/MultipleTabsPlannerController.java @@ -22,11 +22,15 @@ package org.navalplanner.web.planner.tabs; import static org.navalplanner.web.I18nHelper._; import static org.zkoss.ganttz.adapters.TabsConfiguration.configure; +import javax.annotation.Resource; + import org.navalplanner.business.common.IAdHocTransactionService; import org.navalplanner.business.orders.daos.IOrderDAO; import org.navalplanner.business.orders.entities.Order; import org.navalplanner.business.planner.daos.ITaskElementDAO; import org.navalplanner.business.resources.daos.IResourceDAO; +import org.navalplanner.web.common.entrypoints.URLHandler; +import org.navalplanner.web.common.entrypoints.URLHandlerRegistry; import org.navalplanner.web.orders.OrderCRUDController; import org.navalplanner.web.planner.allocation.AdvancedAllocationController.IBack; import org.navalplanner.web.planner.company.CompanyPlanningController; @@ -56,7 +60,8 @@ import org.zkoss.zk.ui.util.Composer; */ @Component @Scope(BeanDefinition.SCOPE_PROTOTYPE) -public class MultipleTabsPlannerController implements Composer { +public class MultipleTabsPlannerController implements Composer, + IGlobalViewEntryPoints { public static final String PLANNIFICATION = _("Scheduling"); @@ -103,6 +108,12 @@ public class MultipleTabsPlannerController implements Composer { @Autowired private IResourceDAO resourceDAO; + @Autowired + private URLHandlerRegistry registry; + + @Resource + private IGlobalViewEntryPoints globalView; + private TabsConfiguration buildTabsConfiguration() { planningTab = PlanningTabCreator.create(mode, companyPlanningController, orderPlanningController, orderDAO, @@ -193,6 +204,10 @@ public class MultipleTabsPlannerController implements Composer { tabsSwitcher = (TabSwitcher) comp; breadcrumbs = comp.getPage().getFellow("breadcrumbs"); tabsSwitcher.setConfiguration(buildTabsConfiguration()); + final URLHandler handler = registry + .getRedirectorFor(IGlobalViewEntryPoints.class); + handler.applyIfMatches(this); + handler.registerListener(this, comp.getPage()); } private TabsRegistry getTabsRegistry() { @@ -214,4 +229,19 @@ public class MultipleTabsPlannerController implements Composer { }; } + @Override + public void goToCompanyScheduling() { + getTabsRegistry().show(planningTab); + } + + @Override + public void goToCompanyLoad() { + getTabsRegistry().show(resourceLoadTab); + } + + @Override + public void goToOrdersList() { + getTabsRegistry().show(ordersTab); + } + }