usr/src/java/vpanels/panels/examples/org/opensolaris/os/vp/panels/example/time2/client/swing/TimePanelDescriptor.java
--- a/usr/src/java/vpanels/panels/examples/org/opensolaris/os/vp/panels/example/time2/client/swing/TimePanelDescriptor.java Wed Jul 21 10:13:44 2010 -0700
+++ b/usr/src/java/vpanels/panels/examples/org/opensolaris/os/vp/panels/example/time2/client/swing/TimePanelDescriptor.java Wed Jul 21 20:26:39 2010 -0400
@@ -20,14 +20,11 @@
*/
/*
- * Copyright 2010 Sun Microsystems, Inc. All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
*/
package org.opensolaris.os.vp.panels.example.time2.client.swing;
-import java.io.IOException;
-import javax.management.JMX;
import org.opensolaris.os.vp.panel.common.*;
import org.opensolaris.os.vp.panel.common.control.*;
import org.opensolaris.os.vp.panel.common.model.*;
@@ -37,15 +34,14 @@
import org.opensolaris.os.vp.util.misc.Finder;
public class TimePanelDescriptor
- extends AbstractSwingPanelDescriptor<ManagedObject>
- implements ConnectionListener {
+ extends AbstractSwingPanelDescriptor<ManagedObject> {
//
// Instance data
//
private DefaultControl control;
- private TimeMXBean bean;
+ private MXBeanTracker<TimeMXBean> beanTracker;
//
// Constructors
@@ -68,29 +64,23 @@
control = new PanelFrameControl<TimePanelDescriptor>(this);
control.addChildren(new TimeControl(this));
- setBean(context.getConnectionInfo());
- context.addConnectionListener(this);
- }
-
- //
- // ConnectionListener methods
- //
-
- @Override
- public void connectionChanged(ConnectionEvent event) {
- setBean(event.getConnectionInfo());
- }
-
- @Override
- public void connectionFailed(ConnectionEvent event) {
- // There's nothing particularly helpful we can do here except wait for
- // the repaired connection in connectionChanged
+ beanTracker = new MXBeanTracker<TimeMXBean>(
+ TimeMXBean.class, context, TimeUtil.OBJECT_NAME);
}
//
// ManagedObject methods
//
+ /**
+ * Stops monitoring the connection to the remote host.
+ */
+ @Override
+ public void dispose() {
+ beanTracker.dispose();
+ super.dispose();
+ }
+
@Override
public String getName() {
return Finder.getString("panel.time.name");
@@ -110,20 +100,6 @@
//
public TimeMXBean getTimeBean() {
- return bean;
- }
-
- //
- // Private methods
- //
-
- private void setBean(ConnectionInfo info) {
- try {
- bean = JMX.newMXBeanProxy(
- info.getConnector().getMBeanServerConnection(),
- TimeUtil.OBJECT_NAME, TimeMXBean.class);
- } catch (IOException e) {
- bean = null;
- }
+ return beanTracker.getBean();
}
}