Package com.illumon.iris.gui.table
Class GenericColumnRenderer
java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JLabel
com.illumon.iris.gui.table.GenericColumnRenderer
- All Implemented Interfaces:
AutoResizableTableCellRenderer
,ImageObserver
,MenuContainer
,Serializable
,Accessible
,SwingConstants
,TableCellRenderer
- Direct Known Subclasses:
ColumnRenderer
public class GenericColumnRenderer extends JLabel implements AutoResizableTableCellRenderer
A Generic
AutoResizableTableCellRenderer
that formats items based on an input Format
or toString().
Background and foreground colors are based on UI manager properties. This class will automatically resize a table's columns
if the column requests it.- See Also:
- Serialized Form
-
Nested Class Summary
Nested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
Nested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
-
Field Summary
Fields inherited from class javax.swing.JComponent
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
accessibleContext, 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
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
-
Constructor Summary
Constructors Constructor Description GenericColumnRenderer()
GenericColumnRenderer(Format formatter)
GenericColumnRenderer(Format formatter, UIDefaults colorDefaults, UIDefaults fontDefaults)
GenericColumnRenderer(UIDefaults colorDefaults, UIDefaults fontDefaults)
-
Method Summary
Modifier and Type Method Description void
firePropertyChange(String propertyName, boolean oldValue, boolean newValue)
Overridden for performance reasons.protected void
firePropertyChange(String propertyName, Object oldValue, Object newValue)
Overridden for performance reasons.protected Color
getBackground(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column)
Get the background color of the current cell.protected UIDefaults
getColorDefaults()
protected Font
getFont(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column)
Get the font for the cell.protected UIDefaults
getFontDefaults()
protected Color
getForeground(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column)
Get the foreground color of the current cell.protected int
getHorizontalAlignment(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column)
Get the horizontal alignment to use for the cell.Component
getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column)
protected String
getText(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column)
Get the text to display.boolean
isAutoResize()
void
repaint(long tm, int x, int y, int width, int height)
Overridden for performance reasons.void
repaint(Rectangle r)
Overridden for performance reasons.void
revalidate()
Overridden for performance reasons.void
setAutoResize(boolean autoResize)
protected void
setColors(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column)
Configure the foreground and background colors for this cell.protected boolean
shouldApplyNumberFormatting(Object value)
void
validate()
Overridden for performance reasons.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, updateUI
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, 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, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, 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, 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, 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, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, 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, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
-
Constructor Details
-
GenericColumnRenderer
public GenericColumnRenderer() -
GenericColumnRenderer
-
GenericColumnRenderer
-
GenericColumnRenderer
-
-
Method Details
-
getTableCellRendererComponent
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column)- Specified by:
getTableCellRendererComponent
in interfaceTableCellRenderer
-
setColors
protected void setColors(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column)Configure the foreground and background colors for this cell. These colors are determined bygetForeground(JTable, Object, boolean, boolean, int, int)
andgetBackground(JTable, Object, boolean, boolean, int, int)
.- Parameters:
table
- The table being rendered.value
- The value to render.isSelected
- If this cell is selected.hasFocus
- If this cell has UI focus.row
- The current row number.column
- The column index.
-
getBackground
protected Color getBackground(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column)Get the background color of the current cell. This derives the selected color, as well as the striping colors from the properties set in theUIManager
.- WTable.highlightBackground - The background color for a selected row
- WTable.background1 - The even numbered row background
- WTable.background2 - The odd numbered row background
- Parameters:
table
- The table being rendered.value
- The value to render.isSelected
- If this cell is selected.hasFocus
- If this cell has focus.row
- The current row number.column
- The current column index.- Returns:
- A
Color
to use for this cell's background.
-
getForeground
protected Color getForeground(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column)Get the foreground color of the current cell. This derives the color fromUIManager
properties. It also contains built in special handling for numbers.- WTable.foreground - The foreground color
- WTable.zeroForeground - (numbers only) The color to use for the number 0
- WTable.positiveForeground - (numbers only) The color to use for positive numbers
- WTable.negativeForeground - (numbers only) The color to use for negative numbers
- Parameters:
table
- The table being rendered.value
- The value being rendered.isSelected
- If the cell is selected.hasFocus
- If the cell has focus.row
- The current row number.column
- The current column index.- Returns:
- A
Color
to use for this cell's foreground.
-
getHorizontalAlignment
protected int getHorizontalAlignment(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column)Get the horizontal alignment to use for the cell. This defaults toSwingConstants.RIGHT
for numbers orSwingConstants.LEFT
for everything else.- Parameters:
table
- The table being rendered.value
- The value being rendered.isSelected
- If the cell is selected.hasFocus
- If the cell has focus.row
- The current row number.column
- The current column index.- Returns:
- The cell's horizontal alignment.
-
getFont
protected Font getFont(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column)Get the font for the cell. Defaults to aUIManager
property WTable.font.- Parameters:
table
- The table being rendered.value
- The value being rendered.isSelected
- If the cell is selected.hasFocus
- If the cell has focus.row
- The current row number.column
- The current column index.- Returns:
- The font to use.
-
getText
protected String getText(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column)Get the text to display. If noFormat
was specified at construction time, simply toString() the object. Otherwise, delegated toFormat.format(Object)
- Parameters:
table
- The table being rendered.value
- The value being rendered.isSelected
- If the cell is selected.hasFocus
- If the cell has focus.row
- The current row number.column
- The current column index.- Returns:
- The String to render
-
validate
public void validate()Overridden for performance reasons. -
revalidate
public void revalidate()Overridden for performance reasons.- Overrides:
revalidate
in classJComponent
-
repaint
public void repaint(long tm, int x, int y, int width, int height)Overridden for performance reasons.- Overrides:
repaint
in classJComponent
-
repaint
Overridden for performance reasons.- Overrides:
repaint
in classJComponent
-
firePropertyChange
Overridden for performance reasons.- Overrides:
firePropertyChange
in classComponent
-
firePropertyChange
Overridden for performance reasons.- Overrides:
firePropertyChange
in classJComponent
-
setAutoResize
public void setAutoResize(boolean autoResize)- Specified by:
setAutoResize
in interfaceAutoResizableTableCellRenderer
-
isAutoResize
public boolean isAutoResize()- Specified by:
isAutoResize
in interfaceAutoResizableTableCellRenderer
-
shouldApplyNumberFormatting
-
getFontDefaults
-
getColorDefaults
-