From 939aa1f14a228167cb11689a80519d36ce817c52 Mon Sep 17 00:00:00 2001 From: Manuel Rego Casasnovas Date: Wed, 25 May 2011 08:41:34 +0200 Subject: [PATCH] [Bug #1080] Fixed issue with Montecarlo method when critical path has more than 10 tasks. * Force render for tasks that are in pages not been active. * Moved out of long operation percentages validation. * Setting properly active page when some percentage is not valid. FEA: ItEr74S04BugFixing --- .../web/montecarlo/MonteCarloController.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) 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 ff24dfcc7..d0e9fef25 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 @@ -114,6 +114,7 @@ public class MonteCarloController extends GenericForwardComposer { @Override public void onEvent(Event event) throws Exception { + validateRowsPercentages(); IBackGroundOperation operation = new IBackGroundOperation() { @Override @@ -130,7 +131,6 @@ public class MonteCarloController extends GenericForwardComposer { try { updatesEmitter.doUpdate(disableButton(true)); int iterations = getIterations(); - validateRowsPercentages(); final Map monteCarloData = monteCarloModel .calculateMonteCarlo(getSelectedCriticalPath(), iterations, @@ -169,6 +169,9 @@ public class MonteCarloController extends GenericForwardComposer { private void validateRowsPercentages() { Intbox intbox; + int page = 0; + int counter = 0; + Rows rows = gridCriticalPathTasks.getRows(); for (Object each : rows.getChildren()) { Row row = (Row) each; @@ -184,9 +187,15 @@ public class MonteCarloController extends GenericForwardComposer { sum += intbox.getValue(); if (sum != 100) { + gridCriticalPathTasks.setActivePage(page); throw new WrongValueException(row, _("Percentages should sum 100")); } + + counter++; + if (counter % gridCriticalPathTasks.getPageSize() == 0) { + page++; + } } } @@ -275,6 +284,7 @@ public class MonteCarloController extends GenericForwardComposer { } if (gridCriticalPathTasks.getRowRenderer() == null) { gridCriticalPathTasks.setRowRenderer(gridCriticalPathTasksRender); + gridCriticalPathTasks.renderAll(); } }