|
What this is
Other links
The source code
// $Header: /home/cvs/jakarta-jmeter/src/monitor/components/org/apache/jmeter/visualizers/MonitorHealthPanel.java,v 1.4 2004/03/16 13:56:34 woolfel Exp $
/*
* Copyright 2004 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.jmeter.visualizers;
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.Font;
import javax.swing.BoxLayout;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JPanel;
import java.util.HashMap;
import javax.swing.JScrollPane;
import org.apache.jmeter.util.JMeterUtils;
import org.apache.jmeter.samplers.Clearable;
/**
* The health panel is responsible for showing the health
* of the servers. It only uses the most current information
* to show the status.
*/
public class MonitorHealthPanel extends JPanel
implements MonitorListener, Clearable
{
private HashMap SERVERMAP = new HashMap();
private JPanel SERVERS = null;
private MonitorAccumModel MODEL;
private JScrollPane SCROLL = null;
Font plainText = new Font("plain", Font.PLAIN, 9);
public static final String INFO_H =
JMeterUtils.getResString("monitor_equation_healthy");
public static final String INFO_A =
JMeterUtils.getResString("monitor_equation_active");
public static final String INFO_W =
JMeterUtils.getResString("monitor_equation_warning");
public static final String INFO_D =
JMeterUtils.getResString("monitor_equation_dead");
public static final String INFO_LOAD =
JMeterUtils.getResString("monitor_equation_load");
/**
*
* @deprecated Only for use in unit testing
*/
public MonitorHealthPanel()
{
//log.warn("Only for use in unit testing");
}
/**
*
*/
public MonitorHealthPanel(MonitorAccumModel model)
{
this.MODEL = model;
this.MODEL.addListener(this);
init();
}
/**
* init is responsible for creating the necessary legends
* and information for the health panel.
*/
protected void init(){
this.setLayout(new BorderLayout());
ImageIcon legend = JMeterUtils.getImage("monitor-legend.gif");
JLabel label = new JLabel(legend);
label.setPreferredSize(new Dimension(550,25));
this.add(label,BorderLayout.NORTH);
this.SERVERS = new JPanel();
this.SERVERS.setLayout(new BoxLayout(SERVERS, BoxLayout.Y_AXIS));
this.SERVERS.setAlignmentX(Component.LEFT_ALIGNMENT);
SCROLL = new JScrollPane(this.SERVERS);
SCROLL.setPreferredSize(new Dimension(300,300));
this.add(SCROLL,BorderLayout.CENTER);
// the equations
String eqstring1 = " " + INFO_H + " | " + INFO_A;
String eqstring2 = " " + INFO_W + " | " + INFO_D;
String eqstring3 = " " + INFO_LOAD;
JLabel eqs = new JLabel();
eqs.setLayout(new BorderLayout());
eqs.setPreferredSize(new Dimension(500,60));
eqs.add(new JLabel(eqstring1),BorderLayout.NORTH);
eqs.add(new JLabel(eqstring2),BorderLayout.CENTER);
eqs.add(new JLabel(eqstring3),BorderLayout.SOUTH);
this.add(eqs,BorderLayout.SOUTH);
}
/**
*
* @param model
*/
public void addSample(MonitorModel model){
if (SERVERMAP.containsKey(model.getURL())){
ServerPanel pane = null;
if(SERVERMAP.get(model.getURL()) != null){
pane = (ServerPanel)SERVERMAP.get((model.getURL()));
} else {
pane = new ServerPanel(model);
SERVERMAP.put(model.getURL(),pane);
}
pane.updateGui(model);
} else {
ServerPanel newpane = new ServerPanel(model);
SERVERMAP.put(model.getURL(),newpane);
this.SERVERS.add(newpane);
newpane.updateGui(model);
}
this.SERVERS.updateUI();
}
/**
* clear will clear the hashmap, remove all ServerPanels
* from the servers pane, and update the ui.
*/
public void clear(){
this.SERVERMAP.clear();
this.SERVERS.removeAll();
this.SERVERS.updateUI();
}
}
|
| ... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.