Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

Source code: org/activemq/sampler/config/gui/ProducerSysTestConfigGui.java


1   /**
2    *
3    * Copyright 2004 Protique Ltd
4    *
5    * Licensed under the Apache License, Version 2.0 (the "License");
6    * you may not use this file except in compliance with the License.
7    * You may obtain a copy of the License at
8    *
9    * http://www.apache.org/licenses/LICENSE-2.0
10   *
11   * Unless required by applicable law or agreed to in writing, software
12   * distributed under the License is distributed on an "AS IS" BASIS,
13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14   * See the License for the specific language governing permissions and
15   * limitations under the License.
16   *
17   **/
18  package org.activemq.sampler.config.gui;
19  
20  import org.apache.jmeter.config.ConfigTestElement;
21  import org.apache.jmeter.config.gui.AbstractConfigGui;
22  import org.apache.jmeter.gui.util.VerticalPanel;
23  import org.apache.jmeter.testelement.TestElement;
24  import org.apache.jmeter.util.JMeterUtils;
25  import org.apache.jorphan.util.JOrphanUtils;
26  import org.activemq.sampler.Producer;
27  import org.activemq.sampler.ProducerSysTest;
28  
29  import javax.swing.JTextField;
30  import javax.swing.JComboBox;
31  import javax.swing.JRadioButton;
32  import javax.swing.JPanel;
33  import javax.swing.JLabel;
34  
35  import java.awt.BorderLayout;
36  import java.awt.FlowLayout;
37  import java.awt.event.ActionEvent;
38  import java.awt.event.ActionListener;
39  
40  /**
41   * Producer configuration gui bean.
42   */
43  public class ProducerSysTestConfigGui extends AbstractConfigGui {
44  
45      private static final String URL = "url";
46      private static final String DURABLE = "durable";
47      private static final String NONDURABLE = "nondurable";
48      private static final String TOPIC = "topic";
49      private static final String QUEUE = "queue";
50      private static final String NOPRODUCER = "noproducer";
51      private static final String NOSUBJECT = "nosubject";
52      private static final String PRODUCER_SYS_TEST_CONFIG_TITLE = "producer_sys_test_config_title";
53      private static final String NOMESSAGES = "nomessages";
54  
55  
56      private JTextField setURL;
57      private JTextField setNoProducer;
58      private JTextField setNoSubject;
59      private JRadioButton setDurable;
60      private JRadioButton setNonDurable;
61      private JRadioButton setTopic;
62      private JRadioButton setQueue;
63      private JTextField setNoMessages;
64  
65      private boolean displayName = true;
66  
67      /**
68       * Default constructor.
69       */
70      public ProducerSysTestConfigGui() {
71          this(true);
72      }
73  
74      /**
75       * Constructor.
76       *
77       * @param displayName - whether to display the name of the producer.
78       */
79      public ProducerSysTestConfigGui(boolean displayName) {
80          this.displayName = displayName;
81          init();
82      }
83  
84      /**
85       * Returns the producer configuration title.
86       *
87       * @return producer configuration title
88       */
89      public String getLabelResource() {
90          return PRODUCER_SYS_TEST_CONFIG_TITLE;
91      }
92  
93      /**
94       * Configures the ProducerConfigGui bean.
95       *
96       * @param element - producer sampler properties.
97       */
98      public void configure(TestElement element) {
99          super.configure(element);
100 
101         setURL.setText(element.getPropertyAsString(ProducerSysTest.URL));
102         //setDuration.setText(element.getPropertyAsString(ProducerSysTest.DURATION));
103         //setRampUp.setText(element.getPropertyAsString(ProducerSysTest.RAMP_UP));
104 
105         if (element.getProperty(ProducerSysTest.DURABLE) == null) {
106             setDurable.setSelected(true);
107             setNonDurable.setSelected(false);
108         } else {
109             if (element.getPropertyAsBoolean(ProducerSysTest.DURABLE)) {
110                 setDurable.setSelected(true);
111                 setNonDurable.setSelected(false);
112             } else {
113                 setDurable.setSelected(false);
114                 setNonDurable.setSelected(true);
115             }
116         }
117 
118         if (element.getProperty(ProducerSysTest.TOPIC) == null) {
119             setTopic.setSelected(true);
120             setQueue.setSelected(false);
121         } else {
122             if (element.getPropertyAsBoolean(ProducerSysTest.TOPIC)) {
123                 setTopic.setSelected(true);
124                 setQueue.setSelected(false);
125             } else {
126                 setTopic.setSelected(false);
127                 setQueue.setSelected(true);
128             }
129         }
130 
131         //setMsgSize.setText(element.getPropertyAsString(ProducerSysTest.MSGSIZE));
132         setNoProducer.setText(element.getPropertyAsString(ProducerSysTest.NOPRODUCER));
133         setNoSubject.setText(element.getPropertyAsString(ProducerSysTest.NOSUBJECT));
134         //setMsgSize.setText(element.getPropertyAsString(ProducerSysTest.MSGSIZE));
135         setNoMessages.setText(element.getPropertyAsString(ProducerSysTest.NOMESSAGES));
136 
137         /*
138         if (element.getProperty(ProducerSysTest.DEFMSGINTERVAL) == null) {
139             setDefMsgInterval.setSelected(true);
140             setCusMsgInterval.setSelected(false);
141             setMsgInterval.setEnabled(false);
142         } else {
143             if (element.getPropertyAsBoolean(ProducerSysTest.DEFMSGINTERVAL)) {
144                 setDefMsgInterval.setSelected(true);
145                 setCusMsgInterval.setSelected(false);
146                 setMsgInterval.setEnabled(false);
147             } else {
148                 setDefMsgInterval.setSelected(false);
149                 setCusMsgInterval.setSelected(true);
150                 setMsgInterval.setEnabled(true);
151                 setMsgInterval.setText(element.getPropertyAsString(ProducerSysTest.MSGINTERVAL));
152             }
153         }
154         */
155         /*
156         setMQServer.setSelectedItem(element.getPropertyAsString(ProducerSysTest.MQSERVER));
157 
158 
159         if (element.getProperty(ProducerSysTest.TRANSACTED) == null) {
160             setTransacted.setSelected(false);
161             setNonTransacted.setSelected(true);
162             setBatchSize.setEnabled(false);
163         } else {
164             if (element.getPropertyAsBoolean(ProducerSysTest.TRANSACTED)) {
165                 setTransacted.setSelected(true);
166                 setNonTransacted.setSelected(false);
167                 setBatchSize.setEnabled(true);
168                 setBatchSize.setText(element.getPropertyAsString(ProducerSysTest.BATCHSIZE));
169             } else {
170                 setTransacted.setSelected(false);
171                 setNonTransacted.setSelected(true);
172                 setBatchSize.setEnabled(false);
173                 setBatchSize.setText("");
174             }
175         }
176         */
177 
178     }
179 
180     /**
181      * Creates a test element.
182      *
183      * @return element
184      */
185     public TestElement createTestElement() {
186         ConfigTestElement element = new ConfigTestElement();
187         modifyTestElement(element);
188 
189         return element;
190     }
191 
192     /**
193      * Sets the producer sampler properties to the test element.
194      *
195      * @param element
196      */
197     public void modifyTestElement(TestElement element) {
198         configureTestElement(element);
199 
200         element.setProperty(ProducerSysTest.URL, setURL.getText());
201         //element.setProperty(ProducerSysTest.DURATION, setDuration.getText());
202         //element.setProperty(ProducerSysTest.RAMP_UP, setRampUp.getText());
203         element.setProperty(ProducerSysTest.DURABLE, JOrphanUtils.booleanToString(setDurable.isSelected()));
204         element.setProperty(ProducerSysTest.TOPIC, JOrphanUtils.booleanToString(setTopic.isSelected()));
205         //element.setProperty(ProducerSysTest.MSGSIZE, setMsgSize.getText());
206         element.setProperty(ProducerSysTest.NOPRODUCER, setNoProducer.getText());
207         element.setProperty(ProducerSysTest.NOSUBJECT, setNoSubject.getText());
208         element.setProperty(ProducerSysTest.NOMESSAGES, setNoMessages.getText());
209         //element.setProperty(ProducerSysTest.DEFMSGINTERVAL, JOrphanUtils.booleanToString(setDefMsgInterval.isSelected()));
210         //element.setProperty(ProducerSysTest.MSGINTERVAL, setMsgInterval.getText());
211         //element.setProperty(ProducerSysTest.MQSERVER, setMQServer.getSelectedItem().toString());
212         //element.setProperty(ProducerSysTest.TRANSACTED, JOrphanUtils.booleanToString(setTransacted.isSelected()));
213         //element.setProperty(ProducerSysTest.BATCHSIZE, setBatchSize.getText());
214     }
215 
216     /**
217      * Creates the URL panel.
218      *
219      * @return urlPanel
220      */
221     private JPanel createURLPanel() {
222         JLabel label = new JLabel(JMeterUtils.getResString("form_url"));
223         setURL = new JTextField(10);
224         setURL.setName(URL);
225         label.setLabelFor(setURL);
226 
227         JPanel urlPanel = new JPanel(new BorderLayout(5, 0));
228         urlPanel.add(label, BorderLayout.WEST);
229         urlPanel.add(setURL, BorderLayout.CENTER);
230 
231         return urlPanel;
232     }
233 
234     /**
235      * Creates the durable panel.
236      *
237      * @return durablePanel
238      */
239     private JPanel createDurablePanel() {
240         JLabel labelDeliveryMode = new JLabel(JMeterUtils.getResString("form_delivery_mode"));
241 
242         JLabel labelDurable = new JLabel(JMeterUtils.getResString("form_persistent"));
243         setDurable = new JRadioButton();
244         setDurable.setName(DURABLE);
245         labelDurable.setLabelFor(setDurable);
246         setDurable.setActionCommand(DURABLE);
247         setDurable.addActionListener(new ActionListener() {
248             public void actionPerformed(ActionEvent evt) {
249                 jRadioButtonActionPerformedDelivery(evt);
250             }
251         });
252         setDurable.setSelected(false);
253 
254         JLabel labelNonDurable = new JLabel(JMeterUtils.getResString("form_non_persistent"));
255         setNonDurable = new JRadioButton();
256         setNonDurable.setName(NONDURABLE);
257         labelNonDurable.setLabelFor(setNonDurable);
258         setNonDurable.setActionCommand(NONDURABLE);
259         setNonDurable.addActionListener(new ActionListener() {
260             public void actionPerformed(ActionEvent evt) {
261                 jRadioButtonActionPerformedDelivery(evt);
262             }
263         });
264         setNonDurable.setSelected(true);
265 
266         FlowLayout flow = new FlowLayout(FlowLayout.LEFT);
267         flow.setHgap(0);
268         flow.setVgap(0);
269 
270         JPanel durablePanel = new JPanel(flow);
271         durablePanel.add(labelDeliveryMode);
272         durablePanel.add(new JLabel("  "));
273         durablePanel.add(setDurable);
274         durablePanel.add(labelDurable);
275         durablePanel.add(new JLabel("   "));
276         durablePanel.add(setNonDurable);
277         durablePanel.add(labelNonDurable);
278 
279         return durablePanel;
280     }
281 
282     /**
283      * Creates the topic panel.
284      *
285      * @return topicPanel
286      */
287     private JPanel createTopicPanel() {
288         JLabel labelMessagingDomain = new JLabel(JMeterUtils.getResString("messaging_domain"));
289 
290         JLabel labelTopic = new JLabel(JMeterUtils.getResString("form_topic"));
291         setTopic = new JRadioButton();
292         setTopic.setName(TOPIC);
293         labelTopic.setLabelFor(setTopic);
294         setTopic.setActionCommand(TOPIC);
295         setTopic.addActionListener(new ActionListener() {
296             public void actionPerformed(ActionEvent evt) {
297                 jRadioButtonActionPerformed(evt);
298             }
299         });
300         setTopic.setSelected(true);
301 
302         JLabel labelQueue = new JLabel(JMeterUtils.getResString("form_queue"));
303         setQueue = new JRadioButton();
304         setQueue.setName(QUEUE);
305         labelQueue.setLabelFor(setQueue);
306         setQueue.setActionCommand(QUEUE);
307         setQueue.addActionListener(new ActionListener() {
308             public void actionPerformed(ActionEvent evt) {
309                 jRadioButtonActionPerformed(evt);
310             }
311         });
312         setQueue.setSelected(false);
313 
314         FlowLayout flow = new FlowLayout(FlowLayout.LEFT);
315         flow.setHgap(0);
316         flow.setVgap(0);
317 
318         JPanel topicPanel = new JPanel(flow);
319         topicPanel.add(labelMessagingDomain);
320         topicPanel.add(new JLabel("  "));
321         topicPanel.add(setTopic);
322         topicPanel.add(labelTopic);
323         topicPanel.add(new JLabel("   "));
324         topicPanel.add(setQueue);
325         topicPanel.add(labelQueue);
326 
327         return topicPanel;
328     }
329 
330     /**
331      * Creates the no prod panel.
332      *
333      * @return noProdPanel
334      */
335     private JPanel createNoProducerPanel() {
336         JLabel label = new JLabel(JMeterUtils.getResString("form_no_producer"));
337         setNoProducer = new JTextField(10);
338         setNoProducer.setName(NOPRODUCER);
339         label.setLabelFor(setNoProducer);
340 
341         JPanel noProdPanel = new JPanel(new BorderLayout(5, 0));
342         noProdPanel.add(label, BorderLayout.WEST);
343         noProdPanel.add(setNoProducer, BorderLayout.CENTER);
344 
345         return noProdPanel;
346     }
347 
348     /**
349      * Creates the number subject panel.
350      *
351      * @return noSubjectPanel
352      */
353     private JPanel createNoSubjectPanel() {
354         JLabel label = new JLabel(JMeterUtils.getResString("form_no_subject"));
355         setNoSubject = new JTextField(10);
356         setNoSubject.setName(NOSUBJECT);
357         label.setLabelFor(setNoSubject);
358 
359         JPanel noSubjectPanel = new JPanel(new BorderLayout(5, 0));
360         noSubjectPanel.add(label, BorderLayout.WEST);
361         noSubjectPanel.add(setNoSubject, BorderLayout.CENTER);
362 
363         return noSubjectPanel;
364     }
365 
366     /**
367      * Creates the number of messages panel.
368      *
369      * @return noMessagesPanel
370      */
371     private JPanel createNoMessagesPanel() {
372         JLabel label = new JLabel(JMeterUtils.getResString("form_no_messages"));
373         setNoMessages = new JTextField(10);
374         setNoMessages.setName(NOMESSAGES);
375         label.setLabelFor(setNoMessages);
376 
377         JPanel noMessagesPanel = new JPanel(new BorderLayout(5, 0));
378         noMessagesPanel.add(label, BorderLayout.WEST);
379         noMessagesPanel.add(setNoMessages, BorderLayout.CENTER);
380 
381         return noMessagesPanel;
382     }
383 
384     /**
385      * Initializes the gui components.
386      */
387     private void init() {
388         setLayout(new BorderLayout(0, 5));
389 
390         if (displayName) {
391             setBorder(makeBorder());
392             add(makeTitlePanel(), BorderLayout.NORTH);
393         }
394 
395         VerticalPanel mainPanel = new VerticalPanel();
396 
397         mainPanel.add(createURLPanel());
398         //mainPanel.add(createDurationPanel());
399         //mainPanel.add(createRampUpPanel());
400         mainPanel.add(createNoProducerPanel());
401         mainPanel.add(createNoSubjectPanel());
402         mainPanel.add(createNoMessagesPanel());
403         //mainPanel.add(createMsgSizePanel());
404         mainPanel.add(createDurablePanel());
405         mainPanel.add(createTopicPanel());
406         //mainPanel.add(createTransactedPanel());
407         //mainPanel.add(createDefMsgIntervalPanel());
408         //mainPanel.add(createMQServerPanel());
409 
410         add(mainPanel, BorderLayout.CENTER);
411     }
412 
413     /**
414      * Listener action for selecting Messaging Domain.
415      *
416      * @param evt - event triggered.
417      */
418     private void jRadioButtonActionPerformed(ActionEvent evt) {
419         String evtActionCommand = evt.getActionCommand();
420 
421         if (evtActionCommand.equals(TOPIC)) {
422             setTopic.setSelected(true);
423             setQueue.setSelected(false);
424         } else if (evtActionCommand.equals(QUEUE)) {
425             setTopic.setSelected(false);
426             setQueue.setSelected(true);
427         }
428     }
429     
430     /**
431      * Listener action for selecting Delivery Mode.
432      *
433      * @param evt - event triggered.
434      */
435     private void jRadioButtonActionPerformedDelivery(ActionEvent evt) {
436         String evtActionCommand = evt.getActionCommand();
437 
438         if (evtActionCommand.equals(DURABLE)) {
439             setDurable.setSelected(true);
440             setNonDurable.setSelected(false);
441         } else if (evtActionCommand.equals(NONDURABLE)) {
442             setDurable.setSelected(false);
443             setNonDurable.setSelected(true);
444         }
445     }
446 
447 }