Class AbstractGCellRenderer

  • All Implemented Interfaces:
    GComponent, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible, javax.swing.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

        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.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected java.awt.Font boldFont  
      protected java.awt.Font defaultFont  
      protected int dropRow  
      protected java.awt.Font fixedWidthFont  
      protected javax.swing.border.Border focusBorder  
      protected javax.swing.border.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 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
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void firePropertyChange​(java.lang.String propertyName, boolean oldValue, boolean newValue)
      Overridden for performance reasons.
      protected void firePropertyChange​(java.lang.String propertyName, java.lang.Object oldValue, java.lang.Object newValue)
      Overridden for performance reasons.
      protected java.awt.Color getBackgroundColorForRow​(int row)  
      protected java.awt.Font getBoldFont()  
      protected java.awt.Color getDefaultBackgroundColor()  
      protected java.awt.Font getDefaultFont()  
      protected java.awt.Font getFixedWidthFont()  
      protected javax.swing.border.Border getNoFocusBorder()  
      protected java.awt.Color getOSDependentBackgroundColor​(javax.swing.JComponent parent, int row)
      Returns the background color appropriate for the given component.
      void invalidate()
      Overridden for performance reasons.
      void repaint()
      Overridden for performance reasons.
      void repaint​(long tm, int x, int y, int width, int height)
      Overridden for performance reasons.
      void repaint​(java.awt.Rectangle r)
      Overridden for performance reasons.
      void revalidate()
      Overridden for performance reasons.
      protected void setBold()  
      void setDropRow​(int dropRow)
      Sets the row where DnD would perform drop operation.
      void setFont​(java.awt.Font f)  
      void setShouldAlternateRowBackgroundColors​(boolean alternate)  
      boolean shouldAlternateRowBackgroundColor()
      Return whether or not the renderer should alternate row background colors.
      protected void superSetFont​(java.awt.Font font)  
      protected void superValidate()  
      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, 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, 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
    • Field Detail

      • systemAlternateRowColors

        protected static boolean systemAlternateRowColors
      • focusBorder

        protected final javax.swing.border.Border focusBorder
      • noFocusBorder

        protected final javax.swing.border.Border noFocusBorder
      • defaultFont

        protected java.awt.Font defaultFont
      • fixedWidthFont

        protected java.awt.Font fixedWidthFont
      • boldFont

        protected java.awt.Font boldFont
      • dropRow

        protected int dropRow
    • Constructor Detail

      • AbstractGCellRenderer

        public AbstractGCellRenderer()
    • Method Detail

      • 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
      • getOSDependentBackgroundColor

        protected java.awt.Color getOSDependentBackgroundColor​(javax.swing.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​(java.awt.Font f)
        Overrides:
        setFont in class javax.swing.JComponent
      • superSetFont

        protected void superSetFont​(java.awt.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 javax.swing.border.Border getNoFocusBorder()
      • getDefaultFont

        protected java.awt.Font getDefaultFont()
      • getFixedWidthFont

        protected java.awt.Font getFixedWidthFont()
      • getBoldFont

        protected java.awt.Font getBoldFont()
      • getDefaultBackgroundColor

        protected java.awt.Color getDefaultBackgroundColor()
      • getBackgroundColorForRow

        protected java.awt.Color getBackgroundColorForRow​(int row)
      • invalidate

        public void invalidate()
        Overridden for performance reasons. See the Implementation Note for more information.
        Overrides:
        invalidate in class java.awt.Container
        Since:
        1.5
      • superValidate

        protected void superValidate()
      • validate

        public void validate()
        Overridden for performance reasons. See the Implementation Note for more information.
        Overrides:
        validate in class java.awt.Container
      • revalidate

        public void revalidate()
        Overridden for performance reasons. See the Implementation Note for more information.
        Overrides:
        revalidate in class javax.swing.JComponent
      • repaint

        public void repaint​(long tm,
                            int x,
                            int y,
                            int width,
                            int height)
        Overridden for performance reasons. See the Implementation Note for more information.
        Overrides:
        repaint in class javax.swing.JComponent
      • repaint

        public void repaint​(java.awt.Rectangle r)
        Overridden for performance reasons. See the Implementation Note for more information.
        Overrides:
        repaint in class javax.swing.JComponent
      • repaint

        public void repaint()
        Overridden for performance reasons. See the Implementation Note for more information.
        Overrides:
        repaint in class java.awt.Component
        Since:
        1.5
      • firePropertyChange

        protected void firePropertyChange​(java.lang.String propertyName,
                                          java.lang.Object oldValue,
                                          java.lang.Object newValue)
        Overridden for performance reasons. See the Implementation Note for more information.
        Overrides:
        firePropertyChange in class java.awt.Component
      • firePropertyChange

        public void firePropertyChange​(java.lang.String propertyName,
                                       boolean oldValue,
                                       boolean newValue)
        Overridden for performance reasons. See the Implementation Note for more information.
        Overrides:
        firePropertyChange in class javax.swing.JComponent