cds.aladin
Class Blink
java.lang.Object
  
cds.aladin.Blink
public final class Blink
- extends java.lang.Object
 
Le blinking consiste à désigner une source pour la repérer aisément.
  La méthode consiste à faire des XOR de carrés de plus en plus grands
  puis de repasser dessus afin de les effacer.
  L'intérêt de la méthode est qu'il est inutile de mémoriser ce qu'il
  y a sous la source pour restituer la source après l'avoir montrée.
  Sa difficulté consiste à faire un nombre pair de XOR, malgré les
  affichages asynchrones.
 1. La souris rentre dans une source dans la vue n
    (ou respectivement en sort)
  - appel à la fonction View.showSource(Source s) qui va transmettre
    à toutes les vues que la nouvelle source à montrer est s (s null
    si sort d'une source) => ViewSimple.changeBlinkSource(Source s)
  - Lance le thread de blinking si ce n'est déjà fait, sinon
    lui passe une interruption afin que la prise en compte
    soi immédiate.
 2. Thread de blinking (View.runC())
  - incrémente le mode blink (View.modeBlink)
  - demande le repaint (blinkRepaint()) pour toutes les vues
      qui ont quelques choses à faire (au-moins une source
      à montrer ou à restituer)
  - si aucune, s'arrête sinon attend 0.3 secondes et boucle
 3. La modification d'une source à montrer pour une vue
  - cherche dans sa liste de Blinks, toutes les sources
    qu'il faut restituer et en fait la demande
  - si dans la liste de Blinks (ViewSimple.showSource) dont il dispose
    il y a un Blink libre, il l'utilise pour insérer la nouvelle source
    à montrer et demande son clignotement
  - s'il n'y a plus de place dans la liste des Blinks, il
    ajoute un nouveau Blink décrivant la nouvelle source
    à montrer
 3. Le repaint des vues en mode blink
  - restitue ou montre les sources qui doivent l'être
    (parcours du Vector showSource contenant des objets Blink
 4. Le paint d'un blink
  - Un Blink dispose de 4 états (UNBLINK,START,BLINK et STOP)
    START et STOP peuvent être demandé par start() et stop()
    UNBLINK correspond à un Blink libre
    BLINK correspond à l'état de clignotement
  - L'état d'un blink change de fait uniquement lors de l'appel
    à paint(Graphics g) car il doit disposer du contexte graphique
    pour opérer.
    *
- Version:
 
  - 1.0 : (11 mai 2004) création
 
- Author:
 
  - Pierre Fernique [CDS]
 
 
| Methods inherited from class java.lang.Object | 
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | 
 
Copyright © 2009 UDS/CNRS