\r
private static final int MAX_RECENT_EXPORT_PATHS = 10;\r
Deque<String> recentExportPaths;\r
- boolean overwrite;\r
- \r
- T exportModel;\r
- \r
- protected abstract T createExportModel(Deque<String> recentExportPaths);\r
- \r
- protected abstract ModelExportWizardPage<T> createExportPage(T exportModel);\r
- \r
- protected abstract IPersistentPreferenceStore getPreferenceStore();\r
- \r
- protected abstract IRunnableWithProgress createExportRunnable(T exportModel);\r
- \r
- protected abstract String getExportLocationId();\r
- protected abstract String getExportOverwriteId();\r
- \r
- @Override\r
+ boolean overwrite;\r
+ \r
+ T exportModel;\r
+\r
+ protected abstract T createExportModel(Deque<String> recentExportPaths);\r
+ \r
+ protected abstract ModelExportWizardPage<T> createExportPage(T exportModel);\r
+ \r
+ protected abstract IPersistentPreferenceStore getPreferenceStore();\r
+ \r
+ protected abstract IRunnableWithProgress createExportRunnable(T exportModel);\r
+ \r
+ protected abstract String getExportLocationId();\r
+ protected abstract String getExportOverwriteId();\r
+ \r
+ @Override\r
public void init(IWorkbench workbench, IStructuredSelection selection) {\r
readPreferences();\r
\r
- ISessionContext ctx = Simantics.getSessionContext();\r
- if (ctx == null)\r
- return;\r
- IProject project = ctx.getHint(ProjectKeys.KEY_PROJECT);\r
- if (project == null)\r
- return;\r
- \r
- exportModel = createExportModel(recentExportPaths);\r
- exportModel.setSelection(selection.getFirstElement());\r
- exportModel.setOverwrite(overwrite);\r
+ ISessionContext ctx = Simantics.getSessionContext();\r
+ if (ctx == null)\r
+ return;\r
+ IProject project = ctx.getHint(ProjectKeys.KEY_PROJECT);\r
+ if (project == null)\r
+ return;\r
+ \r
+ exportModel = createExportModel(recentExportPaths);\r
+ exportModel.setSelection(selection.getFirstElement());\r
+ exportModel.setOverwrite(overwrite);\r
}\r
- \r
- @Override\r
+ \r
+ @Override\r
public void addPages() {\r
super.addPages();\r
if (exportModel != null) {\r
addPage(createExportPage(exportModel));\r
}\r
}\r
- \r
- \r
- \r
+ \r
+ \r
+ \r
@Override\r
public boolean performFinish() {\r
- try {\r
- recentExportPaths.addFirst(exportModel.getExportLocation().getAbsolutePath());\r
- removeDuplicates(recentExportPaths);\r
- if (recentExportPaths.size() > MAX_RECENT_EXPORT_PATHS)\r
- recentExportPaths.pollLast();\r
+ try {\r
+ recentExportPaths.addFirst(exportModel.getExportLocation().getAbsolutePath());\r
+ removeDuplicates(recentExportPaths);\r
+ if (recentExportPaths.size() > MAX_RECENT_EXPORT_PATHS)\r
+ recentExportPaths.pollLast();\r
\r
- writePreferences();\r
- } catch (IOException e) {\r
- ErrorLogger.defaultLogError("Failed to write preferences", e);\r
- }\r
- \r
- if (exportModel.usesFile()) {\r
+ writePreferences();\r
+ } catch (IOException e) {\r
+ ErrorLogger.defaultLogError("Failed to write preferences", e);\r
+ }\r
+ \r
+ if (exportModel.usesFile()) {\r
\r
- File outputFile = exportModel.getExportLocation();\r
- \r
- if (outputFile.exists()) {\r
- if (!outputFile.isFile()) {\r
- MessageDialog.openError(getShell(), "File Problem", "Output target is not a file " + outputFile.getAbsolutePath());\r
- return false;\r
- }\r
- if (!exportModel.isOverwrite()) {\r
- boolean ok = MessageDialog.openConfirm(getShell(), "Overwrite", "A file by the name " + outputFile.getAbsolutePath() + " contains files.\n\nDo you want to overwrite the files?");\r
- if (!ok) {\r
- return false;\r
- }\r
- if (!outputFile.delete()) {\r
- MessageDialog.openError(getShell(), "Delete Problem", "Could not overwrite previously existing file " + outputFile.getAbsolutePath());\r
- return false;\r
- }\r
- }\r
- } \r
- } else {\r
- File outputFolder = exportModel.getExportLocation();\r
- \r
- if (outputFolder.exists()) {\r
- if (!outputFolder.isDirectory()) {\r
- MessageDialog.openError(getShell(), "Folder Problem", "Output target is not a folder " + outputFolder.getAbsolutePath());\r
- return false;\r
- }\r
- String files[] = outputFolder.list();\r
- if (files.length > 0) {\r
- if (!exportModel.isOverwrite()) {\r
- boolean ok = MessageDialog.openConfirm(getShell(), "Overwrite", "A folder by the name " + outputFolder.getAbsolutePath() + " contains files.\n\nDo you want to overwrite the files?");\r
- if (!ok) {\r
- return false;\r
- }\r
- }\r
- }\r
+ File outputFile = exportModel.getExportLocation();\r
+ \r
+ if (outputFile.exists()) {\r
+ if (!outputFile.isFile()) {\r
+ MessageDialog.openError(getShell(), "File Problem", "Output target is not a file " + outputFile.getAbsolutePath());\r
+ return false;\r
+ }\r
+ if (!exportModel.isOverwrite()) {\r
+ boolean ok = MessageDialog.openConfirm(getShell(), "Overwrite", "A file by the name " + outputFile.getAbsolutePath() + " contains files.\n\nDo you want to overwrite the files?");\r
+ if (!ok) {\r
+ return false;\r
+ }\r
+ if (!outputFile.delete()) {\r
+ MessageDialog.openError(getShell(), "Delete Problem", "Could not overwrite previously existing file " + outputFile.getAbsolutePath());\r
+ return false;\r
+ }\r
+ }\r
+ } \r
+ } else {\r
+ File outputFolder = exportModel.getExportLocation();\r
+ \r
+ if (outputFolder.exists()) {\r
+ if (!outputFolder.isDirectory()) {\r
+ MessageDialog.openError(getShell(), "Folder Problem", "Output target is not a folder " + outputFolder.getAbsolutePath());\r
+ return false;\r
+ }\r
+ String files[] = outputFolder.list();\r
+ if (files.length > 0) {\r
+ if (!exportModel.isOverwrite()) {\r
+ boolean ok = MessageDialog.openConfirm(getShell(), "Overwrite", "A folder by the name " + outputFolder.getAbsolutePath() + " contains files.\n\nDo you want to overwrite the files?");\r
+ if (!ok) {\r
+ return false;\r
+ }\r
+ }\r
+ }\r
\r
- } else {\r
- if (!outputFolder.mkdir()) {\r
- MessageDialog.openError(getShell(), "Folder Problem", "Could not create new folder " + outputFolder);\r
- return false;\r
- }\r
- }\r
- }\r
+ } else {\r
+ if (!outputFolder.mkdir()) {\r
+ MessageDialog.openError(getShell(), "Folder Problem", "Could not create new folder " + outputFolder);\r
+ return false;\r
+ }\r
+ }\r
+ }\r
\r
- try {\r
- getContainer().run(true, true,createExportRunnable(exportModel));\r
- } catch (InvocationTargetException e) {\r
- Throwable t = e.getTargetException();\r
- WizardPage cp = (WizardPage) getContainer().getCurrentPage();\r
- if (t instanceof IOException) {\r
- ErrorLogger.defaultLogError("An I/O problem occurred while exporting the model. See exception for details.", t);\r
- cp.setErrorMessage("An I/O problem occurred while exporting the model.\n\nMessage: " + e.getMessage());\r
- } else {\r
- ErrorLogger.defaultLogError("Unexpected exception while exporting the model. See exception for details.", t);\r
- cp.setErrorMessage("Unexpected exception while exporting the model. See error log for details.\n\nMessage: " + e.getMessage());\r
- }\r
- return false;\r
- } catch (InterruptedException e) {\r
- ExceptionUtils.logAndShowError(e);\r
- return false;\r
- }\r
+ try {\r
+ getContainer().run(true, true,createExportRunnable(exportModel));\r
+ } catch (InvocationTargetException e) {\r
+ Throwable t = e.getTargetException();\r
+ WizardPage cp = (WizardPage) getContainer().getCurrentPage();\r
+ if (t instanceof IOException) {\r
+ ErrorLogger.defaultLogError("An I/O problem occurred while exporting the model. See exception for details.", t);\r
+ cp.setErrorMessage("An I/O problem occurred while exporting the model.\n\nMessage: " + e.getMessage());\r
+ } else {\r
+ ErrorLogger.defaultLogError("Unexpected exception while exporting the model. See exception for details.", t);\r
+ cp.setErrorMessage("Unexpected exception while exporting the model. See error log for details.\n\nMessage: " + e.getMessage());\r
+ }\r
+ return false;\r
+ } catch (InterruptedException e) {\r
+ ExceptionUtils.logAndShowError(e);\r
+ return false;\r
+ }\r
\r
- return true;\r
+ return true;\r
}\r
\r
\r
\r
\r
private boolean readPreferences() {\r
- IPreferenceStore store = getPreferenceStore();\r
+ IPreferenceStore store = getPreferenceStore();\r
\r
- String recentPathsPref = store.getString(getExportLocationId());\r
- recentExportPaths = decodePaths(recentPathsPref);\r
- overwrite = store.getBoolean(getExportOverwriteId());\r
+ String recentPathsPref = store.getString(getExportLocationId());\r
+ recentExportPaths = decodePaths(recentPathsPref);\r
+ overwrite = store.getBoolean(getExportOverwriteId());\r
\r
- return true;\r
- }\r
+ return true;\r
+ }\r
\r
private void writePreferences() throws IOException {\r
- IPersistentPreferenceStore store = getPreferenceStore();\r
+ IPersistentPreferenceStore store = getPreferenceStore();\r
\r
- store.putValue(getExportLocationId(), encodePaths(recentExportPaths));\r
- store.setValue(getExportOverwriteId(), exportModel.isOverwrite());\r
+ store.putValue(getExportLocationId(), encodePaths(recentExportPaths));\r
+ store.setValue(getExportOverwriteId(), exportModel.isOverwrite());\r
\r
- if (store.needsSaving())\r
- store.save();\r
- }\r
+ if (store.needsSaving())\r
+ store.save();\r
+ }\r
\r
private static final String TAG_PATH = "path";\r
private static final String ATTR_NAME = "name";\r