org.PingOO.DLAI.tool.JEyes
Class JEyes.JEyesPanel

java.lang.Object
  |
  +--java.awt.Component
        |
        +--java.awt.Container
              |
              +--javax.swing.JComponent
                    |
                    +--javax.swing.JPanel
                          |
                          +--org.PingOO.DLAI.lib.PWidget.PPanel
                                |
                                +--org.PingOO.DLAI.tool.JEyes.JEyes.JEyesPanel

private class JEyes.JEyesPanel
extends PPanel
implements java.lang.Runnable

Since:
PingOO 2.0
Version:
1.0
Author:
Arjan van de Ven (arjan@stack.urc.tue.nl), Fabrice Bouyé (bouye@cur-archamps.fr)
See Also:
PPanel, Serialized Form

Inner Class Summary
private  class JEyes.JEyesPanel.JEyesMouseListener
          Tracks the mouse mouvements and clicks on the eyes.
 
Inner classes inherited from class javax.swing.JPanel
javax.swing.JPanel.AccessibleJPanel
 
Inner classes inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent, javax.swing.JComponent.IntVector, javax.swing.JComponent.KeyboardBinding, javax.swing.JComponent.KeyboardState
 
Inner classes inherited from class java.awt.Component
java.awt.Component.AWTTreeLock
 
Field Summary
(package private)  java.lang.Thread jEyesThread
           
(package private)  int leftEyeX
           
(package private)  int leftEyeY
           
(package private)  boolean leftPoked
           
(package private)  int leftX
           
(package private)  int leftY
           
private  java.awt.image.BufferedImage offscreenImage
           
(package private)  int rightEyeX
           
(package private)  int rightEyeY
           
(package private)  boolean rightPoked
           
(package private)  int rightX
           
(package private)  int rightY
           
(package private)  boolean sleeping
           
(package private)  PThreadGroup threadGroup
           
 
Fields inherited from class org.PingOO.DLAI.lib.PWidget.PPanel
DEFAULT_LAYOUT, manager, module, toolTipKey
 
Fields inherited from class javax.swing.JPanel
defaultLayout, uiClassID
 
Fields inherited from class javax.swing.JComponent
_bounds, accessibleContext, alignmentX, alignmentY, ANCESTOR_USING_BUFFER, ancestorNotifier, autoscroller, border, changeSupport, clientProperties, flags, HAS_FOCUS, IS_DOUBLE_BUFFERED, IS_OPAQUE, IS_PAINTING_TILE, KEYBOARD_BINDINGS_KEY, listenerList, maximumSize, minimumSize, NEXT_FOCUS, paintImmediatelyClip, preferredSize, readObjectCallbacks, REQUEST_FOCUS_DISABLED, tmpRect, TOOL_TIP_TEXT_KEY, ui, uiClassID, UNDEFINED_CONDITION, vetoableChangeSupport, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
Fields inherited from class java.awt.Container
component, containerListener, containerSerializedDataVersion, dispatcher, layoutMgr, maxSize, ncomponents, serialVersionUID
 
Fields inherited from class java.awt.Component
actionListenerK, adjustmentListenerK, appContext, assert, background, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, changeSupport, componentListener, componentListenerK, componentOrientation, componentSerializedDataVersion, containerListenerK, cursor, dropTarget, enabled, eventMask, focusListener, focusListenerK, font, foreground, hasFocus, height, incRate, inputMethodListener, inputMethodListenerK, isInc, isPacked, itemListenerK, keyListener, keyListenerK, LEFT_ALIGNMENT, locale, LOCK, minSize, mouseListener, mouseListenerK, mouseMotionListener, mouseMotionListenerK, name, nameExplicitlySet, newEventsOnly, ownedWindowK, parent, peer, peerFont, popups, prefSize, RIGHT_ALIGNMENT, serialVersionUID, textListenerK, TOP_ALIGNMENT, valid, visible, width, windowListenerK, x, y
 
Constructor Summary
JEyes.JEyesPanel(PThreadGroup threadGroup)
          Creates a new JEyes panel.
 
Method Summary
private  void createOffscreenImage()
          Draws the memory graphic image in an offscreen fashion.
 java.awt.Dimension getMaximumSize()
          Returns the maximum size of this component.
 java.awt.Dimension getMinimumSize()
          Returns the minimum size of this component.
 java.awt.Dimension getPreferredSize()
          Returns the preferred size of this component.
 void paint(java.awt.Graphics g)
          Paints the eyes on the screen.
 void run()
          Method called once the JEyes thread is started.
 void start()
          Starts the JEyes thread.
 void stop()
          Method used to stop the JEyes thread.
 void update(java.awt.Graphics g)
          Repaint the component
Avoids graphic glinch.
 
Methods inherited from class org.PingOO.DLAI.lib.PWidget.PPanel
getManager, getModule, getTextKey, getToolTipKey, setLocalizedText, setLocalizedToolTipText, setManager, setModule, updateFont, updateLanguage, updateLanguage
 
Methods inherited from class javax.swing.JPanel
, getAccessibleContext, getUIClassID, paramString, updateUI, writeObject
 
Methods inherited from class javax.swing.JComponent
_paintImmediately, addAncestorListener, addNotify, addPropertyChangeListener, addVetoableChangeListener, adjustPaintFlags, alwaysOnTop, bindingForKeyStroke, computeVisibleRect, computeVisibleRect, contains, createToolTip, enableSerialization, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getAlignmentX, getAlignmentY, getAutoscrolls, getBorder, getBounds, getClientProperties, getClientProperty, getComponentGraphics, getConditionForKeyStroke, getDebugGraphicsOptions, getFlag, getGraphics, getHeight, getInsets, getInsets, getLocation, getNextFocusableComponent, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getVisibleRect, getWidth, getX, getY, grabFocus, hasFocus, isDoubleBuffered, isFocusCycleRoot, isFocusTraversable, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isRequestFocusEnabled, isValidateRoot, keyboardBindings, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, paintWithBuffer, processComponentKeyEvent, processFocusEvent, processKeyBinding, processKeyBindings, processKeyBindingsForAllComponents, processKeyEvent, processMouseMotionEvent, putClientProperty, readObject, rectangleIsObscured, registerKeyboardAction, registerKeyboardAction, registerWithKeyboardManager, removeAncestorListener, removeNotify, removePropertyChangeListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setDebugGraphicsOptions, setDoubleBuffered, setEnabled, setFlag, setFont, setForeground, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setUI, setVisible, shouldDebugGraphics, superProcessMouseMotionEvent, unregisterKeyboardAction, unregisterWithKeyboardManager
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, applyOrientation, countComponents, deliverEvent, dispatchEventImpl, dispatchEventToSelf, doLayout, eventEnabled, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents_NoClientCode, getComponents, getLayout, getMouseEventTarget, getWindow, initIDs, insets, invalidate, invalidateTree, isAncestorOf, layout, lightweightPrint, list, list, locate, minimumSize, nextFocus, paintComponents, postProcessKeyEvent, postsOldMouseEvents, preferredSize, preProcessKeyEvent, print, printComponents, printOneComponent, processContainerEvent, processEvent, proxyEnableEvents, proxyRequestFocus, remove, remove, removeAll, removeContainerListener, setFocusOwner, setLayout, transferFocus, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addPropertyChangeListener, areInputMethodsEnabled, bounds, checkImage, checkImage, coalesceEvents, constructComponentName, contains, createImage, createImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, getBackground, getBounds, getColorModel, getComponentOrientation, getCursor, getDropTarget, getFont_NoClientCode, getFont, getFontMetrics, getForeground, getInputContext, getInputMethodRequests, getLocale, getLocation, getLocationOnScreen, getName, getNativeContainer, getParent_NoClientCode, getParent, getPeer, getSize, getToolkit, getToolkitImpl, getTreeLock, getWindowForObject, gotFocus, handleEvent, hide, imageUpdate, inside, isDisplayable, isEnabled, isEnabledImpl, isLightweight, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, printAll, processComponentEvent, processInputMethodEvent, processMouseEvent, remove, removeComponentListener, removeFocusListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, wait, wait, wait
 

Field Detail

leftX

int leftX

leftY

int leftY

rightX

int rightX

rightY

int rightY

leftEyeX

int leftEyeX

rightEyeX

int rightEyeX

leftEyeY

int leftEyeY

rightEyeY

int rightEyeY

rightPoked

boolean rightPoked

leftPoked

boolean leftPoked

sleeping

boolean sleeping

jEyesThread

java.lang.Thread jEyesThread

offscreenImage

private java.awt.image.BufferedImage offscreenImage

threadGroup

PThreadGroup threadGroup
Constructor Detail

JEyes.JEyesPanel

public JEyes.JEyesPanel(PThreadGroup threadGroup)
Creates a new JEyes panel.
Method Detail

start

public void start()
Starts the JEyes thread.

run

public final void run()
Method called once the JEyes thread is started.
Specified by the Runnable interface.
Specified by:
run in interface java.lang.Runnable

stop

public void stop()
Method used to stop the JEyes thread.

getPreferredSize

public final java.awt.Dimension getPreferredSize()
Returns the preferred size of this component.
Returns:
The preferred size of this component.
Overrides:
getPreferredSize in class javax.swing.JComponent

getMaximumSize

public final java.awt.Dimension getMaximumSize()
Returns the maximum size of this component.
Returns:
The maximum size of this component.
Overrides:
getMaximumSize in class javax.swing.JComponent

getMinimumSize

public final java.awt.Dimension getMinimumSize()
Returns the minimum size of this component.
Returns:
The minimum size of this component.
Overrides:
getMinimumSize in class javax.swing.JComponent

createOffscreenImage

private final void createOffscreenImage()
Draws the memory graphic image in an offscreen fashion.
As this method is completly independant from the paint thread, this sould avoid hyper-speed execution of this appli while moving, draging or simply repainting this window.

update

public void update(java.awt.Graphics g)
Repaint the component
Avoids graphic glinch.
Parameters:
g - The graphics provided to display this component.
Overrides:
update in class javax.swing.JComponent

paint

public void paint(java.awt.Graphics g)
Paints the eyes on the screen.
Uses double-buffering, antialiasing and quality rendering.
Parameters:
g - The graphics provided to display this component.
Overrides:
paint in class javax.swing.JComponent