40a41 > private DrawingView selectedView; 42,43c43,44 < * You need this if you are not using a component that inherits from < * JComponent --- > * The usage of this List for listeners is not thread safe, but should not > * need to be. 45,46c46 < //private final EventListenerList listenerList = new EventListenerList(); < private DrawingView selectedView; --- > private java.util.List listeners; 48a49 > listeners = CH.ifa.draw.util.CollectionsFactory.current().createList(); 123,124c124 < final Object[] listeners = listenerList.getListenerList(); < DesktopListener dpl; --- > java.util.ListIterator li= listeners.listIterator(listeners.size()); 126,127c126 < for (int i = listeners.length-2; i >= 0; i -= 2) { < if (listeners[i] == DesktopListener.class) { --- > while(li.hasPrevious()){ 131c130 < dpl = (DesktopListener)listeners[i+1]; --- > DesktopListener dpl = (DesktopListener)li.previous(); 135d133 < } 138,139c136 < final Object[] listeners = listenerList.getListenerList(); < DesktopListener dpl; --- > java.util.ListIterator li= listeners.listIterator(listeners.size()); 141,142c138 < for (int i = listeners.length-2; i >= 0; i -= 2) { < if (listeners[i] == DesktopListener.class) { --- > while(li.hasPrevious()){ 146c142 < dpl = (DesktopListener)listeners[i+1]; --- > DesktopListener dpl = (DesktopListener)li.previous(); 150d145 < } 153,154c148 < final Object[] listeners = listenerList.getListenerList(); < DesktopListener dpl; --- > java.util.ListIterator li= listeners.listIterator(listeners.size()); 156,157c150 < for (int i = listeners.length-2; i >= 0; i -= 2) { < if (listeners[i] == DesktopListener.class) { --- > while(li.hasPrevious()){ 161c154 < dpl = (DesktopListener)listeners[i+1]; --- > DesktopListener dpl = (DesktopListener)li.previous(); 165d157 < } 313c305 < listenerList.add(DesktopListener.class, dpl); --- > listeners.add(dpl); 317c309 < listenerList.remove(DesktopListener.class, dpl); --- > listeners.remove(dpl);