--- 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
//