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]; } }