]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.document.linking.ui/src/org/simantics/document/linking/wizard/ReportWizard.java
Sync git svn branch with SVN repository r33144.
[simantics/platform.git] / bundles / org.simantics.document.linking.ui / src / org / simantics / document / linking / wizard / ReportWizard.java
1 package org.simantics.document.linking.wizard;\r
2 \r
3 import org.eclipse.jface.resource.JFaceResources;\r
4 import org.eclipse.jface.resource.LocalResourceManager;\r
5 import org.eclipse.jface.viewers.IStructuredSelection;\r
6 import org.eclipse.jface.wizard.IWizardPage;\r
7 import org.eclipse.jface.wizard.Wizard;\r
8 import org.eclipse.ui.IExportWizard;\r
9 import org.eclipse.ui.IWorkbench;\r
10 import org.simantics.db.Resource;\r
11 import org.simantics.utils.ui.AdaptionUtils;\r
12 \r
13 /**\r
14  * Wizard for exporting reports.\r
15  * \r
16  * @author Marko Luukkainen <marko.luukkainen@vtt.fi>\r
17  *\r
18  */\r
19 public class ReportWizard extends Wizard implements IExportWizard{\r
20         \r
21         Resource selectedResource;\r
22         ReportSelectionPage reportSelectionPage;\r
23         ReportCustomizationPage reportCustomizationPage;\r
24         ReportGeneratePage reportGeneratePage;\r
25         \r
26         LocalResourceManager manager = new LocalResourceManager(JFaceResources.getResources());\r
27         \r
28         public ReportWizard() {\r
29                 setNeedsProgressMonitor(true);\r
30         }\r
31         \r
32         @Override\r
33         public void addPages() {\r
34                 reportSelectionPage = new ReportSelectionPage("Select report parameters");\r
35                 reportCustomizationPage = new ReportCustomizationPage("Customize report");\r
36                 reportGeneratePage = new ReportGeneratePage("Run Report");\r
37                 addPage(reportSelectionPage);\r
38                 addPage(reportCustomizationPage);\r
39                 addPage(reportGeneratePage);\r
40                 if (selectedResource != null)\r
41                         reportSelectionPage.setInput(selectedResource);\r
42         }\r
43         \r
44         @Override\r
45         public IWizardPage getNextPage(IWizardPage page) {\r
46                 if (page == reportSelectionPage) {\r
47                         reportCustomizationPage.setReportWriter(reportSelectionPage.getSelectedWriter());\r
48                         reportCustomizationPage.setModel(reportSelectionPage.getSelectedModel());\r
49                         reportGeneratePage.setFilename(reportSelectionPage.getFilename());\r
50                         reportGeneratePage.setModel(reportSelectionPage.getSelectedModel());\r
51                         reportGeneratePage.setReportWriter(reportSelectionPage.getSelectedWriter());\r
52                 } \r
53                 return super.getNextPage(page);\r
54         }\r
55 \r
56         @Override\r
57         public boolean performFinish() {\r
58                 return reportGeneratePage.isGenerated();\r
59         }\r
60         \r
61         @Override\r
62         public boolean canFinish() {\r
63                 if (!reportGeneratePage.isGenerated())\r
64                         return false;\r
65                 return super.canFinish();\r
66         }\r
67 \r
68         @Override\r
69         public void init(IWorkbench workbench, IStructuredSelection selection) {\r
70                 selectedResource = AdaptionUtils.adaptToSingle(selection, Resource.class);\r
71                 if (reportSelectionPage != null)\r
72                         reportSelectionPage.setInput(selectedResource);\r
73         }\r
74         \r
75         @Override\r
76         public void dispose() {\r
77                 manager.dispose();\r
78                 super.dispose();\r
79         }\r
80 \r
81 }\r