/*
|
* 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();
|
}
|
}
|