18d17 < import javax.swing.event.EventListenerList; 31c30,34 < private final EventListenerList listenerList = new EventListenerList(); --- > /** > * 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; 36a40 > listeners = CollectionsFactory.current().createList(); 77c81 < listenerList.add(DesktopListener.class, dpl); --- > listeners.add(dpl); 81c85 < listenerList.remove(DesktopListener.class, dpl); --- > listeners.remove(dpl); 85,91c89,93 < 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); --- > java.util.ListIterator li= listeners.listIterator(listeners.size()); > DesktopEvent dpe = null; > while(li.hasPrevious()){ > if (dpe == null) { > dpe = createDesktopEvent(getActiveDrawingView(), dv); 92a95,96 > DesktopListener dpl = (DesktopListener)li.previous(); > dpl.drawingViewAdded(dpe); 97,103c101,105 < 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); --- > java.util.ListIterator li= listeners.listIterator(listeners.size()); > DesktopEvent dpe = null; > while(li.hasPrevious()){ > if (dpe == null) { > dpe = createDesktopEvent(getActiveDrawingView(), dv); 104a107,108 > DesktopListener dpl = (DesktopListener)li.previous(); > dpl.drawingViewRemoved(dpe); 112,118c116,120 < 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); --- > java.util.ListIterator li= listeners.listIterator(listeners.size()); > DesktopEvent dpe = null; > while(li.hasPrevious()){ > if (dpe == null) { > dpe = createDesktopEvent(oldView, newView); 119a122,123 > DesktopListener dpl = (DesktopListener)li.previous(); > dpl.drawingViewSelected(dpe); 156c160,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. 170,172c175,176 < * 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 --- > * dv will only be null if something thats not a drawingView was > * added to the desktop. it would be simpler if we forbade that.