/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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.gui; import java.awt.BorderLayout; import javax.swing.BorderFactory; import javax.swing.ButtonGroup; import javax.swing.JPanel; import javax.swing.JRadioButton; import org.apache.jmeter.testelement.OnErrorTestElement; import org.apache.jmeter.util.JMeterUtils; public class OnErrorPanel extends JPanel { private static final long serialVersionUID = 240L; // Sampler error action buttons private JRadioButton continueBox; private JRadioButton startNextThreadLoopBox; private JRadioButton stopThrdBox; private JRadioButton stopTestBox; private JRadioButton stopTestNowBox; private JPanel createOnErrorPanel() { JPanel panel = new JPanel(); panel.setBorder(BorderFactory.createTitledBorder(JMeterUtils.getResString("sampler_on_error_action"))); //$NON-NLS-1$ ButtonGroup group = new ButtonGroup(); continueBox = new JRadioButton(JMeterUtils.getResString("sampler_on_error_continue")); //$NON-NLS-1$ group.add(continueBox); continueBox.setSelected(true); panel.add(continueBox); startNextThreadLoopBox = new JRadioButton(JMeterUtils.getResString("sampler_on_error_start_next_loop")); //$NON-NLS-1$ group.add(startNextThreadLoopBox); panel.add(startNextThreadLoopBox); stopThrdBox = new JRadioButton(JMeterUtils.getResString("sampler_on_error_stop_thread")); //$NON-NLS-1$ group.add(stopThrdBox); panel.add(stopThrdBox); stopTestBox = new JRadioButton(JMeterUtils.getResString("sampler_on_error_stop_test")); //$NON-NLS-1$ group.add(stopTestBox); panel.add(stopTestBox); stopTestNowBox = new JRadioButton(JMeterUtils.getResString("sampler_on_error_stop_test_now")); //$NON-NLS-1$ group.add(stopTestNowBox); panel.add(stopTestNowBox); return panel; } /** * Create a new NamePanel with the default name. */ public OnErrorPanel() { init(); } /** * Initialize the GUI components and layout. */ private void init() { // WARNING: called from ctor so must not be overridden (i.e. must be private or final) setLayout(new BorderLayout(5, 0)); add(createOnErrorPanel()); } public void configure(int errorAction) { stopTestNowBox.setSelected(errorAction == OnErrorTestElement.ON_ERROR_STOPTEST_NOW); startNextThreadLoopBox.setSelected(errorAction == OnErrorTestElement.ON_ERROR_START_NEXT_THREAD_LOOP); stopTestBox.setSelected(errorAction == OnErrorTestElement.ON_ERROR_STOPTEST); stopThrdBox.setSelected(errorAction == OnErrorTestElement.ON_ERROR_STOPTHREAD); continueBox.setSelected(errorAction == OnErrorTestElement.ON_ERROR_CONTINUE); } public int getOnErrorSetting() { if (stopTestNowBox.isSelected()) { return OnErrorTestElement.ON_ERROR_STOPTEST_NOW; } if (stopTestBox.isSelected()) { return OnErrorTestElement.ON_ERROR_STOPTEST; } if (stopThrdBox.isSelected()) { return OnErrorTestElement.ON_ERROR_STOPTHREAD; } if (startNextThreadLoopBox.isSelected()) { return OnErrorTestElement.ON_ERROR_START_NEXT_THREAD_LOOP; } // Defaults to continue return OnErrorTestElement.ON_ERROR_CONTINUE; } }