org.apache.batik.swing
Class JSVGScrollPane

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JPanel
                  extended by org.apache.batik.swing.JSVGScrollPane
All Implemented Interfaces:
ImageObserver, MenuContainer, Serializable, Accessible

public class JSVGScrollPane
extends JPanel

A Swing component that consists of a JSVGCanvas with optional scroll bars.

Reimplementation, rather than imlementing the Scrollable interface, provides several advantages. The main advantage is the ability to control more precisely ScrollBar events; fewer JSVGCanvas updates are required when scrolling. This creates a significant performance (reflected by an increase in scroll speed) advantage compared to implementing the Scrollable interface.

See Also:
Serialized Form

Nested Class Summary
protected  class JSVGScrollPane.SBListener
          Advanced JScrollBar listener.
protected  class JSVGScrollPane.ScrollListener
          Handle scroll, zoom, and resize events
 
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
protected  JSVGCanvas canvas
           
protected  Component cornerBox
           
protected  JScrollBar horizontal
           
protected  JPanel horizontalPanel
           
protected  JSVGScrollPane.SBListener hsbListener
           
protected  boolean ignoreScrollChange
           
protected  boolean scrollbarsAlwaysVisible
           
protected  JScrollBar vertical
           
protected  Rectangle2D viewBox
           
protected  JSVGScrollPane.SBListener vsbListener
           
 
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
JSVGScrollPane(JSVGCanvas canvas)
          Creates a JSVGScrollPane, which will scroll an JSVGCanvas.
 
Method Summary
protected  void checkAndSetViewBoxRect()
          Derives the SVG Viewbox from the SVG root element.
protected  SVGDocumentLoaderListener createLoadListener()
          Factory method so subclasses can override the default load listener.
protected  JSVGScrollPane.SBListener createScrollBarListener(boolean isVertical)
          Scrollbar listener factory method so subclasses can override the default SBListener behaviour.
protected  JSVGScrollPane.ScrollListener createScrollListener()
          Factory method so subclasses can override the default listener behaviour
 JSVGCanvas getCanvas()
           
 boolean getScrollbarsAlwaysVisible()
           
protected  Rectangle2D getViewBoxRect()
           
 void reset()
          Resets this object (for reloads), releasing any cached data and recomputing scroll extents.
protected  void resizeScrollBars()
          Compute the scrollbar extents, and determine if scrollbars should be visible.
 void scaleChange(float scale)
          Called when the scale size changes.
 void setScrollbarsAlwaysVisible(boolean vis)
           
protected  void setScrollPosition()
          Sets the translation portion of the transform based upon the current scroll bar position
protected  void updateScrollbarState(boolean hNeeded, boolean vNeeded)
           
protected  Dimension updateScrollbarVisibility(int tx, int ty, int maxW, int maxH)
           
 
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, 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, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, 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, 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

canvas

protected JSVGCanvas canvas

horizontalPanel

protected JPanel horizontalPanel

vertical

protected JScrollBar vertical

horizontal

protected JScrollBar horizontal

cornerBox

protected Component cornerBox

scrollbarsAlwaysVisible

protected boolean scrollbarsAlwaysVisible

hsbListener

protected JSVGScrollPane.SBListener hsbListener

vsbListener

protected JSVGScrollPane.SBListener vsbListener

viewBox

protected Rectangle2D viewBox

ignoreScrollChange

protected boolean ignoreScrollChange
Constructor Detail

JSVGScrollPane

public JSVGScrollPane(JSVGCanvas canvas)
Creates a JSVGScrollPane, which will scroll an JSVGCanvas.

Method Detail

getScrollbarsAlwaysVisible

public boolean getScrollbarsAlwaysVisible()

setScrollbarsAlwaysVisible

public void setScrollbarsAlwaysVisible(boolean vis)

createScrollBarListener

protected JSVGScrollPane.SBListener createScrollBarListener(boolean isVertical)
Scrollbar listener factory method so subclasses can override the default SBListener behaviour.


createScrollListener

protected JSVGScrollPane.ScrollListener createScrollListener()
Factory method so subclasses can override the default listener behaviour


createLoadListener

protected SVGDocumentLoaderListener createLoadListener()
Factory method so subclasses can override the default load listener.


getCanvas

public JSVGCanvas getCanvas()

reset

public void reset()
Resets this object (for reloads), releasing any cached data and recomputing scroll extents.


setScrollPosition

protected void setScrollPosition()
Sets the translation portion of the transform based upon the current scroll bar position


resizeScrollBars

protected void resizeScrollBars()
Compute the scrollbar extents, and determine if scrollbars should be visible.


updateScrollbarVisibility

protected Dimension updateScrollbarVisibility(int tx,
                                              int ty,
                                              int maxW,
                                              int maxH)

updateScrollbarState

protected void updateScrollbarState(boolean hNeeded,
                                    boolean vNeeded)

checkAndSetViewBoxRect

protected void checkAndSetViewBoxRect()
Derives the SVG Viewbox from the SVG root element. Caches it. Assumes that it will not change.


getViewBoxRect

protected Rectangle2D getViewBoxRect()

scaleChange

public void scaleChange(float scale)
Called when the scale size changes. The scale factor (1.0 == original size). By default, this method does nothing, but may be overidden to display a scale (zoom) factor in a status bar, for example.



Copyright © 2008 Apache Software Foundation. All Rights Reserved.