net.wotonomy.ui.swing.components
Class FormattedCellRenderer

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JLabel
                  extended by javax.swing.table.DefaultTableCellRenderer
                      extended by net.wotonomy.ui.swing.components.FormattedCellRenderer
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible, javax.swing.SwingConstants, javax.swing.table.TableCellRenderer

public class FormattedCellRenderer
extends javax.swing.table.DefaultTableCellRenderer

A cell renderer for dealing with formatted content. Subclasses can specify formats or colors or styles for specific values or locations in the table by overridding getFormatForContext(), getForegroundForContext() and/or getBackgroundForContext().

Version:
$Revision: 904 $ $Date: 2006-02-18 23:19:05 +0000 (Sat, 18 Feb 2006) $
Author:
michael@mpowers.net
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.table.DefaultTableCellRenderer
javax.swing.table.DefaultTableCellRenderer.UIResource
 
Nested classes/interfaces inherited from class javax.swing.JLabel
javax.swing.JLabel.AccessibleJLabel
 
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.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
protected  java.text.Format currentFormat
           
protected  java.awt.Color defaultBackground
           
protected  java.awt.Font defaultFont
           
protected  java.awt.Color defaultForeground
           
protected  java.text.Format defaultFormat
           
 
Fields inherited from class javax.swing.table.DefaultTableCellRenderer
noFocusBorder
 
Fields inherited from class javax.swing.JLabel
labelFor
 
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 javax.swing.SwingConstants
BOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
FormattedCellRenderer()
          Default constructor with no specified format.
FormattedCellRenderer(java.text.Format aFormat)
          Constructor specifying a format for renderered content.
 
Method Summary
 java.awt.Color getBackgroundForContext(javax.swing.JTable table, java.lang.Object value, boolean isSelected, boolean hasFocus, int row, int column)
          Override this method to provide a background color for the renderer.
 java.awt.Font getFontForContext(javax.swing.JTable table, java.lang.Object value, boolean isSelected, boolean hasFocus, int row, int column)
          Override this method to provide a font for the renderer.

This default implementation returns null.
 java.awt.Color getForegroundForContext(javax.swing.JTable table, java.lang.Object value, boolean isSelected, boolean hasFocus, int row, int column)
          Override this method to provide a foreground color for the renderer.
 java.text.Format getFormat()
          Returns the format currently in use to format cell content.
 java.text.Format getFormatForContext(javax.swing.JTable table, java.lang.Object value, boolean isSelected, boolean hasFocus, int row, int column)
          Override this method to provide a specific format for the specific cell to be rendered by this component.
 java.awt.Component getTableCellRendererComponent(javax.swing.JTable table, java.lang.Object value, boolean isSelected, boolean hasFocus, int row, int column)
          Overridden to call context delegate methods.
 void setBackground(java.awt.Color c)
          Overrides to retain the default background color, much the same as the DefaultCellRenderer does.
 void setFont(java.awt.Font f)
          Overrides to retain the default font, much the same as the DefaultCellRenderer does.
 void setForeground(java.awt.Color c)
          Overrides to retain the default foreground color, much the same as the DefaultCellRenderer does.
 void setFormat(java.text.Format aFormat)
          Sets the format to be used to format cell content.
protected  void setValue(java.lang.Object value)
          Overridden to format the value with the appropriate Format.
 
Methods inherited from class javax.swing.table.DefaultTableCellRenderer
firePropertyChange, firePropertyChange, invalidate, isOpaque, repaint, repaint, repaint, revalidate, updateUI, validate
 
Methods inherited from class javax.swing.JLabel
checkHorizontalKey, checkVerticalKey, getAccessibleContext, getDisabledIcon, getDisplayedMnemonic, getDisplayedMnemonicIndex, getHorizontalAlignment, getHorizontalTextPosition, getIcon, getIconTextGap, getLabelFor, getText, getUI, getUIClassID, getVerticalAlignment, getVerticalTextPosition, imageUpdate, paramString, setDisabledIcon, setDisplayedMnemonic, setDisplayedMnemonic, setDisplayedMnemonicIndex, setHorizontalAlignment, setHorizontalTextPosition, setIcon, setIconTextGap, setLabelFor, setText, setUI, setVerticalAlignment, setVerticalTextPosition
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, 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, isOptimizedDrawingEnabled, 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, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, 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, 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, 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, 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, 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, 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

currentFormat

protected java.text.Format currentFormat

defaultFormat

protected java.text.Format defaultFormat

defaultForeground

protected java.awt.Color defaultForeground

defaultBackground

protected java.awt.Color defaultBackground

defaultFont

protected java.awt.Font defaultFont
Constructor Detail

FormattedCellRenderer

public FormattedCellRenderer()
Default constructor with no specified format.


FormattedCellRenderer

public FormattedCellRenderer(java.text.Format aFormat)
Constructor specifying a format for renderered content.

Method Detail

getFormat

public java.text.Format getFormat()
Returns the format currently in use to format cell content.

Returns:
The Format that is currently being used.

setFormat

public void setFormat(java.text.Format aFormat)
Sets the format to be used to format cell content.


setForeground

public void setForeground(java.awt.Color c)
Overrides to retain the default foreground color, much the same as the DefaultCellRenderer does. We have to do this because DefaultCellRenderer's ivars are private.

Overrides:
setForeground in class javax.swing.table.DefaultTableCellRenderer

setBackground

public void setBackground(java.awt.Color c)
Overrides to retain the default background color, much the same as the DefaultCellRenderer does. We have to do this because DefaultCellRenderer's ivars are private.

Overrides:
setBackground in class javax.swing.table.DefaultTableCellRenderer

setFont

public void setFont(java.awt.Font f)
Overrides to retain the default font, much the same as the DefaultCellRenderer does. We have to do this because DefaultCellRenderer's ivars are private.

Overrides:
setFont in class javax.swing.JComponent

setValue

protected void setValue(java.lang.Object value)
Overridden to format the value with the appropriate Format. If the value cannot be formatted with the Format, the superclass method is called.

Overrides:
setValue in class javax.swing.table.DefaultTableCellRenderer
Parameters:
value - An Object to be formatted.

getTableCellRendererComponent

public java.awt.Component getTableCellRendererComponent(javax.swing.JTable table,
                                                        java.lang.Object value,
                                                        boolean isSelected,
                                                        boolean hasFocus,
                                                        int row,
                                                        int column)
Overridden to call context delegate methods.

Specified by:
getTableCellRendererComponent in interface javax.swing.table.TableCellRenderer
Overrides:
getTableCellRendererComponent in class javax.swing.table.DefaultTableCellRenderer

getFormatForContext

public java.text.Format getFormatForContext(javax.swing.JTable table,
                                            java.lang.Object value,
                                            boolean isSelected,
                                            boolean hasFocus,
                                            int row,
                                            int column)
Override this method to provide a specific format for the specific cell to be rendered by this component. Any format returned by this method will take precedence of the format specified by setFormat().

This default implementation returns null.

Returns:
A Format for this cell, or null to rely on the the format specified by setFormat().

getForegroundForContext

public java.awt.Color getForegroundForContext(javax.swing.JTable table,
                                              java.lang.Object value,
                                              boolean isSelected,
                                              boolean hasFocus,
                                              int row,
                                              int column)
Override this method to provide a foreground color for the renderer. Because the table specifies colors for selected cells, these colors will only be used when renderering unselected cells.

This default implementation returns null.

Returns:
A Color for the foreground of the cell, or null to rely on the table's default color scheme.

getBackgroundForContext

public java.awt.Color getBackgroundForContext(javax.swing.JTable table,
                                              java.lang.Object value,
                                              boolean isSelected,
                                              boolean hasFocus,
                                              int row,
                                              int column)
Override this method to provide a background color for the renderer. Because the table specifies colors for selected cells, these colors will only be used when renderering unselected cells.

This default implementation returns null.

Returns:
A Color for the background of the cell, or null to rely on the table's default color scheme.

getFontForContext

public java.awt.Font getFontForContext(javax.swing.JTable table,
                                       java.lang.Object value,
                                       boolean isSelected,
                                       boolean hasFocus,
                                       int row,
                                       int column)
Override this method to provide a font for the renderer.

This default implementation returns null.

Returns:
A Font for the cell, or null to rely on the table's default font.


Copyright © 2006 null. All Rights Reserved.