components/visual-panels/time/src/java/vpanels/app/time/com/oracle/solaris/vp/panels/time/client/swing/TimePanelDescriptor.java
branchs11-update
changeset 2805 4888f6212f94
parent 827 0944d8c0158b
equal deleted inserted replaced
2804:7546c836fd87 2805:4888f6212f94
    18  *
    18  *
    19  * CDDL HEADER END
    19  * CDDL HEADER END
    20  */
    20  */
    21 
    21 
    22 /*
    22 /*
    23  * Copyright (c) 2009, 2012, Oracle and/or its affiliates. All rights reserved.
    23  * Copyright (c) 2009, 2013, Oracle and/or its affiliates. All rights reserved.
    24  */
    24  */
    25 
    25 
    26 package com.oracle.solaris.vp.panels.time.client.swing;
    26 package com.oracle.solaris.vp.panels.time.client.swing;
    27 
    27 
    28 import java.io.IOException;
    28 import java.io.IOException;
    29 import java.util.List;
    29 import java.util.List;
    30 import javax.management.*;
       
    31 import javax.swing.*;
    30 import javax.swing.*;
    32 import com.oracle.solaris.adr.Stability;
       
    33 import com.oracle.solaris.scf.common.ScfException;
    31 import com.oracle.solaris.scf.common.ScfException;
    34 import com.oracle.solaris.vp.panel.common.*;
    32 import com.oracle.solaris.vp.panel.common.*;
    35 import com.oracle.solaris.vp.panel.common.api.panel.MBeanUtil;
       
    36 import com.oracle.solaris.vp.panel.common.api.smf_old.SmfState;
    33 import com.oracle.solaris.vp.panel.common.api.smf_old.SmfState;
    37 import com.oracle.solaris.vp.panel.common.api.time.HasTimeMXBean;
    34 import com.oracle.solaris.vp.panel.common.api.time.HasTimeBean;
    38 import com.oracle.solaris.vp.panel.common.control.*;
    35 import com.oracle.solaris.vp.panel.common.control.*;
    39 import com.oracle.solaris.vp.panel.common.model.*;
    36 import com.oracle.solaris.vp.panel.common.model.*;
    40 import com.oracle.solaris.vp.panel.common.smf.*;
    37 import com.oracle.solaris.vp.panel.common.smf.*;
    41 import com.oracle.solaris.vp.panel.swing.control.PanelFrameControl;
    38 import com.oracle.solaris.vp.panel.swing.control.PanelFrameControl;
    42 import com.oracle.solaris.vp.panel.swing.model.SwingPanelDescriptor;
    39 import com.oracle.solaris.vp.panel.swing.model.SwingPanelDescriptor;
    45 import com.oracle.solaris.vp.util.swing.HasIcons;
    42 import com.oracle.solaris.vp.util.swing.HasIcons;
    46 
    43 
    47 @SuppressWarnings({"serial"})
    44 @SuppressWarnings({"serial"})
    48 public class TimePanelDescriptor
    45 public class TimePanelDescriptor
    49     extends ServicePanelDescriptor<ManagedObject>
    46     extends ServicePanelDescriptor<ManagedObject>
    50     implements SwingPanelDescriptor<ManagedObject>, HasIcons, HasTimeMXBean {
    47     implements SwingPanelDescriptor<ManagedObject>, HasIcons, HasTimeBean {
    51 
    48 
    52     //
    49     //
    53     // Static data
    50     // Static data
    54     //
    51     //
    55 
    52 
    65     //
    62     //
    66     // Instance data
    63     // Instance data
    67     //
    64     //
    68 
    65 
    69     private DefaultControl control;
    66     private DefaultControl control;
    70     private MXBeanTracker<TimeMXBean> beanTracker;
    67     private BeanTracker<Time> beanTracker;
    71     private boolean hasFullPrivs;
    68     private boolean hasFullPrivs;
    72 
    69 
    73     //
    70     //
    74     // Constructors
    71     // Constructors
    75     //
    72     //
    76 
    73 
    77     public TimePanelDescriptor(String id, ClientContext context)
    74     public TimePanelDescriptor(String id, ClientContext context)
    78 	throws IOException, InstanceNotFoundException, ScfException,
    75 	throws IOException, ScfException,
    79 	InvalidScfDataException, MissingScfDataException,
    76 	InvalidScfDataException, MissingScfDataException,
    80 	TrackerException {
    77 	TrackerException {
    81 
    78 
    82 	super(id, context, SERVICE, INSTANCE);
    79 	super(id, context, SERVICE, INSTANCE);
    83 
    80 
    84 	ObjectName oName = MBeanUtil.makeObjectName(
    81 	beanTracker = new BeanTracker<Time>(
    85 	    MBeanUtil.VP_PANEL_DOMAIN + ".time", "Time");
    82 	    (new Time()).getName(), Time.class, context);
    86 	beanTracker = new MXBeanTracker<TimeMXBean>(
       
    87 	    oName, TimeMXBean.class, Stability.PRIVATE, context);
       
    88 
    83 
    89 	hasFullPrivs = getTimeMXBean().issufficientlyPrivileged();
    84 	hasFullPrivs = getTimeBean().issufficientlyPrivileged();
    90 
    85 
    91 	refresh(true);
    86 	refresh(true);
    92 	control = new PanelFrameControl<TimePanelDescriptor>(this);
    87 	control = new PanelFrameControl<TimePanelDescriptor>(this);
    93 	control.addChildren(new MainControl(this));
    88 	control.addChildren(new MainControl(this));
    94     }
    89     }
   101     public List<? extends Icon> getIcons() {
    96     public List<? extends Icon> getIcons() {
   102 	return icons;
    97 	return icons;
   103     }
    98     }
   104 
    99 
   105     //
   100     //
   106     // HasTimeMXBean methods
   101     // HasTimeBean methods
   107     //
   102     //
   108 
   103 
   109     @Override
   104     @Override
   110     public TimeMXBean getTimeMXBean() {
   105     public Time getTimeBean() {
   111 	return beanTracker.getBean();
   106 	return beanTracker.getBean();
   112     }
   107     }
   113 
   108 
   114     //
   109     //
   115     // ManagedObject methods
   110     // ManagedObject methods