Package org.openstreetmap.josm.gui
Class ScrollViewport
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.JPanel
-
- org.openstreetmap.josm.gui.ScrollViewport
-
- All Implemented Interfaces:
java.awt.image.ImageObserver,java.awt.MenuContainer,java.io.Serializable,javax.accessibility.Accessible
public class ScrollViewport extends javax.swing.JPanel
A viewport with UP and DOWN arrow buttons, so that the user can make the content scroll. This should be used for long, vertical toolbars.- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private classScrollViewport.ScrollViewPortMouseListener-
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 static intALL_DIRECTIONAllow scrolling in both directionsprivate intallowedScrollDirectionsprivate java.util.List<javax.swing.JButton>buttonsprivate javax.swing.JComponentcomponentstatic intDOWN_DIRECTIONDirection flag for downwardsstatic intHORIZONTAL_DIRECTIONAllow horizontal scrollingstatic intLEFT_DIRECTIONDirection flag for leftprivate static intNO_SCROLLprivate java.awt.event.ComponentAdapterrefreshButtonsOnResizestatic intRIGHT_DIRECTIONDirection flag for rightprivate intscrollDirectionprivate javax.swing.Timertimerstatic intUP_DIRECTIONDirection flag for upwardsstatic intVERTICAL_DIRECTIONAllow vertical scrollingprivate javax.swing.JViewportvp-
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 ScrollViewport(int direction)Create a new scroll viewportScrollViewport(javax.swing.JComponent c, int direction)Create a new scroll viewport
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidadd(javax.swing.JComponent c)Sets the component to be used as content.private voidaddScrollButton(int direction, java.lang.String icon, java.lang.String borderLayoutPosition)java.awt.DimensiongetMinimumSize()java.awt.DimensiongetPreferredSize()java.awt.PointgetViewPosition()Gets the position (offset) of the view areajava.awt.RectanglegetViewRect()Gets the current visible part of the viewjava.awt.DimensiongetViewSize()Gets the size of the viewvoidscroll()Scrolls in the currently selected scroll direction.voidscroll(int deltaX, int deltaY)Scrolls by the given offsetvoidshowOrHideButtons()Update the visibility of the buttons Only show them if the Viewport is too small for the content.-
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, getNextFocusableComponent, getPopupLocation, 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
-
NO_SCROLL
private static final int NO_SCROLL
- See Also:
- Constant Field Values
-
UP_DIRECTION
public static final int UP_DIRECTION
Direction flag for upwards- See Also:
- Constant Field Values
-
DOWN_DIRECTION
public static final int DOWN_DIRECTION
Direction flag for downwards- See Also:
- Constant Field Values
-
LEFT_DIRECTION
public static final int LEFT_DIRECTION
Direction flag for left- See Also:
- Constant Field Values
-
RIGHT_DIRECTION
public static final int RIGHT_DIRECTION
Direction flag for right- See Also:
- Constant Field Values
-
VERTICAL_DIRECTION
public static final int VERTICAL_DIRECTION
Allow vertical scrolling- See Also:
- Constant Field Values
-
HORIZONTAL_DIRECTION
public static final int HORIZONTAL_DIRECTION
Allow horizontal scrolling- See Also:
- Constant Field Values
-
ALL_DIRECTION
public static final int ALL_DIRECTION
Allow scrolling in both directions- See Also:
- Constant Field Values
-
vp
private final javax.swing.JViewport vp
-
component
private javax.swing.JComponent component
-
buttons
private final java.util.List<javax.swing.JButton> buttons
-
timer
private final javax.swing.Timer timer
-
scrollDirection
private int scrollDirection
-
allowedScrollDirections
private final int allowedScrollDirections
-
refreshButtonsOnResize
private final transient java.awt.event.ComponentAdapter refreshButtonsOnResize
-
-
Constructor Detail
-
ScrollViewport
public ScrollViewport(javax.swing.JComponent c, int direction)
Create a new scroll viewport- Parameters:
c- The component to display as content.direction- The direction to scroll. Should be one ofVERTICAL_DIRECTION,HORIZONTAL_DIRECTION,ALL_DIRECTION
-
ScrollViewport
public ScrollViewport(int direction)
Create a new scroll viewport- Parameters:
direction- The direction to scroll. Should be one ofVERTICAL_DIRECTION,HORIZONTAL_DIRECTION,ALL_DIRECTION
-
-
Method Detail
-
addScrollButton
private void addScrollButton(int direction, java.lang.String icon, java.lang.String borderLayoutPosition)
-
scroll
public void scroll()
Scrolls in the currently selected scroll direction.
-
scroll
public void scroll(int deltaX, int deltaY)
Scrolls by the given offset- Parameters:
deltaX- offset xdeltaY- offset y
-
showOrHideButtons
public void showOrHideButtons()
Update the visibility of the buttons Only show them if the Viewport is too small for the content.
-
getViewRect
public java.awt.Rectangle getViewRect()
Gets the current visible part of the view- Returns:
- The current view rect
-
getViewSize
public java.awt.Dimension getViewSize()
Gets the size of the view- Returns:
- The size
-
getViewPosition
public java.awt.Point getViewPosition()
Gets the position (offset) of the view area- Returns:
- The offset
-
getPreferredSize
public java.awt.Dimension getPreferredSize()
- Overrides:
getPreferredSizein classjavax.swing.JComponent
-
getMinimumSize
public java.awt.Dimension getMinimumSize()
- Overrides:
getMinimumSizein classjavax.swing.JComponent
-
add
public void add(javax.swing.JComponent c)
Sets the component to be used as content.- Parameters:
c- The component
-
-