ItEr30S15RFVisualizacionMultiplesProxectosItEr29S18: Support for adding extra commands when setting the order
This commit is contained in:
parent
2eb575ab17
commit
5a93e8010f
3 changed files with 32 additions and 5 deletions
|
|
@ -20,10 +20,14 @@
|
|||
|
||||
package org.navalplanner.web.planner;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
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.allocation.ResourceAllocationController;
|
||||
import org.zkoss.ganttz.Planner;
|
||||
import org.zkoss.ganttz.extensions.ICommand;
|
||||
|
||||
/**
|
||||
* @author Óscar González Fernández <ogonzalez@igalia.com>
|
||||
|
|
@ -35,6 +39,7 @@ public interface IOrderPlanningModel {
|
|||
ResourceAllocationController resourceAllocationController,
|
||||
EditTaskController editTaskController,
|
||||
SplittingController splittingController,
|
||||
CalendarAllocationController calendarAllocationController);
|
||||
CalendarAllocationController calendarAllocationController,
|
||||
List<ICommand<TaskElement>> additional);
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -20,7 +20,13 @@
|
|||
|
||||
package org.navalplanner.web.planner;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.commons.lang.Validate;
|
||||
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.allocation.ResourceAllocationController;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
|
@ -28,6 +34,7 @@ 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.ICommand;
|
||||
import org.zkoss.ganttz.resourceload.ScriptsRequiredByResourceLoadPanel;
|
||||
import org.zkoss.ganttz.util.OnZKDesktopRegistry;
|
||||
import org.zkoss.ganttz.util.script.IScriptsRegister;
|
||||
|
|
@ -71,6 +78,8 @@ public class OrderPlanningController implements Composer {
|
|||
|
||||
private Order order;
|
||||
|
||||
private List<ICommand<TaskElement>> additional = new ArrayList<ICommand<TaskElement>>();
|
||||
|
||||
public OrderPlanningController() {
|
||||
getScriptsRegister().register(ScriptsRequiredByResourceLoadPanel.class);
|
||||
ResourceAllocationController.registerNeededScripts();
|
||||
|
|
@ -81,8 +90,12 @@ public class OrderPlanningController implements Composer {
|
|||
.retrieve();
|
||||
}
|
||||
|
||||
public void setOrder(Order order) {
|
||||
public void setOrder(Order order,
|
||||
ICommand<TaskElement>... additionalCommands) {
|
||||
Validate.notNull(additionalCommands);
|
||||
Validate.noNullElements(additionalCommands);
|
||||
this.order = order;
|
||||
this.additional = Arrays.asList(additionalCommands);
|
||||
if (planner != null) {
|
||||
updateConfiguration();
|
||||
}
|
||||
|
|
@ -112,7 +125,7 @@ public class OrderPlanningController implements Composer {
|
|||
private void updateConfiguration() {
|
||||
model.setConfigurationToPlanner(planner, order, viewSwitcher,
|
||||
resourceAllocationController, editTaskController,
|
||||
splittingController, calendarAllocationController);
|
||||
splittingController, calendarAllocationController, additional);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -66,6 +66,7 @@ import org.zkforge.timeplot.geometry.ValueGeometry;
|
|||
import org.zkoss.ganttz.Planner;
|
||||
import org.zkoss.ganttz.adapters.IStructureNavigator;
|
||||
import org.zkoss.ganttz.adapters.PlannerConfiguration;
|
||||
import org.zkoss.ganttz.extensions.ICommand;
|
||||
import org.zkoss.ganttz.timetracker.TimeTracker;
|
||||
import org.zkoss.ganttz.timetracker.zoom.IZoomLevelChangedListener;
|
||||
import org.zkoss.ganttz.timetracker.zoom.ZoomLevel;
|
||||
|
|
@ -116,13 +117,14 @@ public abstract class OrderPlanningModel implements IOrderPlanningModel {
|
|||
ResourceAllocationController resourceAllocationController,
|
||||
EditTaskController editTaskController,
|
||||
SplittingController splittingController,
|
||||
CalendarAllocationController calendarAllocationController) {
|
||||
CalendarAllocationController calendarAllocationController,
|
||||
List<ICommand<TaskElement>> additional) {
|
||||
Order orderReloaded = reload(order);
|
||||
if (!orderReloaded.isSomeTaskElementScheduled())
|
||||
throw new IllegalArgumentException(_(
|
||||
"The order {0} must be scheduled", orderReloaded));
|
||||
PlannerConfiguration<TaskElement> configuration = createConfiguration(orderReloaded);
|
||||
|
||||
addAdditional(additional, configuration);
|
||||
configuration.addGlobalCommand(buildSaveCommand());
|
||||
|
||||
configuration.addCommandOnTask(buildResourceAllocationCommand(resourceAllocationController));
|
||||
|
|
@ -142,6 +144,13 @@ public abstract class OrderPlanningModel implements IOrderPlanningModel {
|
|||
setupChart(orderReloaded, chartComponent, planner.getTimeTracker());
|
||||
}
|
||||
|
||||
private void addAdditional(List<ICommand<TaskElement>> additional,
|
||||
PlannerConfiguration<TaskElement> configuration) {
|
||||
for (ICommand<TaskElement> c : additional) {
|
||||
configuration.addGlobalCommand(c);
|
||||
}
|
||||
}
|
||||
|
||||
private ICalendarAllocationCommand buildCalendarAllocationCommand(
|
||||
CalendarAllocationController calendarAllocationController) {
|
||||
ICalendarAllocationCommand calendarAllocationCommand = getCalendarAllocationCommand();
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue