21d20 < import javax.swing.event.EventListenerList; 56c55,60 < private final EventListenerList listenerList = new EventListenerList(); --- > /** > * 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; 97a102 > listeners = CollectionsFactory.current().createList(); 800c805 < listenerList.add(ViewChangeListener.class, vsl); --- > listeners.add(vsl); 807c812 < listenerList.remove(ViewChangeListener.class, vsl); --- > listeners.remove(vsl); 817,821c822,824 < 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]; --- > java.util.ListIterator li= listeners.listIterator(listeners.size()); > while(li.hasPrevious()){ > ViewChangeListener vsl = (ViewChangeListener)li.previous(); 825d827 < } 828,832c830,832 < 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]; --- > java.util.ListIterator li= listeners.listIterator(listeners.size()); > while(li.hasPrevious()){ > ViewChangeListener vsl = (ViewChangeListener)li.previous(); 836d835 < } 839,843c838,840 < 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]; --- > java.util.ListIterator li= listeners.listIterator(listeners.size()); > while(li.hasPrevious()){ > ViewChangeListener vsl = (ViewChangeListener)li.previous(); 847d843 < }