com.rapidminer.gui.tools
Class ExtendedJTable

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JTable
                  extended by com.rapidminer.gui.tools.ExtendedJTable
All Implemented Interfaces:
Reportable, Tableable, java.awt.event.MouseListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible, javax.swing.event.CellEditorListener, javax.swing.event.ListSelectionListener, javax.swing.event.RowSorterListener, javax.swing.event.TableColumnModelListener, javax.swing.event.TableModelListener, javax.swing.Scrollable
Direct Known Subclasses:
ANOVAMatrixViewerTable, AttributeEditor, ConfusionMatrixViewerTable, DataTableViewerTable, DataViewerTable, DBExampleSourceConfigurationWizardDataTable, ExampleSourceConfigurationWizardAttributeTypeTable, ExampleSourceConfigurationWizardDataTable, ExampleSourceConfigurationWizardValueTypeTable, MatrixPropertyTable, MetaDataViewerTable, PropertyTable

public class ExtendedJTable
extends javax.swing.JTable
implements Tableable, java.awt.event.MouseListener

This class extends a JTable in a way that editing is handled like it is expected, i.e. editing is properly stopped during focus losts, resizing, or column movement. The current value is then set to the model. The only way to abort the value change is by pressing the escape key.

The extended table is sortable per default. Developers should note that this feature might lead to problems if the columns contain different class types end different editors. In this case one of the constructors should be used which set the sortable flag to false.

Author:
Ingo Mierswa
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JTable
javax.swing.JTable.AccessibleJTable, javax.swing.JTable.DropLocation, javax.swing.JTable.PrintMode
 
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
static int DATE_FORMAT
           
static int DATE_TIME_FORMAT
           
static int NO_DATE_FORMAT
           
static int TIME_FORMAT
           
 
Fields inherited from class javax.swing.JTable
AUTO_RESIZE_ALL_COLUMNS, AUTO_RESIZE_LAST_COLUMN, AUTO_RESIZE_NEXT_COLUMN, AUTO_RESIZE_OFF, AUTO_RESIZE_SUBSEQUENT_COLUMNS, autoCreateColumnsFromModel, autoResizeMode, cellEditor, cellSelectionEnabled, columnModel, dataModel, defaultEditorsByColumnClass, defaultRenderersByColumnClass, editingColumn, editingRow, editorComp, gridColor, preferredViewportSize, rowHeight, rowMargin, rowSelectionAllowed, selectionBackground, selectionForeground, selectionModel, showHorizontalLines, showVerticalLines, tableHeader
 
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
ExtendedJTable()
           
ExtendedJTable(boolean sortable)
           
ExtendedJTable(boolean sortable, boolean columnMovable, boolean autoResize)
           
ExtendedJTable(javax.swing.table.TableModel model, boolean sortable)
           
ExtendedJTable(javax.swing.table.TableModel model, boolean sortable, boolean columnMovable)
           
ExtendedJTable(javax.swing.table.TableModel model, boolean sortable, boolean columnMovable, boolean autoResize)
           
ExtendedJTable(javax.swing.table.TableModel model, boolean sortable, boolean columnMovable, boolean autoResize, boolean useColoredCellRenderer, boolean fixFirstColumn)
           
 
Method Summary
 void addNotify()
           
 void columnMarginChanged(javax.swing.event.ChangeEvent e)
          Necessary to properly stopping the editing when a column is resized.
 void columnMoved(javax.swing.event.TableColumnModelEvent e)
          Necessary to properly stopping the editing when a column is moved (dragged).
 void finishReporting()
           
 java.lang.String getCell(int row, int column)
           
 CellColorProvider getCellColorProvider()
          The returned color provider will be used for the cell renderer.
 javax.swing.table.TableCellRenderer getCellRenderer(int row, int col)
           
 int getColumnNumber()
           
 int getDateFormat(int row, int column)
          Subclasses might overwrite this method which by default simply returns NO_DATE.
 ExtendedJScrollPane getExtendedScrollPane()
           
 java.awt.Dimension getIntercellSpacing()
           
 int getModelIndex(int rowIndex)
           
 int getRowNumber()
           
protected  ExtendedJTableSorterModel getTableSorter()
           
 java.lang.String getToolTipText(java.awt.event.MouseEvent e)
          This method ensures that the correct tool tip for the current table cell is delivered.
 boolean isFirstColumnHeader()
           
 boolean isFirstLineHeader()
           
 boolean isSortable()
           
 void mouseClicked(java.awt.event.MouseEvent e)
           
 void mouseEntered(java.awt.event.MouseEvent e)
           
 void mouseExited(java.awt.event.MouseEvent e)
           
 void mousePressed(java.awt.event.MouseEvent e)
           
 void mouseReleased(java.awt.event.MouseEvent e)
           
 void pack()
           
 void packColumn()
           
 void prepareReporting()
           
protected  java.lang.Object readResolve()
           
 void restoreOriginalColumnOrder()
           
 void selectCompleteColumn()
           
 void selectCompleteRow()
           
 void setCellColorProvider(CellColorProvider cellColorProvider)
          The given color provider will be used for the cell renderer.
 void setExtendedScrollPane(ExtendedJScrollPane scrollPane)
           
 void setFixFirstColumnForRearranging(boolean fixFirstColumn)
           
 void setModel(javax.swing.table.TableModel model)
           
 void setShowPopupMenu(boolean showPopupMenu)
           
 void setSortable(boolean sortable)
           
 void setSortingStatus(int status, boolean cancelSorting)
           
 boolean shouldUseColoredCellRenderer()
           
 void sortColumnsAccordingToNames()
           
 void unpack()
           
 
Methods inherited from class javax.swing.JTable
addColumn, addColumnSelectionInterval, addRowSelectionInterval, changeSelection, clearSelection, columnAdded, columnAtPoint, columnRemoved, columnSelectionChanged, configureEnclosingScrollPane, convertColumnIndexToModel, convertColumnIndexToView, convertRowIndexToModel, convertRowIndexToView, createDefaultColumnModel, createDefaultColumnsFromModel, createDefaultDataModel, createDefaultEditors, createDefaultRenderers, createDefaultSelectionModel, createDefaultTableHeader, createScrollPaneForTable, doLayout, editCellAt, editCellAt, editingCanceled, editingStopped, getAccessibleContext, getAutoCreateColumnsFromModel, getAutoCreateRowSorter, getAutoResizeMode, getCellEditor, getCellEditor, getCellRect, getCellSelectionEnabled, getColumn, getColumnClass, getColumnCount, getColumnModel, getColumnName, getColumnSelectionAllowed, getDefaultEditor, getDefaultRenderer, getDragEnabled, getDropLocation, getDropMode, getEditingColumn, getEditingRow, getEditorComponent, getFillsViewportHeight, getGridColor, getModel, getPreferredScrollableViewportSize, getPrintable, getRowCount, getRowHeight, getRowHeight, getRowMargin, getRowSelectionAllowed, getRowSorter, getScrollableBlockIncrement, getScrollableTracksViewportHeight, getScrollableTracksViewportWidth, getScrollableUnitIncrement, getSelectedColumn, getSelectedColumnCount, getSelectedColumns, getSelectedRow, getSelectedRowCount, getSelectedRows, getSelectionBackground, getSelectionForeground, getSelectionModel, getShowHorizontalLines, getShowVerticalLines, getSurrendersFocusOnKeystroke, getTableHeader, getUI, getUIClassID, getUpdateSelectionOnSort, getValueAt, initializeLocalVars, isCellEditable, isCellSelected, isColumnSelected, isEditing, isRowSelected, moveColumn, paramString, prepareEditor, prepareRenderer, print, print, print, print, print, processKeyBinding, removeColumn, removeColumnSelectionInterval, removeEditor, removeNotify, removeRowSelectionInterval, resizeAndRepaint, rowAtPoint, selectAll, setAutoCreateColumnsFromModel, setAutoCreateRowSorter, setAutoResizeMode, setCellEditor, setCellSelectionEnabled, setColumnModel, setColumnSelectionAllowed, setColumnSelectionInterval, setDefaultEditor, setDefaultRenderer, setDragEnabled, setDropMode, setEditingColumn, setEditingRow, setFillsViewportHeight, setGridColor, setIntercellSpacing, setPreferredScrollableViewportSize, setRowHeight, setRowHeight, setRowMargin, setRowSelectionAllowed, setRowSelectionInterval, setRowSorter, setSelectionBackground, setSelectionForeground, setSelectionMode, setSelectionModel, setShowGrid, setShowHorizontalLines, setShowVerticalLines, setSurrendersFocusOnKeystroke, setTableHeader, setUI, setUpdateSelectionOnSort, setValueAt, sizeColumnsToFit, sizeColumnsToFit, sorterChanged, tableChanged, unconfigureEnclosingScrollPane, updateUI, valueChanged
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, 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, 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, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, 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, 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
 
Methods inherited from interface com.rapidminer.report.Tableable
getColumnName
 

Field Detail

NO_DATE_FORMAT

public static final int NO_DATE_FORMAT
See Also:
Constant Field Values

DATE_FORMAT

public static final int DATE_FORMAT
See Also:
Constant Field Values

TIME_FORMAT

public static final int TIME_FORMAT
See Also:
Constant Field Values

DATE_TIME_FORMAT

public static final int DATE_TIME_FORMAT
See Also:
Constant Field Values
Constructor Detail

ExtendedJTable

public ExtendedJTable()

ExtendedJTable

public ExtendedJTable(boolean sortable)

ExtendedJTable

public ExtendedJTable(javax.swing.table.TableModel model,
                      boolean sortable)

ExtendedJTable

public ExtendedJTable(javax.swing.table.TableModel model,
                      boolean sortable,
                      boolean columnMovable)

ExtendedJTable

public ExtendedJTable(boolean sortable,
                      boolean columnMovable,
                      boolean autoResize)

ExtendedJTable

public ExtendedJTable(javax.swing.table.TableModel model,
                      boolean sortable,
                      boolean columnMovable,
                      boolean autoResize)

ExtendedJTable

public ExtendedJTable(javax.swing.table.TableModel model,
                      boolean sortable,
                      boolean columnMovable,
                      boolean autoResize,
                      boolean useColoredCellRenderer,
                      boolean fixFirstColumn)
Method Detail

readResolve

protected java.lang.Object readResolve()

getTableSorter

protected ExtendedJTableSorterModel getTableSorter()

getDateFormat

public int getDateFormat(int row,
                         int column)
Subclasses might overwrite this method which by default simply returns NO_DATE. The returned format should be one out of NO_DATE_FORMAT, DATE_FORMAT, TIME_FORMAT, or DATE_TIME_FORMAT. This information will be used for the cell renderer.


setCellColorProvider

public void setCellColorProvider(CellColorProvider cellColorProvider)
The given color provider will be used for the cell renderer. The default method implementation returns SwingTools.LIGHTEST_BLUE and white for alternating rows. If no colors should be used at all, set the cell color provider to null or to the default white color provider CellColorProviderWhite.


getCellColorProvider

public CellColorProvider getCellColorProvider()
The returned color provider will be used for the cell renderer. The default method implementation returns SwingTools.LIGHTEST_BLUE and white for alternating rows. If no colors should be used at all, set the cell color provider to null or to the default white color provider CellColorProviderWhite.


setSortable

public void setSortable(boolean sortable)

isSortable

public boolean isSortable()

setShowPopupMenu

public void setShowPopupMenu(boolean showPopupMenu)

setFixFirstColumnForRearranging

public void setFixFirstColumnForRearranging(boolean fixFirstColumn)

setModel

public void setModel(javax.swing.table.TableModel model)
Overrides:
setModel in class javax.swing.JTable

setSortingStatus

public void setSortingStatus(int status,
                             boolean cancelSorting)

pack

public void pack()

addNotify

public void addNotify()
Overrides:
addNotify in class javax.swing.JTable

unpack

public void unpack()

packColumn

public void packColumn()

sortColumnsAccordingToNames

public void sortColumnsAccordingToNames()

restoreOriginalColumnOrder

public void restoreOriginalColumnOrder()

getIntercellSpacing

public java.awt.Dimension getIntercellSpacing()
Overrides:
getIntercellSpacing in class javax.swing.JTable

columnMoved

public void columnMoved(javax.swing.event.TableColumnModelEvent e)
Necessary to properly stopping the editing when a column is moved (dragged).

Specified by:
columnMoved in interface javax.swing.event.TableColumnModelListener
Overrides:
columnMoved in class javax.swing.JTable

columnMarginChanged

public void columnMarginChanged(javax.swing.event.ChangeEvent e)
Necessary to properly stopping the editing when a column is resized.

Specified by:
columnMarginChanged in interface javax.swing.event.TableColumnModelListener
Overrides:
columnMarginChanged in class javax.swing.JTable

shouldUseColoredCellRenderer

public boolean shouldUseColoredCellRenderer()

getCellRenderer

public javax.swing.table.TableCellRenderer getCellRenderer(int row,
                                                           int col)
Overrides:
getCellRenderer in class javax.swing.JTable

getToolTipText

public java.lang.String getToolTipText(java.awt.event.MouseEvent e)
This method ensures that the correct tool tip for the current table cell is delivered.

Overrides:
getToolTipText in class javax.swing.JTable

getCell

public java.lang.String getCell(int row,
                                int column)
Specified by:
getCell in interface Tableable

getColumnNumber

public int getColumnNumber()
Specified by:
getColumnNumber in interface Tableable

getRowNumber

public int getRowNumber()
Specified by:
getRowNumber in interface Tableable

prepareReporting

public void prepareReporting()
Specified by:
prepareReporting in interface Tableable

finishReporting

public void finishReporting()
Specified by:
finishReporting in interface Tableable

isFirstLineHeader

public boolean isFirstLineHeader()
Specified by:
isFirstLineHeader in interface Tableable

isFirstColumnHeader

public boolean isFirstColumnHeader()
Specified by:
isFirstColumnHeader in interface Tableable

getModelIndex

public int getModelIndex(int rowIndex)

setExtendedScrollPane

public void setExtendedScrollPane(ExtendedJScrollPane scrollPane)

getExtendedScrollPane

public ExtendedJScrollPane getExtendedScrollPane()

selectCompleteRow

public void selectCompleteRow()

selectCompleteColumn

public void selectCompleteColumn()

mouseClicked

public void mouseClicked(java.awt.event.MouseEvent e)
Specified by:
mouseClicked in interface java.awt.event.MouseListener

mouseEntered

public void mouseEntered(java.awt.event.MouseEvent e)
Specified by:
mouseEntered in interface java.awt.event.MouseListener

mouseExited

public void mouseExited(java.awt.event.MouseEvent e)
Specified by:
mouseExited in interface java.awt.event.MouseListener

mousePressed

public void mousePressed(java.awt.event.MouseEvent e)
Specified by:
mousePressed in interface java.awt.event.MouseListener

mouseReleased

public void mouseReleased(java.awt.event.MouseEvent e)
Specified by:
mouseReleased in interface java.awt.event.MouseListener


Copyright © 2001-2009 by Rapid-I