18,18d17 < import javax.swing.event.EventListenerList; 30a30,34 > /** > * Current usage of this List is not thread safe, nor should it need to be. > * If it ever does we can synchronize on the List itself to provide safety. > */ > private java.util.List listeners; 31,31d29 < private final EventListenerList listenerList = new EventListenerList(); 36a40,40 > listeners = CollectionsFactory.current().createList(); 77,77c81,81 < listenerList.add(DesktopListener.class, dpl); --- > listeners.add(dpl); 81,81c85,85 < listenerList.remove(DesktopListener.class, dpl); --- > listeners.remove(dpl); 84a89,93 > java.util.ListIterator li= listeners.listIterator(listeners.size()); > DesktopEvent dpe = null; > while(li.hasPrevious()){ > if (dpe == null) { > dpe = createDesktopEvent(getActiveDrawingView(), dv); 85,91d88 < final Object[] listeners = listenerList.getListenerList(); < DesktopListener dpl; < DesktopEvent dpe = createDesktopEvent(getActiveDrawingView(), dv); < for (int i = listeners.length-2; i>=0 ; i-=2) { < if (listeners[i] == DesktopListener.class) { < dpl = (DesktopListener)listeners[i+1]; < dpl.drawingViewAdded(dpe); 92a95,96 > DesktopListener dpl = (DesktopListener)li.previous(); > dpl.drawingViewAdded(dpe); 96a101,105 > java.util.ListIterator li= listeners.listIterator(listeners.size()); > DesktopEvent dpe = null; > while(li.hasPrevious()){ > if (dpe == null) { > dpe = createDesktopEvent(getActiveDrawingView(), dv); 97,103d100 < final Object[] listeners = listenerList.getListenerList(); < DesktopListener dpl; < DesktopEvent dpe = createDesktopEvent(getActiveDrawingView(), dv); < for (int i = listeners.length-2; i>=0 ; i-=2) { < if (listeners[i] == DesktopListener.class) { < dpl = (DesktopListener)listeners[i+1]; < dpl.drawingViewRemoved(dpe); 104a107,108 > DesktopListener dpl = (DesktopListener)li.previous(); > dpl.drawingViewRemoved(dpe); 111a116,120 > java.util.ListIterator li= listeners.listIterator(listeners.size()); > DesktopEvent dpe = null; > while(li.hasPrevious()){ > if (dpe == null) { > dpe = createDesktopEvent(oldView, newView); 112,118d115 < final Object[] listeners = listenerList.getListenerList(); < DesktopListener dpl; < DesktopEvent dpe = createDesktopEvent(oldView, newView); < for (int i = listeners.length-2; i>=0 ; i-=2) { < if (listeners[i] == DesktopListener.class) { < dpl = (DesktopListener)listeners[i+1]; < dpl.drawingViewSelected(dpe); 119a122,123 > DesktopListener dpl = (DesktopListener)li.previous(); > dpl.drawingViewSelected(dpe); 155a160,161 > * Yes so far because this is only being used on single view Desktops. > * If it is to work on multipleView desktops, the we need to think further. 156,156d159 < * 169a175,176 > * dv will only be null if something thats not a drawingView was > * added to the desktop. it would be simpler if we forbade that. 170,172d174 < * if dv is not != getActiveDrawingView() assert < * @todo why should we assert? dont see a problem with removing a view thats not a selected view < * This definitely needs fixing!!! dnoyeb 1/1/2003