Hello,

Please, don't accept a PR like this quickly

This PR mixed a lot of changes:

(in order: https://github.com/apache/jmeter/pull/140/files)
* Mark @Deprecated a class
* Change variable names/type
* format/indent code
* add some format code issue (missing space between if and '(' ) (see line 208 / 251 in new code / UrlConfigGui.java )
* use constant string to key to replace hard code string (good practice)

And bad French translation for

+post_files_upload=Upload de fichiers

Upload isn't a French word. The good word is "Téléchargement" (and l10n string is "Téléchargement de fichiers" (the word Téléchargement don't indicate the direction of traffic, but in this context, the 'upload' is natural, so "Téléchargement the best french word to replace 'upload' word.)

Please fixes this L10N issue and format code issue.

And recommend to the PR's people to do several commits to make several type to changes in one PR on github.

Milamber


On 26/02/2016 20:12, [email protected] wrote:
Author: pmouawad
Date: Fri Feb 26 20:12:33 2016
New Revision: 1732554

URL: http://svn.apache.org/viewvc?rev=1732554&view=rev
Log:
Bug 59060 - HTTP Request GUI : Move File Upload to a new Tab to have more space 
for parameters and prevent incoherent configuration
Contributed by Benoit Wiart
#resolve #140
https://github.com/apache/jmeter/pull/140
Bugzilla Id: 59060

Modified:
     jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties
     jmeter/trunk/src/core/org/apache/jmeter/resources/messages_fr.properties
     
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/config/gui/MultipartUrlConfigGui.java
     
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/config/gui/UrlConfigGui.java
     
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/gui/HttpTestSampleGui.java
     
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/gui/HTTPFileArgsPanel.java
     jmeter/trunk/xdocs/changes.xml

Modified: jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties
URL: 
http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties?rev=1732554&r1=1732553&r2=1732554&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties 
(original)
+++ jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties Fri 
Feb 26 20:12:33 2016
@@ -727,6 +727,7 @@ port=Port\:
  post_as_parameters=Parameters
  post_body=Body Data
  post_body_raw=Body Data
+post_files_upload=Files Upload
  post_thread_group_title=tearDown Thread Group
  previous=Previous
  property_as_field_label={0}\:

Modified: 
jmeter/trunk/src/core/org/apache/jmeter/resources/messages_fr.properties
URL: 
http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/resources/messages_fr.properties?rev=1732554&r1=1732553&r2=1732554&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/resources/messages_fr.properties 
(original)
+++ jmeter/trunk/src/core/org/apache/jmeter/resources/messages_fr.properties 
Fri Feb 26 20:12:33 2016
@@ -712,6 +712,7 @@ port=Port \:
  post_as_parameters=Param\u00E8tres
  post_body=Corps de la requ\u00EAte
  post_body_raw=Donn\u00E9es de la requ\u00EAte
+post_files_upload=Upload de fichiers
  post_thread_group_title=Groupe d'unit\u00E9s de fin
  previous=Pr\u00E9c\u00E9dent
  property_as_field_label={0}\:

Modified: 
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/config/gui/MultipartUrlConfigGui.java
URL: 
http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/config/gui/MultipartUrlConfigGui.java?rev=1732554&r1=1732553&r2=1732554&view=diff
==============================================================================
--- 
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/config/gui/MultipartUrlConfigGui.java
 (original)
+++ 
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/config/gui/MultipartUrlConfigGui.java
 Fri Feb 26 20:12:33 2016
@@ -28,6 +28,10 @@ import org.apache.jmeter.protocol.http.g
  import org.apache.jmeter.testelement.TestElement;
  import org.apache.jmeter.util.JMeterUtils;
+/**
+ * @deprecated since 3.0 will be removed in the next version 3.1
+ */
+@Deprecated
  public class MultipartUrlConfigGui extends UrlConfigGui {
private static final long serialVersionUID = 240L;

Modified: 
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/config/gui/UrlConfigGui.java
URL: 
http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/config/gui/UrlConfigGui.java?rev=1732554&r1=1732553&r2=1732554&view=diff
==============================================================================
--- 
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/config/gui/UrlConfigGui.java
 (original)
+++ 
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/config/gui/UrlConfigGui.java
 Fri Feb 26 20:12:33 2016
@@ -45,6 +45,7 @@ import org.apache.jmeter.gui.util.JSynta
  import org.apache.jmeter.gui.util.JTextScrollPane;
  import org.apache.jmeter.gui.util.VerticalPanel;
  import org.apache.jmeter.protocol.http.gui.HTTPArgumentsPanel;
+import org.apache.jmeter.protocol.http.gui.HTTPFileArgsPanel;
  import org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase;
  import org.apache.jmeter.protocol.http.sampler.HTTPSamplerFactory;
  import org.apache.jmeter.protocol.http.util.HTTPArgument;
@@ -71,13 +72,17 @@ public class UrlConfigGui extends JPanel
private static final int TAB_PARAMETERS = 0; - private static final int TAB_RAW_BODY = 1;
+    private int tabRawBodyIndex = 1;
+
+    private int tabFileUploadIndex = 2;
private static final Font FONT_DEFAULT = UIManager.getDefaults().getFont("TextField.font"); private static final Font FONT_SMALL = new Font("SansSerif", Font.PLAIN, (int) Math.round(FONT_DEFAULT.getSize() * 0.8)); private HTTPArgumentsPanel argsPanel;
+
+    private HTTPFileArgsPanel filesPanel;
private JTextField domain; @@ -115,8 +120,8 @@ public class UrlConfigGui extends JPanel private JLabeledChoice httpImplementation; - private final boolean notConfigOnly;
      // set this false to suppress some items for use in HTTP Request defaults
+    private final boolean notConfigOnly;
private final boolean showImplementation; // Set false for AJP @@ -127,6 +132,7 @@ public class UrlConfigGui extends JPanel
      private ValidationTabbedPane postContentTabbedPane;
private boolean showRawBodyPane;
+    private boolean showFileUploadPane;
/**
       * Constructor which is setup to show HTTP implementation, raw body pane 
and
@@ -155,9 +161,23 @@ public class UrlConfigGui extends JPanel
       *            flag whether the raw body pane should be shown
       */
      public UrlConfigGui(boolean showSamplerFields, boolean 
showImplementation, boolean showRawBodyPane) {
-        notConfigOnly=showSamplerFields;
+        this(showSamplerFields, showImplementation, showRawBodyPane, false);
+    }
+
+    /**
+     * @param showSamplerFields
+     *            flag whether sampler fields should be shown
+     * @param showImplementation
+     *            Show HTTP Implementation
+     * @param showRawBodyPane
+     *            flag whether the raw body pane should be shown
+     * @param showFileUploadPane flag whether the file upload pane should be 
shown
+     */
+    public UrlConfigGui(boolean showSamplerFields, boolean showImplementation, 
boolean showRawBodyPane, boolean showFileUploadPane) {
+        this.notConfigOnly = showSamplerFields;
          this.showImplementation = showImplementation;
          this.showRawBodyPane = showRawBodyPane;
+        this.showFileUploadPane = showFileUploadPane;
          init();
      }
@@ -185,6 +205,9 @@ public class UrlConfigGui extends JPanel
          protocol.setText(""); // $NON-NLS-1$
          contentEncoding.setText(""); // $NON-NLS-1$
          argsPanel.clear();
+        if(showFileUploadPane) {
+            filesPanel.clear();
+        }
          if(showRawBodyPane) {
              postBodyContent.setInitialText("");// $NON-NLS-1$
          }
@@ -207,7 +230,7 @@ public class UrlConfigGui extends JPanel
       * @param element {@link TestElement} to modify
       */
      public void modifyTestElement(TestElement element) {
-        boolean useRaw = 
postContentTabbedPane.getSelectedIndex()==TAB_RAW_BODY;
+        boolean useRaw = 
postContentTabbedPane.getSelectedIndex()==tabRawBodyIndex;
          Arguments args;
          if(useRaw) {
              args = new Arguments();
@@ -225,6 +248,9 @@ public class UrlConfigGui extends JPanel
          } else {
              args = (Arguments) argsPanel.createTestElement();
              HTTPArgument.convertArgumentsToHTTP(args);
+            if(showFileUploadPane) {
+                filesPanel.modifyTestElement(element);
+            }
          }
          element.setProperty(HTTPSamplerBase.POST_BODY_RAW, useRaw, 
HTTPSamplerBase.POST_BODY_RAW_DEFAULT);
          element.setProperty(new 
TestElementProperty(HTTPSamplerBase.ARGUMENTS, args));
@@ -297,10 +323,13 @@ public class UrlConfigGui extends JPanel
              String postBody = computePostBody(arguments, true); // Convert 
CRLF to CR, see modifyTestElement
              postBodyContent.setInitialText(postBody);
              postBodyContent.setCaretPosition(0);
-            postContentTabbedPane.setSelectedIndex(TAB_RAW_BODY, false);
+            postContentTabbedPane.setSelectedIndex(tabRawBodyIndex, false);
          } else {
              argsPanel.configure(arguments);
              postContentTabbedPane.setSelectedIndex(TAB_PARAMETERS, false);
+            if(showFileUploadPane) {
+                filesPanel.configure(el);
+            }
          }
domain.setText(el.getPropertyAsString(HTTPSamplerBase.DOMAIN));
@@ -580,12 +609,12 @@ public class UrlConfigGui extends JPanel
      protected JPanel getProtocolAndMethodPanel() {
// Implementation
-
          if (showImplementation) {
              httpImplementation = new 
JLabeledChoice(JMeterUtils.getResString("http_implementation"), // $NON-NLS-1$
                      HTTPSamplerFactory.getImplementations());
              httpImplementation.addValue("");
          }
+
          // PROTOCOL
          protocol = new JTextField(4);
          JLabel protocolLabel = new 
JLabel(JMeterUtils.getResString("protocol")); // $NON-NLS-1$
@@ -627,26 +656,33 @@ public class UrlConfigGui extends JPanel
          postContentTabbedPane = new ValidationTabbedPane();
          argsPanel = new HTTPArgumentsPanel();
          
postContentTabbedPane.add(JMeterUtils.getResString("post_as_parameters"), 
argsPanel);// $NON-NLS-1$
+
+        int indx = TAB_PARAMETERS;
          if(showRawBodyPane) {
+            tabRawBodyIndex = ++indx;
              postBodyContent = new JSyntaxTextArea(30, 50);// $NON-NLS-1$
              postContentTabbedPane.add(JMeterUtils.getResString("post_body"), 
new JTextScrollPane(postBodyContent));// $NON-NLS-1$
          }
+
+        if(showFileUploadPane) {
+            tabFileUploadIndex = ++indx;
+            filesPanel = new HTTPFileArgsPanel();
+            
postContentTabbedPane.add(JMeterUtils.getResString("post_files_upload"), 
filesPanel);
+        }
          return postContentTabbedPane;
      }
/**
       *
       */
-    class ValidationTabbedPane extends JTabbedPane{
+    class ValidationTabbedPane extends JTabbedPane {
/**
           *
           */
          private static final long serialVersionUID = 7014311238367882880L;
- /* (non-Javadoc)
-         * @see javax.swing.JTabbedPane#setSelectedIndex(int)
-         */
+
          @Override
          public void setSelectedIndex(int index) {
              setSelectedIndex(index, true);
@@ -662,23 +698,32 @@ public class UrlConfigGui extends JPanel
           *            index
           */
          public void setSelectedIndex(int index, boolean check) {
-            int oldSelectedIndex = getSelectedIndex();
-            if(!check || oldSelectedIndex==-1) {
+            int oldSelectedIndex = this.getSelectedIndex();
+            if(!check || oldSelectedIndex == -1) {
                  super.setSelectedIndex(index);
              }
-            else if(index != this.getSelectedIndex())
+            else if(index != oldSelectedIndex)
              {
-                if(noData(getSelectedIndex())) {
-                    // If there is no data, then switching between Parameters 
and Raw should be
-                    // allowed with no further user interaction.
+                // If there is no data, then switching between Parameters/file 
upload and Raw should be
+                // allowed with no further user interaction.
+                if(noData(oldSelectedIndex)) {
                      argsPanel.clear();
                      postBodyContent.setInitialText("");
+                    if(showFileUploadPane) {
+                        filesPanel.clear();
+                    }
                      super.setSelectedIndex(index);
                  }
-                else {
-                    if(oldSelectedIndex == TAB_RAW_BODY) {
+                else {
+                    boolean filePanelHasData = false;
+                    if(showFileUploadPane) {
+                        filePanelHasData = filesPanel.hasData();
+                    }
+
+                    if(oldSelectedIndex == tabRawBodyIndex) {
+
                          // If RAW data and Parameters match we allow switching
-                        
if(postBodyContent.getText().equals(computePostBody((Arguments)argsPanel.createTestElement()).trim()))
 {
+                        if(index == TAB_PARAMETERS && 
postBodyContent.getText().equals(computePostBody((Arguments)argsPanel.createTestElement()).trim()))
 {
                              super.setSelectedIndex(index);
                          }
                          else {
@@ -693,9 +738,18 @@ public class UrlConfigGui extends JPanel
                          }
                      }
                      else {
-                        // If the Parameter data can be converted (i.e. no 
names), we
-                        // warn the user that the Parameter data will be lost.
-                        if(canConvertParameters()) {
+                        // can switch from parameter to fileupload
+                        if((oldSelectedIndex == TAB_PARAMETERS
+                                && index == tabFileUploadIndex)
+                             || (oldSelectedIndex == tabFileUploadIndex
+                                     && index == TAB_PARAMETERS)) {
+                            super.setSelectedIndex(index);
+                            return;
+                        }
+
+                        // If the Parameter data can be converted (i.e. no 
names) and there is no data in file upload
+                        // we warn the user that the Parameter data will be 
lost.
+                        if(oldSelectedIndex == TAB_PARAMETERS && !filePanelHasData 
&& canConvertParameters()) {
                              Object[] options = {
                                      JMeterUtils.getResString("confirm"), // 
$NON-NLS-1$
                                      JMeterUtils.getResString("cancel")}; // 
$NON-NLS-1$
@@ -718,8 +772,9 @@ public class UrlConfigGui extends JPanel
                          else {
                              // If the Parameter data cannot be converted to 
Raw, then the user should be
                              // prevented from doing so raise an error dialog
+                            String messageKey = 
filePanelHasData?"web_cannot_switch_tab":"web_cannot_convert_parameters_to_raw";
                              JOptionPane.showConfirmDialog(this,
-                                    
JMeterUtils.getResString("web_cannot_convert_parameters_to_raw"), // $NON-NLS-1$
+                                    JMeterUtils.getResString(messageKey), // 
$NON-NLS-1$
                                      JMeterUtils.getResString("warning"), // 
$NON-NLS-1$
                                      JOptionPane.DEFAULT_OPTION,
                                      JOptionPane.ERROR_MESSAGE);
@@ -764,7 +819,7 @@ public class UrlConfigGui extends JPanel
       * @return true if no argument has a name
       */
      boolean canConvertParameters() {
-        Arguments arguments = (Arguments)argsPanel.createTestElement();
+        Arguments arguments = (Arguments) argsPanel.createTestElement();
          for (int i = 0; i < arguments.getArgumentCount(); i++) {
              if(!StringUtils.isEmpty(arguments.getArgument(i).getName())) {
                  return false;
@@ -776,17 +831,22 @@ public class UrlConfigGui extends JPanel
      /**
       * Checks if no data is available in the selected tab
       *
-     * @param oldSelectedIndex
-     *            the tab to check for data
+     * @param oldSelectedIndex the tab to check for data
       * @return true if neither Parameters tab nor Raw Body tab contain data
       */
      boolean noData(int oldSelectedIndex) {
-        if(oldSelectedIndex == TAB_RAW_BODY) {
+        if(oldSelectedIndex == tabRawBodyIndex) {
              return StringUtils.isEmpty(postBodyContent.getText().trim());
          }
          else {
-            Arguments element = (Arguments)argsPanel.createTestElement();
-            return StringUtils.isEmpty(computePostBody(element));
+            boolean noData = true;
+            Arguments element = (Arguments) argsPanel.createTestElement();
+
+            if(showFileUploadPane) {
+                noData &= !filesPanel.hasData();
+            }
+
+            return noData && StringUtils.isEmpty(computePostBody(element));
          }
      }
  }

Modified: 
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/gui/HttpTestSampleGui.java
URL: 
http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/gui/HttpTestSampleGui.java?rev=1732554&r1=1732553&r2=1732554&view=diff
==============================================================================
--- 
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/gui/HttpTestSampleGui.java
 (original)
+++ 
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/gui/HttpTestSampleGui.java
 Fri Feb 26 20:12:33 2016
@@ -34,7 +34,7 @@ import javax.swing.UIManager;
import org.apache.jmeter.gui.util.HorizontalPanel;
  import org.apache.jmeter.gui.util.VerticalPanel;
-import org.apache.jmeter.protocol.http.config.gui.MultipartUrlConfigGui;
+import org.apache.jmeter.protocol.http.config.gui.UrlConfigGui;
  import org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase;
  import org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy;
  import org.apache.jmeter.samplers.gui.AbstractSamplerGui;
@@ -56,7 +56,7 @@ public class HttpTestSampleGui extends A
private static final Font FONT_SMALL = new Font("SansSerif", Font.PLAIN, (int) Math.round(FONT_DEFAULT.getSize() * 0.8)); - private MultipartUrlConfigGui urlConfigGui;
+    private UrlConfigGui urlConfigGui;
private JCheckBox getImages; @@ -158,7 +158,7 @@ public class HttpTestSampleGui extends A
          add(makeTitlePanel(), BorderLayout.NORTH);
// URL CONFIG
-        urlConfigGui = new MultipartUrlConfigGui(true, !isAJP);
+        urlConfigGui = new UrlConfigGui(true, !isAJP, true, true);
          add(urlConfigGui, BorderLayout.CENTER);
// Bottom (embedded resources, source address and optional tasks)

Modified: 
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/gui/HTTPFileArgsPanel.java
URL: 
http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/gui/HTTPFileArgsPanel.java?rev=1732554&r1=1732553&r2=1732554&view=diff
==============================================================================
--- 
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/gui/HTTPFileArgsPanel.java
 (original)
+++ 
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/gui/HTTPFileArgsPanel.java
 Fri Feb 26 20:12:33 2016
@@ -20,18 +20,14 @@ package org.apache.jmeter.protocol.http.
import java.awt.BorderLayout;
  import java.awt.Component;
-import java.awt.Cursor;
  import java.awt.FlowLayout;
  import java.awt.event.ActionEvent;
  import java.awt.event.ActionListener;
-import java.awt.event.MouseAdapter;
-import java.awt.event.MouseEvent;
  import java.io.File;
  import java.util.Iterator;
import javax.swing.BorderFactory;
  import javax.swing.Box;
-import javax.swing.ImageIcon;
  import javax.swing.JButton;
  import javax.swing.JFileChooser;
  import javax.swing.JLabel;
@@ -39,7 +35,6 @@ import javax.swing.JPanel;
  import javax.swing.JScrollPane;
  import javax.swing.JTable;
  import javax.swing.ListSelectionModel;
-import javax.swing.SwingConstants;
  import javax.swing.table.TableCellEditor;
import org.apache.jmeter.gui.util.FileDialoger;
@@ -66,6 +61,7 @@ public class HTTPFileArgsPanel extends J
      private static final long serialVersionUID = 240L;
/** The title label for this component. */
+    @Deprecated
      private JLabel tableLabel;
/** The table containing the list of files. */
@@ -100,47 +96,25 @@ public class HTTPFileArgsPanel extends J
      /** The mime type column title of file table. */
      private static final String MIMETYPE = "send_file_mime_label"; 
//$NON-NLS-1$
+
+    /**
+     * Create a new HTTPFileArgsPanel as an embedded component
+     */
      public HTTPFileArgsPanel() {
-        this(""); // required for unit tests
+        init();
      }
-
+
      /**
       * Create a new HTTPFileArgsPanel as an embedded component, using the
       * specified title.
       *
-     * @param label
-     *  the title for the component.
+     * @param label the title for the component.
+     * @deprecated will be removed in the next version
       */
+    @Deprecated
      public HTTPFileArgsPanel(String label) {
-        ImageIcon image = JMeterUtils.getImage("collapse-open.png");
-        tableLabel = new JLabel(label, image, SwingConstants.LEFT);
+        tableLabel = new JLabel(label);
          init();
-        tableLabel.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
-        
tableLabel.setToolTipText(JMeterUtils.getResString("collapse_tooltip"));
-        tableLabel.addMouseListener(new MouseAdapter() {
-            @Override
-            public void mouseClicked(MouseEvent e) {
-                hideFileArgsMainPanel(null);
-            }
-        });
-    }
-
-    private void hideFileArgsMainPanel(Boolean force) {
-        BorderLayout bl = (BorderLayout) this.getLayout();
-
-        boolean result = false;
-        String[] borders = {BorderLayout.CENTER, BorderLayout.WEST, 
BorderLayout.SOUTH};
-        for (String border : borders) {
-            Component tableComponent = bl.getLayoutComponent(border);
-            if(tableComponent != null) {
-                boolean visible = 
force!=null?force.booleanValue():!tableComponent.isVisible();
-                tableComponent.setVisible(visible);
-
-                result |= visible;
-            }
-        }
-
-        
tableLabel.setIcon(result?JMeterUtils.getImage("collapse-open.png"):JMeterUtils.getImage("collapse-close.png"));
      }
/**
@@ -162,7 +136,7 @@ public class HTTPFileArgsPanel extends J
      }
public static boolean testFunctors(){
-        HTTPFileArgsPanel instance = new HTTPFileArgsPanel(""); //$NON-NLS-1$
+        HTTPFileArgsPanel instance = new HTTPFileArgsPanel();
          instance.initializeTableModel();
          return instance.tableModel.checkFunctors(null,instance.getClass());
      }
@@ -191,14 +165,18 @@ public class HTTPFileArgsPanel extends J
              @SuppressWarnings("unchecked") // we only put HTTPFileArgs in it
              Iterator<HTTPFileArg> modelData = (Iterator<HTTPFileArg>) 
tableModel.iterator();
              HTTPFileArg[] files = new HTTPFileArg[rows];
-            int row=0;
+            int row = 0;
              while (modelData.hasNext()) {
                  HTTPFileArg file = modelData.next();
-                files[row++]=file;
+                files[row++] = file;
              }
              base.setHTTPFiles(files);
          }
      }
+
+    public boolean hasData() {
+        return tableModel.iterator().hasNext();
+    }
/**
       * A newly created component can be initialized with the contents of a
@@ -230,11 +208,9 @@ public class HTTPFileArgsPanel extends J
          if (tableModel.getRowCount() == 0) {
              browse.setEnabled(false);
              delete.setEnabled(false);
-            hideFileArgsMainPanel(Boolean.FALSE);
          } else {
              browse.setEnabled(true);
              delete.setEnabled(true);
-            hideFileArgsMainPanel(Boolean.TRUE);
          }
      }
@@ -372,9 +348,9 @@ public class HTTPFileArgsPanel extends J /**
       * Create a panel containing the title label for the table.
-     *
       * @return a panel containing the title label
       */
+    @Deprecated
      private Component makeLabelPanel() {
          JPanel labelPanel = new JPanel(new FlowLayout(FlowLayout.LEFT));
          labelPanel.add(tableLabel);
@@ -418,7 +394,10 @@ public class HTTPFileArgsPanel extends J
p.setLayout(new BorderLayout()); - p.add(makeLabelPanel(), BorderLayout.NORTH);
+        // retro compatibility, will be removed in the next version
+        if(tableLabel != null) {
+            p.add(makeLabelPanel(), BorderLayout.NORTH);
+        }
          p.add(makeMainPanel(), BorderLayout.CENTER);
          // Force a minimum table height of 70 pixels
          p.add(Box.createVerticalStrut(70), BorderLayout.WEST);

Modified: jmeter/trunk/xdocs/changes.xml
URL: 
http://svn.apache.org/viewvc/jmeter/trunk/xdocs/changes.xml?rev=1732554&r1=1732553&r2=1732554&view=diff
==============================================================================
--- jmeter/trunk/xdocs/changes.xml (original)
+++ jmeter/trunk/xdocs/changes.xml Fri Feb 26 20:12:33 2016
@@ -116,6 +116,7 @@ Summary
      <li><bug>59028</bug>Use SystemDefaultDnsResolver singleton. Contributed by 
Benoit Wiart (benoit dot wiart at gmail.com)</li>
      <li><bug>59036</bug>FormCharSetFinder : Use JSoup instead of deprecated 
HTMLParser</li>
      <li><bug>59034</bug>Parallel downloads connection management is not realistic. 
Contributed by Benoit Wiart (benoit dot wiart at gmail.com) and Philippe Mouawad</li>
+    <li><bug>59060</bug>HTTP Request GUI : Move File Upload to a new Tab to have 
more space for parameters and prevent incoherent configuration. Contributed by Benoit Wiart (benoit dot 
wiart at gmail.com)</li>
  </ul>
<h3>Other samplers</h3>




Reply via email to