diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/allocation/FormBinder.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/allocation/FormBinder.java index 1b1952f11..3a8d07405 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/allocation/FormBinder.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/allocation/FormBinder.java @@ -64,7 +64,7 @@ import org.zkoss.zul.SimpleConstraint; import org.zkoss.zul.Tab; import org.zkoss.zul.impl.api.InputElement; -class FormBinder { +public class FormBinder { private Intbox allHoursInput; @@ -349,7 +349,7 @@ class FormBinder { return list; } - void doApply() { + public void doApply() { lastAllocation = resourceAllocationModel .onAllocationContext(new IResourceAllocationContext() { diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/allocation/IResourceAllocationCommand.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/allocation/IResourceAllocationCommand.java index b9b867dbc..384085894 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/allocation/IResourceAllocationCommand.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/allocation/IResourceAllocationCommand.java @@ -22,6 +22,7 @@ package org.navalplanner.web.planner.allocation; 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; /** @@ -31,7 +32,7 @@ import org.zkoss.ganttz.extensions.ICommandOnTask; */ public interface IResourceAllocationCommand extends ICommandOnTask { - void initialize(ResourceAllocationController resourceAllocationController, + void initialize(EditTaskController editTaskController, PlanningState state); } 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 17499b804..8a0fab2cb 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 @@ -24,7 +24,10 @@ import static org.navalplanner.web.I18nHelper._; 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; import org.springframework.stereotype.Component; @@ -39,18 +42,23 @@ import org.zkoss.ganttz.extensions.IContextWithPlannerTask; @Scope(BeanDefinition.SCOPE_PROTOTYPE) public class ResourceAllocationCommand implements IResourceAllocationCommand { - private ResourceAllocationController resourceAllocationController; + private EditTaskController editTaskController; private PlanningState planningState; + @Autowired + private IEditTaskUtilities editTaskUtilities; + public ResourceAllocationCommand() { } @Override public void doAction(IContextWithPlannerTask context, TaskElement task) { + editTaskUtilities.reattach(task); + if (isApplicableTo(task)) { - this.resourceAllocationController.showWindow(context, (Task) task, - planningState); + this.editTaskController.showEditFormResourceAllocation(context, + (Task) task, planningState); } } @@ -61,9 +69,9 @@ public class ResourceAllocationCommand implements IResourceAllocationCommand { @Override public void initialize( - ResourceAllocationController resourceAllocationController, + EditTaskController editTaskController, PlanningState planningState) { - this.resourceAllocationController = resourceAllocationController; + this.editTaskController = editTaskController; this.planningState = planningState; } diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/allocation/ResourceAllocationController.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/allocation/ResourceAllocationController.java index 798ea4699..dfb26194d 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/allocation/ResourceAllocationController.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/allocation/ResourceAllocationController.java @@ -30,22 +30,16 @@ import java.util.List; import org.apache.commons.lang.Validate; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.joda.time.LocalDate; import org.navalplanner.business.orders.entities.AggregatedHoursGroup; -import org.navalplanner.business.planner.entities.AggregateOfResourceAllocations; import org.navalplanner.business.planner.entities.CalculatedValue; import org.navalplanner.business.planner.entities.DerivedAllocation; import org.navalplanner.business.planner.entities.ResourceAllocation; import org.navalplanner.business.planner.entities.TaskElement; import org.navalplanner.business.resources.entities.ResourceEnum; import org.navalplanner.web.common.IMessagesForUser; -import org.navalplanner.web.common.MessagesForUser; import org.navalplanner.web.common.Util; import org.navalplanner.web.common.ViewSwitcher; import org.navalplanner.web.common.components.NewAllocationSelector; -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.order.PlanningState; import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.context.annotation.Scope; @@ -56,7 +50,6 @@ import org.zkoss.ganttz.timetracker.OnColumnsRowRenderer; import org.zkoss.ganttz.util.OnZKDesktopRegistry; import org.zkoss.ganttz.util.script.IScriptsRegister; import org.zkoss.zk.ui.Component; -import org.zkoss.zk.ui.SuspendNotAllowedException; import org.zkoss.zk.ui.WrongValueException; import org.zkoss.zk.ui.event.Event; import org.zkoss.zk.ui.event.EventListener; @@ -77,7 +70,6 @@ import org.zkoss.zul.Row; import org.zkoss.zul.RowRenderer; import org.zkoss.zul.SimpleListModel; import org.zkoss.zul.Tab; -import org.zkoss.zul.api.Window; /** * Controller for {@link ResourceAllocation} view. @@ -99,14 +91,8 @@ public class ResourceAllocationController extends GenericForwardComposer { private ResourceAllocationRenderer resourceAllocationRenderer = new ResourceAllocationRenderer(); - private Component messagesContainer; - - private IMessagesForUser messagesForUser; - private Grid allocationsGrid; - private Window window; - private FormBinder formBinder; private AllocationRowsHandler allocationRows; @@ -146,8 +132,6 @@ public class ResourceAllocationController extends GenericForwardComposer { @Override public void doAfterCompose(Component comp) throws Exception { super.doAfterCompose(comp); - this.window = (Window) comp; - messagesForUser = new MessagesForUser(messagesContainer); allResourcesPerDay = new Decimalbox(); makeReadyInputsForCalculationTypes(); prepareCalculationTypesGrid(); @@ -182,14 +166,13 @@ public class ResourceAllocationController extends GenericForwardComposer { * @param ganttTask * @param planningState */ - public void showWindow(IContextWithPlannerTask context, + public void init(IContextWithPlannerTask context, org.navalplanner.business.planner.entities.Task task, - PlanningState planningState) { + PlanningState planningState, IMessagesForUser messagesForUser) { try { if (formBinder != null) { formBinder.detach(); } - window.setTitle(task.getName()); allocationRows = resourceAllocationModel.initAllocationsFor(task, context, planningState); formBinder = allocationRows @@ -211,7 +194,6 @@ public class ResourceAllocationController extends GenericForwardComposer { resourceAllocationModel.getHoursAggregatedByCriterions())); orderElementHoursGrid.setRowRenderer(createOrderElementHoursRenderer()); newAllocationSelector.setAllocationsAdder(resourceAllocationModel); - showWindow(); } catch (WrongValueException e) { LOG.error("there was a WrongValueException initializing window", e); throw e; @@ -280,17 +262,6 @@ public class ResourceAllocationController extends GenericForwardComposer { hoursCellRenderer, Arrays.asList(HoursRendererColumn.values())); } - private void showWindow() { - Util.reloadBindings(window); - try { - window.doModal(); - } catch (SuspendNotAllowedException e) { - throw new RuntimeException(e); - } catch (InterruptedException e) { - throw new RuntimeException(e); - } - } - /** * Pick resources selected from {@link NewAllocationSelector} and add them to * resource allocation list @@ -317,53 +288,6 @@ public class ResourceAllocationController extends GenericForwardComposer { newAllocationSelector.clearAll(); } - private final class AdvanceAllocationResultReceiver implements - IAdvanceAllocationResultReceiver { - - private final AllocationResult allocation; - - private AdvanceAllocationResultReceiver(AllocationResult allocation) { - this.allocation = allocation; - } - - @Override - public void cancel() { - showWindow(); - } - - @Override - public void accepted(AggregateOfResourceAllocations aggregate) { - resourceAllocationModel.accept(allocation); - } - - @Override - public Restriction createRestriction() { - return Restriction.build(new IRestrictionSource() { - - @Override - public int getTotalHours() { - return allocation.getAggregate().getTotalHours(); - } - - @Override - public LocalDate getStart() { - return allocation.getStart(); - } - - @Override - public LocalDate getEnd() { - return getStart() - .plusDays(allocation.getDaysDuration()); - } - - @Override - public CalculatedValue getCalculatedValue() { - return allocation.getCalculatedValue(); - } - }); - } - } - public enum CalculationTypeRadio { NUMBER_OF_HOURS(CalculatedValue.NUMBER_OF_HOURS) { @@ -546,14 +470,8 @@ public class ResourceAllocationController extends GenericForwardComposer { } public void cancel() { - close(); - resourceAllocationModel.cancel(); - } - - - private void close() { - window.setVisible(false); clear(); + resourceAllocationModel.cancel(); } private void clear() { @@ -563,23 +481,7 @@ public class ResourceAllocationController extends GenericForwardComposer { public void accept() { resourceAllocationModel.accept(); - close(); - } - - public void goToAdvancedAllocation() { - AllocationResult allocationResult = formBinder.getLastAllocation(); - if (allocationResult.getAggregate().isEmpty()) { - formBinder.doApply(); - allocationResult = formBinder.getLastAllocation(); - } - switcher.goToAdvancedAllocation(allocationResult, - createResultReceiver(allocationResult)); - window.setVisible(false); - } - - private IAdvanceAllocationResultReceiver createResultReceiver( - final AllocationResult allocation) { - return new AdvanceAllocationResultReceiver(allocation); + clear(); } private class ResourceAllocationRenderer implements RowRenderer { @@ -650,4 +552,13 @@ public class ResourceAllocationController extends GenericForwardComposer { public void setSwitcher(ViewSwitcher switcher) { this.switcher = switcher; } + + public FormBinder getFormBinder() { + return formBinder; + } + + public void accept(AllocationResult allocation) { + resourceAllocationModel.accept(allocation); + } + } diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/ISubcontractCommand.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/ISubcontractCommand.java index 8c65eee0f..6baf4b7aa 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/ISubcontractCommand.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/ISubcontractCommand.java @@ -31,6 +31,7 @@ import org.zkoss.ganttz.extensions.ICommandOnTask; */ public interface ISubcontractCommand extends ICommandOnTask { - void setEditTaskController(EditTaskController editTaskController); + void initialize(EditTaskController editTaskController, + PlanningState planningState); } \ No newline at end of file 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 1677eb844..3e7cc55e0 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 @@ -67,7 +67,6 @@ import org.navalplanner.web.common.ViewSwitcher; import org.navalplanner.web.planner.ITaskElementAdapter; import org.navalplanner.web.planner.ITaskElementAdapter.IOnMoveListener; import org.navalplanner.web.planner.allocation.IResourceAllocationCommand; -import org.navalplanner.web.planner.allocation.ResourceAllocationController; import org.navalplanner.web.planner.calendar.CalendarAllocationController; import org.navalplanner.web.planner.calendar.ICalendarAllocationCommand; import org.navalplanner.web.planner.chart.Chart; @@ -201,8 +200,7 @@ public abstract class OrderPlanningModel implements IOrderPlanningModel { ISaveCommand saveCommand = buildSaveCommand(); configuration.addGlobalCommand(saveCommand); - final IResourceAllocationCommand resourceAllocationCommand = buildResourceAllocationCommand(editTaskController - .getResourceAllocationController()); + final IResourceAllocationCommand resourceAllocationCommand = buildResourceAllocationCommand(editTaskController); configuration.addCommandOnTask(resourceAllocationCommand); configuration.addCommandOnTask(buildMilestoneCommand()); configuration.addCommandOnTask(buildDeleteMilestoneCommand()); @@ -549,8 +547,8 @@ public abstract class OrderPlanningModel implements IOrderPlanningModel { private ITaskPropertiesCommand buildTaskPropertiesCommand( EditTaskController editTaskController) { ITaskPropertiesCommand taskPropertiesCommand = getTaskPropertiesCommand(); - taskPropertiesCommand - .setEditTaskController(editTaskController); + taskPropertiesCommand.initialize(editTaskController, + planningState); return taskPropertiesCommand; } @@ -561,9 +559,9 @@ public abstract class OrderPlanningModel implements IOrderPlanningModel { } private IResourceAllocationCommand buildResourceAllocationCommand( - ResourceAllocationController resourceAllocationController) { + EditTaskController editTaskController) { IResourceAllocationCommand resourceAllocationCommand = getResourceAllocationCommand(); - resourceAllocationCommand.initialize(resourceAllocationController, + resourceAllocationCommand.initialize(editTaskController, planningState); return resourceAllocationCommand; } @@ -1030,7 +1028,8 @@ public abstract class OrderPlanningModel implements IOrderPlanningModel { private ISubcontractCommand buildSubcontractCommand( EditTaskController editTaskController) { ISubcontractCommand subcontractCommand = getSubcontractCommand(); - subcontractCommand.setEditTaskController(editTaskController); + subcontractCommand.initialize(editTaskController, + planningState); return subcontractCommand; } diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/SubcontractCommand.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/SubcontractCommand.java index d4f7655a9..b03874e3c 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/SubcontractCommand.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/SubcontractCommand.java @@ -42,6 +42,7 @@ import org.zkoss.ganttz.extensions.IContextWithPlannerTask; public class SubcontractCommand implements ISubcontractCommand { private EditTaskController editTaskController; + private PlanningState planningState; @Autowired private IEditTaskUtilities editTaskUtilities; @@ -68,13 +69,16 @@ public class SubcontractCommand implements ISubcontractCommand { editTaskUtilities.reattach(task); if (isApplicableTo(task)) { - editTaskController.showEditFormSubcontract(context, task); + editTaskController.showEditFormSubcontract(context, task, + planningState); } } @Override - public void setEditTaskController(EditTaskController editTaskController) { + public void initialize(EditTaskController editTaskController, + PlanningState planningState) { this.editTaskController = editTaskController; + this.planningState = planningState; } } \ No newline at end of file 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 2833e4389..8221c7eea 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 @@ -20,13 +20,24 @@ package org.navalplanner.web.planner.taskedition; +import static org.navalplanner.web.I18nHelper._; + +import org.joda.time.LocalDate; import org.navalplanner.business.common.exceptions.ValidationException; +import org.navalplanner.business.planner.entities.AggregateOfResourceAllocations; +import org.navalplanner.business.planner.entities.CalculatedValue; import org.navalplanner.business.planner.entities.Task; import org.navalplanner.business.planner.entities.TaskElement; import org.navalplanner.web.common.IMessagesForUser; import org.navalplanner.web.common.MessagesForUser; import org.navalplanner.web.common.Util; +import org.navalplanner.web.planner.allocation.AllocationResult; +import org.navalplanner.web.planner.allocation.FormBinder; 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.order.PlanningState; import org.navalplanner.web.planner.order.SubcontractController; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.config.BeanDefinition; @@ -63,6 +74,7 @@ public class EditTaskController extends GenericForwardComposer { private Tab resourceAllocationTab; private Tab subcontractTab; private Tabpanel taskPropertiesTabpanel; + private Tabpanel resourceAllocationTabpanel; private Tabpanel subcontractTabpanel; private Component messagesContainer; @@ -72,11 +84,14 @@ public class EditTaskController extends GenericForwardComposer { private IContextWithPlannerTask context; + private PlanningState planningState; + @Override public void doAfterCompose(Component comp) throws Exception { super.doAfterCompose(comp); window = (Window) comp; taskPropertiesController.doAfterCompose(taskPropertiesTabpanel); + resourceAllocationController.doAfterCompose(resourceAllocationTabpanel); subcontractController.doAfterCompose(subcontractTabpanel); messagesForUser = new MessagesForUser(messagesContainer); } @@ -94,17 +109,23 @@ public class EditTaskController extends GenericForwardComposer { } private void showEditForm(IContextWithPlannerTask context, - TaskElement taskElement) { + TaskElement taskElement, PlanningState planningState) { this.taskElement = taskElement; this.context = context; + this.planningState = planningState; taskPropertiesController.init(context, taskElement); - if (taskElement.isSubcontracted()) { - subcontractController.init((Task) taskElement, context); + if (taskElement instanceof Task) { + resourceAllocationController.init(context, (Task) taskElement, + planningState, messagesForUser); + if (taskElement.isSubcontracted()) { + subcontractController.init((Task) taskElement, context); + } } try { Util.reloadBindings(window); + window.setTitle(_("Edit task: {0}", taskElement.getName())); window.setMode("modal"); } catch (InterruptedException e) { throw new RuntimeException(e); @@ -113,23 +134,42 @@ public class EditTaskController extends GenericForwardComposer { public void showEditFormTaskProperties( IContextWithPlannerTask context, - TaskElement taskElement) { + TaskElement taskElement, PlanningState planningState) { editTaskTabbox.setSelectedPanelApi(taskPropertiesTabpanel); - showEditForm(context, taskElement); + showEditForm(context, taskElement, planningState); + } + + public void showEditFormResourceAllocation( + IContextWithPlannerTask context, + TaskElement taskElement, PlanningState planningState) { + if (isNotSubcontractedAndIsTask()) { + editTaskTabbox.setSelectedPanelApi(resourceAllocationTabpanel); + } else { + editTaskTabbox.setSelectedPanelApi(taskPropertiesTabpanel); + } + showEditForm(context, taskElement, planningState); } public void showEditFormSubcontract( IContextWithPlannerTask context, - TaskElement taskElement) { - if (taskElement.isSubcontracted()) { + TaskElement taskElement, PlanningState planningState) { + if (isSubcontractedAndIsTask()) { editTaskTabbox.setSelectedPanelApi(subcontractTabpanel); + } else { + editTaskTabbox.setSelectedPanelApi(taskPropertiesTabpanel); } - showEditForm(context, taskElement); + showEditForm(context, taskElement, planningState); } public void accept() { try { + editTaskTabbox.setSelectedPanelApi(taskPropertiesTabpanel); taskPropertiesController.accept(); + + editTaskTabbox.setSelectedPanelApi(resourceAllocationTabpanel); + resourceAllocationController.accept(); + + editTaskTabbox.setSelectedPanelApi(subcontractTabpanel); subcontractController.accept(); taskElement = null; @@ -144,6 +184,7 @@ public class EditTaskController extends GenericForwardComposer { public void cancel() { taskPropertiesController.cancel(); subcontractController.cancel(); + resourceAllocationController.cancel(); taskElement = null; context = null; @@ -165,15 +206,92 @@ public class EditTaskController extends GenericForwardComposer { } } - public boolean isSubcontracted() { + public boolean isSubcontractedAndIsTask() { if (taskElement == null) { return false; } + if (!isTask()) { + return false; + } return taskElement.isSubcontracted(); } - public boolean isNotSubcontracted() { - return !isSubcontracted(); + public boolean isNotSubcontractedAndIsTask() { + if (taskElement == null) { + return false; + } + if (!isTask()) { + return false; + } + return !taskElement.isSubcontracted(); + } + + public void goToAdvancedAllocation() { + FormBinder formBinder = resourceAllocationController.getFormBinder(); + + AllocationResult allocationResult = formBinder.getLastAllocation(); + if (allocationResult.getAggregate().isEmpty()) { + formBinder.doApply(); + allocationResult = formBinder.getLastAllocation(); + } + resourceAllocationController.getSwitcher().goToAdvancedAllocation( + allocationResult, createResultReceiver(allocationResult)); + window.setVisible(false); + } + + private IAdvanceAllocationResultReceiver createResultReceiver( + final AllocationResult allocation) { + return new AdvanceAllocationResultReceiver(allocation); + } + + private final class AdvanceAllocationResultReceiver implements + IAdvanceAllocationResultReceiver { + + private final AllocationResult allocation; + + private AdvanceAllocationResultReceiver(AllocationResult allocation) { + this.allocation = allocation; + } + + @Override + public void cancel() { + showEditFormResourceAllocation(context, taskElement, planningState); + } + + @Override + public void accepted(AggregateOfResourceAllocations aggregate) { + resourceAllocationController.accept(allocation); + } + + @Override + public Restriction createRestriction() { + return Restriction.build(new IRestrictionSource() { + + @Override + public int getTotalHours() { + return allocation.getAggregate().getTotalHours(); + } + + @Override + public LocalDate getStart() { + return allocation.getStart(); + } + + @Override + public LocalDate getEnd() { + return getStart().plusDays(allocation.getDaysDuration()); + } + + @Override + public CalculatedValue getCalculatedValue() { + return allocation.getCalculatedValue(); + } + }); + } + } + + public boolean isTask() { + return (taskElement instanceof Task); } } \ No newline at end of file diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/taskedition/ITaskPropertiesCommand.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/taskedition/ITaskPropertiesCommand.java index d267f4a42..f46ca76db 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/taskedition/ITaskPropertiesCommand.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/taskedition/ITaskPropertiesCommand.java @@ -21,6 +21,7 @@ package org.navalplanner.web.planner.taskedition; import org.navalplanner.business.planner.entities.TaskElement; +import org.navalplanner.web.planner.order.PlanningState; import org.zkoss.ganttz.extensions.ICommandOnTask; /** @@ -30,6 +31,7 @@ import org.zkoss.ganttz.extensions.ICommandOnTask; */ public interface ITaskPropertiesCommand extends ICommandOnTask { - void setEditTaskController(EditTaskController editTaskController); + void initialize(EditTaskController editTaskController, + PlanningState planningState); } diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/taskedition/TaskPropertiesCommand.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/taskedition/TaskPropertiesCommand.java index 3b1b7dcb7..835fcf517 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/taskedition/TaskPropertiesCommand.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/taskedition/TaskPropertiesCommand.java @@ -24,6 +24,7 @@ import static org.navalplanner.web.I18nHelper._; import org.navalplanner.business.planner.entities.TaskElement; import org.navalplanner.web.planner.order.IEditTaskUtilities; +import org.navalplanner.web.planner.order.PlanningState; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.context.annotation.Scope; @@ -40,6 +41,7 @@ import org.zkoss.ganttz.extensions.IContextWithPlannerTask; public class TaskPropertiesCommand implements ITaskPropertiesCommand { private EditTaskController editTaskController; + private PlanningState planningState; @Autowired private IEditTaskUtilities editTaskUtilities; @@ -49,7 +51,8 @@ public class TaskPropertiesCommand implements ITaskPropertiesCommand { TaskElement taskElement) { editTaskUtilities.reattach(taskElement); - editTaskController.showEditFormTaskProperties(context, taskElement); + editTaskController.showEditFormTaskProperties(context, taskElement, + planningState); } @Override @@ -58,9 +61,10 @@ public class TaskPropertiesCommand implements ITaskPropertiesCommand { } @Override - public void setEditTaskController( - EditTaskController editTaskController) { + public void initialize(EditTaskController editTaskController, + PlanningState planningState) { this.editTaskController = editTaskController; + this.planningState = planningState; } @Override diff --git a/navalplanner-webapp/src/main/webapp/planner/order.zul b/navalplanner-webapp/src/main/webapp/planner/order.zul index e20545be0..191e3db79 100644 --- a/navalplanner-webapp/src/main/webapp/planner/order.zul +++ b/navalplanner-webapp/src/main/webapp/planner/order.zul @@ -44,7 +44,7 @@ + width="650px" visible="false"> @@ -52,9 +52,9 @@ + visible="@{editController.isNotSubcontractedAndIsTask}" /> + visible="@{editController.isSubcontractedAndIsTask}" /> @@ -94,7 +94,7 @@ - +