/* * CDDL HEADER START * * The contents of this file are subject to the terms of the * Common Development and Distribution License, Version 1.0 only * (the "License"). You may not use this file except in compliance * with the License. * * You can obtain a copy of the license at * trunk/opends/resource/legal-notices/OpenDS.LICENSE * or https://OpenDS.dev.java.net/OpenDS.LICENSE. * See the License for the specific language governing permissions * and limitations under the License. * * When distributing Covered Code, include this CDDL HEADER in each * file and include the License file at * trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable, * add the following below this CDDL HEADER, with the fields enclosed * by brackets "[]" replaced with your own identifying information: * Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END * * * Copyright 2009 Sun Microsystems, Inc. */ package org.opends.guitools.controlpanel.ui; import static org.opends.messages.AdminToolMessages.*; import java.awt.CardLayout; import java.awt.Component; import java.awt.GridBagConstraints; import javax.swing.JPanel; import org.opends.guitools.controlpanel.datamodel.ControlPanelInfo; import org.opends.guitools.controlpanel.event.ConfigurationChangeEvent; import org.opends.guitools.controlpanel.util.Utilities; import org.opends.messages.Message; /** * The panel on the right of the 'General Information' panel. * */ public class GeneralMonitoringRightPanel extends StatusGenericPanel { private static final long serialVersionUID = -4197460101279681042L; /** * The panel with a CardLayout that contains all the panels. */ protected JPanel mainPanel; private RootMonitoringPanel rootPanel = new RootMonitoringPanel(); private WorkQueueMonitoringPanel workQueuePanel = new WorkQueueMonitoringPanel(); private EntryCachesMonitoringPanel entryCachesPanel = new EntryCachesMonitoringPanel(); private DBEnvironmentMonitoringPanel dbEnvironmentPanel = new DBEnvironmentMonitoringPanel(); private SystemInformationMonitoringPanel systemInformationPanel = new SystemInformationMonitoringPanel(); private JavaInformationMonitoringPanel javaInformationPanel = new JavaInformationMonitoringPanel(); /** * The panel used to update messages. */ protected NoItemSelectedPanel noEntryPanel = new NoItemSelectedPanel(); private final StatusGenericPanel[] panels = { rootPanel, workQueuePanel, entryCachesPanel, dbEnvironmentPanel, systemInformationPanel, javaInformationPanel }; /** * Default constructor. * */ public GeneralMonitoringRightPanel() { super(); createLayout(); } /** * Displays a panel containing a message. * @param msg the message. * */ public void displayMessage(Message msg) { noEntryPanel.setMessage(msg); ((CardLayout)mainPanel.getLayout()).show(mainPanel, getTitle(noEntryPanel)); } /** * {@inheritDoc} */ public void setInfo(ControlPanelInfo info) { super.setInfo(info); for (StatusGenericPanel panel : panels) { panel.setInfo(info); } } /** * Creates the layout of the panel (but the contents are not populated here). */ protected void createLayout() { GridBagConstraints gbc = new GridBagConstraints(); CardLayout cardLayout = new CardLayout(); mainPanel = new JPanel(cardLayout); mainPanel.setOpaque(false); noEntryPanel.setMessage( INFO_CTRL_PANEL_GENERAL_MONITORING_NO_ITEM_SELECTED.get()); JPanel[] panelsWithScroll = { noEntryPanel, rootPanel, workQueuePanel, entryCachesPanel, systemInformationPanel, javaInformationPanel }; JPanel[] panelsWithNoScroll = { dbEnvironmentPanel }; for (JPanel panel : panelsWithScroll) { mainPanel.add(Utilities.createBorderLessScrollBar(panel), getTitle(panel)); } for (JPanel panel : panelsWithNoScroll) { mainPanel.add(panel, getTitle(panel)); } cardLayout.show(mainPanel, getTitle(noEntryPanel)); gbc.gridx = 0; gbc.gridy = 0; gbc.weightx = 1.0; gbc.weighty = 1.0; gbc.fill = GridBagConstraints.BOTH; add(mainPanel, gbc); } /** * {@inheritDoc} */ public void okClicked() { // No ok button } /** * {@inheritDoc} */ public GenericDialog.ButtonType getButtonType() { return GenericDialog.ButtonType.NO_BUTTON; } /** * {@inheritDoc} */ public Message getTitle() { return Message.EMPTY; } /** * {@inheritDoc} */ public Component getPreferredFocusComponent() { return null; } /** * {@inheritDoc} */ public void configurationChanged(ConfigurationChangeEvent ev) { } /** * Updates the contents of the panel with the root monitoring information. * */ public void updateRoot() { rootPanel.updateContents(); ((CardLayout)mainPanel.getLayout()).show(mainPanel, getTitle(rootPanel)); } /** * Updates the contents of the panel with the system information monitoring. * */ public void updateSystemInformation() { systemInformationPanel.updateContents(); ((CardLayout)mainPanel.getLayout()).show(mainPanel, getTitle(systemInformationPanel)); } /** * Updates the contents of the panel with the work queue monitoring * information. * */ public void updateWorkQueue() { workQueuePanel.updateContents(); ((CardLayout)mainPanel.getLayout()).show(mainPanel, getTitle(workQueuePanel)); } /** * Updates the contents of the panel with the entry caches monitoring * information. * */ public void updateEntryCaches() { entryCachesPanel.updateContents(); ((CardLayout)mainPanel.getLayout()).show(mainPanel, getTitle(entryCachesPanel)); } /** * Updates the contents of the panel with the database environment monitoring * information. * */ public void updateDBEnvironment() { dbEnvironmentPanel.updateContents(); ((CardLayout)mainPanel.getLayout()).show(mainPanel, getTitle(dbEnvironmentPanel)); } /** * Updates the contents of the panel with the JAVA information. * */ public void updateJavaInformation() { javaInformationPanel.updateContents(); ((CardLayout)mainPanel.getLayout()).show(mainPanel, getTitle(javaInformationPanel)); } /** * Returns the title for a given panel. It will be used to update the * CardLayout. * @param panel the panel we want to get the title from. * @return the title for a given panel. */ protected String getTitle(JPanel panel) { return panel.getClass().toString(); } }