]> gerrit.simantics Code Review - simantics/interop.git/blob - org.simantics.xml.sax.ui/src/org/simantics/xml/sax/ui/wizard/InputSelectionPage.java
Initial support for XML export (order of Elements is not kept)
[simantics/interop.git] / org.simantics.xml.sax.ui / src / org / simantics / xml / sax / ui / wizard / InputSelectionPage.java
1 package org.simantics.xml.sax.ui.wizard;\r
2 \r
3 import org.eclipse.jface.layout.GridDataFactory;\r
4 import org.eclipse.jface.wizard.WizardPage;\r
5 import org.eclipse.swt.SWT;\r
6 import org.eclipse.swt.events.SelectionAdapter;\r
7 import org.eclipse.swt.events.SelectionEvent;\r
8 import org.eclipse.swt.layout.GridLayout;\r
9 import org.eclipse.swt.widgets.Button;\r
10 import org.eclipse.swt.widgets.Composite;\r
11 import org.simantics.utils.ui.widgets.DirectorySelectionWidget;\r
12 import org.simantics.utils.ui.widgets.FileOrDirectorySelectionWidget;\r
13 import org.simantics.utils.ui.widgets.FileSelectionListener;\r
14 import org.simantics.utils.ui.widgets.FileSelectionWidget;\r
15 \r
16 public class InputSelectionPage extends WizardPage implements FileSelectionListener{\r
17         \r
18         public InputSelectionPage() {\r
19                 super("InputPage","Select input files and output plug-in",null);\r
20         }\r
21 \r
22         private FileSelectionWidget schemaSelection;\r
23         private FileSelectionWidget configurationSelection;\r
24         private DirectorySelectionWidget pluginSelection;\r
25         \r
26         boolean createPGraph = true;\r
27         boolean createImporter = true;\r
28         boolean createExporter = true;\r
29 \r
30         @Override\r
31         public void createControl(Composite parent) {\r
32                 Composite composite = new Composite(parent, SWT.NONE);\r
33                 composite.setLayout(new GridLayout(1,false));\r
34                 GridDataFactory.fillDefaults().grab(true, true).align(SWT.FILL, SWT.FILL).applyTo(composite);\r
35                 \r
36                 schemaSelection = new FileSelectionWidget(composite, "Schema file", SWT.OPEN);\r
37                 configurationSelection = new FileSelectionWidget(composite, "Configuration file (Optional)", SWT.OPEN);\r
38                 pluginSelection = new DirectorySelectionWidget(composite, "Output plug-in", SWT.SAVE);\r
39                 \r
40                 schemaSelection.setFilterExtensions(new String[]{"*.xsd"});\r
41                 schemaSelection.setFilterNames(new String[]{"XML schema files"});\r
42                 \r
43                 configurationSelection.setFilterExtensions(new String[]{"*.xml"});\r
44                 configurationSelection.setFilterNames(new String[]{"XML files"});\r
45                 \r
46                 schemaSelection.addListener(this);\r
47                 pluginSelection.addListener(this);\r
48                 \r
49                 final Button pGraphButton = new Button(composite, SWT.CHECK);\r
50                 final Button importButton = new Button(composite, SWT.CHECK);\r
51                 final Button exportButton = new Button(composite, SWT.CHECK);\r
52                 pGraphButton.setText("Create Ontology / .pgraph file");\r
53                 importButton.setText("Create Importer");\r
54                 exportButton.setText("Create Exporter");\r
55                 pGraphButton.setSelection(createPGraph);\r
56                 importButton.setSelection(createImporter);\r
57                 exportButton.setSelection(createExporter);\r
58                 pGraphButton.addSelectionListener(new SelectionAdapter() {\r
59                         @Override\r
60                         public void widgetSelected(SelectionEvent e) {\r
61                                 createPGraph = pGraphButton.getSelection();\r
62                         }\r
63                 });\r
64                 importButton.addSelectionListener(new SelectionAdapter() {\r
65                         @Override\r
66                         public void widgetSelected(SelectionEvent e) {\r
67                                 createImporter = importButton.getSelection();\r
68                         }\r
69                 });\r
70                 exportButton.addSelectionListener(new SelectionAdapter() {\r
71                         @Override\r
72                         public void widgetSelected(SelectionEvent e) {\r
73                                 createExporter = exportButton.getSelection();\r
74                         }\r
75                 });\r
76                 \r
77                 setControl(composite);\r
78                 setPageComplete(false);\r
79         }\r
80         \r
81         @Override\r
82         public void fileSelected(FileOrDirectorySelectionWidget source, String[] filename) {\r
83                 setPageComplete(schemaSelection.getFilename() != null && pluginSelection.getFilename() != null);\r
84                 \r
85         }\r
86         \r
87         public boolean isCreateExporter() {\r
88                 return createExporter;\r
89         }\r
90         \r
91         public boolean isCreateImporter() {\r
92                 return createImporter;\r
93         }\r
94         \r
95         public boolean isCreatePGraph() {\r
96                 return createPGraph;\r
97         }\r
98         \r
99         public String getSchemaFilename() {\r
100                 if (schemaSelection.getFilename() == null ||schemaSelection.getFilename().length == 0)\r
101                         return null;\r
102                 return schemaSelection.getFilename()[0];\r
103         }\r
104         \r
105         public String getConfigurationFilename() {\r
106                 if (configurationSelection.getFilename() == null || configurationSelection.getFilename().length == 0)\r
107                         return null;\r
108                 return configurationSelection.getFilename()[0];\r
109         }\r
110         \r
111         public String getPluginFilename() {\r
112                 if (pluginSelection.getFilename() == null ||pluginSelection.getFilename().length == 0)\r
113                         return null;\r
114                 return pluginSelection.getFilename()[0];\r
115         }\r
116 \r
117 }\r