org.knime.core.node.defaultnodesettings
Class DialogComponentColumnNameSelection

java.lang.Object
  extended by org.knime.core.node.defaultnodesettings.DialogComponent
      extended by org.knime.core.node.defaultnodesettings.DialogComponentColumnNameSelection

public class DialogComponentColumnNameSelection
extends DialogComponent

Provides a standard component for a dialog that allows to select a column in a given DataTableSpec. Provides label and list (possibly filtered by a given DataCell type) as well as functionality to load/store into a settings model. The column name selection list will provide a RowID option if the provided settings model object is an instance of SettingsModelColumnName which provides the additional method useRowID to check if the RowID was selected.

Author:
M. Berthold, University of Konstanz

Nested Class Summary
 
Nested classes/interfaces inherited from class org.knime.core.node.defaultnodesettings.DialogComponent
DialogComponent.EmptySettingsModel
 
Field Summary
 
Fields inherited from class org.knime.core.node.defaultnodesettings.DialogComponent
DEFAULT_BG, DEFAULT_FG
 
Constructor Summary
DialogComponentColumnNameSelection(SettingsModelString model, String label, int specIndex, boolean isRequired, boolean addNoneCol, Class<? extends DataValue>... classFilter)
          Constructor that puts label and combobox into the panel.
DialogComponentColumnNameSelection(SettingsModelString model, String label, int specIndex, boolean isRequired, boolean addNoneCol, ColumnFilter columnFilter)
          Constructor that puts label and combobox into the panel.
DialogComponentColumnNameSelection(SettingsModelString model, String label, int specIndex, boolean isRequired, Class<? extends DataValue>... classFilter)
          Constructor that puts label and combobox into the panel.
DialogComponentColumnNameSelection(SettingsModelString model, String label, int specIndex, boolean isRequired, ColumnFilter columnFilter)
          Constructor that puts label and combobox into the panel.
DialogComponentColumnNameSelection(SettingsModelString model, String label, int specIndex, Class<? extends DataValue>... classFilter)
          Constructor that puts label and combobox into the panel.
DialogComponentColumnNameSelection(SettingsModelString model, String label, int specIndex, ColumnFilter columnFilter)
          Constructor that puts label and combobox into the panel.
 
Method Summary
protected  void checkConfigurabilityBeforeLoad(PortObjectSpec[] specs)
          Will be called before the new values are loaded from the NodeSettings object.
 String getSelected()
          Returns the name of the currently selected item.
 DataColumnSpec getSelectedAsSpec()
          Returns the DataColumnSpec of the currently selected item.
protected  void setEnabledComponents(boolean enabled)
          This method is called by the above (final) DialogComponent.setEnabled(boolean) method.
 void setToolTipText(String text)
          Implement this so it sets the tooltip on your component(s).
protected  void updateComponent()
          Read the value from the DialogComponent.EmptySettingsModel and set/display it in the component.
protected  void validateSettingsBeforeSave()
          Will be called before the value of the component is saved into the NodeSettings object.
 
Methods inherited from class org.knime.core.node.defaultnodesettings.DialogComponent
clearError, getComponentPanel, getLastTableSpec, getLastTableSpecs, getModel, loadSettingsFrom, saveSettingsTo, setEnabled, showError
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DialogComponentColumnNameSelection

public DialogComponentColumnNameSelection(SettingsModelString model,
                                          String label,
                                          int specIndex,
                                          ColumnFilter columnFilter)
Constructor that puts label and combobox into the panel. The dialog will not open until the incoming table spec contains a column compatible to one of the specified DataValue classes.

Parameters:
model - the model holding the value of this component. If the model is an instance of SettingsModelColumnName a RowID option is added to the select list.
label - label for dialog in front of checkbox
specIndex - index of (input) port listing available columns
columnFilter - ColumnFilter. The combo box will allow to select only columns compatible with the column filter. All other columns will be ignored.

DialogComponentColumnNameSelection

public DialogComponentColumnNameSelection(SettingsModelString model,
                                          String label,
                                          int specIndex,
                                          Class<? extends DataValue>... classFilter)
Constructor that puts label and combobox into the panel. The dialog will not open until the incoming table spec contains a column compatible to one of the specified DataValue classes.

Parameters:
model - the model holding the value of this component. If the model is an instance of SettingsModelColumnName a RowID option is added to the select list.
label - label for dialog in front of checkbox
specIndex - index of (input) port listing available columns
classFilter - which classes are available for selection

DialogComponentColumnNameSelection

public DialogComponentColumnNameSelection(SettingsModelString model,
                                          String label,
                                          int specIndex,
                                          boolean isRequired,
                                          Class<? extends DataValue>... classFilter)
Constructor that puts label and combobox into the panel.

Parameters:
model - the model holding the value of this component. If the model is an instance of SettingsModelColumnName a RowID option is added to the select list.
label - label for dialog in front of checkbox
specIndex - index of (input) port listing available columns
isRequired - true, if the component should throw an exception in case of no available compatible column, false otherwise.
classFilter - which classes are available for selection

DialogComponentColumnNameSelection

public DialogComponentColumnNameSelection(SettingsModelString model,
                                          String label,
                                          int specIndex,
                                          boolean isRequired,
                                          boolean addNoneCol,
                                          Class<? extends DataValue>... classFilter)
Constructor that puts label and combobox into the panel.

Parameters:
model - the model holding the value of this component. If the model is an instance of SettingsModelColumnName a RowID option is added to the select list.
label - label for dialog in front of checkbox
specIndex - index of (input) port listing available columns
isRequired - true, if the component should throw an exception in case of no available compatible column, false otherwise.
addNoneCol - true, if a none option should be added to the column list
classFilter - which classes are available for selection

DialogComponentColumnNameSelection

public DialogComponentColumnNameSelection(SettingsModelString model,
                                          String label,
                                          int specIndex,
                                          boolean isRequired,
                                          ColumnFilter columnFilter)
Constructor that puts label and combobox into the panel.

Parameters:
model - the model holding the value of this component. If the model is an instance of SettingsModelColumnName a RowID option is added to the select list.
label - label for dialog in front of checkbox
specIndex - index of (input) port listing available columns
isRequired - true, if the component should throw an exception in case of no available compatible column, false otherwise.
columnFilter - ColumnFilter. The combo box will allow to select only columns compatible with the column filter. All other columns will be ignored.

DialogComponentColumnNameSelection

public DialogComponentColumnNameSelection(SettingsModelString model,
                                          String label,
                                          int specIndex,
                                          boolean isRequired,
                                          boolean addNoneCol,
                                          ColumnFilter columnFilter)
Constructor that puts label and combobox into the panel.

Parameters:
model - the model holding the value of this component. If the model is an instance of SettingsModelColumnName a RowID option is added to the select list.
label - label for dialog in front of checkbox
specIndex - index of (input) port listing available columns
isRequired - true, if the component should throw an exception in case of no available compatible column, false otherwise.
addNoneCol - true, if a none option should be added to the column list
columnFilter - ColumnFilter. The combo box will allow to select only columns compatible with the column filter. All other columns will be ignored.
Method Detail

getSelectedAsSpec

public final DataColumnSpec getSelectedAsSpec()
Returns the DataColumnSpec of the currently selected item. This method delegates to ColumnSelectionPanel.getSelectedColumnAsSpec().

Returns:
The currently selected item as DataColumnSpec or null if none is selected (the list is empty) or the RowID should be used (check return value of the useRowID method).

getSelected

public final String getSelected()
Returns the name of the currently selected item. This method delegates to ColumnSelectionPanel.getSelectedColumn().

Returns:
The name of the currently selected item or null if none is selected (the list is empty) or the RowID should be used (check return value of the useRowID method).

updateComponent

protected void updateComponent()
Read the value from the DialogComponent.EmptySettingsModel and set/display it in the component. (Called after loading new values in the model to ensure they are transfered into the component.) Implementations should set the new value(s) in the components, should clear any possible error indications, and should also take over the enable state.

Specified by:
updateComponent in class DialogComponent

checkConfigurabilityBeforeLoad

protected void checkConfigurabilityBeforeLoad(PortObjectSpec[] specs)
                                       throws NotConfigurableException
Will be called before the new values are loaded from the NodeSettings object. Can be used to avoid loading due to missing, invalid, or inappropriate incoming table specs.
Note: This is called even if the component is disabled. Don't reject specs that might be handled by other components

Specified by:
checkConfigurabilityBeforeLoad in class DialogComponent
Parameters:
specs - the specs from the input ports.
Throws:
NotConfigurableException - if the component can't be used due to inappropriate table specs. (Prevents the dialog from being opened.)

validateSettingsBeforeSave

protected void validateSettingsBeforeSave()
                                   throws InvalidSettingsException
Will be called before the value of the component is saved into the NodeSettings object. Can be used to commit values, to update the model and must be used to validate the entered value. NOTE: it will be called even if the model is disabled.

Specified by:
validateSettingsBeforeSave in class DialogComponent
Throws:
InvalidSettingsException - if the entered values are invalid

setEnabledComponents

protected void setEnabledComponents(boolean enabled)
This method is called by the above (final) DialogComponent.setEnabled(boolean) method. Derived classes should disable all the contained components in here.

Specified by:
setEnabledComponents in class DialogComponent
Parameters:
enabled - the new status of the component
See Also:
DialogComponent.setEnabled(boolean)

setToolTipText

public void setToolTipText(String text)
Implement this so it sets the tooltip on your component(s).

Specified by:
setToolTipText in class DialogComponent
Parameters:
text - the tool tip text to set.
See Also:
JComponent.setToolTipText(java.lang.String)


Copyright, 2003 - 2010. All rights reserved.
University of Konstanz, Germany.
Chair for Bioinformatics and Information Mining, Prof. Dr. Michael R. Berthold.
You may not modify, publish, transmit, transfer or sell, reproduce, create derivative works from, distribute, perform, display, or in any way exploit any of the content, in whole or in part, except as otherwise expressly permitted in writing by the copyright owner or as specified in the license file distributed with this product.