From 9ebdc95331df36defd0075f3ca8b2c109df0e510 Mon Sep 17 00:00:00 2001 From: Lorenzo Tilve Date: Fri, 12 Mar 2010 13:16:44 +0100 Subject: [PATCH] ItEr50S04ValidacionEProbasFuncionaisItEr49S04: Inserted create new order button in company view --- .../web/orders/OrderCRUDController.java | 10 ++++- .../company/CompanyPlanningController.java | 8 ++++ .../planner/company/CompanyPlanningModel.java | 40 +++++++++++++++++++ .../company/ICompanyPlanningModel.java | 3 ++ .../order/OrderPlanningController.java | 8 ++++ .../tabs/MultipleTabsPlannerController.java | 12 +++++- .../web/planner/tabs/PlanningTabCreator.java | 13 ++++-- 7 files changed, 87 insertions(+), 7 deletions(-) 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 a11d871b1..60860a2e6 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 @@ -766,6 +766,10 @@ public class OrderCRUDController extends GenericForwardComposer { this.planningControllerEntryPoints = planningControllerEntryPoints; } + public IOrderPlanningGate getPlanningControllerEntryPoints() { + return this.planningControllerEntryPoints; + } + public void setActionOnUp(Runnable onUp) { this.onUp = onUp; } @@ -1044,8 +1048,10 @@ public class OrderCRUDController extends GenericForwardComposer { } private void showOrderElementFilter() { - orderFilter.setVisible(false); - orderElementFilter.setVisible(true); + if (orderFilter != null) + orderFilter.setVisible(false); + if (orderElementFilter != null) + orderElementFilter.setVisible(true); } private void showCreateButtons(boolean showCreate) { diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/company/CompanyPlanningController.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/company/CompanyPlanningController.java index 2e1856ea5..5332cf9da 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/company/CompanyPlanningController.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/company/CompanyPlanningController.java @@ -33,6 +33,7 @@ import org.navalplanner.business.planner.entities.TaskElement; import org.navalplanner.web.common.components.bandboxsearch.BandboxMultipleSearch; import org.navalplanner.web.common.components.finders.FilterPair; import org.navalplanner.web.planner.CompanyPredicate; +import org.navalplanner.web.planner.tabs.MultipleTabsPlannerController; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.context.annotation.Scope; @@ -79,6 +80,8 @@ public class CompanyPlanningController implements Composer{ private Map parameters; + private MultipleTabsPlannerController tabsController; + public CompanyPlanningController() { getScriptsRegister().register(ScriptsRequiredByResourceLoadPanel.class); } @@ -126,6 +129,7 @@ public class CompanyPlanningController implements Composer{ model .setConfigurationToPlanner(planner, additional, doubleClickCommand, createPredicate()); + model.setTabsController(tabsController); planner.updateSelectedZoomLevel(); planner.invalidate(); } @@ -209,4 +213,8 @@ public class CompanyPlanningController implements Composer{ planner.invalidate(); } + public void setTabsController(MultipleTabsPlannerController tabsController) { + this.tabsController = tabsController; + } + } diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/company/CompanyPlanningModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/company/CompanyPlanningModel.java index e3d7987a6..f650e8ecf 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/company/CompanyPlanningModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/company/CompanyPlanningModel.java @@ -60,6 +60,7 @@ import org.navalplanner.business.users.daos.IUserDAO; import org.navalplanner.business.users.entities.User; import org.navalplanner.business.workreports.daos.IWorkReportLineDAO; import org.navalplanner.business.workreports.entities.WorkReportLine; +import org.navalplanner.web.orders.OrderCRUDController; import org.navalplanner.web.planner.ITaskElementAdapter; import org.navalplanner.web.planner.chart.Chart; import org.navalplanner.web.planner.chart.ChartFiller; @@ -68,6 +69,7 @@ import org.navalplanner.web.planner.chart.IChartFiller; import org.navalplanner.web.planner.chart.EarnedValueChartFiller.EarnedValueType; import org.navalplanner.web.planner.order.BankHolidaysMarker; import org.navalplanner.web.planner.order.OrderPlanningModel; +import org.navalplanner.web.planner.tabs.MultipleTabsPlannerController; import org.navalplanner.web.print.CutyPrint; import org.navalplanner.web.security.SecurityUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -84,7 +86,9 @@ import org.zkoss.ganttz.Planner; import org.zkoss.ganttz.adapters.IStructureNavigator; import org.zkoss.ganttz.adapters.PlannerConfiguration; import org.zkoss.ganttz.adapters.PlannerConfiguration.IPrintAction; +import org.zkoss.ganttz.extensions.ICommand; import org.zkoss.ganttz.extensions.ICommandOnTask; +import org.zkoss.ganttz.extensions.IContext; import org.zkoss.ganttz.timetracker.TimeTracker; import org.zkoss.ganttz.timetracker.zoom.IZoomLevelChangedListener; import org.zkoss.ganttz.timetracker.zoom.ZoomLevel; @@ -145,8 +149,18 @@ public abstract class CompanyPlanningModel implements ICompanyPlanningModel { @Autowired private ICostCalculator hoursCostCalculator; + @Autowired + private OrderCRUDController orderCRUDController; + private List earnedValueChartConfigurationCheckboxes = new ArrayList(); + private MultipleTabsPlannerController tabs; + + public void setPlanningControllerEntryPoints( + MultipleTabsPlannerController entryPoints) { + this.tabs = entryPoints; + } + private final class TaskElementNavigator implements IStructureNavigator { @Override @@ -175,6 +189,11 @@ public abstract class CompanyPlanningModel implements ICompanyPlanningModel { setConfigurationToPlanner(planner, additional, null); } + @Override + public void setTabsController(MultipleTabsPlannerController tabsController) { + this.tabs = tabsController; + } + @Override @Transactional(readOnly = true) public void setConfigurationToPlanner(Planner planner, @@ -192,6 +211,27 @@ public abstract class CompanyPlanningModel implements ICompanyPlanningModel { if (doubleClickCommand != null) { configuration.setDoubleClickCommand(doubleClickCommand); } + + ICommand createNewOrderCommand = new ICommand() { + + @Override + public String getName() { + return _("Create new order"); + } + + @Override + public String getImage() { + return "/common/img/ico_add.png"; + } + + @Override + public void doAction(IContext context) { + tabs.goToCreateForm(); + } + + }; + + configuration.addGlobalCommand(createNewOrderCommand); addAdditionalCommands(additional, configuration); addPrintSupport(configuration); disableSomeFeatures(configuration); diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/company/ICompanyPlanningModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/company/ICompanyPlanningModel.java index d0b1364f6..99df6ddd1 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/company/ICompanyPlanningModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/company/ICompanyPlanningModel.java @@ -23,6 +23,7 @@ package org.navalplanner.web.planner.company; import java.util.Collection; import org.navalplanner.business.planner.entities.TaskElement; +import org.navalplanner.web.planner.tabs.MultipleTabsPlannerController; import org.zkoss.ganttz.IPredicate; import org.zkoss.ganttz.Planner; import org.zkoss.ganttz.extensions.ICommandOnTask; @@ -45,4 +46,6 @@ public interface ICompanyPlanningModel { Collection> additional, ICommandOnTask doubleClickCommand, IPredicate predicate); + public void setTabsController(MultipleTabsPlannerController tabsController); + } diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/OrderPlanningController.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/OrderPlanningController.java index 4fdc96f3e..631fee065 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/OrderPlanningController.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/OrderPlanningController.java @@ -35,6 +35,7 @@ import org.navalplanner.business.planner.entities.TaskElement; import org.navalplanner.web.common.ViewSwitcher; import org.navalplanner.web.common.components.bandboxsearch.BandboxMultipleSearch; import org.navalplanner.web.common.components.finders.FilterPair; +import org.navalplanner.web.orders.OrderCRUDController; import org.navalplanner.web.orders.OrderElementPredicate; import org.navalplanner.web.planner.allocation.ResourceAllocationController; import org.navalplanner.web.planner.calendar.CalendarAllocationController; @@ -85,6 +86,9 @@ public class OrderPlanningController implements Composer { @Autowired private EditTaskController editTaskController; + @Autowired + private OrderCRUDController orderCRUDController; + private Order order; private List> additional = new ArrayList>(); @@ -171,6 +175,10 @@ public class OrderPlanningController implements Composer { return editTaskController; } + public OrderCRUDController getOrderCRUDController() { + return orderCRUDController; + } + public void setURLParameters(Map parameters) { this.parameters = parameters; } 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 f04d69555..16597bfee 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 @@ -166,7 +166,8 @@ public class MultipleTabsPlannerController implements Composer, planningTab = doFeedbackOn(PlanningTabCreator.create(mode, companyPlanningController, orderPlanningController, orderDAO, - breadcrumbs, parameters)); + breadcrumbs, parameters, this)); + resourceLoadTab = ResourcesLoadTabCreator.create(mode, resourceLoadController, upCommand(), resourceLoadControllerGlobal, @@ -186,6 +187,7 @@ public class MultipleTabsPlannerController implements Composer, getTabsRegistry().show(ordersTab); } + }, parameters); final State typeChanged = typeChangedState(); ITab advancedAllocation = doFeedbackOn(AdvancedAllocationTabCreator.create(mode, @@ -321,7 +323,13 @@ public class MultipleTabsPlannerController implements Composer, @Override public void goToOrdersList() { - ordersTab.show(); + // ordersTab.show(); + getTabsRegistry().show(ordersTab); + } + + public void goToCreateForm() { + getTabsRegistry().show(ordersTab); + orderCRUDController.goToCreateForm(); } @Override diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/tabs/PlanningTabCreator.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/tabs/PlanningTabCreator.java index ff96fcae4..b1e75a1e3 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/tabs/PlanningTabCreator.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/tabs/PlanningTabCreator.java @@ -66,14 +66,18 @@ public class PlanningTabCreator { private final Map parameters; + private MultipleTabsPlannerController tabsController; + public static ITab create(Mode mode, CompanyPlanningController companyPlanningController, OrderPlanningController orderPlanningController, IOrderDAO orderDAO, Component breadcrumbs, - Map parameters) { + Map parameters, + MultipleTabsPlannerController tabsController) { return new PlanningTabCreator(mode, companyPlanningController, - orderPlanningController, breadcrumbs, orderDAO, parameters) + orderPlanningController, breadcrumbs, orderDAO, parameters, + tabsController) .create(); } @@ -81,13 +85,15 @@ public class PlanningTabCreator { CompanyPlanningController companyPlanningController, OrderPlanningController orderPlanningController, Component breadcrumbs, IOrderDAO orderDAO, - Map parameters) { + Map parameters, + MultipleTabsPlannerController tabsController) { this.mode = mode; this.companyPlanningController = companyPlanningController; this.orderPlanningController = orderPlanningController; this.breadcrumbs = breadcrumbs; this.orderDAO = orderDAO; this.parameters = parameters; + this.tabsController = tabsController; } private ITab create() { @@ -134,6 +140,7 @@ public class PlanningTabCreator { }; commands.add(scheduleCommand); companyPlanningController.setAdditional(commands); + companyPlanningController.setTabsController(tabsController); companyPlanningController .setDoubleClickCommand(scheduleCommand); HashMap args = new HashMap();