Guest User

Untitled

a guest
Dec 16th, 2018
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.62 KB | None | 0 0
  1. /* Model.java
  2.  * ============================================================
  3.  * Copyright (C) 2001-2011 Universiteit Gent
  4.  *
  5.  * Bijlage bij de cursus 'Programmeren 2'.
  6.  *
  7.  * Auteur: Kris Coolsaet
  8.  */
  9.  
  10. package prog2.mvc;
  11.  
  12. import javax.swing.event.ChangeEvent;
  13. import javax.swing.event.ChangeListener;
  14. import javax.swing.event.EventListenerList;
  15.  
  16. /**
  17.  * Gemeenschappelijke bovenklasse van alle modellen die gebruik maken van
  18.  * luisteraars van het type {@link ChangeListener}.
  19.  */
  20. public class Model {
  21.    
  22.     /**
  23.      * Lijst van geregistreerde luisteraars.
  24.      */
  25.     private EventListenerList listenerList = new EventListenerList ();
  26.    
  27.     /**
  28.      * Registreer een luisteraar.
  29.      */
  30.     public void addChangeListener (ChangeListener l) {
  31.         listenerList.add (ChangeListener.class, l);
  32.     }
  33.    
  34.     /**
  35.      * Maak registratie ongedaan.
  36.      */
  37.     public void removeChangeListener (ChangeListener l) {
  38.         listenerList.remove (ChangeListener.class, l);
  39.     }
  40.    
  41.     /**
  42.      * Uniek gebeurtenisobject met dit model als bron.
  43.      */
  44.     private final ChangeEvent changeEvent = new ChangeEvent (this);
  45.    
  46.     /**
  47.      * Behandel een ChangeEvent-gebeurtenis die van het model
  48.      * afkomstig is door een nieuwe gebeurtenis aan alle luisteraars
  49.      * door te geven. De nieuwe gebeurtenis heeft dit model als bron.
  50.      */
  51.     protected void fireStateChanged () {
  52.         Object[] listeners = listenerList.getListenerList ();
  53.         for (int i=listeners.length-2; i >= 0; i-=2) {
  54.             if (listeners[i] == ChangeListener.class)
  55.                 ((ChangeListener)listeners[i+1]).stateChanged (changeEvent);
  56.         }
  57.     }
  58. }
Add Comment
Please, Sign In to add comment