org.knime.core.node.util
Class ColumnFilterPanel

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JPanel
                  extended by org.knime.core.node.util.ColumnFilterPanel
All Implemented Interfaces:
ImageObserver, MenuContainer, Serializable, Accessible
Direct Known Subclasses:
FilterColumnPanel

public class ColumnFilterPanel
extends JPanel

Panel is used to select/filter a certain number of columns.

You can add a property change listener to this class that is notified when the include list changes.

Author:
Thomas Gabriel, University of Konstanz
See Also:
Serialized Form

Nested Class Summary
static class ColumnFilterPanel.ValueClassFilter
          Class that filters all columns based on a given set of compatible DataValue classes.
 
Nested classes/interfaces inherited from class javax.swing.JPanel
JPanel.AccessibleJPanel
 
Nested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
 
Field Summary
static String EXCLUDED_COLUMNS
          Settings key for the excluded columns.
static String INCLUDED_COLUMNS
          Settings key for the excluded columns.
 
Fields inherited from class javax.swing.JComponent
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
ColumnFilterPanel()
          Deprecated. Use the constructor ColumnFilterPanel(boolean) instead
ColumnFilterPanel(boolean showKeepAllBox)
          Creates a new filter column panel with three component which are the include list, button panel to shift elements between the two lists, and the exclude list.
ColumnFilterPanel(boolean showKeepAllBox, Class<? extends DataValue>... filterValueClasses)
          Creates a new filter column panel with three component which are the include list, button panel to shift elements between the two lists, and the exclude list.
ColumnFilterPanel(boolean showKeepAllBox, ColumnFilter filter)
          Creates a new filter column panel with three component which are the include list, button panel to shift elements between the two lists, and the exclude list.
ColumnFilterPanel(Class<? extends DataValue>... filterValueClasses)
          Deprecated. Use the constructor ColumnFilterPanel(boolean, Class...) instead
ColumnFilterPanel(ColumnFilter filter)
          Deprecated. Use the constructor ColumnFilterPanel(boolean, ColumnFilter) instead
 
Method Summary
 void addChangeListener(ChangeListener listener)
          Adds a listener which gets informed whenever the column filtering changes.
 Set<String> getExcludedColumnList()
          Deprecated. Use getExcludedColumnSet() instead
 Set<String> getExcludedColumnSet()
          Returns all columns from the exclude list.
 Set<String> getIncludedColumnList()
          Deprecated. Use getIncludedColumnSet() instead
 Set<String> getIncludedColumnSet()
          Returns all columns from the include list.
 DataType getType(String name)
          Returns the data type for the given cell retrieving it from the initial DataTableSpec.
 void hideColumns(DataColumnSpec... columns)
          Removes the given columns form either include or exclude list and notifies all listeners.
 boolean isKeepAllSelected()
          If the keep all box is visible and is selected.
 void removeAllColumnFilterChangeListener()
          Removes all column filter change listener.
 void removeChangeListener(ChangeListener listener)
          Removes the given listener from this filter column panel.
 void resetHiding()
          Re-adds all remove/hidden columns to the exclude list.
 void setAddAllButtonText(String text)
          Setter for the original "Add All" button.
 void setAddButtonText(String text)
          Setter for the original "Add" button.
 void setEnabled(boolean enabled)
          Enables or disables all components on this panel.
 void setExcludeTitle(String title)
          Sets the title of the exclude panel.
 void setIncludeTitle(String title)
          Sets the title of the include panel.
 void setKeepAllSelected(boolean select)
          Sets a new selection for the keep all columns box.
protected  void setListCellRenderer(ListCellRenderer renderer)
          Set the renderer that is used for both list in this panel.
 void setRemoveAllButtonText(String text)
          Setter for the original "Remove All" button.
 void setRemoveButtonText(String text)
          Setter for the original "Remove" button.
 void update(DataTableSpec spec, boolean exclude, Collection<String> list)
          Updates this filter panel by removing all current selections from the include and exclude list.
 void update(DataTableSpec spec, boolean exclude, String... cells)
          Updates this filter panel by removing all current selections from the include and exclude list.
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusBackward, transferFocusDownCycle, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

INCLUDED_COLUMNS

public static final String INCLUDED_COLUMNS
Settings key for the excluded columns.

See Also:
Constant Field Values

EXCLUDED_COLUMNS

public static final String EXCLUDED_COLUMNS
Settings key for the excluded columns.

See Also:
Constant Field Values
Constructor Detail

ColumnFilterPanel

@Deprecated
public ColumnFilterPanel()
Deprecated. Use the constructor ColumnFilterPanel(boolean) instead

Creates a new filter column panel with three component which are the include list, button panel to shift elements between the two lists, and the exclude list. The include list then will contain all values to filter.

See Also:
update(DataTableSpec, boolean, Collection), update(DataTableSpec, boolean, String[])

ColumnFilterPanel

public ColumnFilterPanel(boolean showKeepAllBox)
Creates a new filter column panel with three component which are the include list, button panel to shift elements between the two lists, and the exclude list. The include list then will contain all values to filter.

Parameters:
showKeepAllBox - true, if an check box to keep all columns is shown
See Also:
update(DataTableSpec, boolean, Collection), update(DataTableSpec, boolean, String[])

ColumnFilterPanel

public ColumnFilterPanel(boolean showKeepAllBox,
                         Class<? extends DataValue>... filterValueClasses)
Creates a new filter column panel with three component which are the include list, button panel to shift elements between the two lists, and the exclude list. The include list then will contain all values to filter.

Parameters:
filterValueClasses - an array of type DataValue classes only allowed for selection. Will be check during update
showKeepAllBox - true, if an check box to keep all columns is shown
See Also:
update(DataTableSpec, boolean, Collection), update(DataTableSpec, boolean, String...)

ColumnFilterPanel

@Deprecated
public ColumnFilterPanel(Class<? extends DataValue>... filterValueClasses)
Deprecated. Use the constructor ColumnFilterPanel(boolean, Class...) instead

Creates a new filter column panel with three component which are the include list, button panel to shift elements between the two lists, and the exclude list. The include list then will contain all values to filter.

Parameters:
filterValueClasses - an array of type DataValue classes only allowed for selection. Will be check during update
See Also:
update(DataTableSpec, boolean, Collection), update(DataTableSpec, boolean, String...)

ColumnFilterPanel

@Deprecated
public ColumnFilterPanel(ColumnFilter filter)
Deprecated. Use the constructor ColumnFilterPanel(boolean, ColumnFilter) instead

Creates a new filter column panel with three component which are the include list, button panel to shift elements between the two lists, and the exclude list. The include list then will contain all values to filter.

Parameters:
filter - specifies valid column values. Will be check during update
See Also:
update(DataTableSpec, boolean, Collection), update(DataTableSpec, boolean, String...)

ColumnFilterPanel

public ColumnFilterPanel(boolean showKeepAllBox,
                         ColumnFilter filter)
Creates a new filter column panel with three component which are the include list, button panel to shift elements between the two lists, and the exclude list. The include list then will contain all values to filter.

Parameters:
showKeepAllBox - true, if an check box to keep all columns is shown
filter - specifies valid column values. Will be check during update
See Also:
update(DataTableSpec, boolean, Collection), update(DataTableSpec, boolean, String...)
Method Detail

setEnabled

public void setEnabled(boolean enabled)
Enables or disables all components on this panel.

Overrides:
setEnabled in class JComponent

addChangeListener

public void addChangeListener(ChangeListener listener)
Adds a listener which gets informed whenever the column filtering changes.

Parameters:
listener - the listener

removeChangeListener

public void removeChangeListener(ChangeListener listener)
Removes the given listener from this filter column panel.

Parameters:
listener - the listener.

removeAllColumnFilterChangeListener

public void removeAllColumnFilterChangeListener()
Removes all column filter change listener.


isKeepAllSelected

public final boolean isKeepAllSelected()
If the keep all box is visible and is selected.

Returns:
true, if keep all columns check box is selected, otherwise false

setKeepAllSelected

public final void setKeepAllSelected(boolean select)
Sets a new selection for the keep all columns box.

Parameters:
select - true, if the box should be selected

update

public void update(DataTableSpec spec,
                   boolean exclude,
                   String... cells)
Updates this filter panel by removing all current selections from the include and exclude list. The include list will contain all column names from the spec afterwards.

Parameters:
spec - the spec to retrieve the column names from
exclude - the flag if cells contains the columns to exclude (otherwise include).
cells - an array of data cells to either in- or exclude.

update

public void update(DataTableSpec spec,
                   boolean exclude,
                   Collection<String> list)
Updates this filter panel by removing all current selections from the include and exclude list. The include list will contains all column names from the spec afterwards.

Parameters:
spec - the spec to retrieve the column names from
exclude - the flag if list contains the columns to exclude otherwise include
list - the list of columns to exclude or include

getExcludedColumnList

@Deprecated
public Set<String> getExcludedColumnList()
Deprecated. Use getExcludedColumnSet() instead

Returns all columns from the exclude list.

Returns:
a set of all columns from the exclude list

getExcludedColumnSet

public Set<String> getExcludedColumnSet()
Returns all columns from the exclude list.

Returns:
a set of all columns from the exclude list

getIncludedColumnList

@Deprecated
public Set<String> getIncludedColumnList()
Deprecated. Use getIncludedColumnSet() instead

Returns all columns from the include list.

Returns:
a list of all columns from the include list

getIncludedColumnSet

public Set<String> getIncludedColumnSet()
Returns all columns from the include list.

Returns:
a list of all columns from the include list

getType

public DataType getType(String name)
Returns the data type for the given cell retrieving it from the initial DataTableSpec. If this name could not found, return null.

Parameters:
name - the column name to get the data type for
Returns:
the data type or null

setListCellRenderer

protected final void setListCellRenderer(ListCellRenderer renderer)
Set the renderer that is used for both list in this panel.

Parameters:
renderer - the new renderer being used
See Also:
JList.setCellRenderer(javax.swing.ListCellRenderer)

hideColumns

public final void hideColumns(DataColumnSpec... columns)
Removes the given columns form either include or exclude list and notifies all listeners. Does not throw an exception if the argument contains null elements or is not contained in any of the lists.

Parameters:
columns - the columns to remove

resetHiding

public final void resetHiding()
Re-adds all remove/hidden columns to the exclude list.


setIncludeTitle

public final void setIncludeTitle(String title)
Sets the title of the include panel.

Parameters:
title - the new title

setExcludeTitle

public final void setExcludeTitle(String title)
Sets the title of the exclude panel.

Parameters:
title - the new title

setRemoveAllButtonText

public void setRemoveAllButtonText(String text)
Setter for the original "Remove All" button.

Parameters:
text - the new button title

setAddAllButtonText

public void setAddAllButtonText(String text)
Setter for the original "Add All" button.

Parameters:
text - the new button title

setRemoveButtonText

public void setRemoveButtonText(String text)
Setter for the original "Remove" button.

Parameters:
text - the new button title

setAddButtonText

public void setAddButtonText(String text)
Setter for the original "Add" button.

Parameters:
text - the new button title


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.