khammond    01/09/26 22:33:46

  Added:       src/org/apache/jmeter/timers/gui UniformRandomTimerGui.java
  Log:
  Created separate GUI for Uniform Random Timer. Previously, Uniform and Gaussian used 
the same GUI.
  
  Revision  Changes    Path
  1.1                  
jakarta-jmeter/src/org/apache/jmeter/timers/gui/UniformRandomTimerGui.java
  
  Index: UniformRandomTimerGui.java
  ===================================================================
  /*
   * ====================================================================
   * The Apache Software License, Version 1.1
   *
   * Copyright (c) 2001 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   * notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   * notice, this list of conditions and the following disclaimer in
   * the documentation and/or other materials provided with the
   * distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   * if any, must include the following acknowledgment:
   * "This product includes software developed by the
   * Apache Software Foundation (http://www.apache.org/)."
   * Alternately, this acknowledgment may appear in the software itself,
   * if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Apache" and "Apache Software Foundation" and
   * "Apache JMeter" must not be used to endorse or promote products
   * derived from this software without prior written permission. For
   * written permission, please contact [EMAIL PROTECTED]
   *
   * 5. Products derived from this software may not be called "Apache",
   * "Apache JMeter", nor may "Apache" appear in their name, without
   * prior written permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
   package org.apache.jmeter.timers.gui;
  
  import javax.swing.*;
  import javax.swing.border.*;
  
  import java.awt.event.*;
  import java.awt.*;
  
  import org.apache.jmeter.timers.*;
  import org.apache.jmeter.gui.*;
  import org.apache.jmeter.util.*;
  
  /************************************************************
   *  Title: JMeter Description: Copyright: Copyright (c) 2000 Company: Apache
   *
   *@author     Michael Stover
   *@created    $Date: 2001/09/27 05:33:46 $
   *@version    1.0
   ***********************************************************/
  
  public class UniformRandomTimerGui extends JPanel implements ModelSupported, 
KeyListener
  {
        RandomTimer model;
  
        private JTextField delayField;
        private JTextField rangeField;
  
        private final String DELAY_FIELD = "Delay Field";
        private final String RANGE_FIELD = "Range Field";
  
        /************************************************************
         *  !ToDo (Constructor description)
         ***********************************************************/
        public UniformRandomTimerGui()
        {
        }
  
        /************************************************************
         *  !ToDo (Method description)
         *
         *@param  model  !ToDo (Parameter description)
         ***********************************************************/
        public void setModel(Object model)
        {
                this.model = (RandomTimer)model;
                init();
        }
  
        /************************************************************
         *  !ToDo (Method description)
         *
         *@param  e  !ToDo (Parameter description)
         ***********************************************************/
        public void keyReleased(KeyEvent e)
        {
                String temp = e.getComponent().getName();
  
                if (temp.equals(DELAY_FIELD))
                {
                        try
                        {
                                model.setDelay(Long.parseLong(delayField.getText()));
                        }
                        catch (NumberFormatException nfe)
                        {
                                if (delayField.getText().length() > 0)
                                {
                                        JOptionPane.showMessageDialog(this, "You must 
enter a valid number",
                                                        "Invalid data", 
JOptionPane.WARNING_MESSAGE);
                                        model.setDelay(model.getDefaultDelay());
                                        delayField.setText("");
                                }
                                else
                                {
                                        model.setDelay(model.getDefaultDelay());
                                }
                        }
                }
                else if (temp.equals(RANGE_FIELD))
                {
                        try
                        {
                                
model.setRange(Double.parseDouble(rangeField.getText()));
                        }
                        catch (NumberFormatException nfe)
                        {
                                if (rangeField.getText().length() > 0)
                                {
                                        JOptionPane.showMessageDialog(this, "You must 
enter a valid number",
                                                        "Invalid data", 
JOptionPane.WARNING_MESSAGE);
                                        model.setRange(model.getDefaultRange());
                                        rangeField.setText("");
                                }
                                else
                                {
                                        model.setRange(model.getDefaultRange());
                                }
                        }
                }
        }
  
        /************************************************************
         *  !ToDo (Method description)
         *
         *@param  e  !ToDo (Parameter description)
         ***********************************************************/
        public void keyPressed(KeyEvent e)
        {
        }
  
        /************************************************************
         *  !ToDo (Method description)
         *
         *@param  e  !ToDo (Parameter description)
         ***********************************************************/
        public void keyTyped(KeyEvent e)
        {
        }
  
        public void updateGui()
        {
                delayField.setText("" + model.getDelay());
                rangeField.setText("" + model.getRange());
        }
  
        private void init()
        {
                this.setLayout(new VerticalLayout(5, VerticalLayout.LEFT, 
VerticalLayout.TOP));
  
                // MAIN PANEL
                JPanel mainPanel = new JPanel();
                Border margin = new EmptyBorder(10, 10, 5, 10);
                mainPanel.setBorder(margin);
                mainPanel.setLayout(new VerticalLayout(5, VerticalLayout.LEFT));
  
                // TITLE
                JLabel panelTitleLabel = new 
JLabel(JMeterUtils.getResString("uniform_timer_title"));
                Font curFont = panelTitleLabel.getFont();
                int curFontSize = curFont.getSize();
                curFontSize += 4;
                panelTitleLabel.setFont(new Font(curFont.getFontName(), 
curFont.getStyle(), curFontSize));
                mainPanel.add(panelTitleLabel);
  
                // NAME
                NamePanel namePanel = new NamePanel(model);
                mainPanel.add(namePanel);
  
                // THREAD DELAY PROPERTIES
                JPanel threadDelayPropsPanel = new JPanel();
                margin = new EmptyBorder(5, 10, 10, 10);
                threadDelayPropsPanel.setLayout(new VerticalLayout(0, 
VerticalLayout.LEFT));
                threadDelayPropsPanel.setBorder(new 
CompoundBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(), 
JMeterUtils.getResString("thread_delay_properties")), margin));
  
                // AVG DELAY
                JPanel avgDelayPanel = new JPanel();
                JLabel delayLabel = new 
JLabel(JMeterUtils.getResString("uniform_timer_delay"));
                avgDelayPanel.add(delayLabel);
                delayField = new JTextField(6);
                delayField.setName(DELAY_FIELD);
                delayField.addKeyListener(this);
                avgDelayPanel.add(delayField);
                threadDelayPropsPanel.add(avgDelayPanel);
  
                // DELAY DEVIATION
                JPanel delayDevPanel = new JPanel();
                JLabel rangeLabel = new 
JLabel(JMeterUtils.getResString("uniform_timer_range"));
                delayDevPanel.add(rangeLabel);
                rangeField = new JTextField(6);
                rangeField.setName(RANGE_FIELD);
                rangeField.addKeyListener(this);
                delayDevPanel.add(rangeField);
                threadDelayPropsPanel.add(delayDevPanel);
                mainPanel.add(threadDelayPropsPanel);
  
                this.add(mainPanel);
  
                // Set the initial focus to the delay field
                new FocusRequester(delayField);
        }
  
        /************************************************************
         *  !ToDo (Method description)
         *
         *@param  e        !ToDo (Parameter description)
         *@param  thrower  !ToDo (Parameter description)
         ***********************************************************/
        public static void error(Exception e, JComponent thrower)
        {
                JOptionPane.showMessageDialog(thrower, e, "Error", 
JOptionPane.ERROR_MESSAGE);
        }
  }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to