21,21d20 < import javax.swing.event.EventListenerList; 55a55,60 > /** > * List is not thread safe, but should not need to be. If it does we can > * safely synchronize the few methods that use this by synchronizing on > * the List object itself. > */ > private java.util.List listeners; 56,56d54 < private final EventListenerList listenerList = new EventListenerList(); 97a102,102 > listeners = CollectionsFactory.current().createList(); 800,800c805,805 < listenerList.add(ViewChangeListener.class, vsl); --- > listeners.add(vsl); 807,807c812,812 < listenerList.remove(ViewChangeListener.class, vsl); --- > listeners.remove(vsl); 816a822,824 > java.util.ListIterator li= listeners.listIterator(listeners.size()); > while(li.hasPrevious()){ > ViewChangeListener vsl = (ViewChangeListener)li.previous(); 817,821d821 < final Object[] listeners = listenerList.getListenerList(); < ViewChangeListener vsl = null; < for (int i = listeners.length-2; i>=0 ; i-=2) { < if (listeners[i] == ViewChangeListener.class) { < vsl = (ViewChangeListener)listeners[i+1]; 825,825d827 < } 827a830,832 > java.util.ListIterator li= listeners.listIterator(listeners.size()); > while(li.hasPrevious()){ > ViewChangeListener vsl = (ViewChangeListener)li.previous(); 828,832d829 < final Object[] listeners = listenerList.getListenerList(); < ViewChangeListener vsl = null; < for (int i = listeners.length-2; i>=0 ; i-=2) { < if (listeners[i] == ViewChangeListener.class) { < vsl = (ViewChangeListener)listeners[i+1]; 836,836d835 < } 838a838,840 > java.util.ListIterator li= listeners.listIterator(listeners.size()); > while(li.hasPrevious()){ > ViewChangeListener vsl = (ViewChangeListener)li.previous(); 839,843d837 < final Object[] listeners = listenerList.getListenerList(); < ViewChangeListener vsl = null; < for (int i = listeners.length-2; i>=0 ; i-=2) { < if (listeners[i] == ViewChangeListener.class) { < vsl = (ViewChangeListener)listeners[i+1]; 847,847d843 < }