r2442 - in isis-fish/trunk/src/main: java/fr/ifremer/isisfish/ui/script java/fr/ifremer/isisfish/util resources/i18n
Author: chatellier Date: 2009-06-29 16:54:24 +0000 (Mon, 29 Jun 2009) New Revision: 2442 Added: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/util/CompilationResult.java Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/script/ScriptAction.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/script/ScriptUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/util/CompileHelper.java isis-fish/trunk/src/main/resources/i18n/isis-fish-en_GB.properties isis-fish/trunk/src/main/resources/i18n/isis-fish-fr_FR.properties Log: Display deprecated messages when compiling (in UI too) Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/script/ScriptAction.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/script/ScriptAction.java 2009-06-29 16:53:08 UTC (rev 2441) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/script/ScriptAction.java 2009-06-29 16:54:24 UTC (rev 2442) @@ -58,6 +58,7 @@ import fr.ifremer.isisfish.equation.Language; import fr.ifremer.isisfish.ui.widget.editor.GenericCell; import fr.ifremer.isisfish.util.ClasspathTemplateLoader; +import fr.ifremer.isisfish.util.CompilationResult; import fr.ifremer.isisfish.vcs.VCSException; import freemarker.cache.TemplateLoader; import freemarker.template.Configuration; @@ -325,8 +326,7 @@ out.flush(); script.setContent(out.toString()); } else { - throw new IsisFishRuntimeException( - "There is no templatePath"); + throw new IsisFishRuntimeException("There is no templatePath"); } code = script; @@ -538,8 +538,16 @@ } } - public String checkScript(String content) { - String resultLog = null; + /** + * Check script content. + * + * @param content + * @return compilation result and output + */ + public CompilationResult checkScript(String content) { + + CompilationResult compilationResult = new CompilationResult(); + try { if (log.isDebugEnabled()) { log.debug("checkScript called"); @@ -549,27 +557,29 @@ JavaSourceStorage javaCode = (JavaSourceStorage) code; StringWriter result = new StringWriter(); PrintWriter out = new PrintWriter(result); - int compileResult = 0; - Exception e = null; try { - compileResult = javaCode.compile(false, out); + int compileResult = javaCode.compile(false, out); + + if (compileResult == 0) { + compilationResult.setCompilationResult(CompilationResult.COMPILATION_OK); + } + else { + compilationResult.setCompilationResult(CompilationResult.COMPILATION_FAILED); + } } catch (Exception eee) { - compileResult = -1; - e = eee; + compilationResult.setCompilationResult(CompilationResult.COMPILATION_FAILED); + eee.printStackTrace(out); } - if (compileResult != 0) { - out.flush(); - resultLog = result.toString(); - if (e == null) { - e = new RuntimeException("there is some problem in script"); - } - } + + out.flush(); + compilationResult.setCompilationOutput(result.toString()); + } catch (IOException ex) { if (log.isErrorEnabled()) { log.error("Error on script check", ex); } } - return resultLog; + return compilationResult; } public String evaluateScript(String content) { @@ -577,12 +587,12 @@ if (log.isDebugEnabled()) { log.debug("evaluateScript called"); } - + String msg = ""; try { - String checkResult = checkScript(content); - if (checkResult != null) { - return checkResult; + CompilationResult compilationResult = checkScript(content); + if (compilationResult.getCompilationResult() == CompilationResult.COMPILATION_FAILED) { + return compilationResult.getCompilationOutput(); } code.setContent(content); JavaSourceStorage javaCode = (JavaSourceStorage) code; @@ -665,25 +675,16 @@ /** enum to encapsulate a script module */ protected enum ScriptMapping { - Script( - ScriptStorage.getScriptDirectory(), - ScriptStorage.SCRIPT_TEMPLATE), - Simulator( - SimulatorStorage.getSimulatorDirectory(), - SimulatorStorage.SIMULATOR_TEMPLATE), - Export( + Script(ScriptStorage.getScriptDirectory(), + ScriptStorage.SCRIPT_TEMPLATE), Simulator(SimulatorStorage + .getSimulatorDirectory(), SimulatorStorage.SIMULATOR_TEMPLATE), Export( ExportStorage.getExportDirectory(), - ExportStorage.EXPORT_TEMPLATE), - Rule( - RuleStorage.getRuleDirectory(), - RuleStorage.RULE_TEMPLATE), - AnalysePlan( + ExportStorage.EXPORT_TEMPLATE), Rule(RuleStorage + .getRuleDirectory(), RuleStorage.RULE_TEMPLATE), AnalysePlan( AnalysePlanStorage.getAnalysePlanDirectory(), - AnalysePlanStorage.ANALYSE_PLAN_TEMPLATE), - Sensitivity( + AnalysePlanStorage.ANALYSE_PLAN_TEMPLATE), Sensitivity( SensitivityStorage.getSensitivityDirectory(), - SensitivityStorage.SENSIVITY_TEMPLATE), - EquationModel( + SensitivityStorage.SENSIVITY_TEMPLATE), EquationModel( FormuleStorage.getFormuleDirectory(), FormuleStorage.FORMULE_TEMPLATE); Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/script/ScriptUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/script/ScriptUI.jaxx 2009-06-29 16:53:08 UTC (rev 2441) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/script/ScriptUI.jaxx 2009-06-29 16:54:24 UTC (rev 2442) @@ -28,6 +28,7 @@ import javax.swing.tree.TreeNode; import fr.ifremer.isisfish.ui.WelcomePanelUI; import fr.ifremer.isisfish.IsisFishRuntimeException; + import fr.ifremer.isisfish.util.CompilationResult; setContextValue(new ScriptAction()); setButton(); @@ -68,6 +69,7 @@ editor.validate(); } actionLogArea.setText(""); + actionLogArea.setBackground(null); } setButton(); } @@ -222,12 +224,25 @@ protected void paste(){ } protected void checkScript(){ - String txt = getContextValue(ScriptAction.class).checkScript(editor.getText()); - actionLogArea.setText(txt == null ? "ok" : txt); + CompilationResult compilationResult = getContextValue(ScriptAction.class).checkScript(editor.getText()); + + // TODO display an ok status ? + if (compilationResult.getCompilationResult() == CompilationResult.COMPILATION_OK) { + actionLogArea.setText(_("isisfish.script.compilation.ok", compilationResult.getCompilationOutput())); + // vert leger + actionLogArea.setBackground(new Color(210, 255, 210)); + } + else { + actionLogArea.setText(_("isisfish.script.compilation.failed", compilationResult.getCompilationOutput())); + // rouge leger + actionLogArea.setBackground(new Color(255, 210, 210)); + } + setInfoText(_("isisfish.message.check.finished")); } protected void evaluateScript(){ actionLogArea.setText(getContextValue(ScriptAction.class).evaluateScript(editor.getText())); + actionLogArea.setBackground(null); setInfoText(_("isisfish.message.evaluation.finished")); } protected void importScript(){ @@ -311,7 +326,7 @@ <JSplitPane oneTouchExpandable="true" resizeWeight="0.75" orientation="VERTICAL"> <org.codelutin.widget.editor.Editor id='editor'/> <JScrollPane> - <JTextArea id="actionLogArea" editable="false"/> + <JTextArea id="actionLogArea" editable="false" font='{new Font("Monospaced",Font.PLAIN, 12)}' /> </JScrollPane> </JSplitPane> </JSplitPane> Added: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/util/CompilationResult.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/util/CompilationResult.java (rev 0) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/util/CompilationResult.java 2009-06-29 16:54:24 UTC (rev 2442) @@ -0,0 +1,105 @@ +/* *##% + * Copyright (C) 2009 Code Lutin + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + *##%*/ + +package fr.ifremer.isisfish.util; + +/** + * Petite structure permettant de retourner a la fois + * un resultat de compilation et des messages d'erreur + * et/ou d'avertissement. + * + * @author chatellier + * @version $Revision$ + * + * Last update : $Date$ + * By : $Author$ + */ +public class CompilationResult { + + /** Compilation success. */ + public static final int COMPILATION_OK = 0; + + /** Compilation failed. */ + public static final int COMPILATION_FAILED = 1; + + /** + * Résultat de la compilation. + * + * Values are {@link #COMPILATION_OK}, {@link #COMPILATION_FAILED}. + */ + protected int compilationResult; + + /** Compilation output. */ + protected String compilationOutput; + + /** + * Default constructor. + */ + public CompilationResult() { + this(COMPILATION_OK, null); + } + + /** + * Constructor with output and result. + * + * @param compilationResult result + * @param compilationOutput output + */ + public CompilationResult(int compilationResult, String compilationOutput) { + this.compilationResult = 0; + this.compilationOutput = compilationOutput; + } + + /** + * Get compilation result. + * + * Return {@link #COMPILATION_OK} or {@link #COMPILATION_FAILED}. + * + * @return the compilationResult + */ + public int getCompilationResult() { + return compilationResult; + } + + /** + * Set compilation result. + * + * @param compilationResult the compilationResult to set + */ + public void setCompilationResult(int compilationResult) { + this.compilationResult = compilationResult; + } + + /** + * Return compilation output. + * + * @return the compilationOutput + */ + public String getCompilationOutput() { + return compilationOutput; + } + + /** + * Set compilation output. + * + * @param compilationOutput the compilationOutput to set + */ + public void setCompilationOutput(String compilationOutput) { + this.compilationOutput = compilationOutput; + } +} Property changes on: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/util/CompilationResult.java ___________________________________________________________________ Name: svn:keywords + Author Date Id Revision Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/util/CompileHelper.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/util/CompileHelper.java 2009-06-29 16:53:08 UTC (rev 2441) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/util/CompileHelper.java 2009-06-29 16:54:24 UTC (rev 2442) @@ -212,6 +212,8 @@ String classpathAsString = getClassPathAsString(classpath); List<String> args = new ArrayList<String>(); args.add("-g"); + // Show a description of each use or override of a deprecated member or class. + args.add("-deprecation"); args.add("-classpath"); args.add(classpathAsString); args.add("-d"); Modified: isis-fish/trunk/src/main/resources/i18n/isis-fish-en_GB.properties =================================================================== --- isis-fish/trunk/src/main/resources/i18n/isis-fish-en_GB.properties 2009-06-29 16:53:08 UTC (rev 2441) +++ isis-fish/trunk/src/main/resources/i18n/isis-fish-en_GB.properties 2009-06-29 16:54:24 UTC (rev 2442) @@ -845,6 +845,8 @@ isisfish.resume.table=defaultToolTip-fr.ifremer.resultat.ResumePanel.table1 isisfish.script.check=Check isisfish.script.commit=Commit +isisfish.script.compilation.failed=%s +isisfish.script.compilation.ok=Compilation complete.\n---------------------\n\n%s isisfish.script.copy=Copy isisfish.script.cut=Cut isisfish.script.evaluate=Evaluate Modified: isis-fish/trunk/src/main/resources/i18n/isis-fish-fr_FR.properties =================================================================== --- isis-fish/trunk/src/main/resources/i18n/isis-fish-fr_FR.properties 2009-06-29 16:53:08 UTC (rev 2441) +++ isis-fish/trunk/src/main/resources/i18n/isis-fish-fr_FR.properties 2009-06-29 16:54:24 UTC (rev 2442) @@ -845,6 +845,8 @@ isisfish.resume.table=defaultToolTip-fr.ifremer.resultat.ResumePanel.table1 isisfish.script.check=V\u00E9rifier isisfish.script.commit=Commit +isisfish.script.compilation.failed=%s +isisfish.script.compilation.ok=Compilation r\u00E9ussie.\n--------------------\n\n%s isisfish.script.copy=Copier isisfish.script.cut=Couper isisfish.script.evaluate=\u00C9valuer
participants (1)
-
chatellier@users.labs.libre-entreprise.org