org.knime.base.node.viz.histogram.impl
Class AbstractHistogramPlotter

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.base.node.viz.plotter.AbstractPlotter
                      extended by org.knime.base.node.viz.histogram.impl.AbstractHistogramPlotter
All Implemented Interfaces:
ComponentListener, ImageObserver, MenuContainer, Serializable, EventListener, Accessible, HiLiteListener
Direct Known Subclasses:
FixedHistogramPlotter, InteractiveHistogramPlotter

public abstract class AbstractHistogramPlotter
extends AbstractPlotter

Abstract class which is the coordinator between the HistogramDrawingPane and the AbstractHistogramVizModel.

Author:
Tobias Koetter, University of Konstanz
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class org.knime.base.node.viz.plotter.AbstractPlotter
AbstractPlotter.MovingMouseListener, AbstractPlotter.SelectionMouseListener, AbstractPlotter.ZoomMouseListener
 
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 ColumnFilter AGGREGATION_COLUMN_FILTER
          This column filter should be used in all aggregation column select boxes.
static String COL_NAME_COUNT
          This name is used for the y axis if the aggregation method is count.
static int INTERVAL_DIGITS
          Number of digits used in an interval.
static ColumnFilter X_COLUMN_FILTER
          This column filter should be used in all x column select boxes.
 
Fields inherited from class org.knime.base.node.viz.plotter.AbstractPlotter
DEFAULT_ZOOM_FACTOR, FADE_UNHILITED, HIDE_UNHILITED, SHOW_ALL, SHOW_HIDE
 
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
AbstractHistogramPlotter(AbstractHistogramProperties histogramProps, HiLiteHandler handler)
          Constructor for class AbstractHistogramPlotter.
 
Method Summary
 void clearSelection()
          Clears current selection.
 DataColumnSpec getAggregationColSpec()
           
 DataTableSpec getDataTableSpec()
           
protected  HistogramDrawingPane getHistogramDrawingPane()
          Convenience method to cast the drawing pane.
 AbstractHistogramProperties getHistogramPropertiesPanel()
           
 AbstractHistogramVizModel getHistogramVizModel()
          Returns the AbstractHistogramVizModel on which the visualisation bases on.
 String getXColName()
           
 void hiLite(KeyEvent event)
          Invoked when some item(s) were hilit.
 void hiLiteSelected()
          Is called from the menu entry hilite selected.
 void reset()
          Resets the Histogram data, the listener and display settings.
protected  void resetHistogramVizModel()
          This method is called when ever something basic has changed.
 void selectClickedElement(Point clicked)
          Implementing classes mayxselect the elements depending on the clicked position.
 void selectElementsIn(Rectangle selectionRectangle)
          Implementing classes may select the elements in the selection rectangle obtained from the mouse dragging in selection mode.
 boolean setAggregationMethod(AggregationMethod aggrMethod)
          Sets new aggregation columns and recalculates/repaints.
 void setHiLiteHandler(HiLiteHandler hiLiteHandler)
           
 void setHistogramLayout(HistogramLayout layout)
           
 void setHistogramVizModel(DataTableSpec tableSpec, AbstractHistogramVizModel vizModel)
          Sets the new AbstractHistogramVizModel.
protected  boolean setNumberOfBins(int noOfBins)
           
 boolean setShowEmptyBins(boolean showEmptyBins)
           
 void setShowGridLines(boolean showGridLines)
           
 boolean setShowMissingValBin(boolean showMissingValBin)
           
protected  void setXCoordinates()
          Sets the x coordinates for the current AbstractHistogramVizModel.
protected  void setYCoordinates()
          Sets the y coordinates for the current AbstractHistogramVizModel.
 void unHiLite(KeyEvent event)
          Invoked when some item(s) were unhilit.
 void unHiLiteAll(KeyEvent event)
          Invoked, when everything (all rows) are unhilit.
 void unHiLiteSelected()
          Is called by the menu entry unhilite selected.
protected  void updateBinWidth(int binWidth)
          Updates ONLY the width of the bins.
 void updatePaintModel()
          Do the mapping from the models data to screen coordinates here and pass the visualization model to the drawing pane.
 void updateSize()
          Whenever the size of the drawing pane is changed (zooming, resizing) this method is called in order to update the painting.
 
Methods inherited from class org.knime.base.node.viz.plotter.AbstractPlotter
addMouseListener, componentHidden, componentMoved, componentResized, componentShown, createNominalXCoordinate, createNominalYCoordinate, createXCoordinate, createXCoordinate, createYCoordinate, delegateAddHiLiteListener, delegateGetHiLitKeys, delegateHiLite, delegateHiLite, delegateIsHiLit, delegateIsHiLit, delegateRemoveAllHiLiteListeners, delegateRemoveHiLiteListener, delegateUnHiLite, delegateUnHiLite, delegateUnHiLiteAll, dispose, fillPopupMenu, fitToScreen, getClearHiliteAction, getCurrentMouseListener, getDataArrayIdx, getDataProvider, getDrawingPane, getDrawingPaneDimension, getHiliteAction, getHiLiteMenu, getMappedXValue, getMappedYValue, getProperties, getScreenYCoordinate, getUnhiliteAction, getXAxis, getYAxis, removeMouseListener, setAntialiasing, setDataArrayIdx, setDataProvider, setHeight, setPreserve, setXAxis, setYAxis, updateAxisLength, zoomByClick, zoomByWindow
 
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, setEnabled, 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

COL_NAME_COUNT

public static final String COL_NAME_COUNT
This name is used for the y axis if the aggregation method is count.

See Also:
Constant Field Values

INTERVAL_DIGITS

public static final int INTERVAL_DIGITS
Number of digits used in an interval.

See Also:
Constant Field Values

X_COLUMN_FILTER

public static final ColumnFilter X_COLUMN_FILTER
This column filter should be used in all x column select boxes.


AGGREGATION_COLUMN_FILTER

public static final ColumnFilter AGGREGATION_COLUMN_FILTER
This column filter should be used in all aggregation column select boxes.

Constructor Detail

AbstractHistogramPlotter

public AbstractHistogramPlotter(AbstractHistogramProperties histogramProps,
                                HiLiteHandler handler)
Constructor for class AbstractHistogramPlotter.

Parameters:
histogramProps - the histogram properties panel
handler - the HiLiteHandler to use
Method Detail

updateSize

public void updateSize()
Whenever the size of the drawing pane is changed (zooming, resizing) this method is called in order to update the painting.

Specified by:
updateSize in class AbstractPlotter

updatePaintModel

public void updatePaintModel()
Do the mapping from the models data to screen coordinates here and pass the visualization model to the drawing pane.

Specified by:
updatePaintModel in class AbstractPlotter

updateBinWidth

protected void updateBinWidth(int binWidth)
Updates ONLY the width of the bins.

Parameters:
binWidth - the new bin width

setXCoordinates

protected void setXCoordinates()
Sets the x coordinates for the current AbstractHistogramVizModel.


setYCoordinates

protected void setYCoordinates()
Sets the y coordinates for the current AbstractHistogramVizModel.


setNumberOfBins

protected boolean setNumberOfBins(int noOfBins)
Parameters:
noOfBins - sets the number of bins which is used for binning of none nominal attributes
Returns:
true if the value has changed

setAggregationMethod

public boolean setAggregationMethod(AggregationMethod aggrMethod)
Sets new aggregation columns and recalculates/repaints.

Parameters:
aggrMethod - The aggregation method
Returns:
true if the method has change otherwise false.

getHistogramDrawingPane

protected HistogramDrawingPane getHistogramDrawingPane()
Convenience method to cast the drawing pane.

Returns:
the underlying plotter drawing pane

getHistogramPropertiesPanel

public AbstractHistogramProperties getHistogramPropertiesPanel()
Returns:
the AbstractHistogramProperties panel

getAggregationColSpec

public DataColumnSpec getAggregationColSpec()
Returns:
the DataColumnSpec of the aggregation column

setShowGridLines

public void setShowGridLines(boolean showGridLines)
Parameters:
showGridLines - set to true if the grid lines of the y axis should be shown

setHistogramLayout

public void setHistogramLayout(HistogramLayout layout)
Parameters:
layout - the HistogramLayout to use

setShowEmptyBins

public boolean setShowEmptyBins(boolean showEmptyBins)
Parameters:
showEmptyBins - set to true if the empty bins should be displayed
Returns:
true if the value has changed

setShowMissingValBin

public boolean setShowMissingValBin(boolean showMissingValBin)
Parameters:
showMissingValBin - the showMissingvalBar to set
Returns:
true if the value has changed

reset

public void reset()
Resets the Histogram data, the listener and display settings.

Specified by:
reset in class AbstractPlotter

setHiLiteHandler

public void setHiLiteHandler(HiLiteHandler hiLiteHandler)
Overrides:
setHiLiteHandler in class AbstractPlotter
Parameters:
hiLiteHandler - The hiLiteHandler to set.

getDataTableSpec

public DataTableSpec getDataTableSpec()
Returns:
the table specification

getHistogramVizModel

public AbstractHistogramVizModel getHistogramVizModel()
Returns the AbstractHistogramVizModel on which the visualisation bases on. It creates the model if it doesn't exists by using the information of the getXColName method and the m_rowContainer variable.

Returns:
the model on which the visualisation is based on

resetHistogramVizModel

protected void resetHistogramVizModel()
This method is called when ever something basic has changed. This method forces the class to reload the HistogramData.


setHistogramVizModel

public void setHistogramVizModel(DataTableSpec tableSpec,
                                 AbstractHistogramVizModel vizModel)
Sets the new AbstractHistogramVizModel.

Parameters:
tableSpec - the new DataTableSpec
vizModel - the new AbstractHistogramVizModel

getXColName

public String getXColName()
Returns:
the name of the column used as x axis

hiLite

public void hiLite(KeyEvent event)
Invoked when some item(s) were hilit.

Specified by:
hiLite in interface HiLiteListener
Specified by:
hiLite in class AbstractPlotter
Parameters:
event - contains a list of row keys that were hilit

unHiLite

public void unHiLite(KeyEvent event)
Invoked when some item(s) were unhilit.

Specified by:
unHiLite in interface HiLiteListener
Specified by:
unHiLite in class AbstractPlotter
Parameters:
event - contains a list of row keys that were unhilit

unHiLiteAll

public void unHiLiteAll(KeyEvent event)
Invoked, when everything (all rows) are unhilit.

Parameters:
event - contains a list of row key that were unhilit

hiLiteSelected

public void hiLiteSelected()
Is called from the menu entry hilite selected. Should hilite selected elements.

Specified by:
hiLiteSelected in class AbstractPlotter

unHiLiteSelected

public void unHiLiteSelected()
Is called by the menu entry unhilite selected. Should unhilite selected elements.

Specified by:
unHiLiteSelected in class AbstractPlotter

selectClickedElement

public void selectClickedElement(Point clicked)
Implementing classes mayxselect the elements depending on the clicked position. This method is called only when the element should be selected, that is, it is already determined whether the CTRL key is pressed or not.

Specified by:
selectClickedElement in class AbstractPlotter
Parameters:
clicked - the clicked point

selectElementsIn

public void selectElementsIn(Rectangle selectionRectangle)
Implementing classes may select the elements in the selection rectangle obtained from the mouse dragging in selection mode.

Specified by:
selectElementsIn in class AbstractPlotter
Parameters:
selectionRectangle - the selection rectangle from the dragged mouse in selection mode

clearSelection

public void clearSelection()
Clears current selection.

Specified by:
clearSelection in class AbstractPlotter


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.