From b92d124eadc6f20795d6bb538d2494085d6195a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=93scar=20Gonz=C3=A1lez=20Fern=C3=A1ndez?= Date: Wed, 14 Oct 2009 03:10:08 +0200 Subject: [PATCH] ItEr30S15RFVisualizacionMultiplesProxectosItEr29S18: Adding command for going to schedule from global planning view --- .../planner/CompanyPlanningController.java | 16 +++++++++++-- .../web/planner/CompanyPlanningModel.java | 15 +++++++++--- .../web/planner/ICompanyPlanningModel.java | 7 +++++- .../tabs/MultipleTabsPlannerController.java | 24 +++++++++++++++++++ 4 files changed, 56 insertions(+), 6 deletions(-) diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/CompanyPlanningController.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/CompanyPlanningController.java index 1bbc55715..f4b618e81 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/CompanyPlanningController.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/CompanyPlanningController.java @@ -20,11 +20,17 @@ package org.navalplanner.web.planner; +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang.Validate; +import org.navalplanner.business.planner.entities.TaskElement; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; import org.zkoss.ganttz.Planner; +import org.zkoss.ganttz.extensions.ICommandOnTask; import org.zkoss.ganttz.resourceload.ScriptsRequiredByResourceLoadPanel; import org.zkoss.ganttz.util.OnZKDesktopRegistry; import org.zkoss.ganttz.util.script.IScriptsRegister; @@ -40,10 +46,10 @@ import org.zkoss.zk.ui.util.GenericForwardComposer; @Scope(BeanDefinition.SCOPE_PROTOTYPE) public class CompanyPlanningController extends GenericForwardComposer { - @Autowired private ICompanyPlanningModel model; + private List> additional = new ArrayList>(); public CompanyPlanningController() { getScriptsRegister().register(ScriptsRequiredByResourceLoadPanel.class); @@ -58,7 +64,13 @@ public class CompanyPlanningController extends GenericForwardComposer { public void doAfterCompose(org.zkoss.zk.ui.Component comp) throws Exception { super.doAfterCompose(comp); Planner planner = (Planner) comp; - model.setConfigurationToPlanner(planner); + model.setConfigurationToPlanner(planner, additional); + } + + public void setAdditional(List> additional) { + Validate.notNull(additional); + Validate.noNullElements(additional); + this.additional = additional; } } diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/CompanyPlanningModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/CompanyPlanningModel.java index a0fcaa09d..efd1840ca 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/CompanyPlanningModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/CompanyPlanningModel.java @@ -51,6 +51,7 @@ import org.springframework.transaction.annotation.Transactional; import org.zkoss.ganttz.Planner; import org.zkoss.ganttz.adapters.IStructureNavigator; import org.zkoss.ganttz.adapters.PlannerConfiguration; +import org.zkoss.ganttz.extensions.ICommandOnTask; import org.zkoss.ganttz.timetracker.TimeTracker; import org.zkoss.ganttz.timetracker.zoom.IZoomLevelChangedListener; import org.zkoss.ganttz.timetracker.zoom.ZoomLevel; @@ -105,17 +106,25 @@ public abstract class CompanyPlanningModel implements ICompanyPlanningModel { @Override @Transactional(readOnly = true) - public void setConfigurationToPlanner(Planner planner) { + public void setConfigurationToPlanner(Planner planner, + Collection> additional) { PlannerConfiguration configuration = createConfiguration(); - Chart chartComponent = new Chart(); configuration.setChartComponent(chartComponent); - + addAdditionalCommands(additional, configuration); planner.setConfiguration(configuration); setupChart(chartComponent, planner.getTimeTracker()); } + private void addAdditionalCommands( + Collection> additional, + PlannerConfiguration configuration) { + for (ICommandOnTask t : additional) { + configuration.addCommandOnTask(t); + } + } + private void setupChart(Chart chartComponent, TimeTracker timeTracker) { fillChart(chartComponent, timeTracker.getRealInterval(), timeTracker .getHorizontalSize()); diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/ICompanyPlanningModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/ICompanyPlanningModel.java index 2e368c81a..43fe69916 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/ICompanyPlanningModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/ICompanyPlanningModel.java @@ -20,7 +20,11 @@ package org.navalplanner.web.planner; +import java.util.Collection; + +import org.navalplanner.business.planner.entities.TaskElement; import org.zkoss.ganttz.Planner; +import org.zkoss.ganttz.extensions.ICommandOnTask; /** * Contract for {@link CompanyPlanningModel} @@ -29,6 +33,7 @@ import org.zkoss.ganttz.Planner; */ public interface ICompanyPlanningModel { - void setConfigurationToPlanner(Planner planner); + void setConfigurationToPlanner(Planner planner, + Collection> additional); } 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 1a81e7b48..151beea0c 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 @@ -27,6 +27,7 @@ import java.util.List; import java.util.Map; import org.navalplanner.business.orders.entities.Order; +import org.navalplanner.business.orders.entities.OrderElement; import org.navalplanner.business.planner.entities.TaskElement; import org.navalplanner.web.common.Util; import org.navalplanner.web.orders.OrderCRUDController; @@ -43,7 +44,9 @@ import org.zkoss.ganttz.TabSwitcher; import org.zkoss.ganttz.TabsRegistry; import org.zkoss.ganttz.adapters.TabsConfiguration; import org.zkoss.ganttz.extensions.ICommand; +import org.zkoss.ganttz.extensions.ICommandOnTask; import org.zkoss.ganttz.extensions.IContext; +import org.zkoss.ganttz.extensions.IContextWithPlannerTask; import org.zkoss.ganttz.extensions.ITab; import org.zkoss.ganttz.resourceload.ResourcesLoadPanel.IToolbarCommand; import org.zkoss.zk.ui.Executions; @@ -162,9 +165,30 @@ public class MultipleTabsPlannerController implements Composer { private ITab createGlobalPlanningTab() { return new CreatedOnDemandTab(ENTERPRISE_VIEW, new IComponentCreator() { + @SuppressWarnings("unchecked") @Override public org.zkoss.zk.ui.Component create( org.zkoss.zk.ui.Component parent) { + List> commands = new ArrayList>(); + commands.add(new ICommandOnTask() { + + @Override + public void doAction( + IContextWithPlannerTask context, + TaskElement task) { + OrderElement orderElement = task.getOrderElement(); + if (orderElement instanceof Order) { + Order order = (Order) orderElement; + mode.goToOrderMode(order); + } + } + + @Override + public String getName() { + return _("Schedule"); + } + }); + companyPlanningController.setAdditional(commands); HashMap args = new HashMap(); args.put("companyPlanningController", companyPlanningController);