Author: tchemit Date: 2012-10-07 19:41:29 +0200 (Sun, 07 Oct 2012) New Revision: 89 Url: http://forge.codelutin.com/repositories/revision/jmexico/89 Log: fixes #1577: Add export scenario operation (improve config) Added: trunk/jmexico-editor/src/main/resources/icons/ trunk/jmexico-editor/src/main/resources/icons/action-help.png Modified: trunk/jmexico-editor/src/main/java/fr/reseaumexico/editor/ExportScenarioModel.java trunk/jmexico-editor/src/main/java/fr/reseaumexico/editor/ExportScenarioPanel.css trunk/jmexico-editor/src/main/java/fr/reseaumexico/editor/ExportScenarioPanel.jaxx trunk/jmexico-editor/src/main/java/fr/reseaumexico/editor/ImportScenarioPanel.jaxx trunk/jmexico-editor/src/main/java/fr/reseaumexico/editor/InputDesignEditorHandler.java trunk/jmexico-editor/src/main/resources/i18n/jmexico-editor_en_GB.properties trunk/jmexico-editor/src/main/resources/i18n/jmexico-editor_fr_FR.properties Modified: trunk/jmexico-editor/src/main/java/fr/reseaumexico/editor/ExportScenarioModel.java =================================================================== --- trunk/jmexico-editor/src/main/java/fr/reseaumexico/editor/ExportScenarioModel.java 2012-10-07 16:24:50 UTC (rev 88) +++ trunk/jmexico-editor/src/main/java/fr/reseaumexico/editor/ExportScenarioModel.java 2012-10-07 17:41:29 UTC (rev 89) @@ -36,22 +36,40 @@ private static final long serialVersionUID = 1L; - protected File exportFile; + protected String exportFilename; - public File getExportFile() { - return exportFile; + protected File exportDirectory; + + public String getExportFilename() { + return exportFilename; } - public void setExportFile(File exportFile) { - Object oldValue = this.exportFile; - this.exportFile = exportFile; - firePropertyChange("exportFile", oldValue, exportFile); + public void setExportFilename(String exportFilename) { + Object oldValue = this.exportFilename; + this.exportFilename = exportFilename; + firePropertyChange("exportFilename", oldValue, exportFilename); } + public File getExportDirectory() { + return exportDirectory; + } + public void setExportDirectory(File exportDirectory) { + Object oldValue = this.exportDirectory; + this.exportDirectory = exportDirectory; + firePropertyChange("exportDirectory", oldValue, exportDirectory); + + } + + public File getExportFile(String extension) { + return new File(getExportDirectory(), + getExportFilename() + "." + extension); + } + @Override public void copyTo(ExportScenarioModel model) { super.copyTo(model); - model.setExportFile(getExportFile()); + model.setExportDirectory(getExportDirectory()); + model.setExportFilename(getExportFilename()); } } \ No newline at end of file Modified: trunk/jmexico-editor/src/main/java/fr/reseaumexico/editor/ExportScenarioPanel.css =================================================================== --- trunk/jmexico-editor/src/main/java/fr/reseaumexico/editor/ExportScenarioPanel.css 2012-10-07 16:24:50 UTC (rev 88) +++ trunk/jmexico-editor/src/main/java/fr/reseaumexico/editor/ExportScenarioPanel.css 2012-10-07 17:41:29 UTC (rev 89) @@ -21,14 +21,22 @@ * <http://www.gnu.org/licenses/lgpl-3.0.html>. * #L% */ -#exportFileLabel { - text:"jmexico.label.scenario.export.file"; +#exportFilenameLabel { + text:"jmexico.label.scenario.export.filename"; } -#exportFileEditor { - selectedFile:{model.getExportFile()}; +#exportFilenameEditor { + text:{model.getExportFilename()}; } +#exportDirectoryLabel { + text:"jmexico.label.scenario.export.directory"; +} + +#exportDirectoryEditor { + selectedFile:{model.getExportDirectory()}; +} + #selectedScenarioLabel { text:"jmexico.label.scenario.export.selected"; } @@ -36,3 +44,8 @@ #selectedScenarioEditor { selectedItem:{model.getSelectedScenario()}; } + +#exportFilenameLabelInfo { + actionIcon:"help"; + text:{_("jmexico.label.scenario.export.filename.info", InputDesignEditorHandler.getScenarioExtension())}; +} Modified: trunk/jmexico-editor/src/main/java/fr/reseaumexico/editor/ExportScenarioPanel.jaxx =================================================================== --- trunk/jmexico-editor/src/main/java/fr/reseaumexico/editor/ExportScenarioPanel.jaxx 2012-10-07 16:24:50 UTC (rev 88) +++ trunk/jmexico-editor/src/main/java/fr/reseaumexico/editor/ExportScenarioPanel.jaxx 2012-10-07 17:41:29 UTC (rev 89) @@ -38,7 +38,7 @@ SwingUtil.fillComboBox(selectedScenarioEditor, model.getScenarios(), model.getSelectedScenario()); - } +} ]]> </script> @@ -53,11 +53,25 @@ </row> <row fill='both'> <cell> - <JLabel id='exportFileLabel'/> + <JLabel id='exportDirectoryLabel'/> </cell> <cell> - <FileEditor id='exportFileEditor' - onActionPerformed='model.setExportFile(((FileEditor) event.getSource()).getSelectedFile())'/> + <FileEditor id='exportDirectoryEditor' + onActionPerformed='model.setExportDirectory(((FileEditor) event.getSource()).getSelectedFile())'/> </cell> + </row> + <row fill='both'> + <cell> + <JLabel id='exportFilenameLabel'/> + </cell> + <cell> + <JTextField id='exportFilenameEditor' + onKeyReleased='model.setExportFilename(((JTextField)event.getSource()).getText())'/> + </cell> + </row> + <row fill='both'> + <cell columns='2'> + <JLabel id='exportFilenameLabelInfo'/> + </cell> </row> </Table> Modified: trunk/jmexico-editor/src/main/java/fr/reseaumexico/editor/ImportScenarioPanel.jaxx =================================================================== --- trunk/jmexico-editor/src/main/java/fr/reseaumexico/editor/ImportScenarioPanel.jaxx 2012-10-07 16:24:50 UTC (rev 88) +++ trunk/jmexico-editor/src/main/java/fr/reseaumexico/editor/ImportScenarioPanel.jaxx 2012-10-07 17:41:29 UTC (rev 89) @@ -38,20 +38,20 @@ </script> <row fill='both'> <cell> - <JLabel id='scenarioNameLabel'/> + <JLabel id='importFileLabel'/> </cell> <cell> - <JTextField id='scenarioNameEditor' - onKeyReleased='model.setScenarioName(((JTextField)event.getSource()).getText())'/> + <FileEditor id='importFileEditor' + onActionPerformed='model.setImportFile(((FileEditor) event.getSource()).getSelectedFile())'/> </cell> </row> <row fill='both'> <cell> - <JLabel id='importFileLabel'/> + <JLabel id='scenarioNameLabel'/> </cell> <cell> - <FileEditor id='importFileEditor' - onActionPerformed='model.setImportFile(((FileEditor) event.getSource()).getSelectedFile())'/> + <JTextField id='scenarioNameEditor' + onKeyReleased='model.setScenarioName(((JTextField)event.getSource()).getText())'/> </cell> - </row> + </row> </Table> Modified: trunk/jmexico-editor/src/main/java/fr/reseaumexico/editor/InputDesignEditorHandler.java =================================================================== --- trunk/jmexico-editor/src/main/java/fr/reseaumexico/editor/InputDesignEditorHandler.java 2012-10-07 16:24:50 UTC (rev 88) +++ trunk/jmexico-editor/src/main/java/fr/reseaumexico/editor/InputDesignEditorHandler.java 2012-10-07 17:41:29 UTC (rev 89) @@ -254,7 +254,7 @@ // export scenario - File exportFile = model.getExportFile(); + File exportFile = model.getExportFile(getScenarioExtension()); Scenario scenario = model.getSelectedScenario(); if (log.isInfoEnabled()) { @@ -351,13 +351,10 @@ ExportScenarioPanel panel = new ExportScenarioPanel(); panel.init(model); - FileEditor fileEditor = panel.getExportFileEditor(); + FileEditor fileEditor = panel.getExportDirectoryEditor(); + fileEditor.setDirectoryEnabled(true); + fileEditor.setFileEnabled(false); - fileEditor.setAcceptAllFileFilterUsed(false); - fileEditor.setExts(_("jmexico.config.scenario.extension")); - fileEditor.setExtsDescription( - _("jmexico.config.scenario.extension.description")); - int response = JOptionPane.showConfirmDialog( ui, panel, @@ -392,24 +389,44 @@ if (valid) { - // check export file is filled - File exportFile = model.getExportFile(); + //check export directory is filled + File exportDirectory = model.getExportDirectory(); + if (exportDirectory == null) { + valid = false; + JOptionPane.showMessageDialog( + ui, + _("jmexico.error.scenario.exportDirectory.required"), + _("jmexico.title.error"), + JOptionPane.ERROR_MESSAGE); - if (exportFile == null) { + } + } + + if (valid) { + + // check export filename is filled + String exportFilename = model.getExportFilename(); + + if (StringUtils.isBlank(exportFilename)) { valid = false; JOptionPane.showMessageDialog( ui, - _("jmexico.error.scenario.exportFile.required"), + _("jmexico.error.scenario.exportFilename.required"), _("jmexico.title.error"), JOptionPane.ERROR_MESSAGE); } } + doIt = valid || showExportScenarioUI(model); } return doIt; } + public static String getScenarioExtension() { + return _("jmexico.config.scenario.extension"); + } + protected boolean showImportScenarioUI(ImportScenarioModel model) { // show ui @@ -420,7 +437,7 @@ FileEditor fileEditor = panel.getImportFileEditor(); fileEditor.setAcceptAllFileFilterUsed(false); - fileEditor.setExts(_("jmexico.config.scenario.extension")); + fileEditor.setExts(getScenarioExtension()); fileEditor.setExtsDescription( _("jmexico.config.scenario.extension.description")); Modified: trunk/jmexico-editor/src/main/resources/i18n/jmexico-editor_en_GB.properties =================================================================== --- trunk/jmexico-editor/src/main/resources/i18n/jmexico-editor_en_GB.properties 2012-10-07 16:24:50 UTC (rev 88) +++ trunk/jmexico-editor/src/main/resources/i18n/jmexico-editor_en_GB.properties 2012-10-07 17:41:29 UTC (rev 89) @@ -5,7 +5,8 @@ jmexico.action.remove.scenario=Remove scenario jmexico.config.scenario.extension=scenario jmexico.config.scenario.extension.description=JMexico scenario file (*.scenario) -jmexico.error.scenario.exportFile.required=Error\: Export file is mandatory. +jmexico.error.scenario.exportDirectory.required=Error\: Export directory is mandatory. +jmexico.error.scenario.exportFilename.required=Error\: Export filename is mandatory. jmexico.error.scenario.importFile.required=Error\: Import file is mandatory. jmexico.error.scenario.name.required=Error\: Name of scenario is mandatory. jmexico.error.scenario.name.used=Error\: Name of scenario '%1$s' is already used. @@ -14,7 +15,9 @@ jmexico.label.scenario.add.name=Name of scenario to add jmexico.label.scenario.clone.name=Name of new scenario jmexico.label.scenario.clone.selected=Scenario to clone -jmexico.label.scenario.export.file=Export file +jmexico.label.scenario.export.directory=Export directory +jmexico.label.scenario.export.filename=Export filename +jmexico.label.scenario.export.filename.info=Scenario extension (.%s) will be added to the filename jmexico.label.scenario.export.selected=Scenario to export jmexico.label.scenario.import.file=Import file jmexico.label.scenario.import.name=Name of new scenario Modified: trunk/jmexico-editor/src/main/resources/i18n/jmexico-editor_fr_FR.properties =================================================================== --- trunk/jmexico-editor/src/main/resources/i18n/jmexico-editor_fr_FR.properties 2012-10-07 16:24:50 UTC (rev 88) +++ trunk/jmexico-editor/src/main/resources/i18n/jmexico-editor_fr_FR.properties 2012-10-07 17:41:29 UTC (rev 89) @@ -5,8 +5,9 @@ jmexico.action.remove.scenario=Supprimer un scénario jmexico.config.scenario.extension=scenario jmexico.config.scenario.extension.description=Scénario jmexico (*.scenario) -jmexico.error.scenario.exportFile.required=Erreur \: pas de fichier d'export choisi -jmexico.error.scenario.importFile.required= +jmexico.error.scenario.exportDirectory.required=Erreur \: Le répertoire d'export est obligatoire. +jmexico.error.scenario.exportFilename.required=Erreur \: Le nom du fichier d'export est obligatoire. +jmexico.error.scenario.importFile.required=Erreur \: Le fichier d'import est obligatoire. jmexico.error.scenario.name.required=Erreur \: le nom du scénario est obligatoire jmexico.error.scenario.name.used=Erreur \: le scenario '%1$s' est déjà utilisé. jmexico.error.scenario.not.selected=Erreur \: scénario à cloner non sélectionné. @@ -14,11 +15,13 @@ jmexico.label.scenario.add.name=Nom du scénario jmexico.label.scenario.clone.name=Nom du nouveau scénario jmexico.label.scenario.clone.selected=Scénario à dupliquer -jmexico.label.scenario.export.file=Fichier d'export -jmexico.label.scenario.export.selected=Sélection du scénarion à exporter +jmexico.label.scenario.export.directory=Répertoire d'export +jmexico.label.scenario.export.filename=Nom du fichier d'export +jmexico.label.scenario.export.filename.info=L'extension de scénario (.%s) sera rajoutée au nom du fichier saisi +jmexico.label.scenario.export.selected=Scénario à exporter jmexico.label.scenario.import.file=Fichier d'import jmexico.label.scenario.import.name=Nom du scénario à importer -jmexico.label.scenario.remove.selected=Sélection du scénario à supprimer +jmexico.label.scenario.remove.selected=Scénario à supprimer jmexico.title.error=Erreur jmexico.title.scenario.add=Ajouter un scénario jmexico.title.scenario.clone=Dupliquer un scénario Added: trunk/jmexico-editor/src/main/resources/icons/action-help.png =================================================================== (Binary files differ) Property changes on: trunk/jmexico-editor/src/main/resources/icons/action-help.png ___________________________________________________________________ Added: svn:executable + * Added: svn:mime-type + image/png