Author: echatellier Date: 2011-11-07 15:40:25 +0100 (Mon, 07 Nov 2011) New Revision: 3518 Url: http://forge.codelutin.com/repositories/revision/isis-fish/3518 Log: #469 : Afficher une fen?\195?\170tre de correction des equations non compilable apres migration. Modified: trunk/src/main/java/fr/ifremer/isisfish/datastore/migration/MigrationV33V40.java 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-07 13:29:00 UTC (rev 3517) +++ trunk/src/main/java/fr/ifremer/isisfish/datastore/migration/MigrationV33V40.java 2011-11-07 14:40:25 UTC (rev 3518) @@ -25,14 +25,23 @@ package fr.ifremer.isisfish.datastore.migration; +import static org.nuiton.i18n.I18n._; + import java.util.List; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.nuiton.topia.TopiaException; import org.nuiton.topia.framework.TopiaContextImplementor; import org.nuiton.topia.migration.TopiaMigrationCallbackByClass; import org.nuiton.topia.migration.TopiaMigrationCallbackByClass.MigrationCallBackForVersion; import org.nuiton.util.Version; +import fr.ifremer.isisfish.datastore.update.ImportFromV2; +import fr.ifremer.isisfish.entities.Equation; +import fr.ifremer.isisfish.ui.input.EquationEditorPaneUI; +import fr.ifremer.isisfish.util.EvaluatorHelper; + /** * Migration between version 3.3 and 4.0. * @@ -44,6 +53,8 @@ */ public class MigrationV33V40 extends MigrationCallBackForVersion { + static private Log log = LogFactory.getLog(MigrationV33V40.class); + /** * Constructor. * @@ -76,5 +87,30 @@ // capturability equation queries.add("alter table POPULATION add column CAPTURABILITYEQUATION VARCHAR(255);"); queries.add("alter table POPULATION add column CAPTURABILITYEQUATIONUSED BIT default false;"); + + // 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); + 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); + } + } + + frame.setVisible(true); + if (frame.isResultOk()) { + equation.setContent(frame.getEditor().getText()); + equation.update(); + } + } + } } }