Author: chatellier Date: 2011-06-15 14:53:18 +0000 (Wed, 15 Jun 2011) New Revision: 3407 Log: Chargement, sauvegarde, et compilation des scripts Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/ScriptStorage.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/SimulatorStorage.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/script/ScriptAction.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/script/ScriptTypesComboModel.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/script/ScriptUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/script/model/ScriptTree.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/script/model/ScriptTreeModel.java Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/ScriptStorage.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/ScriptStorage.java 2011-06-15 12:32:12 UTC (rev 3406) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/ScriptStorage.java 2011-06-15 14:53:18 UTC (rev 3407) @@ -128,6 +128,23 @@ } return result; } + + /** + * Retourne le storage pour la regle demandée + * + * @param name le nom de la regle souhaitée + * @return Le storage pour la regle + */ + static public ScriptStorage getCommunityScript(String name) { + String cacheName = getContextDatabaseCacheKey(name); + ScriptStorage result = scriptsCache.get(cacheName); + if (result == null) { + result = new ScriptStorage(getContextDatabaseDirectory(), + getScriptDirectory(), name); + scriptsCache.put(cacheName, result); + } + return result; + } static public void checkout() throws VCSException { checkout(IsisFish.config.getDatabaseDirectory(), SCRIPT_PATH); Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/SimulatorStorage.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/SimulatorStorage.java 2011-06-15 12:32:12 UTC (rev 3406) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/SimulatorStorage.java 2011-06-15 14:53:18 UTC (rev 3407) @@ -117,6 +117,25 @@ } return result; } + + /** + * Retourne le storage pour le simulateur demandée. + * + * {@link SimulatorStorage} is cached by name. + * + * @param name le nom de la regle souhaitée + * @return Le storage pour la regle + */ + static public SimulatorStorage getCommunitySimulator(String name) { + String cacheName = getContextDatabaseCacheKey(name); + SimulatorStorage result = simulatorsCache.get(cacheName); + if (result == null) { + result = new SimulatorStorage(getCommunityDatabaseDirectory(), + getSimulatorDirectory(), name); + simulatorsCache.put(cacheName, result); + } + return result; + } static public void checkout() throws VCSException { checkout(IsisFish.config.getDatabaseDirectory(), SIMULATOR_PATH); 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 2011-06-15 12:32:12 UTC (rev 3406) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/script/ScriptAction.java 2011-06-15 14:53:18 UTC (rev 3407) @@ -203,7 +203,7 @@ String equationModelTypePath = ""; // specific case for equation model - if (scriptType.equals(ScriptMapping.EquationModel)) { + if (scriptType.equals(ScriptMapping.Formule)) { List<String> values = FormuleStorage.getCategories(); equationModelType = (String) JOptionPane.showInputDialog(scriptUI, _("isisfish.message.new.formule.category"), @@ -255,7 +255,7 @@ int pos = fileName.lastIndexOf('/'); if (pos != -1) { - if (scriptType != ScriptMapping.EquationModel) { + if (scriptType != ScriptMapping.Formule) { // interdit pour le moment ? String message = _("isisfish.error.invalid.file.name", fileName); @@ -287,7 +287,7 @@ //TODO do test on category CodeSourceStorage script = null; switch (scriptType) { - case EquationModel: + case Formule: script = FormuleStorage.createFormule(category, realFilename, Language.JAVA); break; @@ -422,7 +422,7 @@ try { switch (mapping) { - case EquationModel: + case Formule: String fullPath = file.getAbsolutePath(); int lastIndexOf = fullPath.lastIndexOf('/'); // in string .../aaa/bbb/ccc/ddd.java @@ -452,6 +452,20 @@ case SensitivityExport: script = SensitivityExportStorage.getSensitivityExport(file.getName()); break; + case CommunityFormule: + break; + case CommunityRule: + break; + case CommunityAnalysePlan: + break; + case CommunityExport: + break; + case CommunityScript: + script = ScriptStorage.getCommunityScript(file.getName()); + break; + case CommunitySimulator: + script = SimulatorStorage.getCommunitySimulator(file.getName()); + break; default: log.fatal("ScriptType unknown: " + file.getName()); } @@ -1065,39 +1079,66 @@ AnalysePlan( AnalysePlanStorage.getAnalysePlanDirectory(), - AnalysePlanStorage.ANALYSE_PLAN_TEMPLATE), + AnalysePlanStorage.ANALYSE_PLAN_TEMPLATE, true), Export( ExportStorage.getExportDirectory(), - ExportStorage.EXPORT_TEMPLATE), + ExportStorage.EXPORT_TEMPLATE, true), Rule( RuleStorage.getRuleDirectory(), - RuleStorage.RULE_TEMPLATE), + RuleStorage.RULE_TEMPLATE, true), Script( ScriptStorage.getScriptDirectory(), - ScriptStorage.SCRIPT_TEMPLATE), + ScriptStorage.SCRIPT_TEMPLATE, true), Sensitivity( SensitivityStorage.getSensitivityDirectory(), - SensitivityStorage.SENSIVITY_TEMPLATE), + SensitivityStorage.SENSIVITY_TEMPLATE, true), SensitivityExport( SensitivityExportStorage.getSensitivityExportDirectory(), - SensitivityExportStorage.SENSITIVITY_EXPORT_TEMPLATE), + SensitivityExportStorage.SENSITIVITY_EXPORT_TEMPLATE, true), Simulator( SimulatorStorage.getSimulatorDirectory(), - SimulatorStorage.SIMULATOR_TEMPLATE), - EquationModel( + SimulatorStorage.SIMULATOR_TEMPLATE, true), + Formule( FormuleStorage.getFormuleDirectory(), - FormuleStorage.FORMULE_TEMPLATE), + FormuleStorage.FORMULE_TEMPLATE, true), + CommunityAnalysePlan( + AnalysePlanStorage.getCommunityAnalysePlanDirectory(), + SimulatorStorage.SIMULATOR_TEMPLATE), + CommunityExport( + ExportStorage.getCommunityExportDirectory(), + SimulatorStorage.SIMULATOR_TEMPLATE), + CommunityRule( + RuleStorage.getCommunityRuleDirectory(), + SimulatorStorage.SIMULATOR_TEMPLATE), + CommunityScript( + ScriptStorage.getCommunityScriptDirectory(), + SimulatorStorage.SIMULATOR_TEMPLATE), + CommunitySensitivity( + SensitivityStorage.getCommunitySensitivityDirectory(), + SimulatorStorage.SIMULATOR_TEMPLATE), + CommunitySensitivityExport( + SensitivityExportStorage.getCommunitySensitivityExportDirectory(), + SimulatorStorage.SIMULATOR_TEMPLATE), CommunitySimulator( SimulatorStorage.getCommunitySimulatorDirectory(), + SimulatorStorage.SIMULATOR_TEMPLATE), + CommunityFormule( + FormuleStorage.getCommunityFormuleDirectory(), SimulatorStorage.SIMULATOR_TEMPLATE); protected File module; protected String templatePath; + protected boolean officialVCS; private ScriptMapping(File module, String templatePath) { + this(module, templatePath, false); + } + + private ScriptMapping(File module, String templatePath, boolean officialVCS) { this.module = module; this.templatePath = templatePath; + this.officialVCS = officialVCS; } /** @@ -1114,7 +1155,6 @@ // don't forget last / for distinction begin // "sensitivity" and "sensitivityexport" - for (ScriptMapping mapping : ScriptMapping.values()) { if (file.getAbsolutePath().startsWith(mapping.getModule().getAbsolutePath() + File.separator)) { result = mapping; @@ -1131,6 +1171,10 @@ public String getTemplatePath() { return templatePath; } + + public boolean isOfficialVCS() { + return officialVCS; + } } /** @@ -1138,8 +1182,7 @@ */ public void generateScriptJavadoc() { setStatusMessage(_("isisfish.script.menu.javadocgenerating", - fr.ifremer.isisfish.IsisFish.config.getJavadocDirectory()), - true); + IsisFish.config.getJavadocDirectory()), true); SwingUtilities.invokeLater(new Runnable() { public void run() { @@ -1165,7 +1208,7 @@ } setStatusMessage(_("isisfish.script.menu.javadocgenerated", - fr.ifremer.isisfish.IsisFish.config.getJavadocDirectory())); + IsisFish.config.getJavadocDirectory())); } }); } @@ -1210,12 +1253,13 @@ ScriptTreeModel model = scriptUI.getScriptTreeModel(); for (File fileToMove : filesToMove) { model.fileDeleted(fileToMove); + File destFile = new File(directory, fileToMove.getName()); try { - FileUtils.moveFileToDirectory(fileToMove, directory, false); + FileUtils.moveFile(fileToMove, destFile); } catch (IOException ex) { throw new IsisFishRuntimeException("Can't move file", ex); } - model.fileAdded(fileToMove); + model.fileAdded(destFile); } } } Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/script/ScriptTypesComboModel.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/script/ScriptTypesComboModel.java 2011-06-15 12:32:12 UTC (rev 3406) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/script/ScriptTypesComboModel.java 2011-06-15 14:53:18 UTC (rev 3407) @@ -56,7 +56,9 @@ ScriptMapping[] values = ScriptMapping.values(); mappings = new ArrayList<ScriptMapping>(values.length); for (ScriptMapping mapping : values) { - mappings.add(mapping); + if (mapping.isOfficialVCS()) { + mappings.add(mapping); + } } // default first selected 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 2011-06-15 12:32:12 UTC (rev 3406) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/script/ScriptUI.jaxx 2011-06-15 14:53:18 UTC (rev 3407) @@ -53,7 +53,7 @@ <JMenuItem id="miNewAnalysePlan" text="isisfish.script.menu.txtNewAnalysePlan" onActionPerformed='getScriptAction().newScript(ScriptAction.ScriptMapping.AnalysePlan)' icon="script.png" /> <JMenuItem id="miNewSensitivity" text="isisfish.script.menu.txtNewSensitivity" onActionPerformed='getScriptAction().newScript(ScriptAction.ScriptMapping.Sensitivity)' icon="script.png" /> <JMenuItem id="miNewSensitivityExport" text="isisfish.script.menu.txtNewSensitivityExport" onActionPerformed='getScriptAction().newScript(ScriptAction.ScriptMapping.SensitivityExport)' icon="script.png" /> - <JMenuItem id="miNewEquationModel" text="isisfish.script.menu.txtNewEquationModel" onActionPerformed='getScriptAction().newScript(ScriptAction.ScriptMapping.EquationModel)' icon="script.png" /> + <JMenuItem id="miNewEquationModel" text="isisfish.script.menu.txtNewEquationModel" onActionPerformed='getScriptAction().newScript(ScriptAction.ScriptMapping.Formule)' icon="script.png" /> </JMenu> <JMenuItem id="miSave" text="isisfish.script.menu.save" onActionPerformed="getScriptAction().saveScript()" icon="script_save.png" enabled='{isSingleFileSelected()}' /> <JSeparator/> Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/script/model/ScriptTree.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/script/model/ScriptTree.java 2011-06-15 12:32:12 UTC (rev 3406) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/script/model/ScriptTree.java 2011-06-15 14:53:18 UTC (rev 3407) @@ -74,9 +74,9 @@ if (selectedPath != null) { Object[] pathWay = selectedPath.getPath(); - File selectedFile = (File)pathWay[pathWay.length - 1]; - if (selectedFile.isFile()) { - selectedFiles.add(selectedFile); + Object selectedFile = pathWay[pathWay.length - 1]; + if (selectedFile instanceof File && ((File)selectedFile).isFile()) { + selectedFiles.add((File)selectedFile); } } } @@ -115,9 +115,9 @@ if (selectedPath != null) { Object[] pathWay = selectedPath.getPath(); - File selectedFile = (File)pathWay[pathWay.length - 1]; - if (selectedFile.isDirectory()) { - selectedDirectory = selectedFile; + Object selectedFile = (Object)pathWay[pathWay.length - 1]; + if (selectedFile instanceof File && ((File)selectedFile).isDirectory()) { + selectedDirectory = (File)selectedFile; break; } } Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/script/model/ScriptTreeModel.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/script/model/ScriptTreeModel.java 2011-06-15 12:32:12 UTC (rev 3406) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/script/model/ScriptTreeModel.java 2011-06-15 14:53:18 UTC (rev 3407) @@ -253,7 +253,7 @@ * @param file added file */ public void fileAdded(File file) { - TreePath path = new TreePath(rootFiles); + TreePath path = new TreePath(getRoot()); updateChildren(file, path, OPERATION_ADD); } @@ -263,7 +263,7 @@ * @param file modified file */ public void fileModified(File file) { - TreePath path = new TreePath(rootFiles); + TreePath path = new TreePath(getRoot()); updateChildren(file, path, OPERATION_MODIFY); } @@ -275,7 +275,7 @@ * @param file deleted file */ public void fileDeleted(File file) { - TreePath path = new TreePath(rootFiles); + TreePath path = new TreePath(getRoot()); updateChildren(file, path, OPERATION_DELETE); } @@ -295,7 +295,7 @@ boolean updated = false; int childCount = getChildCount(pathLastComponent); for (int childIndex = 0; !updated && childIndex < childCount; ++childIndex) { - File child = (File) getChild(pathLastComponent, childIndex); + Object child = getChild(pathLastComponent, childIndex); TreePath childTreePath = path.pathByAddingChild(child); @@ -366,7 +366,7 @@ int childCount = getChildCount(pathLastComponent); for (int childIndex = 0; resultTreePath == null && childIndex < childCount; ++childIndex) { - File child = (File) getChild(pathLastComponent, childIndex); + Object child = getChild(pathLastComponent, childIndex); TreePath childTreePath = path.pathByAddingChild(child);