diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/common/TemplateModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/common/TemplateModel.java index 2057a692a..8dc09f97e 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/common/TemplateModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/common/TemplateModel.java @@ -91,6 +91,10 @@ import org.zkoss.zk.ui.util.Clients; @Scope(BeanDefinition.SCOPE_PROTOTYPE) public class TemplateModel implements ITemplateModel { + public static List getCriticalPathFor(Order order) { + return Collections.emptyList(); + } + private static class DependencyWithVisibility implements IDependency { @@ -621,4 +625,5 @@ public class TemplateModel implements ITemplateModel { } return result; } + } diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/montecarlo/MonteCarloController.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/montecarlo/MonteCarloController.java index 5aa52f8e9..4cb2ded94 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/montecarlo/MonteCarloController.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/montecarlo/MonteCarloController.java @@ -190,7 +190,9 @@ public class MonteCarloController extends GenericForwardComposer { private void feedCriticalPathsList() { lbCriticalPaths.setModel(new SimpleListModel(monteCarloModel .getCriticalPathNames())); - lbCriticalPaths.setSelectedIndex(0); + if (!lbCriticalPaths.getChildren().isEmpty()) { + lbCriticalPaths.setSelectedIndex(0); + } } private void reloadGridCritialPathTasks() { 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 d78655c1f..1d4d76ca2 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 @@ -24,6 +24,7 @@ import static org.navalplanner.web.I18nHelper._; import java.util.ArrayList; import java.util.Arrays; +import java.util.Collections; import java.util.Date; import java.util.HashMap; import java.util.List; @@ -122,8 +123,8 @@ public class OrderPlanningController implements Composer { .retrieve(); } - public List getCriticalPath() { - return planner.getCriticalPath(); + public List getCriticalPath() { + return planner != null ? planner.getCriticalPath() : null; } public void setOrder(Order order, diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/tabs/MonteCarloTabCreator.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/tabs/MonteCarloTabCreator.java index 6844806e7..85b5a043b 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/tabs/MonteCarloTabCreator.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/tabs/MonteCarloTabCreator.java @@ -24,8 +24,11 @@ import static org.navalplanner.web.planner.tabs.MultipleTabsPlannerController.BR import static org.navalplanner.web.planner.tabs.MultipleTabsPlannerController.PLANNIFICATION; import java.util.HashMap; +import java.util.List; import java.util.Map; +import org.navalplanner.business.planner.entities.TaskElement; +import org.navalplanner.web.common.TemplateModel; import org.navalplanner.web.montecarlo.MonteCarloController; import org.navalplanner.web.planner.order.OrderPlanningController; import org.navalplanner.web.planner.tabs.CreatedOnDemandTab.IComponentCreator; @@ -98,8 +101,12 @@ public class MonteCarloTabCreator { @Override protected void afterShowAction() { - monteCarloController.setCriticalPath(orderPlanningController - .getCriticalPath()); + List criticalPath = orderPlanningController.getCriticalPath(); + if (criticalPath == null) { + criticalPath = TemplateModel.getCriticalPathFor(mode.getOrder()); + } + monteCarloController.setCriticalPath(criticalPath); + breadcrumbs.getChildren().clear(); breadcrumbs.appendChild(new Image(BREADCRUMBS_SEPARATOR)); breadcrumbs.appendChild(new Label(PLANNIFICATION));