org.apache.batik.swing.gvt
Class AbstractJGVTComponent

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by org.apache.batik.swing.gvt.AbstractJGVTComponent
All Implemented Interfaces:
ImageObserver, MenuContainer, Serializable
Direct Known Subclasses:
JGVTComponent

public abstract class AbstractJGVTComponent
extends JComponent

This class represents a component which can display a GVT tree. This class is made abstract so that concrete versions can be made for different JDK versions. In particular, this is for MouseWheelEvent support, which only exists in JDKs >= 1.4.

See Also:
Serialized Form

Nested Class Summary
protected  class AbstractJGVTComponent.Listener
          To hide the listener methods.
protected  class AbstractJGVTComponent.UnixTextSelectionListener
           
 
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
protected  boolean disableInteractions
          Whether to unconditionally disable interactions.
protected  boolean doubleBufferedRendering
          Whether the double buffering is enabled.
protected  AWTEventDispatcher eventDispatcher
          The event dispatcher.
protected  boolean eventsEnabled
          Whether the GVT tree should be reactive to mouse and key events.
protected  GraphicsNode gvtRoot
          The GVT tree root.
protected  GVTTreeRenderer gvtTreeRenderer
          The GVT tree renderer.
protected  List gvtTreeRendererListeners
          The GVT tree renderer listeners.
protected  BufferedImage image
          The image to paint.
protected  AffineTransform initialTransform
          The initial rendering transform.
protected  Interactor interactor
          The current interactor.
protected  List interactors
          The interactor list.
protected  List jgvtListeners
          The JGVTComponentListener list.
protected  AbstractJGVTComponent.Listener listener
          The listener.
protected  boolean needRender
          Whether a render was requested.
protected  List overlays
          The overlays.
protected  AffineTransform paintingTransform
          The transform used for painting.
protected  boolean progressivePaint
          Whether to allow progressive paint.
protected  HaltingThread progressivePaintThread
          The progressive paint thread.
protected  ImageRenderer renderer
          The current renderer.
protected  ImageRendererFactory rendererFactory
          The renderer factory.
protected  AffineTransform renderingTransform
          The transform used for rendering.
protected  boolean selectableText
          Whether the text should be selectable if eventEnabled is false, this flag is ignored.
protected  boolean suspendInteractions
          Whether to suspend interactions.
protected  TextSelectionManager textSelectionManager
          The text selection manager.
protected  boolean useUnixTextSelection
          Whether the JGVTComponent should adhere to 'Unix' text selection semantics where as soon as text is selected it is copied to the clipboard.
 
Fields inherited from class javax.swing.JComponent
accessibleContext, 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
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
AbstractJGVTComponent()
          Creates a new AbstractJGVTComponent.
AbstractJGVTComponent(boolean eventsEnabled, boolean selectableText)
          Creates a new abstract JGVTComponent.
 
Method Summary
protected  void addAWTListeners()
          Adds the AWT listeners.
 void addGVTTreeRendererListener(GVTTreeRendererListener l)
          Adds a GVTTreeRendererListener to this component.
 void addJGVTComponentListener(JGVTComponentListener listener)
           
protected  boolean computeRenderingTransform()
          Computes the initial value of the transform used for rendering.
protected  ImageRenderer createImageRenderer()
          Creates a new renderer.
protected  AbstractJGVTComponent.Listener createListener()
          Creates an instance of Listener.
protected  TextSelectionManager createTextSelectionManager(EventDispatcher ed)
           
 void deselectAll()
          Deselects all.
 void flush()
          Flush any cached image data (preliminary interface, may be removed or modified in the future).
 void flush(Rectangle r)
          Flush a rectangle of cached image data (preliminary interface, may be removed or modified in the future).
 boolean getDisableInteractions()
          Returns true if all 'interactor' objects (pan, zoom, etc) are disabled.
 boolean getDoubleBufferedRendering()
          Tells whether this component use double buffering to render SVG documents.
 GraphicsNode getGraphicsNode()
          Returns the root of the GVT tree displayed by this component, if any.
 AffineTransform getInitialTransform()
          Returns the initial transform.
 List getInteractors()
          Returns the interactor list.
 BufferedImage getOffScreen()
          Returns the off-screen image, if any.
 List getOverlays()
          Returns the overlay list.
 AffineTransform getPaintingTransform()
          Returns the current painting transform.
 boolean getProgressivePaint()
          Tells whether the progressive paint is enabled.
 AffineTransform getRenderingTransform()
          Returns the current rendering transform.
 Rectangle getRenderRect()
           
 Color getSelectionOverlayColor()
          Returns the color of the selection overlay.
 Color getSelectionOverlayStrokeColor()
          Returns the color of the outline of the selection overlay.
 TextSelectionManager getTextSelectionManager()
          Returns the current Text selection manager for the Component.
 void getUseUnixTextSelection(boolean b)
          Returns true if the canvas will copy selections to the clipboard when they are completed.
protected  void handleException(Exception e)
          Handles an exception.
 void immediateRepaint()
          Repaints immediately the component.
protected  void initializeEventHandling()
          Initializes the event handling classes.
 boolean isSelectionOverlayXORMode()
          Returns true if the selection overlay is painted in XOR mode, false otherwise.
 void paintComponent(Graphics g)
          Paints this component.
protected  void releaseRenderingReferences()
          Releases the references to the rendering resources,
 void removeGVTTreeRendererListener(GVTTreeRendererListener l)
          Removes a GVTTreeRendererListener from this component.
 void removeJGVTComponentListener(JGVTComponentListener listener)
           
protected  void renderGVTTree()
          Renders the GVT tree.
 void resetRenderingTransform()
          Resets the rendering transform to its initial value.
protected  void scheduleGVTRendering()
          Schedules a new GVT rendering.
 void select(Mark start, Mark end)
          Sets the selection to the specified start and end mark.
 void setDisableInteractions(boolean b)
          Turn off all 'interactor' objects (pan, zoom, etc) if 'b' is true, turn them on if 'b' is false.
 void setDoubleBufferedRendering(boolean b)
          Sets whether this component should use double buffering to render SVG documents.
 void setGraphicsNode(GraphicsNode gn)
          Sets the GVT tree to display.
protected  void setGraphicsNode(GraphicsNode gn, boolean createDispatcher)
          Sets the GVT tree to display.
 void setPaintingTransform(AffineTransform at)
          Sets the painting transform.
 void setProgressivePaint(boolean b)
          Whether to enable the progressive paint.
 void setRenderingTransform(AffineTransform at)
          Sets the rendering transform.
 void setRenderingTransform(AffineTransform at, boolean performRedraw)
           
 void setSelectionOverlayColor(Color color)
          Sets the color of the selection overlay to the specified color.
 void setSelectionOverlayStrokeColor(Color color)
          Sets the color of the outline of the selection overlay to the specified color.
 void setSelectionOverlayXORMode(boolean state)
          Sets whether or not the selection overlay will be painted in XOR mode, depending on the specified parameter.
 void setUseUnixTextSelection(boolean b)
          If 'b' is true text selections will copied to the clipboard immediately.
 void stopProcessing()
          Stops the processing of the current tree.
protected  boolean updateRenderingTransform()
          Updates the value of the transform used for rendering.
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getAccessibleContext, 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, getUIClassID, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintImmediately, paintImmediately, paramString, 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, updateUI
 
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, transferFocusBackward, transferFocusDownCycle, validate, 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, 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, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, 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, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

listener

protected AbstractJGVTComponent.Listener listener
The listener.


gvtTreeRenderer

protected GVTTreeRenderer gvtTreeRenderer
The GVT tree renderer.


gvtRoot

protected GraphicsNode gvtRoot
The GVT tree root.


rendererFactory

protected ImageRendererFactory rendererFactory
The renderer factory.


renderer

protected ImageRenderer renderer
The current renderer.


gvtTreeRendererListeners

protected List gvtTreeRendererListeners
The GVT tree renderer listeners.


needRender

protected boolean needRender
Whether a render was requested.


progressivePaint

protected boolean progressivePaint
Whether to allow progressive paint.


progressivePaintThread

protected HaltingThread progressivePaintThread
The progressive paint thread.


image

protected BufferedImage image
The image to paint.


initialTransform

protected AffineTransform initialTransform
The initial rendering transform.


renderingTransform

protected AffineTransform renderingTransform
The transform used for rendering.


paintingTransform

protected AffineTransform paintingTransform
The transform used for painting.


interactors

protected List interactors
The interactor list.


interactor

protected Interactor interactor
The current interactor.


overlays

protected List overlays
The overlays.


jgvtListeners

protected List jgvtListeners
The JGVTComponentListener list.


eventDispatcher

protected AWTEventDispatcher eventDispatcher
The event dispatcher.


textSelectionManager

protected TextSelectionManager textSelectionManager
The text selection manager.


doubleBufferedRendering

protected boolean doubleBufferedRendering
Whether the double buffering is enabled.


eventsEnabled

protected boolean eventsEnabled
Whether the GVT tree should be reactive to mouse and key events.


selectableText

protected boolean selectableText
Whether the text should be selectable if eventEnabled is false, this flag is ignored.


useUnixTextSelection

protected boolean useUnixTextSelection
Whether the JGVTComponent should adhere to 'Unix' text selection semantics where as soon as text is selected it is copied to the clipboard. If users want Mac/Windows behaviour they need to handle selections them selves.


suspendInteractions

protected boolean suspendInteractions
Whether to suspend interactions.


disableInteractions

protected boolean disableInteractions
Whether to unconditionally disable interactions.

Constructor Detail

AbstractJGVTComponent

public AbstractJGVTComponent()
Creates a new AbstractJGVTComponent.


AbstractJGVTComponent

public AbstractJGVTComponent(boolean eventsEnabled,
                             boolean selectableText)
Creates a new abstract JGVTComponent.

Parameters:
eventsEnabled - Whether the GVT tree should be reactive to mouse and key events.
selectableText - Whether the text should be selectable. if eventEnabled is false, this flag is ignored.
Method Detail

addAWTListeners

protected void addAWTListeners()
Adds the AWT listeners.


setDisableInteractions

public void setDisableInteractions(boolean b)
Turn off all 'interactor' objects (pan, zoom, etc) if 'b' is true, turn them on if 'b' is false.


getDisableInteractions

public boolean getDisableInteractions()
Returns true if all 'interactor' objects (pan, zoom, etc) are disabled.


setUseUnixTextSelection

public void setUseUnixTextSelection(boolean b)
If 'b' is true text selections will copied to the clipboard immediately. If 'b' is false then nothing will be done when selections are made (the application is responsable for copying the selection in response to user actions).


getUseUnixTextSelection

public void getUseUnixTextSelection(boolean b)
Returns true if the canvas will copy selections to the clipboard when they are completed.


getInteractors

public List getInteractors()
Returns the interactor list.


getOverlays

public List getOverlays()
Returns the overlay list.


getOffScreen

public BufferedImage getOffScreen()
Returns the off-screen image, if any.


addJGVTComponentListener

public void addJGVTComponentListener(JGVTComponentListener listener)

removeJGVTComponentListener

public void removeJGVTComponentListener(JGVTComponentListener listener)

resetRenderingTransform

public void resetRenderingTransform()
Resets the rendering transform to its initial value.


stopProcessing

public void stopProcessing()
Stops the processing of the current tree.


getGraphicsNode

public GraphicsNode getGraphicsNode()
Returns the root of the GVT tree displayed by this component, if any.


setGraphicsNode

public void setGraphicsNode(GraphicsNode gn)
Sets the GVT tree to display.


setGraphicsNode

protected void setGraphicsNode(GraphicsNode gn,
                               boolean createDispatcher)
Sets the GVT tree to display.


initializeEventHandling

protected void initializeEventHandling()
Initializes the event handling classes.


createTextSelectionManager

protected TextSelectionManager createTextSelectionManager(EventDispatcher ed)

getTextSelectionManager

public TextSelectionManager getTextSelectionManager()
Returns the current Text selection manager for the Component. Users can register with this to be notifed of changes in the text selection.


setSelectionOverlayColor

public void setSelectionOverlayColor(Color color)
Sets the color of the selection overlay to the specified color.

Parameters:
color - the new color of the selection overlay

getSelectionOverlayColor

public Color getSelectionOverlayColor()
Returns the color of the selection overlay.


setSelectionOverlayStrokeColor

public void setSelectionOverlayStrokeColor(Color color)
Sets the color of the outline of the selection overlay to the specified color.

Parameters:
color - the new color of the outline of the selection overlay

getSelectionOverlayStrokeColor

public Color getSelectionOverlayStrokeColor()
Returns the color of the outline of the selection overlay.


setSelectionOverlayXORMode

public void setSelectionOverlayXORMode(boolean state)
Sets whether or not the selection overlay will be painted in XOR mode, depending on the specified parameter.

Parameters:
state - true implies the selection overlay will be in XOR mode

isSelectionOverlayXORMode

public boolean isSelectionOverlayXORMode()
Returns true if the selection overlay is painted in XOR mode, false otherwise.


select

public void select(Mark start,
                   Mark end)
Sets the selection to the specified start and end mark.

Parameters:
start - the mark used to define where the selection starts
end - the mark used to define where the selection ends

deselectAll

public void deselectAll()
Deselects all.


setProgressivePaint

public void setProgressivePaint(boolean b)
Whether to enable the progressive paint.


getProgressivePaint

public boolean getProgressivePaint()
Tells whether the progressive paint is enabled.


getRenderRect

public Rectangle getRenderRect()

immediateRepaint

public void immediateRepaint()
Repaints immediately the component.


paintComponent

public void paintComponent(Graphics g)
Paints this component.

Overrides:
paintComponent in class JComponent

setPaintingTransform

public void setPaintingTransform(AffineTransform at)
Sets the painting transform. A null transform is the same as an identity transform. The next repaint will use the given transform.


getPaintingTransform

public AffineTransform getPaintingTransform()
Returns the current painting transform.


setRenderingTransform

public void setRenderingTransform(AffineTransform at)
Sets the rendering transform. Calling this method causes a rendering to be performed.


setRenderingTransform

public void setRenderingTransform(AffineTransform at,
                                  boolean performRedraw)

getInitialTransform

public AffineTransform getInitialTransform()
Returns the initial transform.


getRenderingTransform

public AffineTransform getRenderingTransform()
Returns the current rendering transform.


setDoubleBufferedRendering

public void setDoubleBufferedRendering(boolean b)
Sets whether this component should use double buffering to render SVG documents. The change will be effective during the next rendering.


getDoubleBufferedRendering

public boolean getDoubleBufferedRendering()
Tells whether this component use double buffering to render SVG documents.


addGVTTreeRendererListener

public void addGVTTreeRendererListener(GVTTreeRendererListener l)
Adds a GVTTreeRendererListener to this component.


removeGVTTreeRendererListener

public void removeGVTTreeRendererListener(GVTTreeRendererListener l)
Removes a GVTTreeRendererListener from this component.


flush

public void flush()
Flush any cached image data (preliminary interface, may be removed or modified in the future).


flush

public void flush(Rectangle r)
Flush a rectangle of cached image data (preliminary interface, may be removed or modified in the future).


createImageRenderer

protected ImageRenderer createImageRenderer()
Creates a new renderer.


renderGVTTree

protected void renderGVTTree()
Renders the GVT tree.


computeRenderingTransform

protected boolean computeRenderingTransform()
Computes the initial value of the transform used for rendering. Return true if a repaint is required, otherwise false.


updateRenderingTransform

protected boolean updateRenderingTransform()
Updates the value of the transform used for rendering. Return true if a repaint is required, otherwise false.


handleException

protected void handleException(Exception e)
Handles an exception.


releaseRenderingReferences

protected void releaseRenderingReferences()
Releases the references to the rendering resources,


scheduleGVTRendering

protected void scheduleGVTRendering()
Schedules a new GVT rendering.


createListener

protected AbstractJGVTComponent.Listener createListener()
Creates an instance of Listener.



Copyright © 2008 Apache Software Foundation. All Rights Reserved.