org.apache.batik.swing
Class JSVGScrollPane

java.lang.Object
  extended byjava.awt.Component
      extended byjava.awt.Container
          extended byjavax.swing.JComponent
              extended byjavax.swing.JPanel
                  extended byorg.apache.batik.swing.JSVGScrollPane
All Implemented Interfaces:
javax.accessibility.Accessible, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable

public class JSVGScrollPane
extends javax.swing.JPanel

This is implements a 2D scroller that will scroll an JSVGCanvas.

Reimplimentation, rather than imlementing the Scrollable interface, provides several advantages. The main advantage is the ability to more precisely control ScrollBar events; fewer JSVGCanvas updates are required when scrolling. This creates a significant performance (reflected by an increase in scroll speed) advantage compared to implementating 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 inherited from class javax.swing.JPanel
javax.swing.JPanel.AccessibleJPanel
 
Nested classes inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
Nested classes inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
protected  JSVGCanvas canvas
           
protected  java.awt.Component cornerBox
           
protected  javax.swing.JScrollBar horizontal
           
protected  javax.swing.JPanel horizontalPanel
           
protected  JSVGScrollPane.SBListener hsbListener
           
protected  boolean ignoreScrollChange
           
protected  javax.swing.JScrollBar vertical
           
protected  java.awt.geom.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  JSVGScrollPane.SBListener createScrollBarListener(boolean isVertical)
          Scrollbar listener factory method so subclasses can use a subclass of SBListener if needed.
 JSVGCanvas getCanvas()
           
protected  java.awt.geom.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.
protected  void setScrollPosition()
          Sets the translation portion of the transform based upon the current scroll bar position
protected  java.awt.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, addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getGraphics, getHeight, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPreferredSize, getPropertyChangeListeners, getPropertyChangeListeners, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isPreferredSizeSet, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFont, setForeground, 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, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setFocusCycleRoot, setFocusTraversalKeys, setFocusTraversalPolicy, 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, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMouseWheelListeners, getName, getParent, getPeer, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, 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, processMouseEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, 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 javax.swing.JPanel horizontalPanel

vertical

protected javax.swing.JScrollBar vertical

horizontal

protected javax.swing.JScrollBar horizontal

cornerBox

protected java.awt.Component cornerBox

hsbListener

protected JSVGScrollPane.SBListener hsbListener

vsbListener

protected JSVGScrollPane.SBListener vsbListener

viewBox

protected java.awt.geom.Rectangle2D viewBox

ignoreScrollChange

protected boolean ignoreScrollChange
Constructor Detail

JSVGScrollPane

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

Method Detail

createScrollBarListener

protected JSVGScrollPane.SBListener createScrollBarListener(boolean isVertical)
Scrollbar listener factory method so subclasses can use a subclass of SBListener if needed.


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 java.awt.Dimension updateScrollbarVisibility(int tx,
                                                       int ty,
                                                       int maxW,
                                                       int maxH)

checkAndSetViewBoxRect

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


getViewBoxRect

protected java.awt.geom.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 ? 2005 Apache Software Foundation. All Rights Reserved.