Author: chatellier Date: 2010-02-04 15:11:31 +0000 (Thu, 04 Feb 2010) New Revision: 2979 Modified: isis-fish/branches/3.3.1/changelog.txt isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/script/ScriptAction.java isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/script/ScriptUI.jaxx isis-fish/branches/3.3.1/src/main/resources/i18n/isis-fish-en_GB.properties isis-fish/branches/3.3.1/src/main/resources/i18n/isis-fish-fr_FR.properties Log: Add new menu to check all scripts Modified: isis-fish/branches/3.3.1/changelog.txt =================================================================== --- isis-fish/branches/3.3.1/changelog.txt 2010-02-04 14:31:25 UTC (rev 2978) +++ isis-fish/branches/3.3.1/changelog.txt 2010-02-04 15:11:31 UTC (rev 2979) @@ -1,5 +1,6 @@ isis-fish (3.3.1.0-rc1) stable; urgency=low + * Add a new button to check all script in one action in script UI * Improve UI to enable some fields/tabs only after region loading * Enable to put population effectives into factors * Enable to put rules into factor Modified: isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/script/ScriptAction.java =================================================================== --- isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/script/ScriptAction.java 2010-02-04 14:31:25 UTC (rev 2978) +++ isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/script/ScriptAction.java 2010-02-04 15:11:31 UTC (rev 2979) @@ -73,6 +73,7 @@ import fr.ifremer.isisfish.ui.util.ErrorHelper; import fr.ifremer.isisfish.ui.vcs.UpdateDialogUI; import fr.ifremer.isisfish.util.ClasspathTemplateLoader; +import fr.ifremer.isisfish.util.CompileHelper; import fr.ifremer.isisfish.util.JavadocHelper; import fr.ifremer.isisfish.vcs.VCSException; import freemarker.cache.TemplateLoader; @@ -717,7 +718,54 @@ setStatusMessage(_("isisfish.message.check.finished")); return check; } + + /** + * Check all scripts. + */ + public void checkAllScripts() { + boolean allSuccess = true; + + // reste previous state + scriptUI.getActionLogArea().setBackground(null); + scriptUI.getActionLogArea().setText(""); + + for (ScriptMapping scriptMapping : ScriptMapping.values()) { + // normalement ne match pas les formules + // le cas est différent pour les formules + // le fichier java ne sont pas compilable sans la formule associée + List<File> javaFiles = FileUtil.find(scriptMapping.getModule(), ".+\\.java$", false); + for (File javaFile : javaFiles) { + scriptUI.getActionLogArea().append(_("isisfish.script.compilingfile", javaFile)); + + StringWriter result = new StringWriter(); + PrintWriter out = new PrintWriter(result); + int compileResult = CompileHelper.compile(IsisFish.config.getDatabaseDirectory(), javaFile, IsisFish.config.getCompileDirectory(), out); + out.flush(); + + if (compileResult == 0) { + scriptUI.getActionLogArea().append(_("isisfish.common.ok") + "\n"); + } + else { + scriptUI.getActionLogArea().append(_("isisfish.common.error") + ":\n"); + scriptUI.getActionLogArea().append(result.toString() + "\n"); + scriptUI.getActionLogArea().setBackground(COLOR_FAILURE); + allSuccess = false; + } + + // scroll down + scriptUI.getActionLogArea().setCaretPosition(scriptUI.getActionLogArea().getText().length()); + } + } + + // set final color + if (allSuccess) { + scriptUI.getActionLogArea().setBackground(COLOR_SUCCESS); + } + + setStatusMessage(_("isisfish.message.check.finished")); + } + /** * Call main method in current cod storage code. * Check script before call. @@ -1033,27 +1081,27 @@ /** enum to encapsulate a script module */ protected enum ScriptMapping { - Script( - ScriptStorage.getScriptDirectory(), - ScriptStorage.SCRIPT_TEMPLATE), - Simulator( - SimulatorStorage.getSimulatorDirectory(), - SimulatorStorage.SIMULATOR_TEMPLATE), + AnalysePlan( + AnalysePlanStorage.getAnalysePlanDirectory(), + AnalysePlanStorage.ANALYSE_PLAN_TEMPLATE), Export( ExportStorage.getExportDirectory(), ExportStorage.EXPORT_TEMPLATE), Rule( RuleStorage.getRuleDirectory(), RuleStorage.RULE_TEMPLATE), - AnalysePlan( - AnalysePlanStorage.getAnalysePlanDirectory(), - AnalysePlanStorage.ANALYSE_PLAN_TEMPLATE), + Script( + ScriptStorage.getScriptDirectory(), + ScriptStorage.SCRIPT_TEMPLATE), Sensitivity( SensitivityStorage.getSensitivityDirectory(), SensitivityStorage.SENSIVITY_TEMPLATE), SensitivityExport( SensitivityExportStorage.getSensitivityExportDirectory(), SensitivityExportStorage.SENSITIVITY_EXPORT_TEMPLATE), + Simulator( + SimulatorStorage.getSimulatorDirectory(), + SimulatorStorage.SIMULATOR_TEMPLATE), EquationModel( FormuleStorage.getFormuleDirectory(), FormuleStorage.FORMULE_TEMPLATE); Modified: isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/script/ScriptUI.jaxx =================================================================== --- isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/script/ScriptUI.jaxx 2010-02-04 14:31:25 UTC (rev 2978) +++ isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/script/ScriptUI.jaxx 2010-02-04 15:11:31 UTC (rev 2979) @@ -66,6 +66,7 @@ </JMenu> <JMenu id="scriptTxtCode" text="isisfish.script.menu.code"> <JMenuItem id="miCheckSyntax" text="isisfish.script.menu.checkSyntax" icon="script_code_red.png" onActionPerformed="getScriptAction().checkScript()" enabled='{isJavaFileSelected()}' /> + <JMenuItem id="miCheckAllSyntax" text="isisfish.script.menu.checkAllSyntax" icon="script_code_red.png" onActionPerformed="new SwingWorker<Void, Void>(){public Void doInBackground(){getScriptAction().checkAllScripts();return null;}}.execute()" /> <JMenuItem id="miEvaluate" text="isisfish.script.menu.evaluate" icon="script_gear.png" onActionPerformed="getScriptAction().evaluateScript()" enabled='{isJavaFileSelected()}' /> <JSeparator/> <JMenuItem id="miGenerateJavadoc" text="isisfish.script.menu.javadocgenerate" onActionPerformed="getScriptAction().generateScriptJavadoc()"/> Modified: isis-fish/branches/3.3.1/src/main/resources/i18n/isis-fish-en_GB.properties =================================================================== --- isis-fish/branches/3.3.1/src/main/resources/i18n/isis-fish-en_GB.properties 2010-02-04 14:31:25 UTC (rev 2978) +++ isis-fish/branches/3.3.1/src/main/resources/i18n/isis-fish-en_GB.properties 2010-02-04 15:11:31 UTC (rev 2979) @@ -823,6 +823,7 @@ isisfish.script.commit.tooltip=Commit script to SVN server isisfish.script.compilation.failed=%s isisfish.script.compilation.ok=Compilation complete.\n---------------------\n\n%s +isisfish.script.compilingfile=Compiling %s... isisfish.script.copy=Copy isisfish.script.copy.tooltip=Copy current selection (Ctrl-c) isisfish.script.cut=Cut @@ -843,6 +844,7 @@ isisfish.script.import.labelOverwrite=Following files already exists. Confirm overridding. isisfish.script.import.tooltip.checkAll=(Un)Check all scripts isisfish.script.javadoc.ok=Javadoc generated-----------------\n\n%s +isisfish.script.menu.checkAllSyntax=Check all scripts isisfish.script.menu.checkSyntax=Check syntax isisfish.script.menu.code=Code isisfish.script.menu.commit=Commit script to server Modified: isis-fish/branches/3.3.1/src/main/resources/i18n/isis-fish-fr_FR.properties =================================================================== --- isis-fish/branches/3.3.1/src/main/resources/i18n/isis-fish-fr_FR.properties 2010-02-04 14:31:25 UTC (rev 2978) +++ isis-fish/branches/3.3.1/src/main/resources/i18n/isis-fish-fr_FR.properties 2010-02-04 15:11:31 UTC (rev 2979) @@ -823,6 +823,7 @@ isisfish.script.commit.tooltip=Committer le script sur le serveur SVN isisfish.script.compilation.failed=%s isisfish.script.compilation.ok=Compilation r\u00E9ussie.\n--------------------\n\n%s +isisfish.script.compilingfile=Compilation de %s... isisfish.script.copy=Copier isisfish.script.copy.tooltip=Copier la s\u00E9lection courante (Ctrl-c) isisfish.script.cut=Couper @@ -843,6 +844,7 @@ isisfish.script.import.labelOverwrite=Le(s) fichier(s) suivant(s) existe(nt) d\u00E9j\u00E0, Confirmer pour l'\u00E9crasement isisfish.script.import.tooltip.checkAll=(D\u00E9-)S\u00E9lectionner tous les scripts \u00E0 importer isisfish.script.javadoc.ok=Javadoc g\u00E9n\u00E9r\u00E9e avec succ\u00E8s\n---------------------------\n\n%s +isisfish.script.menu.checkAllSyntax=V\u00E9rifier tous les scripts isisfish.script.menu.checkSyntax=V\u00E9rifier la syntaxe isisfish.script.menu.code=Code isisfish.script.menu.commit=Commiter des scripts sur le serveur @@ -902,7 +904,7 @@ isisfish.sensitivity.firstValue=Premi\u00E8re valeur isisfish.sensitivity.increment=Cardinalit\u00E9 isisfish.sensitivity.lastValue=Derni\u00E8re valeur -isisfish.sensitivity.methodfactornotsupported=La m\u00e9thode de sensibilit\u00e9 choisie g\u00e8re les cardinalit\u00e9s des facteurs +isisfish.sensitivity.methodfactornotsupported=La m\u00E9thode de sensibilit\u00E9 choisie g\u00E8re les cardinalit\u00E9s des facteurs isisfish.sensitivity.name=Nom du facteur isisfish.sensitivity.operator=Op\u00E9rateur isisfish.sensitivity.secondpass=Analyse des r\u00E9sultats