13731 panel icons no longer distinct
authorStephen Talley <stephen.talley@sun.com>
Mon, 11 Jan 2010 14:14:30 -0500
changeset 413 551bfbf94445
parent 412 7647539042c3
child 414 20cbea62f6f9
13731 panel icons no longer distinct
usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/control/PanelFrameControl.java
usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/control/WindowControl.java
usr/src/java/vpanels/panels/sysmon/org/opensolaris/os/vp/panels/sysmon/client/swing/SysMonPopupControl.java
--- a/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/control/PanelFrameControl.java	Thu Jan 07 10:47:46 2010 -0500
+++ b/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/control/PanelFrameControl.java	Mon Jan 11 14:14:30 2010 -0500
@@ -26,9 +26,10 @@
 
 package org.opensolaris.os.vp.panel.swing.control;
 
+import java.awt.Image;
 import java.awt.event.*;
 import java.beans.*;
-import java.util.Map;
+import java.util.*;
 import org.opensolaris.os.vp.panel.common.*;
 import org.opensolaris.os.vp.panel.common.action.ActionAbortedException;
 import org.opensolaris.os.vp.panel.common.control.*;
@@ -36,10 +37,11 @@
 import org.opensolaris.os.vp.panel.swing.SwingClientContext;
 import org.opensolaris.os.vp.panel.swing.view.*;
 import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.util.swing.HasImages;
 
 @SuppressWarnings({"serial"})
 public class PanelFrameControl<P extends PanelDescriptor>
-    extends WindowControl<P, PanelFrame> {
+    extends WindowControl<P, PanelFrame> implements HasImages {
 
     //
     // Instance data
@@ -101,6 +103,19 @@
     }
 
     //
+    // HasImages methods
+    //
+
+    @Override
+    public List<? extends Image> getImages() {
+	P descriptor = getPanelDescriptor();
+	if (descriptor instanceof HasImages) {
+	    return ((HasImages)descriptor).getImages();
+	}
+	return null;
+    }
+
+    //
     // Control methods
     //
 
--- a/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/control/WindowControl.java	Thu Jan 07 10:47:46 2010 -0500
+++ b/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/control/WindowControl.java	Mon Jan 11 14:14:30 2010 -0500
@@ -85,27 +85,7 @@
 	super.descendantStarted(path);
 
 	Control control = path[path.length - 1];
-
-	String title = getWindowTitle();
-	if (title == null || title.isEmpty()) {
-	    String name = control.getName();
-	    if (name != null) {
-		titleControl = control;
-		setWindowTitle(name);
-	    }
-	}
-
-	Window window = getComponent();
-	List<? extends Image> images = window.getIconImages();
-	if (images == null || images.isEmpty()) {
-	    if (control instanceof HasImages) {
-		images = ((HasImages)control).getImages();
-		if (images != null && !images.isEmpty()) {
-		    iconControl = control;
-		    window.setIconImages(images);
-		}
-	    }
-	}
+	controlStarted(control);
     }
 
     @Override
@@ -113,15 +93,7 @@
 	super.descendantStopped(path);
 
 	Control control = path[path.length - 1];
-	if (titleControl == control) {
-	    setWindowTitle(null);
-	    titleControl = null;
-	}
-
-	if (iconControl == control) {
-	    getComponent().setIconImages(null);
-	    iconControl = null;
-	}
+	controlStopped(control);
     }
 
     @Override
@@ -168,6 +140,8 @@
 		    }
 		}
 	    });
+
+	controlStarted(this);
     }
 
     @Override
@@ -177,6 +151,8 @@
 	Window window = getComponent();
 	window.removeWindowListener(windowClosingListener);
 	window.setVisible(false);
+
+	controlStopped(this);
     }
 
     //
@@ -221,4 +197,43 @@
     protected void windowClosing() {
 	getNavigator().goToAsync(false, this, Navigator.PARENT_NAVIGABLE);
     }
+
+    //
+    // Private methods
+    //
+
+    private void controlStarted(Control control) {
+	String title = getWindowTitle();
+	if (title == null || title.isEmpty()) {
+	    String name = control.getName();
+	    if (name != null) {
+		titleControl = control;
+		setWindowTitle(name);
+	    }
+	}
+
+	Window window = getComponent();
+	List<? extends Image> images = window.getIconImages();
+	if (images == null || images.isEmpty()) {
+	    if (control instanceof HasImages) {
+		images = ((HasImages)control).getImages();
+		if (images != null && !images.isEmpty()) {
+		    iconControl = control;
+		    window.setIconImages(images);
+		}
+	    }
+	}
+    }
+
+    private void controlStopped(Control control) {
+	if (titleControl == control) {
+	    setWindowTitle(null);
+	    titleControl = null;
+	}
+
+	if (iconControl == control) {
+	    getComponent().setIconImages(null);
+	    iconControl = null;
+	}
+    }
 }
--- a/usr/src/java/vpanels/panels/sysmon/org/opensolaris/os/vp/panels/sysmon/client/swing/SysMonPopupControl.java	Thu Jan 07 10:47:46 2010 -0500
+++ b/usr/src/java/vpanels/panels/sysmon/org/opensolaris/os/vp/panels/sysmon/client/swing/SysMonPopupControl.java	Mon Jan 11 14:14:30 2010 -0500
@@ -26,11 +26,15 @@
 
 package org.opensolaris.os.vp.panels.sysmon.client.swing;
 
+import java.awt.Image;
 import java.awt.event.*;
+import java.util.List;
 import org.opensolaris.os.vp.panel.swing.control.FrameControl;
-import org.opensolaris.os.vp.util.swing.ExtFrame;
+import org.opensolaris.os.vp.util.swing.*;
 
-public class SysMonPopupControl extends FrameControl<SysMonPanelDescriptor> {
+public class SysMonPopupControl extends FrameControl<SysMonPanelDescriptor>
+    implements HasImages {
+
     //
     // Static data
     //
@@ -46,6 +50,15 @@
     }
 
     //
+    // HasImages methods
+    //
+
+    @Override
+    public List<? extends Image> getImages() {
+	return getPanelDescriptor().getImages();
+    }
+
+    //
     // DefaultControl methods
     //