]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.document.linking.ui/src/org/simantics/document/linking/wizard/ReportWizard.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.document.linking.ui / src / org / simantics / document / linking / wizard / ReportWizard.java
diff --git a/bundles/org.simantics.document.linking.ui/src/org/simantics/document/linking/wizard/ReportWizard.java b/bundles/org.simantics.document.linking.ui/src/org/simantics/document/linking/wizard/ReportWizard.java
new file mode 100644 (file)
index 0000000..66510db
--- /dev/null
@@ -0,0 +1,81 @@
+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