Package docking.widgets

# Class AbstractGCellRenderer

java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JLabel
docking.widgets.label.AbstractHtmlLabel
docking.widgets.label.GDHtmlLabel
docking.widgets.AbstractGCellRenderer

All Implemented Interfaces:
  `GComponent`, `ImageObserver`, `MenuContainer`, `PropertyChangeListener`, `Serializable`, `EventListener`, `Accessible`, `SwingConstants`

Direct Known Subclasses:
  `GListCellRenderer`, `GTableCellRenderer`

public abstract class AbstractGCellRenderer extends GDHtmlLabel
A common base class for list and table renderer objects, unifying the Ghidra look and feel.

It allows (but default-disables) HTML content, automatically paints alternating row background colors, and highlights the drop target in a drag-n-drop operation.

See Also:
  - Serialized Form

- ## Nested Class Summary

  ## Nested classes/interfaces inherited from class javax.swing.JLabel

  `JLabel.AccessibleJLabel`

  ## 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

  Fields
  Modifier and Type
  Field
  Description
  `protected Font`
  `boldFont`
  `protected Font`
  `defaultFont`
  `protected int`
  `dropRow`
  `protected Font`
  `fixedWidthFont`
  `protected final Border`
  `focusBorder`
  `protected final Border`
  `noFocusBorder`
  `protected static boolean`
  `systemAlternateRowColors`

  ### Fields inherited from class javax.swing.JLabel

  `labelFor`

  ### 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 docking.widgets.GComponent

  `HTML_DISABLE_STRING`

  ### 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
  `AbstractGCellRenderer()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `firePropertyChange(String propertyName, boolean oldValue, boolean newValue)`
  See `DefaultTableCellRenderer` class header javadoc for more info.
  `protected void`
  `firePropertyChange(String property, Object oldValue, Object newValue)`
  See `DefaultTableCellRenderer` class header javadoc for more info.
  `protected Color`
  `getAlternatingBackgroundColor(JComponent parent, int row)`
  Returns the background color appropriate for the given component.
  `protected Color`
  `getBackgroundColorForRow(int row)`
  `Font`
  `getBoldFont()`
  `protected Color`
  `getDefaultBackgroundColor()`
  `protected Font`
  `getDefaultFont()`
  `protected Color`
  `getErrorForegroundColor(boolean isSelected)`
  `Font`
  `getFixedWidthFont()`
  `protected Border`
  `getNoFocusBorder()`
  `protected Color`
  `getUneditableForegroundColor(boolean isSelected)`
  `void`
  `invalidate()`
  See `DefaultTableCellRenderer` class header javadoc for more info.
  `void`
  `repaint()`
  See `DefaultTableCellRenderer` class header javadoc for more info.
  `void`
  `repaint(long tm, int x, int y, int width, int height)`
  See `DefaultTableCellRenderer` class header javadoc for more info.
  `void`
  `repaint(Rectangle r)`
  See `DefaultTableCellRenderer` class header javadoc for more info.
  `void`
  `revalidate()`
  See `DefaultTableCellRenderer` class header javadoc for more info.
  `void`
  `setBackground(Color bg)`
  Overrides this method to ensure that the new background color is not a `GColorUIResource`.
  `protected void`
  `setBold()`
  `void`
  `setDropRow(int dropRow)`
  Sets the row where DnD would perform drop operation.
  `void`
  `setFont(Font f)`
  `void`
  `setForeground(Color fg)`
  Overrides this method to ensure that the new foreground color is not a `GColorUIResource`.
  `void`
  `setShouldAlternateRowBackgroundColors(boolean alternate)`
  `boolean`
  `shouldAlternateRowBackgroundColor()`
  Return whether or not the renderer should alternate row background colors.
  `protected void`
  `superSetFont(Font font)`
  `protected void`
  `superValidate()`
  `void`
  `validate()`
  See `DefaultTableCellRenderer` class header javadoc for more info.

  ### Methods inherited from class docking.widgets.label.AbstractHtmlLabel

  `propertyChange, setText, updateUI`

  ### 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, 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, 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, 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, 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, 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`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

  ### Methods inherited from interface docking.widgets.GComponent

  `isHTMLRenderingEnabled, setHTMLRenderingEnabled`

- ## Field Details

  - ### systemAlternateRowColors

    protected static boolean systemAlternateRowColors

  - ### focusBorder

    protected final Border focusBorder

  - ### noFocusBorder

    protected final Border noFocusBorder

  - ### defaultFont

    protected Font defaultFont

  - ### fixedWidthFont

    protected Font fixedWidthFont

  - ### boldFont

    protected Font boldFont

  - ### dropRow

    protected int dropRow

- ## Constructor Details

  - ### AbstractGCellRenderer

    public AbstractGCellRenderer()

- ## Method Details

  - ### setShouldAlternateRowBackgroundColors

    public void setShouldAlternateRowBackgroundColors(boolean alternate)

  - ### shouldAlternateRowBackgroundColor

    public boolean shouldAlternateRowBackgroundColor()
    Return whether or not the renderer should alternate row background colors.

    A renderer is unable to override an enforcing DISABLE_ALTERNATING_ROW_COLORS_PROPERTY system property -- if the property has disabled alternating colors (i.e., set to 'true'), this method returns false. If the property is false, individual renderers may assert control over alternating row colors.

    Returns:
      True if the rows may be painted in alternate background colors, false otherwise
    See Also:
      - `DISABLE_ALTERNATING_ROW_COLORS_PROPERTY`

  - ### getAlternatingBackgroundColor

    protected Color getAlternatingBackgroundColor(JComponent parent, int row)
    Returns the background color appropriate for the given component. This may vary depending upon the current OS.
    Parameters:
      `parent` - The parent being rendered -- likely a list or table.
      `row` - The row being rendered.
    Returns:
      the color

  - ### setFont

    public void setFont(Font f)
    Overrides:
      `setFont` in class `JComponent`

  - ### superSetFont

    protected void superSetFont(Font font)

  - ### setBold

    protected void setBold()

  - ### setDropRow

    public void setDropRow(int dropRow)
    Sets the row where DnD would perform drop operation.
    Parameters:
      `dropRow` - the drop row

  - ### getNoFocusBorder

    protected Border getNoFocusBorder()

  - ### getDefaultFont

    protected Font getDefaultFont()

  - ### getFixedWidthFont

    public Font getFixedWidthFont()

  - ### getBoldFont

    public Font getBoldFont()

  - ### getDefaultBackgroundColor

    protected Color getDefaultBackgroundColor()

  - ### getBackgroundColorForRow

    protected Color getBackgroundColorForRow(int row)

  - ### getErrorForegroundColor

    protected Color getErrorForegroundColor(boolean isSelected)

  - ### getUneditableForegroundColor

    protected Color getUneditableForegroundColor(boolean isSelected)

  - ### invalidate

    public void invalidate()
    See `DefaultTableCellRenderer` class header javadoc for more info.
    Overrides:
      `invalidate` in class `Container`

  - ### superValidate

    protected void superValidate()

  - ### validate

    public void validate()
    See `DefaultTableCellRenderer` class header javadoc for more info.
    Overrides:
      `validate` in class `Container`

  - ### revalidate

    public void revalidate()
    See `DefaultTableCellRenderer` class header javadoc for more info.
    Overrides:
      `revalidate` in class `JComponent`

  - ### repaint

    public void repaint(long tm, int x, int y, int width, int height)
    See `DefaultTableCellRenderer` class header javadoc for more info.
    Overrides:
      `repaint` in class `JComponent`

  - ### repaint

    public void repaint(Rectangle r)
    See `DefaultTableCellRenderer` class header javadoc for more info.
    Overrides:
      `repaint` in class `JComponent`

  - ### repaint

    public void repaint()
    See `DefaultTableCellRenderer` class header javadoc for more info.
    Overrides:
      `repaint` in class `Component`

  - ### firePropertyChange

    protected void firePropertyChange(String property, Object oldValue, Object newValue)
    See `DefaultTableCellRenderer` class header javadoc for more info.
    Overrides:
      `firePropertyChange` in class `Component`

  - ### firePropertyChange

    public void firePropertyChange(String propertyName, boolean oldValue, boolean newValue)
    See `DefaultTableCellRenderer` class header javadoc for more info.
    Overrides:
      `firePropertyChange` in class `JComponent`

  - ### setForeground

    public void setForeground(Color fg)
    Overrides this method to ensure that the new foreground color is not a `GColorUIResource`. Some Look and Feels will ignore color values that extend `UIResource`, choosing instead their own custom painting behavior. By not using a UIResource, we prevent the Look and Feel from overriding this renderer's color value.
    Overrides:
      `setForeground` in class `JComponent`
    Parameters:
      `fg` - the new foreground color

  - ### setBackground

    public void setBackground(Color bg)
    Overrides this method to ensure that the new background color is not a `GColorUIResource`. Some Look and Feels will ignore color values that extend `UIResource`, choosing instead their own custom painting behavior. By not using a UIResource, we prevent the Look and Feel from overriding this renderer's color value.
    Overrides:
      `setBackground` in class `JComponent`
    Parameters:
      `bg` - the new background color