X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=org.simantics.xml.sax.ui%2Fsrc%2Forg%2Fsimantics%2Fxml%2Fsax%2Fui%2Fdatawizard%2FInputSelectionPage.java;fp=org.simantics.xml.sax.ui%2Fsrc%2Forg%2Fsimantics%2Fxml%2Fsax%2Fui%2Fdatawizard%2FInputSelectionPage.java;h=0af558c275cb617c5c3bac6479961a5b3dc8819e;hb=fc60d91049c46ee5b6107da4d4c54eada4a9f21c;hp=0000000000000000000000000000000000000000;hpb=ab4fc05981803ce2c430f93f34b8b6a8f85a53ce;p=simantics%2Finterop.git diff --git a/org.simantics.xml.sax.ui/src/org/simantics/xml/sax/ui/datawizard/InputSelectionPage.java b/org.simantics.xml.sax.ui/src/org/simantics/xml/sax/ui/datawizard/InputSelectionPage.java new file mode 100644 index 0000000..0af558c --- /dev/null +++ b/org.simantics.xml.sax.ui/src/org/simantics/xml/sax/ui/datawizard/InputSelectionPage.java @@ -0,0 +1,73 @@ +package org.simantics.xml.sax.ui.datawizard; + +import org.eclipse.jface.layout.GridDataFactory; +import org.eclipse.jface.wizard.WizardPage; +import org.eclipse.swt.SWT; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Composite; +import org.simantics.utils.ui.widgets.DirectorySelectionWidget; +import org.simantics.utils.ui.widgets.FileOrDirectorySelectionWidget; +import org.simantics.utils.ui.widgets.FileSelectionListener; +import org.simantics.utils.ui.widgets.FileSelectionWidget; + +public class InputSelectionPage extends WizardPage implements FileSelectionListener{ + + public InputSelectionPage() { + super("InputPage","Select input files and output plug-in",null); + } + + private FileSelectionWidget schemaSelection; + private FileSelectionWidget configurationSelection; + private DirectorySelectionWidget pluginSelection; + + + @Override + public void createControl(Composite parent) { + Composite composite = new Composite(parent, SWT.NONE); + composite.setLayout(new GridLayout(1,false)); + GridDataFactory.fillDefaults().grab(true, true).align(SWT.FILL, SWT.FILL).applyTo(composite); + + schemaSelection = new FileSelectionWidget(composite, "XML data files", SWT.OPEN|SWT.MULTI); + configurationSelection = new FileSelectionWidget(composite, "Configuration file (Optional)", SWT.OPEN); + pluginSelection = new DirectorySelectionWidget(composite, "Output plug-in", SWT.SAVE); + + schemaSelection.setFilterExtensions(new String[]{"*.*"}); + schemaSelection.setFilterNames(new String[]{"XML data files"}); + + configurationSelection.setFilterExtensions(new String[]{"*.xml"}); + configurationSelection.setFilterNames(new String[]{"XML files"}); + + schemaSelection.addListener(this); + pluginSelection.addListener(this); + + + + setControl(composite); + setPageComplete(false); + } + + @Override + public void fileSelected(FileOrDirectorySelectionWidget source, String[] filename) { + setPageComplete(schemaSelection.getFilename() != null && pluginSelection.getFilename() != null); + + } + + public String[] getDataFilenames() { + if (schemaSelection.getFilename() == null ||schemaSelection.getFilename().length == 0) + return null; + return schemaSelection.getFilename(); + } + + public String getConfigurationFilename() { + if (configurationSelection.getFilename() == null || configurationSelection.getFilename().length == 0) + return null; + return configurationSelection.getFilename()[0]; + } + + public String getPluginFilename() { + if (pluginSelection.getFilename() == null ||pluginSelection.getFilename().length == 0) + return null; + return pluginSelection.getFilename()[0]; + } + +}