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 
      ChangeModifier and Type Field Description
      NEWprotected java.awt.Font boldFont  
      NEWprotected java.awt.Font defaultFont  
      NEWprotected int dropRow  
      NEWprotected java.awt.Font fixedWidthFont  
      NEWprotected javax.swing.border.Border focusBorder  
      NEWprotected static java.lang.String HTML_DISABLE_STRING  
      NEWprotected javax.swing.border.Border noFocusBorder  
      NEWprotected 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 
      ChangeModifier and Type Method Description
      void firePropertyChange​(java.lang.String propertyName, boolean oldValue, boolean newValue)
      Overridden for performance reasons.
      NEWprotected void firePropertyChange​(java.lang.String propertyName, java.lang.Object oldValue, java.lang.Object newValue)
      Overridden for performance reasons.
      NEWprotected static java.awt.Color getBackgroundColorForRow​(int row)  
      NEWprotected java.awt.Font getBoldFont()  
      NEWprotected java.awt.Font getDefaultFont()  
      NEWprotected java.awt.Font getFixedWidthFont()  
      NEWprotected javax.swing.border.Border getNoFocusBorder()  
      NEWprotected java.awt.Color getOSDependentBackgroundColor​(javax.swing.JComponent parent, int row)
      Returns the background color appropriate for the given component.
      NEWprotected 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.
      NEWprotected 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.
      NEWprotected void superSetFont​(java.awt.Font font)  
      NEWprotected 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 NEW

        protected static boolean systemAlternateRowColors
      • HTML_DISABLE_STRING NEW

        protected static final java.lang.String HTML_DISABLE_STRING
        See Also:
        Constant Field Values
      • focusBorder NEW

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

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

        protected java.awt.Font defaultFont
      • fixedWidthFont NEW

        protected java.awt.Font fixedWidthFont
      • boldFont NEW

        protected java.awt.Font boldFont
      • dropRow NEW

        protected int dropRow

Constructor Detail

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

      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 NEW

      protected void superSetFont​(java.awt.Font font)
    • setBold NEW

      protected void setBold()
    • setDropRow

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

      protected javax.swing.border.Border getNoFocusBorder()
    • getDefaultFont NEW

      protected java.awt.Font getDefaultFont()
    • getFixedWidthFont NEW

      protected java.awt.Font getFixedWidthFont()
    • getBoldFont NEW

      protected java.awt.Font getBoldFont()
    • getText NEW

      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 NEW

      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 NEW

      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 NEW

      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