Coverage Report - kg.apc.jmeter.reporters.LoadosophiaUploaderGui
 
Classes in this File Line Coverage Branch Coverage Complexity
LoadosophiaUploaderGui
99%
102/103
50%
2/4
1.176
 
 1  
 package kg.apc.jmeter.reporters;
 2  
 
 3  
 import java.awt.BorderLayout;
 4  
 import java.awt.Component;
 5  
 import java.awt.GridBagConstraints;
 6  
 import java.awt.GridBagLayout;
 7  
 import java.util.Arrays;
 8  
 import javax.swing.*;
 9  
 import kg.apc.jmeter.JMeterPluginsUtils;
 10  
 import kg.apc.jmeter.gui.BrowseAction;
 11  
 import kg.apc.jmeter.gui.GuiBuilderHelper;
 12  
 import org.apache.jmeter.samplers.SampleResult;
 13  
 import org.apache.jmeter.testelement.TestElement;
 14  
 import org.apache.jmeter.visualizers.gui.AbstractVisualizer;
 15  
 import org.loadosophia.jmeter.LoadosophiaAPIClient;
 16  
 
 17  
 public class LoadosophiaUploaderGui
 18  
         extends AbstractVisualizer {
 19  
 
 20  
     public static final String WIKIPAGE = "LoadosophiaUploader";
 21  
     private JTextField testTitle;
 22  
     private JTextArea uploadToken;
 23  
     private JTextField projectKey;
 24  
     private JTextArea infoArea;
 25  
     private JTextField storeDir;
 26  
     private JButton browseButton;
 27  
     private JComboBox colorFlag;
 28  
     private JCheckBox useOnline;
 29  
 
 30  
     public LoadosophiaUploaderGui() {
 31  11
         super();
 32  11
         init();
 33  11
         initFields();
 34  11
     }
 35  
 
 36  
     @Override
 37  
     protected Component getFilePanel() {
 38  12
         return new JPanel();
 39  
     }
 40  
 
 41  
     @Override
 42  
     public String getStaticLabel() {
 43  24
         return JMeterPluginsUtils.prefixLabel("Loadosophia.org Uploader");
 44  
     }
 45  
 
 46  
     @Override
 47  
     public String getLabelResource() {
 48  1
         return getClass().getCanonicalName();
 49  
     }
 50  
 
 51  
     @Override
 52  
     public TestElement createTestElement() {
 53  1
         TestElement te = new LoadosophiaUploader();
 54  1
         modifyTestElement(te);
 55  1
         te.setComment(JMeterPluginsUtils.getWikiLinkText(WIKIPAGE));
 56  1
         return te;
 57  
     }
 58  
 
 59  
     @Override
 60  
     public void modifyTestElement(TestElement te) {
 61  2
         super.modifyTestElement(te);
 62  2
         if (te instanceof LoadosophiaUploader) {
 63  2
             LoadosophiaUploader fw = (LoadosophiaUploader) te;
 64  2
             fw.setProject(projectKey.getText());
 65  2
             fw.setUploadToken(uploadToken.getText());
 66  2
             fw.setStoreDir(storeDir.getText());
 67  2
             fw.setColorFlag(indexToColor(colorFlag.getSelectedIndex()));
 68  2
             fw.setTitle(testTitle.getText());
 69  2
             fw.setUseOnline(useOnline.isSelected());
 70  
         }
 71  2
     }
 72  
 
 73  
     @Override
 74  
     public void configure(TestElement element) {
 75  1
         super.configure(element);
 76  1
         LoadosophiaUploader fw = (LoadosophiaUploader) element;
 77  1
         projectKey.setText(fw.getProject());
 78  1
         uploadToken.setText(fw.getUploadToken());
 79  1
         storeDir.setText(fw.getStoreDir());
 80  1
         colorFlag.setSelectedIndex(colorToIndex(fw.getColorFlag()));
 81  1
         testTitle.setText(fw.getTitle());
 82  1
         useOnline.setSelected(fw.isUseOnline());
 83  1
     }
 84  
 
 85  
     private void init() {
 86  11
         setLayout(new BorderLayout(0, 5));
 87  11
         setBorder(makeBorder());
 88  
 
 89  11
         add(JMeterPluginsUtils.addHelpLinkToPanel(makeTitlePanel(), WIKIPAGE), BorderLayout.NORTH);
 90  
 
 91  11
         JPanel mainPanel = new JPanel(new GridBagLayout());
 92  
 
 93  11
         GridBagConstraints labelConstraints = new GridBagConstraints();
 94  11
         labelConstraints.anchor = GridBagConstraints.FIRST_LINE_END;
 95  
 
 96  11
         GridBagConstraints editConstraints = new GridBagConstraints();
 97  11
         editConstraints.anchor = GridBagConstraints.FIRST_LINE_START;
 98  11
         editConstraints.weightx = 1.0;
 99  11
         editConstraints.fill = GridBagConstraints.HORIZONTAL;
 100  
 
 101  11
         int row = 0;
 102  11
         addToPanel(mainPanel, labelConstraints, 0, row, new JLabel("Initiate active test: ", JLabel.RIGHT));
 103  11
         addToPanel(mainPanel, editConstraints, 1, row, useOnline = new JCheckBox());
 104  
 
 105  11
         row++;
 106  11
         addToPanel(mainPanel, labelConstraints, 0, row, new JLabel("Upload to Project: ", JLabel.RIGHT));
 107  11
         addToPanel(mainPanel, editConstraints, 1, row, projectKey = new JTextField(20));
 108  
 
 109  11
         editConstraints.insets = new java.awt.Insets(2, 0, 0, 0);
 110  11
         labelConstraints.insets = new java.awt.Insets(2, 0, 0, 0);
 111  
 
 112  11
         row++;
 113  11
         addToPanel(mainPanel, labelConstraints, 0, row, new JLabel("Directory to store data for upload: ", JLabel.RIGHT));
 114  11
         addToPanel(mainPanel, editConstraints, 1, row, storeDir = new JTextField(20));
 115  11
         addToPanel(mainPanel, labelConstraints, 2, row, browseButton = new JButton("Browse..."));
 116  
 
 117  11
         GuiBuilderHelper.strechItemToComponent(storeDir, browseButton);
 118  11
         browseButton.addActionListener(new BrowseAction(storeDir, true));
 119  
 
 120  11
         row++;
 121  11
         addToPanel(mainPanel, labelConstraints, 0, row, new JLabel("Test Title: ", JLabel.RIGHT));
 122  11
         addToPanel(mainPanel, editConstraints, 1, row, testTitle = new JTextField(20));
 123  
 
 124  11
         row++;
 125  11
         addToPanel(mainPanel, labelConstraints, 0, row, new JLabel("Color Flag: ", JLabel.RIGHT));
 126  11
         addToPanel(mainPanel, editConstraints, 1, row, colorFlag = new JComboBox(LoadosophiaAPIClient.colors));
 127  
 
 128  11
         GuiBuilderHelper.strechItemToComponent(storeDir, colorFlag);
 129  
 
 130  11
         editConstraints.fill = GridBagConstraints.BOTH;
 131  
 
 132  11
         editConstraints.insets = new java.awt.Insets(4, 0, 0, 0);
 133  11
         labelConstraints.insets = new java.awt.Insets(4, 0, 0, 0);
 134  
 
 135  11
         row++;
 136  11
         addToPanel(mainPanel, labelConstraints, 0, row, new JLabel("Upload Token: ", JLabel.RIGHT));
 137  
 
 138  11
         uploadToken = new JTextArea();
 139  11
         uploadToken.setLineWrap(true);
 140  11
         addToPanel(mainPanel, editConstraints, 1, row, GuiBuilderHelper.getTextAreaScrollPaneContainer(uploadToken, 6));
 141  
 
 142  11
         row++;
 143  11
         addToPanel(mainPanel, labelConstraints, 0, row, new JLabel("Info Area: ", JLabel.RIGHT));
 144  11
         infoArea = new JTextArea();
 145  11
         infoArea.setEditable(false);
 146  11
         infoArea.setOpaque(false);
 147  
 
 148  11
         addToPanel(mainPanel, editConstraints, 1, row, GuiBuilderHelper.getTextAreaScrollPaneContainer(infoArea, 6));
 149  
 
 150  11
         JPanel container = new JPanel(new BorderLayout());
 151  11
         container.add(mainPanel, BorderLayout.NORTH);
 152  11
         add(container, BorderLayout.CENTER);
 153  11
     }
 154  
 
 155  
     private void initFields() {
 156  12
         testTitle.setText("");
 157  12
         projectKey.setText("DEFAULT");
 158  12
         uploadToken.setText("Replace this text with upload token received at Loadosophia.org\nRemember that anyone who has this token can upload files to your account.\nPlease, treat your token as confidential data.\nSee plugin help for details.");
 159  12
         storeDir.setText(System.getProperty("java.io.tmpdir"));
 160  12
         colorFlag.setSelectedIndex(0);
 161  12
         useOnline.setSelected(true);
 162  12
     }
 163  
 
 164  
     private void addToPanel(JPanel panel, GridBagConstraints constraints, int col, int row, JComponent component) {
 165  165
         constraints.gridx = col;
 166  165
         constraints.gridy = row;
 167  165
         panel.add(component, constraints);
 168  165
     }
 169  
 
 170  
     @Override
 171  
     public void clearGui() {
 172  1
         super.clearGui();
 173  1
         initFields();
 174  1
     }
 175  
 
 176  
     @Override
 177  
     public void add(SampleResult sr) {
 178  1
     }
 179  
 
 180  
     @Override
 181  
     public void clearData() {
 182  1
         infoArea.setText("");
 183  1
     }
 184  
 
 185  
     public void inform(String string) {
 186  1
         infoArea.append(string + "\n");
 187  1
     }
 188  
 
 189  
     @Override
 190  
     public boolean isStats() {
 191  1
         return false;
 192  
     }
 193  
 
 194  
     private String indexToColor(int selectedIndex) {
 195  2
         if (selectedIndex >= 0) {
 196  2
             return LoadosophiaAPIClient.colors[selectedIndex];
 197  
         } else {
 198  0
             return LoadosophiaAPIClient.COLOR_NONE;
 199  
         }
 200  
     }
 201  
 
 202  
     private int colorToIndex(String colorFlag) {
 203  1
         return Arrays.asList(LoadosophiaAPIClient.colors).indexOf(colorFlag);
 204  
     }
 205  
 }