41a43,44 > * The usage of this List for listeners is not thread safe, but should not > * need to be. 42,43d42 < * You need this if you are not using a component that inherits from < * JComponent 44a46,46 > private java.util.List listeners; 45,45d40 < //private final EventListenerList listenerList = new EventListenerList(); 46,46c41,41 < private DrawingView selectedView; --- > private DrawingView selectedView; 48a49,49 > listeners = CH.ifa.draw.util.CollectionsFactory.current().createList(); 122a124,124 > java.util.ListIterator li= listeners.listIterator(listeners.size()); 123,124d123 < final Object[] listeners = listenerList.getListenerList(); < DesktopListener dpl; 125a126,126 > while(li.hasPrevious()){ 126,127d125 < for (int i = listeners.length-2; i >= 0; i -= 2) { < if (listeners[i] == DesktopListener.class) { 130a130,130 > DesktopListener dpl = (DesktopListener)li.previous(); 130a305,305 > listeners.add(dpl); 131,131d304 < dpl = (DesktopListener)listeners[i+1]; 135,135d133 < } 137a136,136 > java.util.ListIterator li= listeners.listIterator(listeners.size()); 138,139d135 < final Object[] listeners = listenerList.getListenerList(); < DesktopListener dpl; 140a138,138 > while(li.hasPrevious()){ 141,142d137 < for (int i = listeners.length-2; i >= 0; i -= 2) { < if (listeners[i] == DesktopListener.class) { 145a309,309 > listeners.remove(dpl); 145a142,142 > DesktopListener dpl = (DesktopListener)li.previous(); 146,146d308 < dpl = (DesktopListener)listeners[i+1]; 150,150d145 < } 152a148,148 > java.util.ListIterator li= listeners.listIterator(listeners.size()); 153,154d147 < final Object[] listeners = listenerList.getListenerList(); < DesktopListener dpl; 155a150,150 > while(li.hasPrevious()){ 156,157d149 < for (int i = listeners.length-2; i >= 0; i -= 2) { < if (listeners[i] == DesktopListener.class) { 160a154,154 > DesktopListener dpl = (DesktopListener)li.previous(); 161,161d153 < dpl = (DesktopListener)listeners[i+1]; 165,165d157 < } 313,313d304 < listenerList.add(DesktopListener.class, dpl); 317,317d308 < listenerList.remove(DesktopListener.class, dpl);