package com.blazemeter.jmeter;
import kg.apc.jmeter.JMeterPluginsUtils;
import org.apache.jmeter.gui.util.HorizontalPanel;
import org.apache.jmeter.testelement.TestElement;
import org.apache.jmeter.visualizers.SimpleDataWriter;
import javax.swing.*;
import java.awt.*;
public class RotatingResultCollectorGui extends SimpleDataWriter {
public static final String WIKIPAGE = "RotatingListener";
private JTextField maxSamplesCount;
public RotatingResultCollectorGui() {
super();
init();
}
private void init() {
setLayout(new BorderLayout(0, 5));
setBorder(makeBorder());
Container topPanel = makeTitlePanel();
add(JMeterPluginsUtils.addHelpLinkToPanel(topPanel, WIKIPAGE), BorderLayout.NORTH);
add(topPanel, BorderLayout.NORTH);
JPanel mainPanel = new HorizontalPanel();
mainPanel.setBorder(BorderFactory.createTitledBorder("File Rotating Rules"));
mainPanel.add(new JLabel("Limit samples count in file: ", JLabel.RIGHT));
maxSamplesCount = new JTextField(20);
mainPanel.add(maxSamplesCount);
topPanel.add(mainPanel);
}
@Override
public String getStaticLabel() {
return JMeterPluginsUtils.prefixLabel("Rotating Simple Data Writer");
}
public TestElement createTestElement() {
RotatingResultCollector element = new RotatingResultCollector();
modifyTestElement(element);
return element;
}
public void modifyTestElement(TestElement element) {
super.modifyTestElement(element);
if (element instanceof RotatingResultCollector) {
RotatingResultCollector rotatingCollector = (RotatingResultCollector) element;
rotatingCollector.setMaxSamplesCount(this.maxSamplesCount.getText());
}
}
@Override
public void configure(TestElement element) {
super.configure(element);
if (element instanceof RotatingResultCollector) {
maxSamplesCount.setText(((RotatingResultCollector) element).getMaxSamplesCount());
}
}
@Override
public void clearGui() {
super.clearGui();
maxSamplesCount.setText("");
}
}