fr.lip6.sma.simulacion.avatar
Class AvatarDialog2D

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JPanel
                  extended by fr.lip6.sma.simulacion.avatar.AvatarDialog2D
All Implemented Interfaces:
AvatarView, ImageObserver, MenuContainer, Serializable, Runnable, Accessible

public class AvatarDialog2D
extends JPanel
implements Runnable, AvatarView

Classe pour la vue sur un avatar animé. Elle s'appelle AvatarDialog2D pour des raisons historiques.

Version:
$Revision: 3 $
Author:
Paul Guyot
See Also:
Test, Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JPanel
JPanel.AccessibleJPanel
 
Nested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BltBufferStrategy, Component.FlipBufferStrategy
 
Field Summary
private static int ANIMATION_STEP_DELAY
          Temps entre deux images, en ms.
private  String mCollectionID
          Identifiant de la collection d'images à utiliser.
private  int[][] mIndexes
          Indices pour les séquences, le premier indice est celui de la couche.
private  boolean mKeepRunning
          Si on tourne.
private  boolean[] mLayerIsHorizontal
          Orientation des couches.
private  Avatar mModel
          Référence sur le modèle
private  boolean mQuitting
          Si on est en train de fermer.
private  Image[][][] mSequences
          Séquences.
private  Thread mThread
          Processus léger pour l'animation.
 
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
AvatarDialog2D(Avatar inModel, String inCollectionID)
          Constructeur à partir du modèle, d'une vue et d'une attitude.
 
Method Summary
 void addNotify()
          Méthode invoquée lorsque l'objet appartient désormais à un parent et sera (probablement) affiché.
 void attitudeChanged(String inNewAttitude)
          Méthode invoquée lorsque l'attitude change.
 void paintComponent(Graphics inGraphics)
          Méthode invoquée pour dessiner le composant.
 void removeNotify()
          Méthode invoquée lorsque l'objet ne sera plus affiché.
 void run()
          Méthode du processus léger pour l'animation.
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, 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, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, 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
 
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
 

Field Detail

ANIMATION_STEP_DELAY

private static final int ANIMATION_STEP_DELAY
Temps entre deux images, en ms.

See Also:
Constant Field Values

mModel

private final Avatar mModel
Référence sur le modèle


mCollectionID

private final String mCollectionID
Identifiant de la collection d'images à utiliser.


mThread

private final Thread mThread
Processus léger pour l'animation.


mLayerIsHorizontal

private boolean[] mLayerIsHorizontal
Orientation des couches. Chaque élément est true si la couche est horizontale.


mSequences

private Image[][][] mSequences
Séquences. Premier indice: couche. Second indice: tranche. Troisième indice: image dans la séquence.


mIndexes

private int[][] mIndexes
Indices pour les séquences, le premier indice est celui de la couche.


mKeepRunning

private boolean mKeepRunning
Si on tourne.


mQuitting

private boolean mQuitting
Si on est en train de fermer.

Constructor Detail

AvatarDialog2D

public AvatarDialog2D(Avatar inModel,
                      String inCollectionID)
Constructeur à partir du modèle, d'une vue et d'une attitude.

Parameters:
inModel - modèle pour l'avatar.
inCollectionID - identifiant de la collection d'images à utiliser.
Method Detail

attitudeChanged

public void attitudeChanged(String inNewAttitude)
Méthode invoquée lorsque l'attitude change. Ne fait rien si on ne tourne pas.

Specified by:
attitudeChanged in interface AvatarView
Parameters:
inNewAttitude - nouvelle attitude.

paintComponent

public void paintComponent(Graphics inGraphics)
Méthode invoquée pour dessiner le composant.

Overrides:
paintComponent in class JComponent
Parameters:
inGraphics - contexte pour dessiner

addNotify

public void addNotify()
Méthode invoquée lorsque l'objet appartient désormais à un parent et sera (probablement) affiché. On lance l'animation.

Overrides:
addNotify in class JComponent

removeNotify

public void removeNotify()
Méthode invoquée lorsque l'objet ne sera plus affiché. On arrête l'animation.

Overrides:
removeNotify in class JComponent

run

public void run()
Méthode du processus léger pour l'animation.

Specified by:
run in interface Runnable