Package org.apache.batik.swing
Class JSVGScrollPane
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.JPanel
-
- org.apache.batik.swing.JSVGScrollPane
-
- All Implemented Interfaces:
java.awt.image.ImageObserver
,java.awt.MenuContainer
,java.io.Serializable
,javax.accessibility.Accessible
public class JSVGScrollPane extends javax.swing.JPanel
A Swing component that consists of a JSVGCanvas with optional scroll bars.Reimplementation, rather than implementing 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
Nested Classes Modifier and Type Class Description protected class
JSVGScrollPane.SBListener
Advanced JScrollBar listener.protected class
JSVGScrollPane.ScrollListener
Handle scroll, zoom, and resize eventsprotected class
JSVGScrollPane.WheelListener
MouseWheel listener.-
Nested classes/interfaces inherited from class javax.swing.JPanel
javax.swing.JPanel.AccessibleJPanel
-
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
-
-
Field Summary
Fields Modifier and Type Field Description 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 boolean
scrollbarsAlwaysVisible
protected javax.swing.JScrollBar
vertical
protected java.awt.geom.Rectangle2D
viewBox
protected JSVGScrollPane.SBListener
vsbListener
-
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
-
-
Constructor Summary
Constructors Constructor Description JSVGScrollPane(JSVGCanvas canvas)
Creates a JSVGScrollPane, which will scroll an JSVGCanvas.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description 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 behaviourJSVGCanvas
getCanvas()
boolean
getScrollbarsAlwaysVisible()
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.void
setScrollbarsAlwaysVisible(boolean vis)
protected void
setScrollPosition()
Sets the translation portion of the transform based upon the current scroll bar positionprotected void
updateScrollbarState(boolean hNeeded, boolean vNeeded)
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, 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, 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, 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, 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, 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, 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
-
-
-
-
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
-
scrollbarsAlwaysVisible
protected boolean scrollbarsAlwaysVisible
-
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
-
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 java.awt.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 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.
-
-