package br.com.microsoft.ocp.bot.service.jmeter.sampler.gui; import java.awt.BorderLayout; import java.text.DecimalFormat; import java.text.NumberFormat; import javax.swing.JPanel; import javax.swing.text.NumberFormatter; import org.apache.jmeter.samplers.gui.AbstractSamplerGui; import org.apache.jmeter.testelement.TestElement; import br.com.microsoft.ocp.bot.service.jmeter.sampler.ConversationUpdateSampler; public class ConversationUpdateSamplerGui extends AbstractSamplerGui { private static final String MEMBERS_ADDED_LABEL = "Members Added (comma sep.)"; private static final String NUMBER_OF_RESPONSES_EXPECTED_LABEL = "# of Responses Expected"; private static final long serialVersionUID = 240L; private static final int MAX_RESPONSES_ALLOWED = 99; private javax.swing.JLabel membersAddedLabel; private javax.swing.JLabel numOfResponsesExpectedLabel; private javax.swing.JTextField membersAddedTextField; private javax.swing.JTextField numOfResponsesExpectedTextField; public ConversationUpdateSamplerGui() { init(); } @Override public String getStaticLabel() { return "Bot Service: Conversation Update"; } /** * {@inheritDoc} */ @Override public void configure(TestElement element) { super.configure(element); membersAddedTextField.setText(element.getPropertyAsString(ConversationUpdateSampler.MEMBERS_ADDED)); numOfResponsesExpectedTextField .setText(String.valueOf(element.getPropertyAsInt(ConversationUpdateSampler.NUM_OF_EXPECTED_RESPONSES))); } /** * {@inheritDoc} */ @Override public TestElement createTestElement() { ConversationUpdateSampler sampler = new ConversationUpdateSampler(); modifyTestElement(sampler); return sampler; } /** * {@inheritDoc} */ @Override public void modifyTestElement(TestElement te) { te.clear(); configureTestElement(te); te.setProperty(ConversationUpdateSampler.MEMBERS_ADDED, membersAddedTextField.getText()); te.setProperty(ConversationUpdateSampler.NUM_OF_EXPECTED_RESPONSES, Integer.parseInt(numOfResponsesExpectedTextField.getText())); } /* * Helper method to set up the GUI screen */ private void init() { // WARNING: called from ctor so must not be overridden // (i.e. must be private or final) // Standard setup setLayout(new BorderLayout(0, 5)); setBorder(makeBorder()); add(makeTitlePanel(), BorderLayout.NORTH); // Add the standard title JPanel mainPanel = new JPanel(); add(mainPanel, BorderLayout.CENTER); numOfResponsesExpectedLabel = new javax.swing.JLabel(); membersAddedLabel = new javax.swing.JLabel(); NumberFormat format = new DecimalFormat("#0"); NumberFormatter formatter = new NumberFormatter(format); formatter.setValueClass(Integer.class); formatter.setMinimum(0); formatter.setMaximum(MAX_RESPONSES_ALLOWED); formatter.setAllowsInvalid(false); formatter.setCommitsOnValidEdit(true); numOfResponsesExpectedTextField = new javax.swing.JFormattedTextField(formatter); membersAddedTextField = new javax.swing.JTextField(); numOfResponsesExpectedLabel.setText(NUMBER_OF_RESPONSES_EXPECTED_LABEL); membersAddedLabel.setText(MEMBERS_ADDED_LABEL); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(mainPanel); mainPanel.setLayout(layout); layout.setHorizontalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup().addGroup(layout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false) .addGroup(layout.createSequentialGroup().addComponent(numOfResponsesExpectedLabel) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(numOfResponsesExpectedTextField, javax.swing.GroupLayout.PREFERRED_SIZE, 327, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup().addComponent(membersAddedLabel) .addGap(42, 42, 42).addComponent(membersAddedTextField, javax.swing.GroupLayout.PREFERRED_SIZE, 327, javax.swing.GroupLayout.PREFERRED_SIZE)))) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))); layout.setVerticalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup().addGap(32, 32, 32) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(numOfResponsesExpectedLabel).addComponent(numOfResponsesExpectedTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(membersAddedLabel).addComponent(membersAddedTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED))); } /** * {@inheritDoc} */ @Override public void clearGui() { super.clearGui(); membersAddedTextField.setText(ConversationUpdateSampler.MEMBERS_ADDED_DEFAULT_VALUE); numOfResponsesExpectedTextField.setText(String.valueOf(ConversationUpdateSampler.NUM_OF_EXPECTED_RESPONSES_DEFAULT_VALUE)); } @Override public String getLabelResource() { return null; } }