package au.com.acpfg.misc.fastawriter;
import org.knime.core.data.StringValue;
import org.knime.core.node.defaultnodesettings.DefaultNodeSettingsPane;
import org.knime.core.node.defaultnodesettings.DialogComponentBoolean;
import org.knime.core.node.defaultnodesettings.DialogComponentColumnNameSelection;
import org.knime.core.node.defaultnodesettings.DialogComponentFileChooser;
import org.knime.core.node.defaultnodesettings.DialogComponentNumber;
import org.knime.core.node.defaultnodesettings.SettingsModelBoolean;
import org.knime.core.node.defaultnodesettings.SettingsModelIntegerBounded;
import org.knime.core.node.defaultnodesettings.SettingsModelString;
/**
* <code>NodeDialog</code> for the "FastaWriter" Node.
* Creates a .fasta file with the specified accession, description, and sequence columns
*
* 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 FastaWriterNodeDialog extends DefaultNodeSettingsPane {
/**
* New pane for configuring FastaWriter node dialog.
* This is just a suggestion to demonstrate possible default dialog
* components.
*/
protected FastaWriterNodeDialog() {
super();
SettingsModelString filename = (SettingsModelString) FastaWriterNodeModel.make(FastaWriterNodeModel.CFGKEY_FILE);
SettingsModelString accsn = (SettingsModelString) FastaWriterNodeModel.make(FastaWriterNodeModel.CFGKEY_ACCSN);
SettingsModelString descr = (SettingsModelString) FastaWriterNodeModel.make(FastaWriterNodeModel.CFGKEY_DESCR);
SettingsModelString seq = (SettingsModelString) FastaWriterNodeModel.make(FastaWriterNodeModel.CFGKEY_SEQ);
SettingsModelBoolean overwrite= (SettingsModelBoolean) FastaWriterNodeModel.make(FastaWriterNodeModel.CFGKEY_OVERWRITE);
SettingsModelIntegerBounded maxll = (SettingsModelIntegerBounded) FastaWriterNodeModel.make(FastaWriterNodeModel.CFGKEY_MAXLINELEN);
addDialogComponent(new DialogComponentFileChooser(filename, "file-history", ".fasta|.fa|.fas"));
addDialogComponent(new DialogComponentBoolean(overwrite, "Overwrite OK?"));
addDialogComponent(new DialogComponentColumnNameSelection(accsn, "Accessions from:", 0, StringValue.class));
addDialogComponent(new DialogComponentColumnNameSelection(descr, "Annotation (description) from:", 0, StringValue.class));
addDialogComponent(new DialogComponentColumnNameSelection(seq, "Sequence (AA or DNA) from:", 0, StringValue.class));
addDialogComponent(new DialogComponentNumber(maxll, "Maximum Sequence Line Length (characters)", 10));
}
}