mstover1 2005/08/31 07:16:33
Modified: src/core/org/apache/jmeter NewDriver.java JMeter.java
src/core/org/apache/jmeter/util JMeterUtils.java
src/jorphan/org/apache/jorphan/gui ComponentUtil.java
Added: src/core/org/apache/jmeter Splash.java
Log:
Adding JMeter Splash screen
Revision Changes Path
1.12 +3 -2 jakarta-jmeter/src/core/org/apache/jmeter/NewDriver.java
Index: NewDriver.java
===================================================================
RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/NewDriver.java,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- NewDriver.java 12 Aug 2005 23:57:17 -0000 1.11
+++ NewDriver.java 31 Aug 2005 14:16:33 -0000 1.12
@@ -135,6 +135,7 @@
* the command line arguments
*/
public static void main(String[] args) {
+
Thread.currentThread().setContextClassLoader(loader);
if (System.getProperty("log4j.configuration") == null) {
File conf = new File(jmDir, "bin" + File.separator +
"log4j.conf");
1.42 +17 -2 jakarta-jmeter/src/core/org/apache/jmeter/JMeter.java
Index: JMeter.java
===================================================================
RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/JMeter.java,v
retrieving revision 1.41
retrieving revision 1.42
diff -u -r1.41 -r1.42
--- JMeter.java 12 Jul 2005 20:50:38 -0000 1.41
+++ JMeter.java 31 Aug 2005 14:16:33 -0000 1.42
@@ -17,7 +17,15 @@
package org.apache.jmeter;
+import java.awt.Canvas;
+import java.awt.Color;
+import java.awt.Dimension;
+import java.awt.Font;
+import java.awt.Graphics;
+import java.awt.Image;
import java.awt.event.ActionEvent;
+import java.awt.font.FontRenderContext;
+import java.awt.geom.Rectangle2D;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
@@ -29,6 +37,12 @@
import java.util.List;
import java.util.Properties;
+import javax.swing.JFrame;
+import javax.swing.JPanel;
+import javax.swing.SwingUtilities;
+import javax.swing.border.BevelBorder;
+import javax.swing.border.SoftBevelBorder;
+
import org.apache.commons.cli.avalon.CLArgsParser;
import org.apache.commons.cli.avalon.CLOption;
import org.apache.commons.cli.avalon.CLOptionDescriptor;
@@ -51,8 +65,6 @@
import org.apache.jmeter.gui.tree.JMeterTreeModel;
import org.apache.jmeter.plugin.JMeterPlugin;
import org.apache.jmeter.plugin.PluginManager;
-// import org.apache.jmeter.processor.gui.AbstractPostProcessorGui;
-// import org.apache.jmeter.processor.gui.AbstractPreProcessorGui;
import org.apache.jmeter.reporters.ResultCollector;
import org.apache.jmeter.reporters.Summariser;
import org.apache.jmeter.samplers.Remoteable;
@@ -237,8 +249,11 @@
startServer(JMeterUtils.getPropDefault("server_port", 0));
startBSH();
} else if (parser.getArgumentById(NONGUI_OPT) == null) {
+ Splash splash = new Splash();
+ splash.showSplash();
startGui(parser.getArgumentById(TESTFILE_OPT));
startBSH();
+ splash.removeSplash();
} else {
startNonGui(parser.getArgumentById(TESTFILE_OPT),
parser.getArgumentById(LOGFILE_OPT), parser
.getArgumentById(REMOTE_OPT));
1.1 jakarta-jmeter/src/core/org/apache/jmeter/Splash.java
Index: Splash.java
===================================================================
package org.apache.jmeter;
import java.awt.Canvas;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.font.FontRenderContext;
import java.awt.geom.Rectangle2D;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
import javax.swing.border.BevelBorder;
import javax.swing.border.SoftBevelBorder;
import org.apache.jmeter.util.JMeterUtils;
import org.apache.jorphan.gui.ComponentUtil;
class Splash {
public Splash() {
}
JFrame splash;
void showSplash()
{
splash = new JFrame();
JPanel borderedPanel = new JPanel();
BevelBorder b = new SoftBevelBorder(BevelBorder.RAISED,
Color.LIGHT_GRAY,Color.DARK_GRAY);
borderedPanel.setBorder(b);
SplashCanvas image = new
SplashCanvas(borderedPanel.getFont().deriveFont(Font.BOLD));
borderedPanel.add(image);
splash.getContentPane().add(borderedPanel);
splash.setResizable(false);
splash.setUndecorated(true);
splash.pack();
ComponentUtil.centerComponentInWindow(splash);
splash.setVisible(true);
splash.setAlwaysOnTop(true);
}
void removeSplash()
{
SwingUtilities.invokeLater(new Runnable(){
public void run()
{
splash.setVisible(false);
splash.dispose();
splash = null;
}
});
}
private class SplashCanvas extends Canvas
{
Image icon = JMeterUtils.getImage("jmeter.jpg").getImage();
String versionNotice = new String("Apache JMeter Version " +
JMeterUtils.getJMeterVersion());
String copyRight = JMeterUtils.getJMeterCopyright();
Font font;
Rectangle2D versionRect;
Rectangle2D copyRect;
/* (non-Javadoc)
* @see java.awt.Canvas#paint(java.awt.Graphics)
*/
@Override
public void paint(Graphics g) {
g.drawImage(icon,0,0,icon.getWidth(null),icon.getHeight(null),null);
g.setColor(Color.BLACK);
g.setFont(font);
g.drawChars(versionNotice.toCharArray(),0,versionNotice.length(),10,115);
g.drawChars(copyRight.toCharArray(),0,copyRight.length(),10,120 +
(int)versionRect.getHeight());
}
public SplashCanvas(Font f)
{
font = f;
versionRect = font.getStringBounds(versionNotice,new
FontRenderContext(null,true,true));
copyRect = font.getStringBounds(copyRight,new
FontRenderContext(null,true,true));
}
/* (non-Javadoc)
* @see java.awt.Component#getBackground()
*/
@Override
public Color getBackground() {
return Color.WHITE;
}
/* (non-Javadoc)
* @see java.awt.Component#getMaximumSize()
*/
@Override
public Dimension getMaximumSize() {
// TODO Auto-generated method stub
return getPreferredSize();
}
/* (non-Javadoc)
* @see java.awt.Component#getMinimumSize()
*/
@Override
public Dimension getMinimumSize() {
// TODO Auto-generated method stub
return getPreferredSize();
}
/* (non-Javadoc)
* @see java.awt.Component#getPreferredSize()
*/
@Override
public Dimension getPreferredSize() {
return new Dimension(Math.max(Math.max(getWidth(),25 +
(int)versionRect.getWidth()),
25 + (int)copyRect.getWidth()),
getHeight()+(int)versionRect.getHeight() + (int)copyRect.getHeight() + 20);
}
public int getWidth()
{
return icon.getWidth(null);
}
public int getHeight()
{
return icon.getHeight(null);
}
}
}
1.76 +3 -3
jakarta-jmeter/src/core/org/apache/jmeter/util/JMeterUtils.java
Index: JMeterUtils.java
===================================================================
RCS file:
/home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/util/JMeterUtils.java,v
retrieving revision 1.75
retrieving revision 1.76
diff -u -r1.75 -r1.76
--- JMeterUtils.java 12 Jul 2005 20:50:44 -0000 1.75
+++ JMeterUtils.java 31 Aug 2005 14:16:33 -0000 1.76
@@ -19,6 +19,7 @@
package org.apache.jmeter.util;
import java.awt.Dimension;
+import java.awt.Image;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.File;
@@ -41,7 +42,6 @@
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JOptionPane;
-// import javax.xml.parsers.SAXParserFactory;
import org.apache.jmeter.gui.GuiPackage;
import org.apache.jorphan.logging.LoggingManager;
1.8 +16 -2
jakarta-jmeter/src/jorphan/org/apache/jorphan/gui/ComponentUtil.java
Index: ComponentUtil.java
===================================================================
RCS file:
/home/cvs/jakarta-jmeter/src/jorphan/org/apache/jorphan/gui/ComponentUtil.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- ComponentUtil.java 12 Jul 2005 20:50:59 -0000 1.7
+++ ComponentUtil.java 31 Aug 2005 14:16:33 -0000 1.8
@@ -55,6 +55,20 @@
component.setSize((int) (dimension.getWidth() * percent), (int)
(dimension.getHeight() * percent));
centerComponentInWindow(component);
}
+
+ /**
+ * Use this static method if you want to center and set its size to a
fixed Dimension.
+ *
+ * @param component
+ * the component you want to center and set size on
+ * @param percentOfScreen
+ * the percent of the current screensize you want the
component
+ * to be
+ */
+ public static void centerComponentInWindow(Component component, int
width,int height) {
+ component.setSize(width, height);
+ centerComponentInWindow(component);
+ }
/**
* Use this static method if you want to center a component in Window.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]