sears.gui.glassPane
Class ViewportGlassPane

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by sears.gui.glassPane.ViewportGlassPane
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable
Direct Known Subclasses:
DefaultViewportGlassPane

public abstract class ViewportGlassPane
extends javax.swing.JComponent

This class provides a way to have a virtual rectangle over a viewport with viewport size and position.
Let the register listener and a resize of the viewport will affect the virtual bounds.
The advantage of this resides in the fact that you can do the same things out and inside of this virtual bounds.

How to use it:
 // init components:
 JComponent component = new JComponent();
 JScrollPane scrollPane = new JScrollPane(component);
 frame.add(scrollPane);
        
 // set up the ViewportGlassPane object
 ViewportGlassPane gp = new ViewPortGlassPane(scrollPane.getViewport());
 // this method simply call frame.setGlassPane(gp) method
 gp.addAsAGlassPane(frame);
 
 (...)
        
 EventQueue.invokeLater(new Runnable() {
        public void run() {
                gp.setVisible(true);
        }
 });
 

See Also:
JViewport, Serialized Form

Nested Class Summary
 
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.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
ViewportGlassPane(javax.swing.JViewport viewport)
          Constructs a new ViewportGlassPane instance
Register a component listener, instance of ViewportListener to the viewport.
 
Method Summary
 void addAsAGlassPane(javax.swing.JFrame frame)
          Sets this as the glass pane of the frame given in parameters.
 void fireViewportSizeChanged()
          When viewport changed when a resize is set on it.
protected  java.awt.Graphics2D getGraphics2D()
          Deprecated. 
 java.awt.Rectangle getVirtualBounds()
          Determines, if it is not already do, the virtual bounds size and position
 void paintComponent(java.awt.Graphics g)
           
protected abstract  void paintComponentWithGraphics(java.awt.Graphics2D gr)
          This method is called in paint(g) method.
protected  void removeViewportListener(javax.swing.JViewport viewport)
          Removes the listener associate to the viewport by the class constructor
SECURITY: this method require that object which calls it knows and have an access to the viewport gives in parameter of the class constructor
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getAccessibleContext, 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, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintImmediately, paintImmediately, paramString, 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, updateUI
 
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, 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

ViewportGlassPane

public ViewportGlassPane(javax.swing.JViewport viewport)
Constructs a new ViewportGlassPane instance
Register a component listener, instance of ViewportListener to the viewport.
Resizing the view (viewport) will have no indesirable effect on the virtual bounds

Parameters:
viewport - the viewport on which the virtual bounds is set
Throws:
java.lang.NullPointerException - if viewport is null
Method Detail

removeViewportListener

protected void removeViewportListener(javax.swing.JViewport viewport)
Removes the listener associate to the viewport by the class constructor
SECURITY: this method require that object which calls it knows and have an access to the viewport gives in parameter of the class constructor

Parameters:
viewport - must be equals to the one given in the class constructor parameter
See Also:
Object.equals(Object)

paintComponent

public void paintComponent(java.awt.Graphics g)
Overrides:
paintComponent in class javax.swing.JComponent

paintComponentWithGraphics

protected abstract void paintComponentWithGraphics(java.awt.Graphics2D gr)
This method is called in paint(g) method. Allow a way to use the graphics context of this component

Parameters:
gr - the graphics context of this component

fireViewportSizeChanged

public void fireViewportSizeChanged()
When viewport changed when a resize is set on it. And so, is needed to recalculate the virtual bounds


getVirtualBounds

public java.awt.Rectangle getVirtualBounds()
Determines, if it is not already do, the virtual bounds size and position

Returns:
the virtual bonds as a Rectangle object

addAsAGlassPane

public void addAsAGlassPane(javax.swing.JFrame frame)
Sets this as the glass pane of the frame given in parameters. If frame is null this method is a no op.

Parameters:
frame - if null nothing is done
See Also:
JFrame.setGlassPane(java.awt.Component)

getGraphics2D

@Deprecated
protected java.awt.Graphics2D getGraphics2D()
Deprecated. 

Convert and return the component's graphics context

Returns:
the component's graphics context or null if it is null or not instance of Graphics2D