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]
