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.JPanelA 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.
- Version:
- $Id: JSVGScrollPane.java 1851346 2019-01-15 13:41:00Z ssteiner $
- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected classJSVGScrollPane.SBListenerAdvanced JScrollBar listener.protected classJSVGScrollPane.ScrollListenerHandle scroll, zoom, and resize events(package private) classJSVGScrollPane.SVGScrollDocumentLoaderListenerprotected classJSVGScrollPane.WheelListenerMouseWheel 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 JSVGCanvascanvasprotected java.awt.ComponentcornerBoxprotected javax.swing.JScrollBarhorizontalprotected javax.swing.JPanelhorizontalPanelprotected JSVGScrollPane.SBListenerhsbListenerprotected booleanignoreScrollChangeprotected booleanscrollbarsAlwaysVisibleprotected javax.swing.JScrollBarverticalprotected java.awt.geom.Rectangle2DviewBoxprotected JSVGScrollPane.SBListenervsbListener-
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 voidcheckAndSetViewBoxRect()Derives the SVG Viewbox from the SVG root element.protected SVGDocumentLoaderListenercreateLoadListener()Factory method so subclasses can override the default load listener.protected JSVGScrollPane.SBListenercreateScrollBarListener(boolean isVertical)Scrollbar listener factory method so subclasses can override the default SBListener behaviour.protected JSVGScrollPane.ScrollListenercreateScrollListener()Factory method so subclasses can override the default listener behaviourJSVGCanvasgetCanvas()booleangetScrollbarsAlwaysVisible()protected java.awt.geom.Rectangle2DgetViewBoxRect()voidreset()Resets this object (for reloads), releasing any cached data and recomputing scroll extents.protected voidresizeScrollBars()Compute the scrollbar extents, and determine if scrollbars should be visible.voidscaleChange(float scale)Called when the scale size changes.voidsetScrollbarsAlwaysVisible(boolean vis)protected voidsetScrollPosition()Sets the translation portion of the transform based upon the current scroll bar positionprotected voidupdateScrollbarState(boolean hNeeded, boolean vNeeded)protected java.awt.DimensionupdateScrollbarVisibility(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.
-
-