r2519 - in isis-fish/trunk/src/main: java/fr/ifremer/isisfish/ui/script java/fr/ifremer/isisfish/util resources/i18n
Author: chatellier Date: 2009-08-24 14:37:53 +0000 (Mon, 24 Aug 2009) New Revision: 2519 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/JavadocHelper.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: Add option to generate javadoc in UI. 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-08-24 14:35:54 UTC (rev 2518) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/script/ScriptAction.java 2009-08-24 14:37:53 UTC (rev 2519) @@ -21,6 +21,7 @@ import static org.codelutin.i18n.I18n._; +import java.awt.Desktop; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileFilter; @@ -30,6 +31,7 @@ import java.io.StringWriter; import java.io.Writer; import java.lang.reflect.Method; +import java.net.URI; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; @@ -63,6 +65,7 @@ import fr.ifremer.isisfish.ui.widget.editor.GenericCell; import fr.ifremer.isisfish.util.ClasspathTemplateLoader; import fr.ifremer.isisfish.util.CompilationResult; +import fr.ifremer.isisfish.util.JavadocHelper; import fr.ifremer.isisfish.vcs.VCSException; import freemarker.cache.TemplateLoader; import freemarker.template.Configuration; @@ -884,4 +887,48 @@ return templatePath; } } + + /** + * Generate javadoc for all database script. + * + * @return javadoc status and output + */ + public CompilationResult generateScriptJavadoc() { + + CompilationResult result = new CompilationResult(); + + File rootDatabase = IsisFish.config.getDatabaseDirectory(); + File javadocDirectory = IsisFish.config.getJavadocDirectory(); + + StringWriter output = new StringWriter(); + PrintWriter out = new PrintWriter(output); + int ok = JavadocHelper.generateJavadoc(rootDatabase, javadocDirectory, out); + + if (ok == 0) { + result.setCompilationResult(CompilationResult.COMPILATION_OK); + } + else { + result.setCompilationResult(CompilationResult.COMPILATION_FAILED); + } + result.setCompilationOutput(output.toString()); + return result; + } + + /** + * Open a browser displaying javadoc. + */ + public void showScriptJavadoc() { + try { + // in faut ouvrir l'index, sinon, ca ouvre + // un explorateur de fichier + File indexFile = new File(IsisFish.config.getJavadocDirectory(), "index.html"); + + URI uri = indexFile.toURI(); + Desktop.getDesktop().browse(uri); + } catch (Exception e) { + if (log.isErrorEnabled()) { + log.error("Can't show script javadocs", e); + } + } + } } 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-08-24 14:35:54 UTC (rev 2518) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/script/ScriptUI.jaxx 2009-08-24 14:37:53 UTC (rev 2519) @@ -267,6 +267,42 @@ String diffMessage = getContextValue(ScriptAction.class).diffScript(editor.getText()); setInfoText(diffMessage); } + + /** + * Generate javadoc and disply output in UI. + */ + protected void generateScriptJavadoc() { + setInfoText(_("isisfish.script.menu.javadocgenerating", fr.ifremer.isisfish.IsisFish.config.getJavadocDirectory())); + + SwingUtilities.invokeLater(new Runnable() { + public void run() { + ScriptAction action = getContextValue(ScriptAction.class); + CompilationResult compilationResult = action.generateScriptJavadoc(); + + // 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.script.menu.javadocgenerated", fr.ifremer.isisfish.IsisFish.config.getJavadocDirectory())); + } + }); + } + + /** + * Show generated javadoc. + */ + protected void showScriptJavadoc() { + ScriptAction action = getContextValue(ScriptAction.class); + action.showScriptJavadoc(); + } + ]]> </script> @@ -307,6 +343,9 @@ <JMenu id="scriptTxtCode" text="isisfish.script.menu.code"> <JMenuItem id="miCheckSyntax" text="isisfish.script.menu.checkSyntax" accelerator="accCheckSyntax" onActionPerformed="checkScript()"/> <JMenuItem id="miEvaluate" text="isisfish.script.menu.evaluate" accelerator="accEvaluate" onActionPerformed="evaluateScript()"/> + <JSeparator/> + <JMenuItem id="miGenerateJavadoc" text="isisfish.script.menu.javadocgenerate" onActionPerformed="generateScriptJavadoc()"/> + <JMenuItem id="miShowJavadoc" text="isisfish.script.menu.javadocshow" onActionPerformed="showScriptJavadoc()"/> </JMenu> </JMenuBar> Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/util/JavadocHelper.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/util/JavadocHelper.java 2009-08-24 14:35:54 UTC (rev 2518) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/util/JavadocHelper.java 2009-08-24 14:37:53 UTC (rev 2519) @@ -29,6 +29,7 @@ import org.apache.commons.logging.LogFactory; import org.codelutin.util.FileUtil; +import com.sun.tools.doclets.standard.Standard; import com.sun.tools.javadoc.Main; import fr.ifremer.isisfish.IsisFish; @@ -166,7 +167,9 @@ for (File srcFile : filesSrc) { args.add(srcFile.getAbsolutePath()); } - result = Main.execute(JAVADOC_TOOL_NAME, args.toArray(new String[0])); + //result = Main.execute(JAVADOC_TOOL_NAME, args.toArray(new String[0])); + result = Main.execute(JAVADOC_TOOL_NAME, out, out, out, + Standard.class.getName(), args.toArray(new String[0])); } catch (Exception eee) { if (log.isWarnEnabled()) { 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-08-24 14:35:54 UTC (rev 2518) +++ isis-fish/trunk/src/main/resources/i18n/isis-fish-en_GB.properties 2009-08-24 14:37:53 UTC (rev 2519) @@ -877,6 +877,10 @@ isisfish.script.menu.edit=Edit isisfish.script.menu.evaluate=Evaluate isisfish.script.menu.file=File +isisfish.script.menu.javadocgenerate=Generate script javadoc +isisfish.script.menu.javadocgenerated=Javadoc generated in %s +isisfish.script.menu.javadocgenerating=Generating javadoc in %s... +isisfish.script.menu.javadocshow=Show script javadoc isisfish.script.menu.new=New isisfish.script.menu.paste=Paste isisfish.script.menu.save=Save 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-08-24 14:35:54 UTC (rev 2518) +++ isis-fish/trunk/src/main/resources/i18n/isis-fish-fr_FR.properties 2009-08-24 14:37:53 UTC (rev 2519) @@ -877,6 +877,11 @@ isisfish.script.menu.edit=\u00C9dition isisfish.script.menu.evaluate=Evaluer isisfish.script.menu.file=Fichier +isisfish.script.menu.generatejavadoc=G\u00E9n\u00E9rer la javadoc +isisfish.script.menu.javadocgenerate=G\u00E9n\u00E9rer la javadoc +isisfish.script.menu.javadocgenerated=Javadoc g\u00E9n\u00E9r\u00E9e dans %s +isisfish.script.menu.javadocgenerating=Javadoc en cours de g\u00E9n\u00E9ration dans %s... +isisfish.script.menu.javadocshow=Afficher la javadoc isisfish.script.menu.new=Nouveau isisfish.script.menu.paste=Coller isisfish.script.menu.save=Sauver
participants (1)
-
chatellierï¼ users.labs.libre-entreprise.org