# HG changeset patch # User Omair Majid # Date 1391807304 18000 # Node ID 9cb641d3e236cfa33f36df2413f9c3b587e7ec6e # Parent e8210c93bfa9e607e14bf0bdbc02c1e97cd22788 Prompt before overwriting existing file diff -r e8210c93bfa9 -r 9cb641d3e236 com.redhat.thermostat.tools.eclipse.plugin/src/com/redhat/thermostat/tools/eclipse/plugin/Messages.java --- a/com.redhat.thermostat.tools.eclipse.plugin/src/com/redhat/thermostat/tools/eclipse/plugin/Messages.java Fri Feb 07 16:07:53 2014 -0500 +++ b/com.redhat.thermostat.tools.eclipse.plugin/src/com/redhat/thermostat/tools/eclipse/plugin/Messages.java Fri Feb 07 16:08:24 2014 -0500 @@ -48,9 +48,12 @@ public static String OverviewPage_title; public static String PluginModelReaderWriter_errorLoadingModel; public static String PluginModelReaderWriter_errorSavingFile; + public static String PluginXmlCreationWizard_confirmOverwriteMessage; + public static String PluginXmlCreationWizard_confirmOverwriteTitle; public static String PluginXmlCreationWizard_containerDoesNotExist; public static String PluginXmlCreationWizard_creatingFile; public static String PluginXmlCreationWizard_error; + public static String PluginXmlCreationWizard_errorWritingFile; public static String PluginXmlCreationWizard_openingFileForEditing; public static String PluginXmlCreationWizard_windowTitle; public static String PluginXmlProjectSelectionPage_selectFileContainer; diff -r e8210c93bfa9 -r 9cb641d3e236 com.redhat.thermostat.tools.eclipse.plugin/src/com/redhat/thermostat/tools/eclipse/plugin/messages.properties --- a/com.redhat.thermostat.tools.eclipse.plugin/src/com/redhat/thermostat/tools/eclipse/plugin/messages.properties Fri Feb 07 16:07:53 2014 -0500 +++ b/com.redhat.thermostat.tools.eclipse.plugin/src/com/redhat/thermostat/tools/eclipse/plugin/messages.properties Fri Feb 07 16:08:24 2014 -0500 @@ -40,9 +40,12 @@ OverviewPage_title=Overview PluginModelReaderWriter_errorLoadingModel=Unable to load model PluginModelReaderWriter_errorSavingFile=Error saving file +PluginXmlCreationWizard_confirmOverwriteMessage=A thermostat-plugin.xml file already exists. Overwrite it? +PluginXmlCreationWizard_confirmOverwriteTitle=Overwrite existing file? PluginXmlCreationWizard_containerDoesNotExist=Container {0} does not exist. PluginXmlCreationWizard_creatingFile=Creating {0} PluginXmlCreationWizard_error=Error +PluginXmlCreationWizard_errorWritingFile=Error writing file PluginXmlCreationWizard_openingFileForEditing=Opening file for editing... PluginXmlCreationWizard_windowTitle=Create Themrostat Plugin PluginXmlProjectSelectionPage_selectFileContainer=Select new file container diff -r e8210c93bfa9 -r 9cb641d3e236 com.redhat.thermostat.tools.eclipse.plugin/src/com/redhat/thermostat/tools/eclipse/plugin/wizards/PluginXmlCreationWizard.java --- a/com.redhat.thermostat.tools.eclipse.plugin/src/com/redhat/thermostat/tools/eclipse/plugin/wizards/PluginXmlCreationWizard.java Fri Feb 07 16:07:53 2014 -0500 +++ b/com.redhat.thermostat.tools.eclipse.plugin/src/com/redhat/thermostat/tools/eclipse/plugin/wizards/PluginXmlCreationWizard.java Fri Feb 07 16:08:24 2014 -0500 @@ -88,13 +88,22 @@ try { InputStream stream = getInitialContentStream(); if (file.exists()) { - // TODO dont replace file without confirming - file.setContents(stream, true, true, monitor); + final boolean[] overwrite = new boolean [1]; + getShell().getDisplay().syncExec(new Runnable() { + @Override + public void run() { + overwrite[0] = MessageDialog.openConfirm(getShell(), Messages.PluginXmlCreationWizard_confirmOverwriteTitle, Messages.PluginXmlCreationWizard_confirmOverwriteMessage); + } + }); + if (overwrite[0]) { + file.setContents(stream, true, true, monitor); + } } else { file.create(stream, true, monitor); } stream.close(); } catch (IOException e) { + throwCoreException(Messages.PluginXmlCreationWizard_errorWritingFile, e); } monitor.worked(1); monitor.setTaskName(Messages.PluginXmlCreationWizard_openingFileForEditing); @@ -105,6 +114,7 @@ try { IDE.openEditor(page, file, true); } catch (PartInitException e) { + e.printStackTrace(); } } }); @@ -122,8 +132,12 @@ } private void throwCoreException(String message) throws CoreException { - IStatus status = new Status(IStatus.ERROR, Activator.PLUGIN_ID, - IStatus.OK, message, null); + IStatus status = new Status(IStatus.ERROR, Activator.PLUGIN_ID, IStatus.OK, message, null); + throw new CoreException(status); + } + + private void throwCoreException(String message, Throwable cause) throws CoreException { + IStatus status = new Status(IStatus.ERROR, Activator.PLUGIN_ID, IStatus.OK, message, cause); throw new CoreException(status); }