package com.blazemeter.jmeter.xmpp.actions; import com.blazemeter.jmeter.xmpp.JMeterXMPPSampler; import org.apache.jmeter.samplers.SampleResult; import org.jivesoftware.smackx.muc.MultiUserChat; import javax.swing.*; import java.awt.*; public class MUC extends AbstractXMPPAction { private static final java.lang.String ROOM = "muc_room"; private static final java.lang.String NICKNAME = "muc_nickname"; private JTextField roomname; private JTextField nickname; @Override public String getLabel() { return "Join Multi-User Chat (XEP-0045)"; } @Override public SampleResult perform(JMeterXMPPSampler sampler, SampleResult res) throws Exception { String room = sampler.getPropertyAsString(ROOM); String nick = sampler.getPropertyAsString(NICKNAME); res.setSamplerData("Join Room: " + room + "/" + nick); MultiUserChat muc = new MultiUserChat(sampler.getXMPPConnection(), room); muc.join(nick); return res; } @Override public void addUI(JComponent panel, GridBagConstraints labelConstraints, GridBagConstraints editConstraints) { addToPanel(panel, labelConstraints, 0, 0, new JLabel("Room: ", JLabel.RIGHT)); addToPanel(panel, editConstraints, 1, 0, roomname = new JTextField(20)); addToPanel(panel, labelConstraints, 0, 1, new JLabel("Nickname: ", JLabel.RIGHT)); addToPanel(panel, editConstraints, 1, 1, nickname = new JTextField(20)); } @Override public void clearGui() { roomname.setText(""); nickname.setText(""); } @Override public void setSamplerProperties(JMeterXMPPSampler sampler) { sampler.setProperty(ROOM, roomname.getText()); sampler.setProperty(NICKNAME, nickname.getText()); } @Override public void setGuiFieldsFromSampler(JMeterXMPPSampler sampler) { roomname.setText(sampler.getPropertyAsString(ROOM)); nickname.setText(sampler.getPropertyAsString(NICKNAME)); } }