Author: echatellier Date: 2011-11-25 17:42:01 +0100 (Fri, 25 Nov 2011) New Revision: 3539 Url: http://forge.codelutin.com/repositories/revision/isis-fish/3539 Log: Add automatic migration of equations Modified: trunk/src/main/java/fr/ifremer/isisfish/datastore/RegionStorage.java trunk/src/main/java/fr/ifremer/isisfish/datastore/migration/MigrationV33V40.java trunk/src/main/java/fr/ifremer/isisfish/simulator/SimulationControl.java trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/InProcessSimulatorLauncher.java trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationServiceTableModel.java trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputHandler.java trunk/src/main/java/fr/ifremer/isisfish/ui/input/tree/FisheryDataProvider.java trunk/src/test/java/fr/ifremer/isisfish/simulator/launcher/SimulationServiceIT.java Modified: trunk/src/main/java/fr/ifremer/isisfish/datastore/RegionStorage.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/datastore/RegionStorage.java 2011-11-22 14:46:53 UTC (rev 3538) +++ trunk/src/main/java/fr/ifremer/isisfish/datastore/RegionStorage.java 2011-11-25 16:42:01 UTC (rev 3539) @@ -450,10 +450,6 @@ tx.commitTransaction(); tx.closeContext(); } - - // storage need to be closed, to perform - // topia migration in next call - result.closeStorage(); } // add storage modification event Modified: trunk/src/main/java/fr/ifremer/isisfish/datastore/migration/MigrationV33V40.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/datastore/migration/MigrationV33V40.java 2011-11-22 14:46:53 UTC (rev 3538) +++ trunk/src/main/java/fr/ifremer/isisfish/datastore/migration/MigrationV33V40.java 2011-11-25 16:42:01 UTC (rev 3539) @@ -29,6 +29,7 @@ import java.util.List; +import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.topia.TopiaException; @@ -92,25 +93,42 @@ // start equation migration List<Equation> equations = tx.find("from " + Equation.class.getName()); for (Equation equation : equations) { - int ok = EvaluatorHelper.check(equation.getJavaInterface(), equation.getContent(), null); + + // empty is empty and stay empty + if (StringUtils.isBlank(equation.getContent())) { + continue; + } + + // first compilation + String content = equation.getContent(); + int ok = EvaluatorHelper.check(equation.getJavaInterface(), content, null); if (ok != 0) { - EquationEditorPaneUI frame = new EquationEditorPaneUI(); - frame.setTitle(_("isisfish.message.import.equation.convert")); - - try { - frame.setEquation(equation.getCategory(), equation.getName(), - equation.getJavaInterface(), equation.getContent()); - } catch (Exception ex) { - if (log.isErrorEnabled()) { - log.error("Can't migrate equation", ex); + content = StringUtils.replace(content, "Date ", "TimeStep "); + content = StringUtils.replace(content, ".getDate()", ".getStep()"); + // second compilation + ok = EvaluatorHelper.check(equation.getJavaInterface(), content, null); + if (ok == 0) { + equation.setContent(content); + equation.update(); + } else { + EquationEditorPaneUI frame = new EquationEditorPaneUI(); + frame.setTitle(_("isisfish.message.import.equation.convert")); + + try { + frame.setEquation(equation.getCategory(), equation.getName(), + equation.getJavaInterface(), content); + } catch (Exception ex) { + if (log.isErrorEnabled()) { + log.error("Can't migrate equation", ex); + } } + + frame.setVisible(true); + if (frame.isResultOk()) { + equation.setContent(frame.getEditor().getText()); + equation.update(); + } } - - frame.setVisible(true); - if (frame.isResultOk()) { - equation.setContent(frame.getEditor().getText()); - equation.update(); - } } } } Modified: trunk/src/main/java/fr/ifremer/isisfish/simulator/SimulationControl.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/simulator/SimulationControl.java 2011-11-22 14:46:53 UTC (rev 3538) +++ trunk/src/main/java/fr/ifremer/isisfish/simulator/SimulationControl.java 2011-11-25 16:42:01 UTC (rev 3539) @@ -121,7 +121,8 @@ return simulation; } - public void addPropertyChangeListener(String propName, PropertyChangeListener l) { + public void addPropertyChangeListener(String propName, + PropertyChangeListener l) { listeners.addPropertyChangeListener(propName, l); } @@ -281,7 +282,7 @@ * * @return donne la date utiliser par la simulation */ - public TimeStep getTimeStep() { + public TimeStep getStep() { return step; } @@ -290,7 +291,7 @@ * * @param t la nouvelle etape */ - public void setTimeStep(TimeStep t) { + public void setStep(TimeStep t) { int oldValue = 0; if (this.step != null) { oldValue = this.step.getStep(); @@ -351,9 +352,9 @@ setStopSimulationRequest(stop); } if (props.containsKey("step")) { - TimeStep step = new TimeStep(Integer - .parseInt(props.getProperty("step"))); - setTimeStep(step); + TimeStep step = new TimeStep(Integer.parseInt(props + .getProperty("step"))); + setStep(step); } if (props.containsKey("progressMax")) { long progressMax = Long.parseLong(props Modified: trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/InProcessSimulatorLauncher.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/InProcessSimulatorLauncher.java 2011-11-22 14:46:53 UTC (rev 3538) +++ trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/InProcessSimulatorLauncher.java 2011-11-25 16:42:01 UTC (rev 3539) @@ -129,7 +129,7 @@ // WARNING: make sure to not open Region before being in simulation context // add missing control informations SimulationParameter param = simulation.getParameter(); - control.setTimeStep(new TimeStep()); + control.setStep(new TimeStep()); control.setProgress(0); control.setStarted(true); Modified: trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationServiceTableModel.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationServiceTableModel.java 2011-11-22 14:46:53 UTC (rev 3538) +++ trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationServiceTableModel.java 2011-11-25 16:42:01 UTC (rev 3539) @@ -227,7 +227,7 @@ + ", " + "control.getProgress() = " + control.getProgress() + ", " + "control.getProgressMax() = " + control.getProgressMax() + ", " + "control.getDate() = " - + control.getTimeStep()); + + control.getStep()); } switch (columnIndex) { @@ -266,7 +266,7 @@ pb.setValue((int) control.getProgress()); // progress can be used for other things - TimeStep step = control.getTimeStep(); + TimeStep step = control.getStep(); if (step != null) { pb.setString(step.getMonth() + "/" + step.getYear()); } Modified: trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputHandler.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputHandler.java 2011-11-22 14:46:53 UTC (rev 3538) +++ trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputHandler.java 2011-11-25 16:42:01 UTC (rev 3539) @@ -162,6 +162,7 @@ FisheryDataProvider dataProvider = new FisheryDataProvider(fisheryRegion); fisheryTreeHelper.setDataProvider(dataProvider); TreeModel fisheryTreeModel = fisheryTreeHelper.createTreeModel(fisheryRegion); + inputUI.getFisheryRegionTree().setCellRenderer(null); // fix region opening after import inputUI.getFisheryRegionTree().setModel(fisheryTreeModel); inputUI.getFisheryRegionTree().setCellRenderer(new FisheryTreeRenderer(dataProvider)); inputUI.getFisheryRegionTree().setSelectionModel(new FisheryTreeSelectionModel(inputUI)); @@ -176,7 +177,7 @@ inputUI.getCardlayoutPrincipal().show(inputUI.getInputPanePrincipal(),"normale"); - // autoselect roto node (fire some event) + // autoselect root node (fire some event) fisheryTreeHelper.selectNode((FisheryTreeNode)fisheryTreeModel.getRoot()); } } Modified: trunk/src/main/java/fr/ifremer/isisfish/ui/input/tree/FisheryDataProvider.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/ui/input/tree/FisheryDataProvider.java 2011-11-22 14:46:53 UTC (rev 3538) +++ trunk/src/main/java/fr/ifremer/isisfish/ui/input/tree/FisheryDataProvider.java 2011-11-25 16:42:01 UTC (rev 3539) @@ -47,7 +47,7 @@ /** * Get provider fishery region. * - * @return provide fichery region + * @return provide fishery region */ public FisheryRegion getFisheryRegion() { return fisheryRegion; Modified: trunk/src/test/java/fr/ifremer/isisfish/simulator/launcher/SimulationServiceIT.java =================================================================== --- trunk/src/test/java/fr/ifremer/isisfish/simulator/launcher/SimulationServiceIT.java 2011-11-22 14:46:53 UTC (rev 3538) +++ trunk/src/test/java/fr/ifremer/isisfish/simulator/launcher/SimulationServiceIT.java 2011-11-25 16:42:01 UTC (rev 3539) @@ -92,7 +92,7 @@ // lancement de la simulation SimulationControl control = new SimulationControl(sim.getName()); - control.setTimeStep(new TimeStep()); + control.setStep(new TimeStep()); InProcessSimulatorLauncher launcher = new InProcessSimulatorLauncher(); sim = launcher.localSimulate(control, sim);