Mercurial > hg > thermostat-tools-eclipse
changeset 103:9cb641d3e236
Prompt before overwriting existing file
author | Omair Majid <omajid@redhat.com> |
---|---|
date | Fri, 07 Feb 2014 16:08:24 -0500 |
parents | e8210c93bfa9 |
children | 5877be030593 |
files | com.redhat.thermostat.tools.eclipse.plugin/src/com/redhat/thermostat/tools/eclipse/plugin/Messages.java com.redhat.thermostat.tools.eclipse.plugin/src/com/redhat/thermostat/tools/eclipse/plugin/messages.properties com.redhat.thermostat.tools.eclipse.plugin/src/com/redhat/thermostat/tools/eclipse/plugin/wizards/PluginXmlCreationWizard.java |
diffstat | 3 files changed, 24 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- 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;
--- 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
--- 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); }