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