--- /dev/null
+package org.simantics.document.linking.wizard;\r
+\r
+import org.eclipse.jface.resource.JFaceResources;\r
+import org.eclipse.jface.resource.LocalResourceManager;\r
+import org.eclipse.jface.viewers.IStructuredSelection;\r
+import org.eclipse.jface.wizard.IWizardPage;\r
+import org.eclipse.jface.wizard.Wizard;\r
+import org.eclipse.ui.IExportWizard;\r
+import org.eclipse.ui.IWorkbench;\r
+import org.simantics.db.Resource;\r
+import org.simantics.utils.ui.AdaptionUtils;\r
+\r
+/**\r
+ * Wizard for exporting reports.\r
+ * \r
+ * @author Marko Luukkainen <marko.luukkainen@vtt.fi>\r
+ *\r
+ */\r
+public class ReportWizard extends Wizard implements IExportWizard{\r
+ \r
+ Resource selectedResource;\r
+ ReportSelectionPage reportSelectionPage;\r
+ ReportCustomizationPage reportCustomizationPage;\r
+ ReportGeneratePage reportGeneratePage;\r
+ \r
+ LocalResourceManager manager = new LocalResourceManager(JFaceResources.getResources());\r
+ \r
+ public ReportWizard() {\r
+ setNeedsProgressMonitor(true);\r
+ }\r
+ \r
+ @Override\r
+ public void addPages() {\r
+ reportSelectionPage = new ReportSelectionPage("Select report parameters");\r
+ reportCustomizationPage = new ReportCustomizationPage("Customize report");\r
+ reportGeneratePage = new ReportGeneratePage("Run Report");\r
+ addPage(reportSelectionPage);\r
+ addPage(reportCustomizationPage);\r
+ addPage(reportGeneratePage);\r
+ if (selectedResource != null)\r
+ reportSelectionPage.setInput(selectedResource);\r
+ }\r
+ \r
+ @Override\r
+ public IWizardPage getNextPage(IWizardPage page) {\r
+ if (page == reportSelectionPage) {\r
+ reportCustomizationPage.setReportWriter(reportSelectionPage.getSelectedWriter());\r
+ reportCustomizationPage.setModel(reportSelectionPage.getSelectedModel());\r
+ reportGeneratePage.setFilename(reportSelectionPage.getFilename());\r
+ reportGeneratePage.setModel(reportSelectionPage.getSelectedModel());\r
+ reportGeneratePage.setReportWriter(reportSelectionPage.getSelectedWriter());\r
+ } \r
+ return super.getNextPage(page);\r
+ }\r
+\r
+ @Override\r
+ public boolean performFinish() {\r
+ return reportGeneratePage.isGenerated();\r
+ }\r
+ \r
+ @Override\r
+ public boolean canFinish() {\r
+ if (!reportGeneratePage.isGenerated())\r
+ return false;\r
+ return super.canFinish();\r
+ }\r
+\r
+ @Override\r
+ public void init(IWorkbench workbench, IStructuredSelection selection) {\r
+ selectedResource = AdaptionUtils.adaptToSingle(selection, Resource.class);\r
+ if (reportSelectionPage != null)\r
+ reportSelectionPage.setInput(selectedResource);\r
+ }\r
+ \r
+ @Override\r
+ public void dispose() {\r
+ manager.dispose();\r
+ super.dispose();\r
+ }\r
+\r
+}\r