Revision: 1354 http://svn.sourceforge.net/spring-rich-c/?rev=1354&view=rev Author: anodos Date: 2006-08-30 13:22:39 -0700 (Wed, 30 Aug 2006)
Log Message: ----------- Added setActiveWindow property change event to WindowManager (RCP-395). Modified Paths: -------------- trunk/spring-richclient/support/src/main/java/org/springframework/richclient/application/WindowManager.java Modified: trunk/spring-richclient/support/src/main/java/org/springframework/richclient/application/WindowManager.java =================================================================== --- trunk/spring-richclient/support/src/main/java/org/springframework/richclient/application/WindowManager.java 2006-08-30 20:20:19 UTC (rev 1353) +++ trunk/spring-richclient/support/src/main/java/org/springframework/richclient/application/WindowManager.java 2006-08-30 20:22:39 UTC (rev 1354) @@ -20,8 +20,11 @@ import java.util.Iterator; import java.util.List; import java.util.Observable; +import java.beans.PropertyChangeSupport; +import java.beans.PropertyChangeListener; import org.springframework.util.Assert; +import org.springframework.binding.value.PropertyChangePublisher; /** * A manager for a group of windows. Window managers are needed in applications @@ -37,7 +40,7 @@ * * @see Window */ -public class WindowManager extends Observable { +public class WindowManager extends Observable implements PropertyChangePublisher { /** * List of windows managed by this window manager (element type: @@ -60,6 +63,8 @@ * Holds the currently active window. */ private ApplicationWindow activeWindow; + + private final PropertyChangeSupport changeSupport = new PropertyChangeSupport(this); /** * Creates an empty window manager without a parent window manager (that is, @@ -179,15 +184,15 @@ * Set the currently active window. When a window gets focus, it will set itself * as the current window of it's manager. * - * TODO maybe provide a way to listen to activeWindow changes? - * * @param window */ public final void setActiveWindow(ApplicationWindow window) { + final ApplicationWindow old = this.activeWindow; this.activeWindow = window; if (getParent() != null) // let things ripple up getParent().setActiveWindow(window); + getChangeSupport().firePropertyChange("activeWindow", old, window); } /** @@ -204,4 +209,33 @@ public int size() { return windows.size(); } + + + protected PropertyChangeSupport getChangeSupport() { + return changeSupport; + } + + + + + // + // METHODS FROM INTERFACE PropertyChangePublisher + // + + + public void addPropertyChangeListener(PropertyChangeListener listener) { + getChangeSupport().addPropertyChangeListener(listener); + } + + public void addPropertyChangeListener(String propertyName, PropertyChangeListener listener) { + getChangeSupport().addPropertyChangeListener(propertyName, listener); + } + + public void removePropertyChangeListener(PropertyChangeListener listener) { + getChangeSupport().removePropertyChangeListener(listener); + } + + public void removePropertyChangeListener(String propertyName, PropertyChangeListener listener) { + getChangeSupport().removePropertyChangeListener(propertyName, listener); + } } \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ spring-rich-c-cvs mailing list spring-rich-c-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/spring-rich-c-cvs