14a15 > import CH.ifa.draw.standard.NullDrawingView; 15a17 > import CH.ifa.draw.util.CollectionsFactory; 22a25 > import java.util.ListIterator; 39a43 > private DesktopEventService myDesktopEventService; 42,46d45 < /** < * The usage of this List for listeners is not thread safe, but should not < * need to be. < */ < private java.util.List listeners; 49c48 < listeners = CH.ifa.draw.util.CollectionsFactory.current().createList(); --- > setDesktopEventService(createDesktopEventService()); 85,86c84,86 < setActiveDrawingView(null); < fireDrawingViewSelectedEvent(getActiveDrawingView()); --- > DrawingView oldView = getActiveDrawingView(); > setActiveDrawingView(NullDrawingView.getManagedDrawingView(oldView.editor())); > fireDrawingViewSelectedEvent(oldView, getActiveDrawingView()); 113a114 > DrawingView oldView = getActiveDrawingView(); 115c116 < fireDrawingViewSelectedEvent(getActiveDrawingView()); --- > fireDrawingViewSelectedEvent(oldView, getActiveDrawingView()); 124,132c125 < java.util.ListIterator li= listeners.listIterator(listeners.size()); < DesktopEvent dpe = null; < while(li.hasPrevious()){ < if (dpe == null) { < dpe = new DesktopEvent(MDIDesktopPane.this, dv); < } < DesktopListener dpl = (DesktopListener)li.previous(); < dpl.drawingViewAdded(dpe); < } --- > getDesktopEventService().fireDrawingViewAddedEvent(dv); 136,144c129 < java.util.ListIterator li= listeners.listIterator(listeners.size()); < DesktopEvent dpe = null; < while(li.hasPrevious()){ < if (dpe == null) { < dpe = new DesktopEvent(MDIDesktopPane.this, dv); < } < DesktopListener dpl = (DesktopListener)li.previous(); < dpl.drawingViewRemoved(dpe); < } --- > getDesktopEventService().fireDrawingViewRemovedEvent(dv); 147,156c132,133 < protected void fireDrawingViewSelectedEvent(final DrawingView dv) { < java.util.ListIterator li= listeners.listIterator(listeners.size()); < DesktopEvent dpe = null; < while(li.hasPrevious()){ < if (dpe == null) { < dpe = new DesktopEvent(MDIDesktopPane.this, dv); < } < DesktopListener dpl = (DesktopListener)li.previous(); < dpl.drawingViewSelected(dpe); < } --- > protected void fireDrawingViewSelectedEvent(final DrawingView oldView, final DrawingView newView) { > getDesktopEventService().fireDrawingViewSelectedEvent(oldView, newView); 219,221d195 < // ricardo_padilha: since retval is never used, < // there is no point in creating it < //Component retval = super.add(frame); 303a278,289 > protected DesktopEventService getDesktopEventService() { > return myDesktopEventService; > } > > private void setDesktopEventService(DesktopEventService newDesktopEventService) { > myDesktopEventService = newDesktopEventService; > } > > protected DesktopEventService createDesktopEventService() { > return new DesktopEventService(this, this); > } > 305c291 < listeners.add(dpl); --- > getDesktopEventService().addDesktopListener(dpl); 309c295 < listeners.remove(dpl); --- > getDesktopEventService().removeDesktopListener(dpl);