zinger.bsheet
Class ZTable

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 zinger.bsheet.ZTable
All Implemented Interfaces:
java.awt.event.KeyListener, 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

public class ZTable
extends javax.swing.JTable
implements java.awt.event.KeyListener, java.awt.event.MouseListener

Extensions to JTable. This class provides hooks for rendering on top of the standard JTable grid.

Author:
Alexey Zinger (inline_four@yahoo.com)
See Also:
ZTable.ExtraRenderer, Serialized Form

Nested Class Summary
static interface ZTable.ExtraRenderer
          Interface for rendering extensions to JTable.
 
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
protected  java.util.Map extraRenderers
           
protected  boolean notEditable
           
 
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
ZTable()
           
ZTable(int numRows, int numColumns)
           
ZTable(java.lang.Object[][] rowData, java.lang.Object[] columnNames)
           
ZTable(javax.swing.table.TableModel dm)
           
ZTable(javax.swing.table.TableModel dm, javax.swing.table.TableColumnModel cm)
           
ZTable(javax.swing.table.TableModel dm, javax.swing.table.TableColumnModel cm, javax.swing.ListSelectionModel sm)
           
ZTable(java.util.Vector rowData, java.util.Vector columnNames)
           
 
Method Summary
 void addExtraRenderer(java.lang.Object id, ZTable.ExtraRenderer exren)
          Adds an ExtraRenderer object under the specified ID.
 ZTable.ExtraRenderer getExtraRenderer(java.lang.Object id)
          Gets a renderer object stored under the specified ID.
 java.util.Set getExtraRendererIDs()
          Returns an unmodifiable set of renderer ID's (keys by which they are stored).
protected  void init()
           
 boolean isCellEditable(int row, int column)
           
 boolean isExtraRendererOn(java.lang.Object id)
          Determines whether the renderer object stored under the specified ID is on or off.
 void keyPressed(java.awt.event.KeyEvent ev)
           
 void keyReleased(java.awt.event.KeyEvent ev)
           
 void keyTyped(java.awt.event.KeyEvent ev)
           
 void mouseClicked(java.awt.event.MouseEvent ev)
           
 void mouseEntered(java.awt.event.MouseEvent ev)
           
 void mouseExited(java.awt.event.MouseEvent ev)
           
 void mousePressed(java.awt.event.MouseEvent ev)
           
 void mouseReleased(java.awt.event.MouseEvent ev)
           
protected  void paintComponent(java.awt.Graphics g)
          Extends standard method.
 ZTable.ExtraRenderer removeExtraRenderer(java.lang.Object id)
          Removes a renderer object.
protected  void requestRepaint()
          Convenience method for scheduling a repaint call on EventQueue.
 void setAllExtraRenderersOn(boolean on)
          A performance enhancing method for setting state for all available renderers.
 void setExtraRendererOn(java.lang.Object id, boolean on)
          Sets the state of a renderer object stored under the specified ID.
 
Methods inherited from class javax.swing.JTable
addColumn, addColumnSelectionInterval, addNotify, addRowSelectionInterval, changeSelection, clearSelection, columnAdded, columnAtPoint, columnMarginChanged, columnMoved, 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, getCellRenderer, getCellSelectionEnabled, getColumn, getColumnClass, getColumnCount, getColumnModel, getColumnName, getColumnSelectionAllowed, getDefaultEditor, getDefaultRenderer, getDragEnabled, getDropLocation, getDropMode, getEditingColumn, getEditingRow, getEditorComponent, getFillsViewportHeight, getGridColor, getIntercellSpacing, 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, getToolTipText, getUI, getUIClassID, getUpdateSelectionOnSort, getValueAt, initializeLocalVars, 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, setModel, 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, 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
 

Field Detail

extraRenderers

protected final java.util.Map extraRenderers

notEditable

protected boolean notEditable
Since:
1.0.3
Constructor Detail

ZTable

public ZTable()

ZTable

public ZTable(javax.swing.table.TableModel dm)

ZTable

public ZTable(javax.swing.table.TableModel dm,
              javax.swing.table.TableColumnModel cm)

ZTable

public ZTable(javax.swing.table.TableModel dm,
              javax.swing.table.TableColumnModel cm,
              javax.swing.ListSelectionModel sm)

ZTable

public ZTable(int numRows,
              int numColumns)

ZTable

public ZTable(java.util.Vector rowData,
              java.util.Vector columnNames)

ZTable

public ZTable(java.lang.Object[][] rowData,
              java.lang.Object[] columnNames)
Method Detail

init

protected void init()

paintComponent

protected void paintComponent(java.awt.Graphics g)
Extends standard method. After calling super.paintComponent(g), this method iterates through extra renderer objects in extraRenderers and invokes their paint(Graphics) methods. Renderers are invoked in the order of iteration, which is determined by the natural order of their ID's. Not all renderers may be invoked depending on their state (on/off).

Overrides:
paintComponent in class javax.swing.JComponent
See Also:
ZTable.ExtraRenderer.paint(java.awt.Graphics), extraRenderers, addExtraRenderer(java.lang.Object, zinger.bsheet.ZTable.ExtraRenderer), isExtraRendererOn(java.lang.Object)

requestRepaint

protected void requestRepaint()
Convenience method for scheduling a repaint call on EventQueue.


getExtraRendererIDs

public java.util.Set getExtraRendererIDs()
Returns an unmodifiable set of renderer ID's (keys by which they are stored).

See Also:
addExtraRenderer(java.lang.Object, zinger.bsheet.ZTable.ExtraRenderer)

addExtraRenderer

public void addExtraRenderer(java.lang.Object id,
                             ZTable.ExtraRenderer exren)
Adds an ExtraRenderer object under the specified ID. Because of the way renderers are iterated through, the natural order of their ID's determines the order in which they are invoked.

See Also:
paintComponent(java.awt.Graphics)

removeExtraRenderer

public ZTable.ExtraRenderer removeExtraRenderer(java.lang.Object id)
Removes a renderer object. Upon removal, a repaint call is scheduled.

Returns:
the renderer object that was stored under the specified key, null if none was found
See Also:
requestRepaint()

getExtraRenderer

public ZTable.ExtraRenderer getExtraRenderer(java.lang.Object id)
Gets a renderer object stored under the specified ID.


isExtraRendererOn

public boolean isExtraRendererOn(java.lang.Object id)
Determines whether the renderer object stored under the specified ID is on or off. If a renderer object is off, it will not be invoked by paintComponent(Graphics).

See Also:
paintComponent(java.awt.Graphics), setExtraRendererOn(java.lang.Object, boolean)

setExtraRendererOn

public void setExtraRendererOn(java.lang.Object id,
                               boolean on)
Sets the state of a renderer object stored under the specified ID. If a renderer object was found and its state changed, a repaint call is scheduled.

See Also:
requestRepaint(), setAllExtraRenderersOn(boolean)

setAllExtraRenderersOn

public void setAllExtraRenderersOn(boolean on)
A performance enhancing method for setting state for all available renderers. This method turns all available renderers on and only schedules a single repaint call. When dealing with many renderers, it is expected to be more efficient than iterating through available renderer ID's and calling setExtraRendererOn(boolean). Unlike that method, however, this one schedules a repaint call regardless of whether any renderer states have been changes.

See Also:
requestRepaint(), setExtraRendererOn(java.lang.Object, boolean)

isCellEditable

public boolean isCellEditable(int row,
                              int column)
Overrides:
isCellEditable in class javax.swing.JTable

keyPressed

public void keyPressed(java.awt.event.KeyEvent ev)
Specified by:
keyPressed in interface java.awt.event.KeyListener
Since:
1.0.3

keyReleased

public void keyReleased(java.awt.event.KeyEvent ev)
Specified by:
keyReleased in interface java.awt.event.KeyListener
Since:
1.0.3

keyTyped

public void keyTyped(java.awt.event.KeyEvent ev)
Specified by:
keyTyped in interface java.awt.event.KeyListener
Since:
1.0.3

mouseClicked

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

mousePressed

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

mouseReleased

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

mouseEntered

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

mouseExited

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