org.formaria.swing
Class HotspotImage

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by org.formaria.swing.Image
                  extended by org.formaria.swing.HotspotImage
All Implemented Interfaces:
java.awt.event.MouseListener, java.awt.event.MouseMotionListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, ImageHolder
Direct Known Subclasses:
ImageMap

public class HotspotImage
extends Image
implements java.awt.event.MouseMotionListener

A widget for displaying an image and associating hotspots at coordinates specified in an external file

Copyright: Copyright (c) Formaria Ltd., 2008
License: see license.txt

See Also:
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
protected static java.awt.Cursor defaultCursor
          The default cursor
protected static java.awt.Cursor handCursor
          The default pointer - the hand cursor
protected  java.util.Vector hotspots
          The hotspots
protected  java.util.Vector names
          The hotspot names
 
Fields inherited from class org.formaria.swing.Image
arc, AUTO_SIZE, centerImage, currentProject, disabledImage, distance, dragEnabled, drawBorder, drawShadow, fillBorder, firstMouseEvent, image, imageName, NO_SCALE, pad, painter, PRESERVE_ASPECT, shadow, shadowSize, STRETCH, stretchMode, TILE
 
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
HotspotImage()
          Constructor.
 
Method Summary
protected  void addCustomHotspot(XmlElement ele)
          Add a hotspot which is not defined as an 'area'
 int checkHotspot(java.awt.Point p)
          Check the Point p to see if any of the polygons in the hotspots Vector contain it.
 java.lang.String getName(int i)
          Get the name of the hotspot in element i of the names vector
 void mouseDragged(java.awt.event.MouseEvent e)
          Unused method.
 void mouseMoved(java.awt.event.MouseEvent e)
          Call the checkHotSpot function to change the cursor
 void read(java.io.Reader r)
          Reads the hotspot information from the reader parameter and adds them to the names and hotspots vectors.
 
Methods inherited from class org.formaria.swing.Image
addNotify, drawImage, getAntiAlias, getArc, getDrawBorder, getDrawShadow, getFillBorder, getImageName, getOpaque, getPadding, getPainter, getPreferredSize, getShadowSize, getStretchMode, imageUpdate, isCenterImage, mouseClicked, mouseEntered, mouseExited, mousePressed, mouseReleased, paintComponent, setAntiAlias, setArc, setCenterImage, setDragEnabled, setDragInfo, setDrawBorder, setDrawShadow, setFillBorder, setImage, setImageName, setPadding, setPainter, setStretchMode, setToolTip
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, 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, 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, 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
 

Field Detail

handCursor

protected static java.awt.Cursor handCursor
The default pointer - the hand cursor


defaultCursor

protected static java.awt.Cursor defaultCursor
The default cursor


hotspots

protected java.util.Vector hotspots
The hotspots


names

protected java.util.Vector names
The hotspot names

Constructor Detail

HotspotImage

public HotspotImage()
Constructor. Sets cursors and creates the Vector which stores the hotspots. Adds a new MouseMotionListener to the image

Method Detail

getName

public java.lang.String getName(int i)
Get the name of the hotspot in element i of the names vector

Parameters:
i - The index of the hotspot
Returns:
The Name of the hotspot

read

public void read(java.io.Reader r)
Reads the hotspot information from the reader parameter and adds them to the names and hotspots vectors.

Parameters:
r - Reader of the file.

addCustomHotspot

protected void addCustomHotspot(XmlElement ele)
Add a hotspot which is not defined as an 'area'

Parameters:
ele - the xml element containg the definition of the hotspot.

checkHotspot

public int checkHotspot(java.awt.Point p)
Check the Point p to see if any of the polygons in the hotspots Vector contain it. If so return the index of the Vector element.

Parameters:
p - The Point which we are checking
Returns:
The index of the polygon which contains the point or -1 if none of the polygons contain the Point

mouseMoved

public void mouseMoved(java.awt.event.MouseEvent e)
Call the checkHotSpot function to change the cursor

Specified by:
mouseMoved in interface java.awt.event.MouseMotionListener
Overrides:
mouseMoved in class Image
Parameters:
e - MouseEvent

mouseDragged

public void mouseDragged(java.awt.event.MouseEvent e)
Unused method.

Specified by:
mouseDragged in interface java.awt.event.MouseMotionListener
Overrides:
mouseDragged in class Image
Parameters:
e - -