1 package org.simantics.xml.sax.ui.wizard;
\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
16 public class InputSelectionPage extends WizardPage implements FileSelectionListener{
\r
18 public InputSelectionPage() {
\r
19 super("InputPage","Select input files and output plug-in",null);
\r
22 private FileSelectionWidget schemaSelection;
\r
23 private FileSelectionWidget configurationSelection;
\r
24 private DirectorySelectionWidget pluginSelection;
\r
26 boolean createPGraph = true;
\r
27 boolean createImporter = true;
\r
28 boolean createExporter = true;
\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
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
40 schemaSelection.setFilterExtensions(new String[]{"*.xsd"});
\r
41 schemaSelection.setFilterNames(new String[]{"XML schema files"});
\r
43 configurationSelection.setFilterExtensions(new String[]{"*.xml"});
\r
44 configurationSelection.setFilterNames(new String[]{"XML files"});
\r
46 schemaSelection.addListener(this);
\r
47 pluginSelection.addListener(this);
\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
60 public void widgetSelected(SelectionEvent e) {
\r
61 createPGraph = pGraphButton.getSelection();
\r
64 importButton.addSelectionListener(new SelectionAdapter() {
\r
66 public void widgetSelected(SelectionEvent e) {
\r
67 createImporter = importButton.getSelection();
\r
70 exportButton.addSelectionListener(new SelectionAdapter() {
\r
72 public void widgetSelected(SelectionEvent e) {
\r
73 createExporter = exportButton.getSelection();
\r
77 setControl(composite);
\r
78 setPageComplete(false);
\r
82 public void fileSelected(FileOrDirectorySelectionWidget source, String[] filename) {
\r
83 setPageComplete(schemaSelection.getFilename() != null && pluginSelection.getFilename() != null);
\r
87 public boolean isCreateExporter() {
\r
88 return createExporter;
\r
91 public boolean isCreateImporter() {
\r
92 return createImporter;
\r
95 public boolean isCreatePGraph() {
\r
96 return createPGraph;
\r
99 public String getSchemaFilename() {
\r
100 if (schemaSelection.getFilename() == null ||schemaSelection.getFilename().length == 0)
\r
102 return schemaSelection.getFilename()[0];
\r
105 public String getConfigurationFilename() {
\r
106 if (configurationSelection.getFilename() == null || configurationSelection.getFilename().length == 0)
\r
108 return configurationSelection.getFilename()[0];
\r
111 public String getPluginFilename() {
\r
112 if (pluginSelection.getFilename() == null ||pluginSelection.getFilename().length == 0)
\r
114 return pluginSelection.getFilename()[0];
\r