Class AbstractGCellRenderer

  • All Implemented Interfaces:
    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 javax.swing.JLabel
    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 static java.lang.String HTML_DISABLE_STRING  
      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 Static 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 static java.awt.Color getBackgroundColorForRow​(int row)  
      protected java.awt.Font getBoldFont()  
      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.
      protected java.lang.String getText​(java.lang.Object value)
      Return the cell renderer text
      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 setHTMLRenderingEnabled​(boolean enable)
      Enables and disables the rendering of HTML content in this renderer.
      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
      • HTML_DISABLE_STRING

        protected static final java.lang.String HTML_DISABLE_STRING
        See Also:
        Constant Field Values
      • 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

      • setHTMLRenderingEnabled

        public void setHTMLRenderingEnabled​(boolean enable)
        Enables and disables the rendering of HTML content in this renderer. If enabled, this renderer will interpret HTML content when the text this renderer is showing begins with <html>
        Parameters:
        enable - true to enable HTML rendering; false to disable it
      • 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.
      • 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()
      • getText

        protected java.lang.String getText​(java.lang.Object value)
        Return the cell renderer text
        Parameters:
        value - Cell object value
        Returns:
        A string interpretation of value; generated by calling value.toString()
      • getBackgroundColorForRow

        protected static 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