Author: chatellier Date: 2010-01-06 11:32:03 +0000 (Wed, 06 Jan 2010) New Revision: 2879 Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/script/ScriptAction.java Log: Take care about user cancelation and errors. 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 2010-01-06 11:17:20 UTC (rev 2878) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/script/ScriptAction.java 2010-01-06 11:32:03 UTC (rev 2879) @@ -48,6 +48,7 @@ import javax.swing.tree.DefaultMutableTreeNode; import javax.swing.tree.TreePath; +import org.apache.commons.lang.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.util.FileUtil; @@ -229,16 +230,19 @@ // if user has not choose "cancel" if (equationModelType != null) { - String fileName = JOptionPane - .showInputDialog(_("isisfish.message.new.filename")); - File scriptFile = newScript(equationModelTypePath + fileName, - scriptType); - ScriptTreeModel model = (ScriptTreeModel) scriptUI.getTree().getModel(); - model.fileAdded(scriptFile); - TreePath treePath = model.getTreePathFor(scriptFile); - scriptUI.getTree().setSelectionPath(treePath); + String fileName = JOptionPane.showInputDialog(_("isisfish.message.new.filename")); + // user cancel + if (!StringUtils.isEmpty(fileName)) { + File scriptFile = newScript(equationModelTypePath + fileName, scriptType); + // creation successful + if (scriptFile != null) { + ScriptTreeModel model = (ScriptTreeModel) scriptUI.getTree().getModel(); + model.fileAdded(scriptFile); + TreePath treePath = model.getTreePathFor(scriptFile); + scriptUI.getTree().setSelectionPath(treePath); + } + } } - } /** @@ -247,7 +251,7 @@ * * @param fileName full filename * @param scriptType le type que l'on souhaite Script, Simulator, ou Export. - * @return created file + * @return created file or {@code null} if any error happen */ protected File newScript(String fileName, ScriptMapping scriptType) { @@ -272,16 +276,16 @@ String message = _("isisfish.error.invalid.file.name", fileName); Exception e = new RuntimeException(message); - returnError(_("isisfish.error.script.create", fileName, e - .getMessage()), e); + returnError(_("isisfish.error.script.create", fileName, e.getMessage()), e); + return null; } // il y a un sous type à traiter if (pos == fileName.length() - 1) { String message = _("isisfish.error.invalid.file.name", fileName); Exception e = new RuntimeException(message); - returnError(_("isisfish.error.script.create", fileName, e - .getMessage()), e); + returnError(_("isisfish.error.script.create", fileName, e.getMessage()), e); + return null; } realFilename = fileName .substring(fileName.lastIndexOf('/') + 1); @@ -293,8 +297,8 @@ if (!realFilename.matches("[A-Z0-9_][a-zA-Z0-9_]*")) { String message = _("isisfish.error.invalid.file.name", fileName); Exception e = new RuntimeException(message); - returnError(_("isisfish.error.script.create", fileName, e - .getMessage()), e); + returnError(_("isisfish.error.script.create", fileName, e.getMessage()), e); + return null; } //TODO do test on category CodeSourceStorage script = null;
participants (1)
-
chatellier@users.labs.libre-entreprise.org