ItEr30S15RFVisualizacionMultiplesProxectosItEr29S18: Adding command for going to schedule from global planning view

This commit is contained in:
Óscar González Fernández 2009-10-14 03:10:08 +02:00
parent 7635125012
commit b92d124ead
4 changed files with 56 additions and 6 deletions

View file

@ -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<ICommandOnTask<TaskElement>> additional = new ArrayList<ICommandOnTask<TaskElement>>();
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<ICommandOnTask<TaskElement>> additional) {
Validate.notNull(additional);
Validate.noNullElements(additional);
this.additional = additional;
}
}

View file

@ -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<ICommandOnTask<TaskElement>> additional) {
PlannerConfiguration<TaskElement> configuration = createConfiguration();
Chart chartComponent = new Chart();
configuration.setChartComponent(chartComponent);
addAdditionalCommands(additional, configuration);
planner.setConfiguration(configuration);
setupChart(chartComponent, planner.getTimeTracker());
}
private void addAdditionalCommands(
Collection<ICommandOnTask<TaskElement>> additional,
PlannerConfiguration<TaskElement> configuration) {
for (ICommandOnTask<TaskElement> t : additional) {
configuration.addCommandOnTask(t);
}
}
private void setupChart(Chart chartComponent, TimeTracker timeTracker) {
fillChart(chartComponent, timeTracker.getRealInterval(), timeTracker
.getHorizontalSize());

View file

@ -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<ICommandOnTask<TaskElement>> additional);
}

View file

@ -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<ICommandOnTask<TaskElement>> commands = new ArrayList<ICommandOnTask<TaskElement>>();
commands.add(new ICommandOnTask<TaskElement>() {
@Override
public void doAction(
IContextWithPlannerTask<TaskElement> 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<String, Object> args = new HashMap<String, Object>();
args.put("companyPlanningController",
companyPlanningController);