Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| HTML Parser Home Page
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.htmlparser.lexerapplications.thumbelina
Class PicturePanel

    java.lang.Object
      java.awt.Component
          java.awt.Container
              javax.swing.JComponent
                  javax.swing.JPanel
                      org.htmlparser.lexerapplications.thumbelina.PicturePanel

All Implemented Interfaces:
  Accessible, ComponentListener, EventListener, HierarchyListener, ImageObserver, MenuContainer, MouseListener, Scrollable, Serializable

public class PicturePanel
extends JPanel
implements MouseListener, Scrollable, ComponentListener, HierarchyListener

Hold and display a group of pictures.

Author:
  derrick
See Also:
  Serialized Form

Nested Class Summary

Nested classes inherited from class javax.swing.JPanel
`JPanel.AccessibleJPanel`

Nested classes inherited from class javax.swing.JComponent
`JComponent.AccessibleJComponent`

Nested classes inherited from class java.awt.Container
`Container.AccessibleAWTContainer`

Nested classes inherited from class java.awt.Component
`Component.AccessibleAWTComponent, Component.BltBufferStrategy, Component.FlipBufferStrategy`

Field Summary
`protected static int` | `BLOCK_INCREMENT` Scrolling block increment (both directions).
`protected TileSet` | `mMosaic` The display mosaic.
`protected Dimension` | `mPreferredSize` The preferred size of this component.
`protected Thumbelina` | `mThumbelina` The thumbelina object in use.
`protected static int` | `UNIT_INCREMENT` Scrolling unit increment (both directions).

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
`PicturePanel(Thumbelina thumbelina)` Creates a new instance of PicturePanel

Method Summary
`void` | `adjustClipForInsets(Graphics graphics)` Adjust the graphics clip region to account for insets.
`void` | `bringToTop(Picture picture)` Move the given picture to the top of the Z order.
`protected Dimension` | `calculatePreferredSize()` Compute the preferred size of the component.
`void` | `componentHidden(ComponentEvent event)` Invoked when the component has been made invisible.
`void` | `componentMoved(ComponentEvent event)` Invoked when the component's position changes.
`void` | `componentResized(ComponentEvent event)` Invoked when the container's size changes.
`void` | `componentShown(ComponentEvent event)` Invoked when the component has been made visible.
`protected void` | `draw(Picture picture, boolean add)` Draw an image on screen.
`Picture` | `find(String url)` Find a picture with the given URL in the panel.
`Dimension` | `getPreferredScrollableViewportSize()` Returns the preferred size of the viewport for a view component.
`Dimension` | `getPreferredSize()` Get the preferred size of the component.
`int` | `getScrollableBlockIncrement(Rectangle visibleRect, int orientation, int direction)` Components that display logical rows or columns should compute the scroll increment that will completely expose one block of rows or columns, depending on the value of orientation.
`boolean` | `getScrollableTracksViewportHeight()` Return true if a viewport should always force the height of this Scrollable to match the height of the viewport.
`boolean` | `getScrollableTracksViewportWidth()` Return true if a viewport should always force the width of this `Scrollable` to match the width of the viewport.
`int` | `getScrollableUnitIncrement(Rectangle visibleRect, int orientation, int direction)` Components that display logical rows or columns should compute the scroll increment that will completely expose one new row or column, depending on the value of orientation.
`void` | `hierarchyChanged(HierarchyEvent event)` Handles this components ancestor being added to a container.
`void` | `mouseClicked(MouseEvent event)` Invoked when the mouse button has been clicked (pressed and released) on a component.
`void` | `mouseEntered(MouseEvent event)` Invoked when the mouse enters a component.
`void` | `mouseExited(MouseEvent event)` Invoked when the mouse exits a component.
`void` | `mousePressed(MouseEvent event)` Handle left click on a picture by bringing it to the top.
`void` | `mouseReleased(MouseEvent event)` Invoked when a mouse button has been released on a component.
`void` | `paint(Graphics graphics)` Paints this component.
`void` | `reset()` Clears the panel, discarding any existing images.
`void` | `setPreferredSize(Dimension dimension)` Sets the preferred size of this component.
`void` | `update(Graphics graphics)` Updates this component.

Methods inherited from class javax.swing.JPanel
`getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI`

Methods inherited from class javax.swing.JComponent
`addAncestorListener, addNotify, addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getGraphics, getHeight, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPropertyChangeListeners, getPropertyChangeListeners, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isPreferredSizeSet, isRequestFocusEnabled, isValidateRoot, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFont, setForeground, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction`

Methods inherited from class java.awt.Container
`add, add, add, add, add, addContainerListener, addImpl, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setFocusCycleRoot, setFocusTraversalKeys, setFocusTraversalPolicy, 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, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMouseWheelListeners, getName, getParent, getPeer, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, 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, processMouseEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, 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`

Field Detail

### UNIT_INCREMENT

    protected static final int UNIT_INCREMENT

  Scrolling unit increment (both directions).

  See Also:
    Constant Field Values

### BLOCK_INCREMENT

    protected static final int BLOCK_INCREMENT

  Scrolling block increment (both directions).

  See Also:
    Constant Field Values

### mThumbelina

    protected Thumbelina mThumbelina

  The thumbelina object in use.

### mMosaic

    protected TileSet mMosaic

  The display mosaic.

### mPreferredSize

    protected Dimension mPreferredSize

  The preferred size of this component. `null` initially, caches the results of `calculatePreferredSize ()`.

Constructor Detail

### PicturePanel

    public PicturePanel(Thumbelina thumbelina)

  Creates a new instance of PicturePanel

Parameters:
  `thumbelina` - The `Thumeblina` this panel is associated with.

Method Detail

### reset

    public void reset()

  Clears the panel, discarding any existing images.

### bringToTop

    public void bringToTop(Picture picture)

  Move the given picture to the top of the Z order. Adds it, even it if it doesn't exist. Also puts the URL in the url text of the status bar.

  Parameters:
    `picture` - The picture being brought forward.

### find

    public Picture find(String url)

  Find a picture with the given URL in the panel. This should really only be used to discover if the picture is still visible. There could be more than one picture with the given URL because it may be partially obscured by another picture, in which case the pieces are each given their own picture object, but all point at the same `URL` and `Image`.

  Parameters:
    `url` - The url to locate.
  Returns:
    The first picture encountered in the panel, or null if the picture was not found.

### draw

    protected void draw(Picture picture,
                        boolean add)

  Draw an image on screen.

  Parameters:
    `picture` - The picture to draw.
    `add` - If `true`, the picture is added to the history.

### update

    public void update(Graphics graphics)

  Updates this component.

  Parameters:
    `graphics` - The graphics context in which to update the component.

### adjustClipForInsets

    public void adjustClipForInsets(Graphics graphics)

  Adjust the graphics clip region to account for insets.

  Parameters:
    `graphics` - The graphics object to set the clip region for.

### paint

    public void paint(Graphics graphics)

  Paints this component. Runs through the list of tiles and for every one that intersects the clip region performs a `drawImage()`.

### getPreferredSize

    public Dimension getPreferredSize()

  Get the preferred size of the component.

  Returns:
    The dimension of this component.

### setPreferredSize

    public void setPreferredSize(Dimension dimension)

  Sets the preferred size of this component.

  Parameters:
    `dimension` - The new value to use for `getPreferredSize()` until recalculated.

### calculatePreferredSize

    protected Dimension calculatePreferredSize()

  Compute the preferred size of the component. Computes the minimum bounding rectangle covering all the pictures in the panel. It then does some funky stuff to handle embedding in the view port of a scroll pane, basically asking up the ancestor heirarchy what size is available, and filling it.

  Returns:
    The optimal dimension for this component.

### mouseClicked

    public void mouseClicked(MouseEvent event)

  Invoked when the mouse button has been clicked (pressed and released) on a component. Not used.

  Specified by:
    `mouseClicked` in interface `MouseListener`
  Parameters:
    `event` - The object providing details of the mouse event.

### mouseReleased

    public void mouseReleased(MouseEvent event)

  Invoked when a mouse button has been released on a component. Not used.

  Specified by:
    `mouseReleased` in interface `MouseListener`
  Parameters:
    `event` - The object providing details of the mouse event.

### mouseEntered

    public void mouseEntered(MouseEvent event)

  Invoked when the mouse enters a component. Not used.

  Specified by:
    `mouseEntered` in interface `MouseListener`
  Parameters:
    `event` - The object providing details of the mouse event.

### mouseExited

    public void mouseExited(MouseEvent event)

  Invoked when the mouse exits a component. Not used.

  Specified by:
    `mouseExited` in interface `MouseListener`
  Parameters:
    `event` - The object providing details of the mouse event.

### mousePressed

    public void mousePressed(MouseEvent event)

  Handle left click on a picture by bringing it to the top.

  Specified by:
    `mousePressed` in interface `MouseListener`
  Parameters:
    `event` - The object providing details of the mouse event.

### getPreferredScrollableViewportSize

    public Dimension getPreferredScrollableViewportSize()

  Returns the preferred size of the viewport for a view component. For example the preferredSize of a JList component is the size required to accommodate all of the cells in its list however the value of preferredScrollableViewportSize is the size required for JList.getVisibleRowCount() rows. A component without any properties that would effect the viewport size should just return getPreferredSize() here.

  Specified by:
    `getPreferredScrollableViewportSize` in interface `Scrollable`
  Returns:
    The preferredSize of a JViewport whose view is this Scrollable.
  See Also:
    `JComponent.getPreferredSize()`

### getScrollableUnitIncrement

    public int getScrollableUnitIncrement(Rectangle visibleRect,
                                          int orientation,
                                          int direction)

  Components that display logical rows or columns should compute the scroll increment that will completely expose one new row or column, depending on the value of orientation. Ideally, components should handle a partially exposed row or column by returning the distance required to completely expose the item.

  Scrolling containers, like JScrollPane, will use this method each time the user requests a unit scroll.

  Specified by:
    `getScrollableUnitIncrement` in interface `Scrollable`
  Parameters:
    `visibleRect` - The view area visible within the viewport
    `orientation` - Either SwingConstants.VERTICAL or SwingConstants.HORIZONTAL.
    `direction` - Less than zero to scroll up/left, greater than zero for down/right.
  Returns:
    The "unit" increment for scrolling in the specified direction. This value should always be positive.

### getScrollableBlockIncrement

    public int getScrollableBlockIncrement(Rectangle visibleRect,
                                           int orientation,
                                           int direction)

  Components that display logical rows or columns should compute the scroll increment that will completely expose one block of rows or columns, depending on the value of orientation.

  Scrolling containers, like JScrollPane, will use this method each time the user requests a block scroll.

  Specified by:
    `getScrollableBlockIncrement` in interface `Scrollable`
  Parameters:
    `visibleRect` - The view area visible within the viewport
    `orientation` - Either SwingConstants.VERTICAL or SwingConstants.HORIZONTAL.
    `direction` - Less than zero to scroll up/left, greater than zero for down/right.
  Returns:
    The "block" increment for scrolling in the specified direction. This value should always be positive.

### getScrollableTracksViewportWidth

    public boolean getScrollableTracksViewportWidth()

  Return true if a viewport should always force the width of this `Scrollable` to match the width of the viewport. For example a normal text view that supported line wrapping would return true here, since it would be undesirable for wrapped lines to disappear beyond the right edge of the viewport. Note that returning true for a Scrollable whose ancestor is a JScrollPane effectively disables horizontal scrolling.

  Scrolling containers, like JViewport, will use this method each time they are validated.

  Specified by:
    `getScrollableTracksViewportWidth` in interface `Scrollable`
  Returns:
    `true` if a viewport should force the Scrollables width to match its own.

### getScrollableTracksViewportHeight

    public boolean getScrollableTracksViewportHeight()

  Return true if a viewport should always force the height of this Scrollable to match the height of the viewport. For example a columnar text view that flowed text in left to right columns could effectively disable vertical scrolling by returning true here.

  Scrolling containers, like JViewport, will use this method each time they are validated.

  Specified by:
    `getScrollableTracksViewportHeight` in interface `Scrollable`
  Returns:
    `true` if a viewport should force the Scrollables height to match its own.

### componentResized

    public void componentResized(ComponentEvent event)

  Invoked when the container's size changes. Un-caches the preferred size.

  Specified by:
    `componentResized` in interface `ComponentListener`
  Parameters:
    `event` - The resize event.

### componentMoved

    public void componentMoved(ComponentEvent event)

  Invoked when the component's position changes. Not used.

  Specified by:
    `componentMoved` in interface `ComponentListener`
  Parameters:
    `event` - The component event.

### componentShown

    public void componentShown(ComponentEvent event)

  Invoked when the component has been made visible. Not used.

  Specified by:
    `componentShown` in interface `ComponentListener`
  Parameters:
    `event` - The component event.

### componentHidden

    public void componentHidden(ComponentEvent event)

  Invoked when the component has been made invisible. Not used.

  Specified by:
    `componentHidden` in interface `ComponentListener`
  Parameters:
    `event` - The component event.

### hierarchyChanged

    public void hierarchyChanged(HierarchyEvent event)

  Handles this components ancestor being added to a container. Registers this component as a listener for size changes on the ancestor so that we may un-cache the prefereed size and force a recalculation.

  Specified by:
    `hierarchyChanged` in interface `HierarchyListener`
  Parameters:
    `event` - The heirarchy event.

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| © 2004 Somik Raha Mar 14, 2004
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

HTML Parser is an open source library released under LGPL.