]> gerrit.simantics Code Review - simantics/interop.git/blob - org.simantics.xml.sax.ui/src/org/simantics/xml/sax/ui/wizard/InputSelectionPage.java
XML Schema converter
[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.layout.GridLayout;\r
7 import org.eclipse.swt.widgets.Composite;\r
8 import org.simantics.utils.ui.widgets.DirectorySelectionWidget;\r
9 import org.simantics.utils.ui.widgets.FileOrDirectorySelectionWidget;\r
10 import org.simantics.utils.ui.widgets.FileSelectionListener;\r
11 import org.simantics.utils.ui.widgets.FileSelectionWidget;\r
12 \r
13 public class InputSelectionPage extends WizardPage implements FileSelectionListener{\r
14         \r
15         public InputSelectionPage() {\r
16                 super("InputPage","Select input files and output plug-in",null);\r
17         }\r
18 \r
19         private FileSelectionWidget schemaSelection;\r
20         private FileSelectionWidget configurationSelection;\r
21         private DirectorySelectionWidget pluginSelection;\r
22 \r
23         @Override\r
24         public void createControl(Composite parent) {\r
25                 Composite composite = new Composite(parent, SWT.NONE);\r
26                 composite.setLayout(new GridLayout(1,false));\r
27                 GridDataFactory.fillDefaults().grab(true, true).align(SWT.FILL, SWT.FILL).applyTo(composite);\r
28                 \r
29                 schemaSelection = new FileSelectionWidget(composite, "Schema file", SWT.OPEN);\r
30                 configurationSelection = new FileSelectionWidget(composite, "Configuration file (Optional)", SWT.OPEN);\r
31                 pluginSelection = new DirectorySelectionWidget(composite, "Output plug-in", SWT.SAVE);\r
32                 \r
33                 schemaSelection.setFilterExtensions(new String[]{"*.xsd"});\r
34                 schemaSelection.setFilterNames(new String[]{"XML schema files"});\r
35                 \r
36                 configurationSelection.setFilterExtensions(new String[]{"*.xml"});\r
37                 configurationSelection.setFilterNames(new String[]{"XML files"});\r
38                 \r
39                 schemaSelection.addListener(this);\r
40                 pluginSelection.addListener(this);\r
41                 \r
42                 setControl(composite);\r
43                 setPageComplete(false);\r
44         }\r
45         \r
46         @Override\r
47         public void fileSelected(FileOrDirectorySelectionWidget source, String[] filename) {\r
48                 setPageComplete(schemaSelection.getFilename() != null && pluginSelection.getFilename() != null);\r
49                 \r
50         }\r
51         \r
52         public String getSchemaFilename() {\r
53                 if (schemaSelection.getFilename() == null ||schemaSelection.getFilename().length == 0)\r
54                         return null;\r
55                 return schemaSelection.getFilename()[0];\r
56         }\r
57         \r
58         public String getConfigurationFilename() {\r
59                 if (configurationSelection.getFilename() == null || configurationSelection.getFilename().length == 0)\r
60                         return null;\r
61                 return configurationSelection.getFilename()[0];\r
62         }\r
63         \r
64         public String getPluginFilename() {\r
65                 if (pluginSelection.getFilename() == null ||pluginSelection.getFilename().length == 0)\r
66                         return null;\r
67                 return pluginSelection.getFilename()[0];\r
68         }\r
69 \r
70 }\r