|
What this is
Other links
The source code
// $Header: /home/cvs/jakarta-jmeter/src/monitor/components/org/apache/jmeter/visualizers/ServerPanel.java,v 1.4 2004/03/20 22:10:02 sebb 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.Dimension;
import java.awt.FlowLayout;
import javax.swing.ImageIcon;
import javax.swing.JPanel;
import javax.swing.JLabel;
import org.apache.jmeter.util.JMeterUtils;
import org.apache.jmeter.monitor.util.Stats;
/**
* The purpose of ServerPanel is to display an unique
* server and its current status. The server label
* consist of the protocol, host and port. For example,
* a system with multiple Tomcat's running on different
* ports would be different ServerPanel.
*/
public class ServerPanel extends JPanel
implements MonitorGuiListener
{
private JLabel serverField;
private JLabel timestampField;
/**
* Preference size for the health icon
*/
private Dimension prefsize = new Dimension(25,75);
private JLabel healthIcon;
private JLabel loadIcon;
/**
* Health Icons
*/
public static final ImageIcon HEALTHY =
JMeterUtils.getImage("monitor-healthy.gif");
public static final ImageIcon ACTIVE =
JMeterUtils.getImage("monitor-active.gif");
public static final ImageIcon WARNING =
JMeterUtils.getImage("monitor-warning.gif");
public static final ImageIcon DEAD =
JMeterUtils.getImage("monitor-dead.gif");
/**
* Load Icons
*/
public static final ImageIcon LOAD_1 =
JMeterUtils.getImage("monitor-load-1.gif");
public static final ImageIcon LOAD_2 =
JMeterUtils.getImage("monitor-load-2.gif");
public static final ImageIcon LOAD_3 =
JMeterUtils.getImage("monitor-load-3.gif");
public static final ImageIcon LOAD_4 =
JMeterUtils.getImage("monitor-load-4.gif");
public static final ImageIcon LOAD_5 =
JMeterUtils.getImage("monitor-load-5.gif");
public static final ImageIcon LOAD_6 =
JMeterUtils.getImage("monitor-load-6.gif");
public static final ImageIcon LOAD_7 =
JMeterUtils.getImage("monitor-load-7.gif");
public static final ImageIcon LOAD_8 =
JMeterUtils.getImage("monitor-load-8.gif");
public static final ImageIcon LOAD_9 =
JMeterUtils.getImage("monitor-load-9.gif");
public static final ImageIcon LOAD_10 =
JMeterUtils.getImage("monitor-load-10.gif");
//private MonitorModel DATA;
/**
*
*/
public ServerPanel(MonitorModel model)
{
super();
//DATA = model;
init(model);
}
/**
*
* @deprecated Only for use in unit testing
*/
public ServerPanel()
{
//log.warn("Only for use in unit testing");
}
/**
* Init will create the JLabel widgets for the
* host, health, load and timestamp.
* @param model
*/
private void init(MonitorModel model)
{
this.setLayout(new FlowLayout());
serverField = new JLabel(model.getURL());
this.add(serverField);
healthIcon = new JLabel(getHealthyImageIcon(model.getHealth()));
healthIcon.setPreferredSize(prefsize);
this.add(healthIcon);
loadIcon = new JLabel(getLoadImageIcon(model.getLoad()));
this.add(loadIcon);
timestampField = new JLabel(model.getTimestampString());
this.add(timestampField);
}
/**
* Static method for getting the right ImageIcon for
* the health.
* @param health
* @return image for the status
*/
public static ImageIcon getHealthyImageIcon(int health){
ImageIcon i = null;
switch(health){
case Stats.HEALTHY:
i = HEALTHY;
break;
case Stats.ACTIVE:
i = ACTIVE;
break;
case Stats.WARNING:
i = WARNING;
break;
case Stats.DEAD:
i = DEAD;
break;
}
return i;
}
/**
* Static method looks up the right ImageIcon from
* the load value.
* @param load
* @return image for the load
*/
public static ImageIcon getLoadImageIcon(int load){
if (load <= 10){
return LOAD_1;
} else if (load > 10 && load <= 20){
return LOAD_2;
} else if (load > 20 && load <= 30){
return LOAD_3;
} else if (load > 30 && load <= 40){
return LOAD_4;
} else if (load > 40 && load <= 50){
return LOAD_5;
} else if (load > 50 && load <= 60){
return LOAD_6;
} else if (load > 60 && load <= 70){
return LOAD_7;
} else if (load > 70 && load <= 80){
return LOAD_8;
} else if (load > 80 && load <= 90){
return LOAD_9;
} else {
return LOAD_10;
}
}
/**
* Method will update the ServerPanel's health, load,
* and timestamp. For efficiency, it uses the static
* method to lookup the images.
*/
public void updateGui(MonitorModel stat){
//this.DATA = null;
//this.DATA = stat;
loadIcon.setIcon(getLoadImageIcon(stat.getLoad()));
healthIcon.setIcon(getHealthyImageIcon(stat.getHealth()));
timestampField.setText(stat.getTimestampString());
this.updateGui();
}
/**
* update the gui
*/
public void updateGui(){
this.repaint();
}
}
|
| ... 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.