com.dlsc.flexgantt.swing.layer.system

## Class AbstractPopupRenderer

- java.lang.Object
- - java.awt.Component
  - - java.awt.Container
    - - javax.swing.JComponent
      - - javax.swing.JPanel
        - - com.dlsc.flexgantt.swing.layer.system.AbstractPopupRenderer

- All Implemented Interfaces:
    IPopupRenderer, IRenderer, ImageObserver, MenuContainer, Serializable, Accessible, Border
  Direct Known Subclasses:
    DefaultPopupRenderer

      public abstract class AbstractPopupRenderer
      extends JPanel
      implements IPopupRenderer, Border

  An abstract popup renderer implementation which can be used to provide a consistent apperance of all popup renderers used within the same application. The abstract renderer provides a gradient background, a border, and a title for the popup. The visualization of the popup value needs to be done by the "content area", which gets created by subclasses when they implement the `createContentArea()` method.
  Since:
    1.0
  Version:
    $Revision: 1.9 $
  Author:
    Dirk Lemmermann
  See Also:
    `PopupLayer.setPopupRenderer(Class, IPopupRenderer)`, `PopupLayer.getPopupRenderer(Class)`, Serialized Form

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class javax.swing.JPanel

      `JPanel.AccessibleJPanel`

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

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `AbstractPopupRenderer()` Constructs a new popup renderer.

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected abstract JComponent` | `createContentArea()` Creates the content of the popup.
    `void` | `firePropertyChange(String propertyName, boolean oldValue, boolean newValue)` Commented out for performance reasons.
    `void` | `firePropertyChange(String propertyName, byte oldValue, byte newValue)` Commented out for performance reasons.
    `void` | `firePropertyChange(String propertyName, char oldValue, char newValue)` Commented out for performance reasons.
    `void` | `firePropertyChange(String propertyName, double oldValue, double newValue)` Commented out for performance reasons.
    `void` | `firePropertyChange(String propertyName, float oldValue, float newValue)` Commented out for performance reasons.
    `void` | `firePropertyChange(String propertyName, long oldValue, long newValue)` Commented out for performance reasons.
    `protected void` | `firePropertyChange(String propertyName, Object oldValue, Object newValue)` Commented out for performance reasons.
    `void` | `firePropertyChange(String propertyName, short oldValue, short newValue)` Commented out for performance reasons.
    `Color` | `getBackgroundColor1()` Returns the first background color used for the gradient paint that fills the background.
    `Color` | `getBackgroundColor2()` Returns the second background color used for the gradient paint that fills the background.
    `Insets` | `getBorderInsets(Component c)`
    `Color` | `getLineColor()` Returns the color used for drawing the border line around the info object.
    `Component` | `getPopupRendererComponent(PopupLayer pl, Object titleValue, Object popupValue, IRelationship relationship, IGanttChartModel model)` Returns the component that will be used as a popup that provides additional information about a relationship.
    `JComponent` | `getPopupRendererComponent(PopupLayer pl, Object titleValue, Object popupValue, TimelineObjectPath path, IGanttChartModel model, boolean pinned)` Returns the component that will be used as a popup that provides additional information about a timeline object.
    `Component` | `getPopupRendererComponent(PopupLayer pl, Object titleValue, Object popupValue, TreePath path, IGanttChartModel model, boolean pinned)` Returns the component that will be used as a popup that provides additional information about a tree table node.
    `protected String` | `getPopupText(Object popupValue)` Converts the given popup value to a String.
    `protected String` | `getPopupTitleText(Object titleValue)` Converts the given popup title value to a String.
    `Color` | `getTextColor()` Returns the color used for the text shown by the info renderer.
    `protected Icon` | `getTitleIcon(Object popupValue, IRelationship relationship, IGanttChartModel model)` Returns an icon that will be shown in the header / title of the popup.
    `protected Icon` | `getTitleIcon(Object popupValue, TimelineObjectPath path, IGanttChartModel model)` Returns an icon that will be shown in the header / title of the popup.
    `protected Icon` | `getTitleIcon(Object popupValue, TreePath path, IGanttChartModel model)` Returns an icon that will be shown in the header / title of the popup.
    `JLabel` | `getTitleLabel()` Returns the label that gets used to display the title of the popup.
    `boolean` | `isBorderOpaque()`
    `boolean` | `isRenderingArrow()` Returns TRUE if the renderer will show an arrow that points to the timeline object to which the popup information belongs.
    `boolean` | `isVisible()` Overriden in order to fix a bug in AWT, which causes the cursor to flicker during drag and drop operations.
    `void` | `paintBorder(Component c, Graphics g, int x, int y, int width, int height)`
    `void` | `repaint()` Commented out for performance reasons.
    `void` | `repaint(int x, int y, int width, int height)` Commented out for performance reasons.
    `void` | `repaint(long tm)` Commented out for performance reasons.
    `void` | `setBackgroundColor1(Color color)` Sets the first background color used for the gradient paint that fills the background.
    `void` | `setBackgroundColor2(Color color)` Sets the first background color used for the gradient paint that fills the background.
    `void` | `setLineColor(Color color)` Sets the color used for drawing the border line around the info object.
    `void` | `setRenderingArrow(boolean renderArrow)` Specifies whether the renderer will show an arrow that points to the timeline object to which the popup information belongs.
    `void` | `setTextColor(Color color)` Sets the color used for the text shown by the info renderer.
    `void` | `validate()`

    - ### Methods inherited from class javax.swing.JPanel

      `getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI`

    - ### Methods inherited from class javax.swing.JComponent

      `addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, 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, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, 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, 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, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, 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, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, 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`

- - ### Constructor Detail

    - #### AbstractPopupRenderer

          protected AbstractPopupRenderer()

      Constructs a new popup renderer.
      Since:
        1.0

  - ### Method Detail

    - #### validate

          public void validate()

      Overrides:
        `validate` in class `Container`

    - #### createContentArea

          protected abstract JComponent createContentArea()

      Creates the content of the popup. The default implementation `DefaultPopupRenderer` creates a text area as its content. Subclasses can override to create their own content.
      Returns:
        a component used for the content area of the popup renderer
      Since:
        1.1

    - #### getPopupRendererComponent

          public JComponent getPopupRendererComponent(PopupLayer pl,
                                                      Object titleValue,
                                                      Object popupValue,
                                                      TimelineObjectPath path,
                                                      IGanttChartModel model,
                                                      boolean pinned)

      Description copied from interface: `IPopupRenderer`
      Returns the component that will be used as a popup that provides additional information about a timeline object.
      Specified by:
        `getPopupRendererComponent` in interface `IPopupRenderer`
      Parameters:
        `pl` - the popup layer that requires a popup
        `titleValue` - the object that represents the input for the title of the popup
        `popupValue` - the object that represents the input for the popup
        `path` - the path to the timeline object
        `model` - the data source
        `pinned` - indicates whether the popup is visible because it is sticky (TRUE) or because the mouse cursor hovers over the timeline object (FALSE)
      Returns:
        a component to be used as a popup
      See Also:
        `IPopupPolicy.getPopupValue(TimelineObjectPath, IGanttChartModel, boolean)`

    - #### getPopupRendererComponent

          public Component getPopupRendererComponent(PopupLayer pl,
                                                     Object titleValue,
                                                     Object popupValue,
                                                     TreePath path,
                                                     IGanttChartModel model,
                                                     boolean pinned)

      Description copied from interface: `IPopupRenderer`
      Returns the component that will be used as a popup that provides additional information about a tree table node.
      Specified by:
        `getPopupRendererComponent` in interface `IPopupRenderer`
      Parameters:
        `pl` - the popup layer that requires a popup
        `titleValue` - the object that represents the input for the title of the popup
        `popupValue` - the object that represents the input for the popup
        `path` - the path to the tree node
        `model` - the data source
        `pinned` - indicates whether the popup is visible because it is sticky (TRUE) or because the mouse cursor hovers over the timeline object (FALSE)
      Returns:
        a component to be used as a popup
      See Also:
        `IPopupPolicy.getPopupValue(TreePath, IGanttChartModel, boolean)`

    - #### getPopupRendererComponent

          public Component getPopupRendererComponent(PopupLayer pl,
                                                     Object titleValue,
                                                     Object popupValue,
                                                     IRelationship relationship,
                                                     IGanttChartModel model)

      Description copied from interface: `IPopupRenderer`
      Returns the component that will be used as a popup that provides additional information about a relationship.
      Specified by:
        `getPopupRendererComponent` in interface `IPopupRenderer`
      Parameters:
        `pl` - the popup layer that requires a popup
        `titleValue` - the object that represents the input for the title of the popup
        `popupValue` - the object that represents the input for the popup
        `relationship` - the relationship for which a popup will be shown
        `model` - the data source
      Returns:
        a component to be used as a popup
      See Also:
        `IPopupPolicy.getPopupValue(TreePath, IGanttChartModel, boolean)`

    - #### getTitleIcon

          protected Icon getTitleIcon(Object popupValue,
                                      TimelineObjectPath path,
                                      IGanttChartModel model)

      Returns an icon that will be shown in the header / title of the popup. The default implementation always returns NULL. Subclasses may override to return an icon that is (for example) based on the timeline object type or maybe the popup value object type.
      Parameters:
        `popupValue` - the popup value that will be shown in the popup
        `path` - the path to the timeline object for which a popup is shown
        `model` - the data source that returned the node and the timeline object
      Returns:
        an icon to be used in the header / title of the popup
      Since:
        1.0

    - #### getTitleIcon

          protected Icon getTitleIcon(Object popupValue,
                                      TreePath path,
                                      IGanttChartModel model)

      Returns an icon that will be shown in the header / title of the popup. The default implementation always returns NULL. Subclasses may override to return an icon that is (for example) based on the tree node type or maybe the popup value object type.
      Parameters:
        `popupValue` - the popup value that will be shown in the popup
        `path` - the path to the timeline object for which a popup is shown
        `model` - the data source that returned the node and the timeline object
      Returns:
        an icon to be used in the header / title of the popup
      Since:
        1.0

    - #### getTitleIcon

          protected Icon getTitleIcon(Object popupValue,
                                      IRelationship relationship,
                                      IGanttChartModel model)

      Returns an icon that will be shown in the header / title of the popup. The default implementation always returns NULL. Subclasses may override to return an icon that is (for example) based on the relationship type or maybe the popup value object type.
      Parameters:
        `popupValue` - the popup value that will be shown in the popup
        `relationship` - the relationship for which a popup is shown
        `model` - the data source that returned the node and the timeline object
      Returns:
        an icon to be used in the header / title of the popup
      Since:
        2.0

    - #### getPopupText

          protected String getPopupText(Object popupValue)

      Converts the given popup value to a String. The value was previously returned from the popup policy. The default implementation of this method will simply call `Object.toString()` on the popup value. Subclasses may override to return a text that is computed based on the value object.
      Parameters:
        `popupValue` - the value returned from the popup policy
      Returns:
        a text based on the given popup value
      Since:
        1.0
      See Also:
        `IPopupPolicy.getPopupValue(TimelineObjectPath, IGanttChartModel, boolean)`, `IPopupPolicy.getPopupValue(TreePath, IGanttChartModel, boolean)`

    - #### getPopupTitleText

          protected String getPopupTitleText(Object titleValue)

      Converts the given popup title value to a String. The value was previously returned from the popup policy. The default implementation of this method will simply call `Object.toString()` on the popup value. Subclasses may override to return a text that is computed based on the value object.
      Parameters:
        `titleValue` - the title value returned from the popup policy
      Returns:
        a text based on the given popup value
      Since:
        1.1
      See Also:
        `IPopupPolicy.getPopupTitleValue(TimelineObjectPath, IGanttChartModel)`, `IPopupPolicy.getPopupTitleValue(TreePath, IGanttChartModel)`

    - #### isBorderOpaque

          public boolean isBorderOpaque()

      Specified by:
        `isBorderOpaque` in interface `Border`

    - #### paintBorder

          public void paintBorder(Component c,
                                  Graphics g,
                                  int x,
                                  int y,
                                  int width,
                                  int height)

      Specified by:
        `paintBorder` in interface `Border`

    - #### getBorderInsets

          public Insets getBorderInsets(Component c)

      Specified by:
        `getBorderInsets` in interface `Border`

    - #### getTitleLabel

          public JLabel getTitleLabel()

      Returns the label that gets used to display the title of the popup.
      Returns:
        the title label
      Since:
        1.0

    - #### getBackgroundColor1

          public Color getBackgroundColor1()

      Returns the first background color used for the gradient paint that fills the background.
      Returns:
        the first background color
      Since:
        1.0

    - #### setBackgroundColor1

          public void setBackgroundColor1(Color color)

      Sets the first background color used for the gradient paint that fills the background.
      Parameters:
        `color` - the first background color
      Since:
        1.0

    - #### getBackgroundColor2

          public Color getBackgroundColor2()

      Returns the second background color used for the gradient paint that fills the background.
      Returns:
        the second background color
      Since:
        1.0

    - #### setBackgroundColor2

          public void setBackgroundColor2(Color color)

      Sets the first background color used for the gradient paint that fills the background.
      Parameters:
        `color` - the first background color
      Since:
        1.0

    - #### getLineColor

          public Color getLineColor()

      Returns the color used for drawing the border line around the info object.
      Returns:
        the border line color
      Since:
        1.0

    - #### setLineColor

          public void setLineColor(Color color)

      Sets the color used for drawing the border line around the info object.
      Parameters:
        `color` - the border line color
      Since:
        1.0

    - #### getTextColor

          public Color getTextColor()

      Returns the color used for the text shown by the info renderer.
      Returns:
        the color used for the info text
      Since:
        1.0

    - #### setTextColor

          public void setTextColor(Color color)

      Sets the color used for the text shown by the info renderer.
      Parameters:
        `color` - the color used for the info text
      Since:
        1.0

    - #### isRenderingArrow

          public boolean isRenderingArrow()

      Returns TRUE if the renderer will show an arrow that points to the timeline object to which the popup information belongs.
      Returns:
        TRUE if an arrow gets shown
      Since:
        1.0

    - #### setRenderingArrow

          public void setRenderingArrow(boolean renderArrow)

      Specifies whether the renderer will show an arrow that points to the timeline object to which the popup information belongs.
      Parameters:
        `renderArrow` - if TRUE an arrow gets shown
      Since:
        1.0

    - #### firePropertyChange

          public void firePropertyChange(String propertyName,
                                         boolean oldValue,
                                         boolean newValue)

      Commented out for performance reasons.
      Overrides:
        `firePropertyChange` in class `JComponent`
      Since:
        1.1

    - #### firePropertyChange

          public void firePropertyChange(String propertyName,
                                         byte oldValue,
                                         byte newValue)

      Commented out for performance reasons.
      Overrides:
        `firePropertyChange` in class `Component`
      Since:
        1.1

    - #### firePropertyChange

          public void firePropertyChange(String propertyName,
                                         char oldValue,
                                         char newValue)

      Commented out for performance reasons.
      Overrides:
        `firePropertyChange` in class `JComponent`
      Since:
        1.1

    - #### firePropertyChange

          public void firePropertyChange(String propertyName,
                                         double oldValue,
                                         double newValue)

      Commented out for performance reasons.
      Overrides:
        `firePropertyChange` in class `Component`
      Since:
        1.1

    - #### firePropertyChange

          public void firePropertyChange(String propertyName,
                                         float oldValue,
                                         float newValue)

      Commented out for performance reasons.
      Overrides:
        `firePropertyChange` in class `Component`
      Since:
        1.1

    - #### firePropertyChange

          public void firePropertyChange(String propertyName,
                                         long oldValue,
                                         long newValue)

      Commented out for performance reasons.
      Overrides:
        `firePropertyChange` in class `Component`
      Since:
        1.1

    - #### firePropertyChange

          protected void firePropertyChange(String propertyName,
                                            Object oldValue,
                                            Object newValue)

      Commented out for performance reasons.
      Overrides:
        `firePropertyChange` in class `Component`
      Since:
        1.1

    - #### firePropertyChange

          public void firePropertyChange(String propertyName,
                                         short oldValue,
                                         short newValue)

      Commented out for performance reasons.
      Overrides:
        `firePropertyChange` in class `Component`
      Since:
        1.1

    - #### repaint

          public void repaint()

      Commented out for performance reasons.
      Overrides:
        `repaint` in class `Component`
      Since:
        1.1

    - #### repaint

          public void repaint(int x,
                              int y,
                              int width,
                              int height)

      Commented out for performance reasons.
      Overrides:
        `repaint` in class `Component`
      Since:
        1.1

    - #### repaint

          public void repaint(long tm)

      Commented out for performance reasons.
      Overrides:
        `repaint` in class `Component`
      Since:
        1.1

    - #### isVisible

          public boolean isVisible()

      Overriden in order to fix a bug in AWT, which causes the cursor to flicker during drag and drop operations.
      Overrides:
        `isVisible` in class `Component`
      Since:
        1.1

Copyright © 2006–2020 Dirk Lemmermann Software & Consulting. All rights reserved.