package au.com.acpfg.misc.biojava; import org.knime.core.node.defaultnodesettings.*; import org.knime.core.data.StringValue; import java.util.*; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; /** * <code>NodeDialog</code> for the "BioJavaProcessor" Node. * Analyses the specified data using BioJava (see http://www.biojava.org) and produces the result at output * * This node dialog derives from {@link DefaultNodeSettingsPane} which allows * creation of a simple dialog with standard components. If you need a more * complex dialog please derive directly from * {@link org.knime.core.node.NodeDialogPane}. * * @author Andrew Cassin */ public class BioJavaProcessorNodeDialog extends DefaultNodeSettingsPane { private final static String POSITION_TASK = "Residue Frequency by Position"; /** * New pane for configuring BioJavaProcessor node dialog. * This is just a suggestion to demonstrate possible default dialog * components. */ protected BioJavaProcessorNodeDialog() { super(); Collection<String> c = new ArrayList<String>(); for (String s : BioJavaProcessorNodeModel.getTasks()) { c.add(s); } SettingsModelString sm = BioJavaProcessorNodeModel.make_as_string(BioJavaProcessorNodeModel.CFGKEY_TASK); final SettingsModelIntegerBounded sm_maxlen = (SettingsModelIntegerBounded)BioJavaProcessorNodeModel.make(BioJavaProcessorNodeModel.CFGKEY_MAXLEN); boolean is_position_task = sm.getStringValue().equals(POSITION_TASK); sm_maxlen.setEnabled(is_position_task); sm.addChangeListener(new ChangeListener() { @Override public void stateChanged(ChangeEvent arg0) { SettingsModelString sm = ((SettingsModelString) arg0.getSource()); String task = sm.getStringValue(); sm_maxlen.setEnabled(task.equals(POSITION_TASK)); } }); DialogComponent dc = new DialogComponentStringSelection(sm, "Task:", c); addDialogComponent(dc); addDialogComponent(new DialogComponentColumnNameSelection(BioJavaProcessorNodeModel.make_as_string(BioJavaProcessorNodeModel.CFGKEY_SEQUENCE_COL), "Sequence:", 0, StringValue.class)); addDialogComponent(new DialogComponentStringSelection(BioJavaProcessorNodeModel.make_as_string(BioJavaProcessorNodeModel.CFGKEY_SEQTYPE), "Sequence Type:", "DNA", "RNA", "Protein")); addDialogComponent(new DialogComponentNumber(sm_maxlen, "Maximum Sequence Length:", 75)); } }