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]

Reply via email to