diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/allocation/ResourceAllocationCommand.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/allocation/ResourceAllocationCommand.java index 4bb733f38..cb6859559 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/allocation/ResourceAllocationCommand.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/allocation/ResourceAllocationCommand.java @@ -75,7 +75,7 @@ public class ResourceAllocationCommand implements IResourceAllocationCommand { @Override public void initialize( - EditTaskController editTaskController, +EditTaskController editTaskController, PlanningState planningState) { this.editTaskController = editTaskController; this.planningState = planningState; diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/consolidations/AdvanceConsolidationCommand.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/consolidations/AdvanceConsolidationCommand.java index 095b7154f..47edfde5d 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/consolidations/AdvanceConsolidationCommand.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/consolidations/AdvanceConsolidationCommand.java @@ -26,7 +26,6 @@ import org.navalplanner.business.planner.entities.Task; import org.navalplanner.business.planner.entities.TaskElement; import org.navalplanner.web.planner.order.IEditTaskUtilities; import org.navalplanner.web.planner.order.PlanningState; -import org.navalplanner.web.planner.taskedition.EditTaskController; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.context.annotation.Scope; @@ -42,7 +41,7 @@ import org.zkoss.ganttz.extensions.IContextWithPlannerTask; public class AdvanceConsolidationCommand implements IAdvanceConsolidationCommand { - private EditTaskController editTaskController; + private AdvanceConsolidationController advanceConsolidationController; private PlanningState planningState; @Autowired @@ -57,7 +56,7 @@ public class AdvanceConsolidationCommand implements editTaskUtilities.reattach(task); if (isApplicableTo(task)) { - this.editTaskController.showEditFormAdvanceConsolidation(context, + this.advanceConsolidationController.showWindow(context, (Task) task, planningState); } } @@ -68,9 +67,10 @@ public class AdvanceConsolidationCommand implements } @Override - public void initialize(EditTaskController editTaskController, + public void initialize( + AdvanceConsolidationController advanceConsolidationController, PlanningState planningState) { - this.editTaskController = editTaskController; + this.advanceConsolidationController = advanceConsolidationController; this.planningState = planningState; } diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/consolidations/AdvanceConsolidationController.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/consolidations/AdvanceConsolidationController.java index ef7fc798d..1417381e6 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/consolidations/AdvanceConsolidationController.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/consolidations/AdvanceConsolidationController.java @@ -27,16 +27,16 @@ import java.util.List; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.navalplanner.business.planner.entities.TaskElement; -import org.navalplanner.web.common.IMessagesForUser; import org.navalplanner.web.common.Util; import org.navalplanner.web.planner.order.PlanningState; import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.context.annotation.Scope; import org.zkoss.ganttz.extensions.IContextWithPlannerTask; import org.zkoss.zk.ui.Component; -import org.zkoss.zk.ui.event.Event; +import org.zkoss.zk.ui.SuspendNotAllowedException; import org.zkoss.zk.ui.util.GenericForwardComposer; import org.zkoss.zul.Grid; +import org.zkoss.zul.Window; /** * Controller for {@link Advance} consolidation view. @@ -53,35 +53,41 @@ public class AdvanceConsolidationController extends GenericForwardComposer { private Grid advancesGrid; + private Window window; + @Override public void doAfterCompose(Component comp) throws Exception { super.doAfterCompose(comp); + window = (Window) comp; } - public void init(IContextWithPlannerTask context, + public void showWindow(IContextWithPlannerTask context, org.navalplanner.business.planner.entities.Task task, - PlanningState planningState, IMessagesForUser messagesForUser) { + PlanningState planningState) { advanceConsolidationModel.initAdvancesFor(task, context, planningState); - reloadAdvanceGrid(); - } - // Triggered when closable button is clicked - public void onClose(Event event) { - cancel(); - event.stopPropagation(); + try { + Util.reloadBindings(window); + window.doModal(); + } catch (SuspendNotAllowedException e) { + throw new RuntimeException(e); + } catch (InterruptedException e) { + throw new RuntimeException(e); + } } public void cancel() { - clear(); advanceConsolidationModel.cancel(); - } - - private void clear() { + close(); } public void accept() { advanceConsolidationModel.accept(); - clear(); + close(); + } + + private void close() { + window.setVisible(false); } public String getInfoAdvance() { diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/consolidations/IAdvanceConsolidationCommand.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/consolidations/IAdvanceConsolidationCommand.java index 83e1e9c8f..2295b72e6 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/consolidations/IAdvanceConsolidationCommand.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/consolidations/IAdvanceConsolidationCommand.java @@ -22,7 +22,6 @@ package org.navalplanner.web.planner.consolidations; import org.navalplanner.business.planner.entities.TaskElement; import org.navalplanner.web.planner.order.PlanningState; -import org.navalplanner.web.planner.taskedition.EditTaskController; import org.zkoss.ganttz.extensions.ICommandOnTask; /** @@ -32,6 +31,8 @@ import org.zkoss.ganttz.extensions.ICommandOnTask; public interface IAdvanceConsolidationCommand extends ICommandOnTask { - void initialize(EditTaskController editTaskController, PlanningState state); + void initialize( + AdvanceConsolidationController advanceConsolidationController, + PlanningState state); } diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/IOrderPlanningModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/IOrderPlanningModel.java index dc439513c..da3485c15 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/IOrderPlanningModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/IOrderPlanningModel.java @@ -26,6 +26,7 @@ import org.navalplanner.business.orders.entities.Order; import org.navalplanner.business.planner.entities.TaskElement; import org.navalplanner.web.common.ViewSwitcher; import org.navalplanner.web.planner.calendar.CalendarAllocationController; +import org.navalplanner.web.planner.consolidations.AdvanceConsolidationController; import org.navalplanner.web.planner.taskedition.EditTaskController; import org.zkoss.ganttz.Planner; import org.zkoss.ganttz.extensions.ICommand; @@ -38,6 +39,7 @@ public interface IOrderPlanningModel { void setConfigurationToPlanner(Planner planner, Order order, ViewSwitcher viewSwitcher, EditTaskController editTaskController, + AdvanceConsolidationController advanceConsolidationController, CalendarAllocationController calendarAllocationController, List> additional); 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 c6af89cd7..d9e4fc2f1 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 @@ -40,6 +40,7 @@ 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; +import org.navalplanner.web.planner.consolidations.AdvanceConsolidationController; import org.navalplanner.web.planner.taskedition.EditTaskController; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.config.BeanDefinition; @@ -89,6 +90,9 @@ public class OrderPlanningController implements Composer { @Autowired private EditTaskController editTaskController; + @Autowired + private AdvanceConsolidationController advanceConsolidationController; + @Autowired private OrderCRUDController orderCRUDController; @@ -178,8 +182,8 @@ public class OrderPlanningController implements Composer { private void updateConfiguration() { if (order != null) { model.setConfigurationToPlanner(planner, order, viewSwitcher, - editTaskController, calendarAllocationController, - additional); + editTaskController, advanceConsolidationController, + calendarAllocationController, additional); planner.updateSelectedZoomLevel(); showResorceAllocationIfIsNeeded(); } @@ -323,4 +327,8 @@ public class OrderPlanningController implements Composer { } } + public AdvanceConsolidationController getAdvanceConsolidationController() { + return advanceConsolidationController; + } + } diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/OrderPlanningModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/OrderPlanningModel.java index 8ca48818d..d16065bf2 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/OrderPlanningModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/OrderPlanningModel.java @@ -86,6 +86,7 @@ import org.navalplanner.web.planner.chart.ChartFiller; import org.navalplanner.web.planner.chart.EarnedValueChartFiller; import org.navalplanner.web.planner.chart.IChartFiller; import org.navalplanner.web.planner.chart.EarnedValueChartFiller.EarnedValueType; +import org.navalplanner.web.planner.consolidations.AdvanceConsolidationController; import org.navalplanner.web.planner.consolidations.IAdvanceConsolidationCommand; import org.navalplanner.web.planner.milestone.IAddMilestoneCommand; import org.navalplanner.web.planner.milestone.IDeleteMilestoneCommand; @@ -272,6 +273,7 @@ public abstract class OrderPlanningModel implements IOrderPlanningModel { public void setConfigurationToPlanner(Planner planner, Order order, ViewSwitcher switcher, EditTaskController editTaskController, + AdvanceConsolidationController advanceConsolidationController, CalendarAllocationController calendarAllocationController, List> additional) { orderReloaded = reload(order); @@ -301,7 +303,7 @@ public abstract class OrderPlanningModel implements IOrderPlanningModel { configuration .addCommandOnTask(buildTaskPropertiesCommand(editTaskController)); configuration - .addCommandOnTask(buildAdvanceConsolidationCommand(editTaskController)); + .addCommandOnTask(buildAdvanceConsolidationCommand(advanceConsolidationController)); configuration .addCommandOnTask(buildSubcontractCommand(editTaskController)); @@ -767,9 +769,9 @@ public abstract class OrderPlanningModel implements IOrderPlanningModel { } private IAdvanceConsolidationCommand buildAdvanceConsolidationCommand( - EditTaskController editTaskController) { + AdvanceConsolidationController advanceConsolidationController) { IAdvanceConsolidationCommand advanceConsolidationCommand = getAdvanceConsolidationCommand(); - advanceConsolidationCommand.initialize(editTaskController, + advanceConsolidationCommand.initialize(advanceConsolidationController, planningState); return advanceConsolidationCommand; } diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/taskedition/EditTaskController.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/taskedition/EditTaskController.java index f312233a5..b907385b6 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/taskedition/EditTaskController.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/taskedition/EditTaskController.java @@ -40,7 +40,6 @@ import org.navalplanner.web.planner.allocation.ResourceAllocationController; import org.navalplanner.web.planner.allocation.AdvancedAllocationController.IAdvanceAllocationResultReceiver; import org.navalplanner.web.planner.allocation.AdvancedAllocationController.Restriction; import org.navalplanner.web.planner.allocation.AdvancedAllocationController.Restriction.IRestrictionSource; -import org.navalplanner.web.planner.consolidations.AdvanceConsolidationController; import org.navalplanner.web.planner.order.PlanningState; import org.navalplanner.web.planner.order.SubcontractController; import org.navalplanner.web.planner.taskedition.TaskPropertiesController.ResourceAllocationTypeEnum; @@ -74,9 +73,6 @@ public class EditTaskController extends GenericForwardComposer { @Autowired private LimitingResourceAllocationController limitingResourceAllocationController; - @Autowired - private AdvanceConsolidationController advanceConsolidationController; - @Autowired private SubcontractController subcontractController; @@ -87,12 +83,10 @@ public class EditTaskController extends GenericForwardComposer { private Tab resourceAllocationTab; private Tab limitingResourceAllocationTab; private Tab subcontractTab; - private Tab advanceConsolidationTab; private Tabpanel taskPropertiesTabpanel; private Tabpanel resourceAllocationTabpanel; private Tabpanel limitingResourceAllocationTabpanel; - private Tabpanel advanceConsolidationTabpanel; private Tabpanel subcontractTabpanel; private Component messagesContainer; @@ -111,8 +105,6 @@ public class EditTaskController extends GenericForwardComposer { window = (Window) comp; taskPropertiesController.doAfterCompose(taskPropertiesTabpanel); resourceAllocationController.doAfterCompose(resourceAllocationTabpanel); - advanceConsolidationController - .doAfterCompose(advanceConsolidationTabpanel); subcontractController.doAfterCompose(subcontractTabpanel); limitingResourceAllocationController.doAfterCompose(limitingResourceAllocationTabpanel); messagesForUser = new MessagesForUser(messagesContainer); @@ -130,10 +122,6 @@ public class EditTaskController extends GenericForwardComposer { return limitingResourceAllocationController; } - public AdvanceConsolidationController getAdvanceConsolidationController() { - return advanceConsolidationController; - } - public SubcontractController getSubcontractController() { return subcontractController; } @@ -146,11 +134,6 @@ public class EditTaskController extends GenericForwardComposer { taskPropertiesController.init(this, context, taskElement); - if (isTask(taskElement)) { - advanceConsolidationController.init(context, (Task) taskElement, - planningState, messagesForUser); - } - try { window.setTitle(_("Edit task: {0}", taskElement.getName())); window.setMode("modal"); @@ -237,17 +220,6 @@ public class EditTaskController extends GenericForwardComposer { showEditForm(context, taskElement, planningState); } - public void showEditFormAdvanceConsolidation( - IContextWithPlannerTask context, - TaskElement taskElement, PlanningState planningState) { - if (isNotSubcontractedAndIsTask(taskElement)) { - editTaskTabbox.setSelectedPanelApi(advanceConsolidationTabpanel); - } else { - editTaskTabbox.setSelectedPanelApi(taskPropertiesTabpanel); - } - showEditForm(context, taskElement, planningState); - } - public void accept() { try { if (taskPropertiesController.stateHasChanged()) { @@ -258,12 +230,6 @@ public class EditTaskController extends GenericForwardComposer { editTaskTabbox.setSelectedPanelApi(taskPropertiesTabpanel); taskPropertiesController.accept(); - if (isTask(taskElement)) { - editTaskTabbox - .setSelectedPanelApi(advanceConsolidationTabpanel); - advanceConsolidationController.accept(); - } - ResourceAllocationTypeEnum currentState = taskPropertiesController.getCurrentState(); if (ResourceAllocationTypeEnum.NON_LIMITING_RESOURCES.equals(currentState)) { editTaskTabbox.setSelectedPanelApi(resourceAllocationTabpanel); @@ -316,7 +282,6 @@ public class EditTaskController extends GenericForwardComposer { taskPropertiesController.cancel(); subcontractController.cancel(); resourceAllocationController.cancel(); - advanceConsolidationController.cancel(); taskElement = null; context = null; diff --git a/navalplanner-webapp/src/main/webapp/planner/_tabPanelAdvanceConsolidations.zul b/navalplanner-webapp/src/main/webapp/planner/_tabPanelAdvanceConsolidations.zul deleted file mode 100644 index 1f8428717..000000000 --- a/navalplanner-webapp/src/main/webapp/planner/_tabPanelAdvanceConsolidations.zul +++ /dev/null @@ -1,60 +0,0 @@ - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/navalplanner-webapp/src/main/webapp/planner/order.zul b/navalplanner-webapp/src/main/webapp/planner/order.zul index 2f10e974f..dbea7e1a7 100644 --- a/navalplanner-webapp/src/main/webapp/planner/order.zul +++ b/navalplanner-webapp/src/main/webapp/planner/order.zul @@ -33,10 +33,6 @@ macroURI="/planner/_tabPanelLimitingResourceAllocation.zul" inline="true" ?> - - @@ -51,8 +47,8 @@ allocationController = editController.resourceAllocationController; limitingAllocationController = editController.limitingResourceAllocationController; allocationController.switcher = switcher; - advanceController = editController.advanceConsolidationController; subController = editController.subcontractController; + advanceController = planningController.advanceConsolidationController; ]]>
@@ -71,14 +67,12 @@ - - @@ -90,6 +84,60 @@ + + + + + + + + + + + + + + + + + +