codeblockutil
Class CHoverScrollPane

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JLayeredPane
                  extended by codeblockutil.CScrollPane
                      extended by codeblockutil.CHoverScrollPane
All Implemented Interfaces:
java.awt.event.KeyListener, java.awt.event.MouseWheelListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible

public class CHoverScrollPane
extends CScrollPane
implements java.awt.event.KeyListener

The CHoverScrollPane is a swing-compatible widget that allows clients of this CScrollPane to control the width of the thumb, the color of the thumb, and and the color of the track. Like all swing-compatible scroll panes, the CScrollPane wraps a viewport and must change the viewing space (also known as the visible rectangle) of the scroll pane when users attempts to scroll with the mouse, wheel, or key board. This scroll pane is unique in that it hover INSIDE the viewing space rather than exist outside the viewing space. By default, the track is transparent to help users see parts of the viewport covered by the track.

See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class codeblockutil.CScrollPane
CScrollPane.ScrollPolicy
 
Nested classes/interfaces inherited from class javax.swing.JLayeredPane
javax.swing.JLayeredPane.AccessibleJLayeredPane
 
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
 
Fields inherited from class javax.swing.JLayeredPane
DEFAULT_LAYER, DRAG_LAYER, FRAME_CONTENT_LAYER, LAYER_PROPERTY, MODAL_LAYER, PALETTE_LAYER, POPUP_LAYER
 
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
CHoverScrollPane(javax.swing.JComponent view)
          Constructs a custom CHoverScrollPane with the view port set to "view", with both scroll bar policies set to "ALWAYS" (see javax.swing.JScrollPane for a description on the use of scroll bar policies).
CHoverScrollPane(javax.swing.JComponent view, CScrollPane.ScrollPolicy verticalPolicy, CScrollPane.ScrollPolicy horizontalPolicy)
          Constructs a custom CHoverScrollPane with the view port set to "view", and correponding vertical and horizontal bar policies (see javax.swing.JScrollPane for a description on the use of scroll bar policies).
CHoverScrollPane(javax.swing.JComponent view, CScrollPane.ScrollPolicy verticalPolicy, CScrollPane.ScrollPolicy horizontalPolicy, int thumbWidth, java.awt.Color thumbColor, java.awt.Color trackColor)
          Constructs a custom CHoverScrollPane with the view port set to "view", with correponding vertical and horizontal bar policies (see javax.swing.JScrollPane for a description on the use of scroll bar policies).
CHoverScrollPane(javax.swing.JComponent view, int thumbWidth, java.awt.Color thumbColor, java.awt.Color trackColor)
          Constructs a custom CHoverScrollPane with the view port set to "view", with both scroll bar policies set to "ALWAYS" (see javax.swing.JScrollPane for a description on the use of scroll bar policies).
 
Method Summary
 javax.swing.BoundedRangeModel getHorizontalModel()
           
 javax.swing.BoundedRangeModel getVerticalModel()
           
 void keyPressed(java.awt.event.KeyEvent e)
          KeyListeners: Should repaint the scrollbar everytime the user presses a key
 void keyReleased(java.awt.event.KeyEvent e)
          KeyListeners: Should repaint the scrollbar everytime the user presses a key
 void keyTyped(java.awt.event.KeyEvent e)
          KeyListeners: Should repaint the scrollbar everytime the user presses a key
static void main(java.lang.String[] args)
           
 void mouseWheelMoved(java.awt.event.MouseWheelEvent e)
          MouseWheelListener: Should move the viewport by same amount of wheel scroll
 void repositionComponents()
           
 void scrollRectToVisible(java.awt.Rectangle contentRect)
          Scrolls the view so that Rectangle within the view becomes visible.
 void setScrollingUnit(int x)
          Set the amount by which the mouse wheel scrolls
 
Methods inherited from class javax.swing.JLayeredPane
addImpl, getAccessibleContext, getComponentCountInLayer, getComponentsInLayer, getComponentToLayer, getIndexOf, getLayer, getLayer, getLayeredPaneAbove, getObjectForLayer, getPosition, highestLayer, insertIndexForLayer, isOptimizedDrawingEnabled, lowestLayer, moveToBack, moveToFront, paint, paramString, putLayer, remove, removeAll, setLayer, setLayer, setPosition
 
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, getUIClassID, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, 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, 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, updateUI
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, 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, 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
 

Constructor Detail

CHoverScrollPane

public CHoverScrollPane(javax.swing.JComponent view)
Constructs a custom CHoverScrollPane with the view port set to "view", with both scroll bar policies set to "ALWAYS" (see javax.swing.JScrollPane for a description on the use of scroll bar policies). Thumb will have girth of 10 and an interior color of black, hovering above a grayed-out transparant background.

Parameters:
view -

CHoverScrollPane

public CHoverScrollPane(javax.swing.JComponent view,
                        CScrollPane.ScrollPolicy verticalPolicy,
                        CScrollPane.ScrollPolicy horizontalPolicy)
Constructs a custom CHoverScrollPane with the view port set to "view", and correponding vertical and horizontal bar policies (see javax.swing.JScrollPane for a description on the use of scroll bar policies). Thumb will have girth of 10 and an interior color of black, hovering above a grayed-out transparent background.

Parameters:
view -
verticalPolicy -
horizontalPolicy -

CHoverScrollPane

public CHoverScrollPane(javax.swing.JComponent view,
                        int thumbWidth,
                        java.awt.Color thumbColor,
                        java.awt.Color trackColor)
Constructs a custom CHoverScrollPane with the view port set to "view", with both scroll bar policies set to "ALWAYS" (see javax.swing.JScrollPane for a description on the use of scroll bar policies). Thumb will have girth of equal to thumbWidth and an interior color equal to thumbColor.

Parameters:
view -

CHoverScrollPane

public CHoverScrollPane(javax.swing.JComponent view,
                        CScrollPane.ScrollPolicy verticalPolicy,
                        CScrollPane.ScrollPolicy horizontalPolicy,
                        int thumbWidth,
                        java.awt.Color thumbColor,
                        java.awt.Color trackColor)
Constructs a custom CHoverScrollPane with the view port set to "view", with correponding vertical and horizontal bar policies (see javax.swing.JScrollPane for a description on the use of scroll bar policies). The thumb will have a girth equal to "thumbWidth" and an interior color of thumbColor. The background underneath the thumb will have a color equal to thumbBackground.

Parameters:
view - - the viewport
verticalPolicy - - the vertical scroll bar policy
horizontalPolicy - - the horizontal scroll bar policy
thumbWidth - - the width of the vertical scroll bar in pixels and the height of the horiztontal scroll bar in pixels
thumbColor - - the interior color of the thumb
trackColor - - the backgorund color under the thumb
Method Detail

repositionComponents

public void repositionComponents()

getVerticalModel

public javax.swing.BoundedRangeModel getVerticalModel()
Specified by:
getVerticalModel in class CScrollPane

getHorizontalModel

public javax.swing.BoundedRangeModel getHorizontalModel()
Specified by:
getHorizontalModel in class CScrollPane

scrollRectToVisible

public void scrollRectToVisible(java.awt.Rectangle contentRect)
Description copied from class: CScrollPane
Scrolls the view so that Rectangle within the view becomes visible. This attempts to validate the view before scrolling if the view is currently not valid - isValid returns false. To avoid excessive validation when the containment hierarchy is being created this will not validate if one of the ancestors does not have a peer, or there is no validate root ancestor, or one of the ancestors is not a Window or Applet. Note that this method will not scroll outside of the valid viewport; for example, if contentRect is larger than the viewport, scrolling will be confined to the viewport's bounds.

Specified by:
scrollRectToVisible in class CScrollPane

setScrollingUnit

public void setScrollingUnit(int x)
Description copied from class: CScrollPane
Set the amount by which the mouse wheel scrolls

Specified by:
setScrollingUnit in class CScrollPane

mouseWheelMoved

public void mouseWheelMoved(java.awt.event.MouseWheelEvent e)
Description copied from class: CScrollPane
MouseWheelListener: Should move the viewport by same amount of wheel scroll

Specified by:
mouseWheelMoved in interface java.awt.event.MouseWheelListener
Specified by:
mouseWheelMoved in class CScrollPane

keyPressed

public void keyPressed(java.awt.event.KeyEvent e)
KeyListeners: Should repaint the scrollbar everytime the user presses a key

Specified by:
keyPressed in interface java.awt.event.KeyListener

keyReleased

public void keyReleased(java.awt.event.KeyEvent e)
KeyListeners: Should repaint the scrollbar everytime the user presses a key

Specified by:
keyReleased in interface java.awt.event.KeyListener

keyTyped

public void keyTyped(java.awt.event.KeyEvent e)
KeyListeners: Should repaint the scrollbar everytime the user presses a key

Specified by:
keyTyped in interface java.awt.event.KeyListener

main

public static void main(java.lang.String[] args)