package de.mpicbg.knime.knutils.ui; import de.mpicbg.knime.knutils.AbstractConfigDialog; import org.knime.core.data.DataTableSpec; import org.knime.core.node.NodeSettingsRO; import org.knime.core.node.NotConfigurableException; import org.knime.core.node.defaultnodesettings.SettingsModelString; import javax.swing.filechooser.FileNameExtensionFilter; /** * Document me! * * @author Holger Brandl */ public class DefaultMicroscopeReaderDialog extends AbstractConfigDialog { FileSelectPanel fileSelectionPanel; public SettingsModelString fileChooserProperty; public String fileNameFilterDesc; private String[] fileNameFilterSuffixes; public DefaultMicroscopeReaderDialog(String fileNameFilterDesc, String... fileNameFilterSuffixes) { super(null); this.fileNameFilterSuffixes = fileNameFilterSuffixes; this.fileNameFilterDesc = fileNameFilterDesc; createControls(); } public void setFileNameFilterSuffixes(String[] fileNameFilterSuffix) { this.fileNameFilterSuffixes = fileNameFilterSuffix; fileSelectionPanel.setExtensionFilter(createExtensionFilter()); } @Override public void createControls() { fileChooserProperty = createFileChooser(); // fileChooserProperty.addChangeListener(new ChangeListener() { // public void stateChanged(ChangeEvent changeEvent) { // // refetchColheader(); // } // }); registerProperty(fileChooserProperty); fileSelectionPanel = new FileSelectPanel(fileChooserProperty, createExtensionFilter()); removeOptionsTab(); addTab("Input Files", fileSelectionPanel); } private FileNameExtensionFilter createExtensionFilter() { return new FileNameExtensionFilter(fileNameFilterDesc, fileNameFilterSuffixes); } protected void removeOptionsTab() { removeTab("Options"); } private void refetchColheader() { // Sheet sheet = ExcelReader.openWorkSheet(new File(fileChooserProperty.getStringValue()), workSheetProperty.getIntValue()); // DataColumnSpec[] columnSpecs = AttributeUtils.compileSpecs(ExcelReader.readHeader(sheet, null)); // // List<String> names = new ArrayList<String>(); // for (int i = 0; i < columnSpecs.length; i++) { // names.add(columnSpecs[i].getName()); // } // // importColumWidget.replaceListItems(names); } @Override public void loadAdditionalSettingsFrom(NodeSettingsRO settings, DataTableSpec[] specs) throws NotConfigurableException { super.loadAdditionalSettingsFrom(settings, specs); fileSelectionPanel.updateListView(); } public static SettingsModelString createFileChooser() { return new SettingsModelString("input.files", ""); } }