package kg.apc.jmeter.config; import org.apache.jmeter.testelement.property.CollectionProperty; import org.apache.jorphan.logging.LoggingManager; import org.apache.log.Logger; import javax.swing.*; import java.util.ArrayList; import java.util.LinkedList; import java.util.List; public class ServersListPanel extends JPanel { private static final Logger log = LoggingManager.getLoggerForClass(); private List<JMeterServerPanel> serversList; public ServersListPanel() { super(); setLayout(new BoxLayout(this, BoxLayout.Y_AXIS)); serversList = new LinkedList<JMeterServerPanel>(); } public void clear() { serversList.clear(); removeAll(); getParent().repaint(); } public void saveToTestElement(DistributedTestControl te) { ArrayList<String> names = new ArrayList<String>(getCount()); for(JMeterServerPanel srv:serversList) { names.add(srv.getServerName()); } log.debug("Saving: " + names.toString()); te.setData(names); } public void loadFromTestElement(DistributedTestControl te) { CollectionProperty servers = te.getData(); log.debug("Loading: " + servers.toString()); clear(); for (int n = 0; n < servers.size(); n++) { log.debug("Adding: " + servers.get(n).toString()); add(servers.get(n).getStringValue()); } } public void add(String stringValue) { JMeterServerPanel panel = new JMeterServerPanel(stringValue, this); serversList.add(panel); add(panel); getParent().repaint(); } public int getCount() { return serversList.size(); } public void removeServer(JMeterServerPanel jMeterServerPanel) { serversList.remove(jMeterServerPanel); getParent().repaint(); } }