Author: milamber
Date: Sat Mar  5 13:49:07 2016
New Revision: 1733718

URL: http://svn.apache.org/viewvc?rev=1733718&view=rev
Log:
Use DPI scaling of interface for high resolution devices (HiDPI support for 
Windows/Linux)

See https://github.com/apache/jmeter/pull/159

This closes #159
Bugzilla Id: 58426

Added:
    jmeter/trunk/src/core/org/apache/jmeter/images/icon_old.properties   (with 
props)
    jmeter/trunk/src/core/org/apache/jmeter/images/status/
    jmeter/trunk/src/core/org/apache/jmeter/images/status/22x22/
    jmeter/trunk/src/core/org/apache/jmeter/images/status/32x32/
    jmeter/trunk/src/core/org/apache/jmeter/images/status/48x48/
    jmeter/trunk/src/core/org/apache/jmeter/images/tree/
    jmeter/trunk/src/core/org/apache/jmeter/images/tree/19x19/
    jmeter/trunk/src/core/org/apache/jmeter/images/tree/24x24/
    jmeter/trunk/src/core/org/apache/jmeter/images/tree/32x32/
    jmeter/trunk/src/core/org/apache/jmeter/images/tree/48x48/
    jmeter/trunk/src/core/org/apache/jmeter/images/vrt/
    jmeter/trunk/src/core/org/apache/jmeter/images/vrt/19x19/
    jmeter/trunk/src/core/org/apache/jmeter/images/vrt/24x24/
    jmeter/trunk/src/core/org/apache/jmeter/images/vrt/32x32/
    jmeter/trunk/src/core/org/apache/jmeter/images/vrt/48x48/
Modified:
    jmeter/trunk/bin/jmeter.properties
    
jmeter/trunk/src/components/org/apache/jmeter/modifiers/gui/UserParametersGui.java
    
jmeter/trunk/src/components/org/apache/jmeter/visualizers/PropertyControlGui.java
    
jmeter/trunk/src/components/org/apache/jmeter/visualizers/SamplerResultTab.java
    
jmeter/trunk/src/components/org/apache/jmeter/visualizers/StatGraphVisualizer.java
    
jmeter/trunk/src/components/org/apache/jmeter/visualizers/StatVisualizer.java
    jmeter/trunk/src/components/org/apache/jmeter/visualizers/SummaryReport.java
    
jmeter/trunk/src/components/org/apache/jmeter/visualizers/TableVisualizer.java
    
jmeter/trunk/src/components/org/apache/jmeter/visualizers/TreeNodeRenderer.java
    
jmeter/trunk/src/components/org/apache/jmeter/visualizers/ViewResultsFullVisualizer.java
    jmeter/trunk/src/core/org/apache/jmeter/JMeter.java
    jmeter/trunk/src/core/org/apache/jmeter/config/gui/ArgumentsPanel.java
    jmeter/trunk/src/core/org/apache/jmeter/config/gui/SimpleConfigGui.java
    jmeter/trunk/src/core/org/apache/jmeter/gui/AbstractJMeterGuiComponent.java
    jmeter/trunk/src/core/org/apache/jmeter/gui/MainFrame.java
    jmeter/trunk/src/core/org/apache/jmeter/gui/util/FileListPanel.java
    jmeter/trunk/src/core/org/apache/jmeter/gui/util/JMeterToolBar.java
    jmeter/trunk/src/core/org/apache/jmeter/images/icon.properties
    jmeter/trunk/src/core/org/apache/jmeter/testbeans/gui/TableEditor.java
    
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/gui/AuthPanel.java
    
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/gui/CookiePanel.java
    
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/gui/DNSCachePanel.java
    
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/gui/HTTPFileArgsPanel.java
    
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/gui/HeaderPanel.java
    
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/proxy/gui/ProxyControlGui.java
    
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/visualizers/RequestViewHTTP.java
    
jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/control/gui/JMSPropertiesPanel.java
    
jmeter/trunk/src/protocol/ldap/org/apache/jmeter/protocol/ldap/config/gui/LDAPArgumentsPanel.java
    jmeter/trunk/xdocs/changes.xml

Modified: jmeter/trunk/bin/jmeter.properties
URL: 
http://svn.apache.org/viewvc/jmeter/trunk/bin/jmeter.properties?rev=1733718&r1=1733717&r2=1733718&view=diff
==============================================================================
--- jmeter/trunk/bin/jmeter.properties (original)
+++ jmeter/trunk/bin/jmeter.properties Sat Mar  5 13:49:07 2016
@@ -151,12 +151,29 @@ jmeter.laf.mac=System
 
#jmeter.toolbar=new,open,close,save,save_as_testplan,|,cut,copy,paste,|,expand,collapse,toggle,|,test_start,test_stop,test_shutdown,|,test_start_remote_all,test_stop_remote_all,test_shutdown_remote_all,|,test_clear,test_clear_all,|,search,search_reset,|,function_helper,help
 # Toolbar icons default size: 22x22. Available sizes are: 22x22, 32x32, 48x48
 #jmeter.toolbar.icons.size=22x22
+# Suggest value for HiDPI mode:
+#jmeter.toolbar.icons.size=48x48
 
 # Icon definitions
 # default:
 #jmeter.icons=org/apache/jmeter/images/icon.properties
 # alternate:
 #jmeter.icons=org/apache/jmeter/images/icon_1.properties
+# Historical icon set (deprecated)
+#jmeter.icons=org/apache/jmeter/images/icon_old.properties
+
+# Tree icons default size: 19x19. Available sizes are: 19x19, 24x24, 32x32, 
48x48
+# Useful for HiDPI display (see below)
+#jmeter.tree.icons.size=19x19
+# Suggest value for HiDPI screen like 3200x1800:
+#jmeter.tree.icons.size=32x32
+
+# HiDPI mode (default: false)
+# Enable to activate a 'pseudo'-hidpi mode. Allow to increase some UI elements
+# which not correctly manage by JVM with high resolution screen in Linux or 
Windows
+#jmeter.hidpi.mode=false
+# HiDPI scale factor (default: 1.0, suggest value in HiDPI: 2.0)
+#jmeter.hidpi.scale.factor=1.0
 
 #Components to not display in JMeter GUI (GUI class name or static label)
 # These elements are deprecated and will be removed in next version: MongoDB 
Script, MongoDB Source Config, Distribution Graph, Spline Visualizer

Modified: 
jmeter/trunk/src/components/org/apache/jmeter/modifiers/gui/UserParametersGui.java
URL: 
http://svn.apache.org/viewvc/jmeter/trunk/src/components/org/apache/jmeter/modifiers/gui/UserParametersGui.java?rev=1733718&r1=1733717&r2=1733718&view=diff
==============================================================================
--- 
jmeter/trunk/src/components/org/apache/jmeter/modifiers/gui/UserParametersGui.java
 (original)
+++ 
jmeter/trunk/src/components/org/apache/jmeter/modifiers/gui/UserParametersGui.java
 Sat Mar  5 13:49:07 2016
@@ -206,6 +206,10 @@ public class UserParametersGui extends A
         // paramTable.setCellSelectionEnabled(true);
         // paramTable.setPreferredScrollableViewportSize(new Dimension(100,
         // 70));
+        // HiDPI mode management
+        if (HIDPI_MODE) {
+            paramTable.setRowHeight((int) Math.round(paramTable.getRowHeight() 
* HIDPI_SCALE_FACTOR));
+        }
 
         paramPanel = new JPanel(new BorderLayout());
         paramPanel.add(tableLabel, BorderLayout.NORTH);

Modified: 
jmeter/trunk/src/components/org/apache/jmeter/visualizers/PropertyControlGui.java
URL: 
http://svn.apache.org/viewvc/jmeter/trunk/src/components/org/apache/jmeter/visualizers/PropertyControlGui.java?rev=1733718&r1=1733717&r2=1733718&view=diff
==============================================================================
--- 
jmeter/trunk/src/components/org/apache/jmeter/visualizers/PropertyControlGui.java
 (original)
+++ 
jmeter/trunk/src/components/org/apache/jmeter/visualizers/PropertyControlGui.java
 Sat Mar  5 13:49:07 2016
@@ -160,6 +160,10 @@ public class PropertyControlGui extends
         table = new JTable(tableModel);
         table.getTableHeader().setDefaultRenderer(new 
HeaderAsPropertyRenderer());
         table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
+        // HiDPI mode management
+        if (HIDPI_MODE) {
+            table.setRowHeight((int) Math.round(table.getRowHeight() * 
HIDPI_SCALE_FACTOR));
+        }
         return makeScrollPane(table);
     }
 

Modified: 
jmeter/trunk/src/components/org/apache/jmeter/visualizers/SamplerResultTab.java
URL: 
http://svn.apache.org/viewvc/jmeter/trunk/src/components/org/apache/jmeter/visualizers/SamplerResultTab.java?rev=1733718&r1=1733717&r2=1733718&view=diff
==============================================================================
--- 
jmeter/trunk/src/components/org/apache/jmeter/visualizers/SamplerResultTab.java 
(original)
+++ 
jmeter/trunk/src/components/org/apache/jmeter/visualizers/SamplerResultTab.java 
Sat Mar  5 13:49:07 2016
@@ -64,6 +64,11 @@ import org.apache.jorphan.reflect.Functo
  */
 public abstract class SamplerResultTab implements ResultRenderer {
 
+    // HiDPI mode
+    private static final boolean HIDPI_MODE = 
JMeterUtils.getPropDefault("jmeter.hidpi.mode", false);  // $NON-NLS-1$
+    // HiDPI mode
+    private static final double HIDPI_SCALE_FACTOR = 
Double.valueOf(JMeterUtils.getPropDefault("jmeter.hidpi.scale.factor", "1.0")); 
 // $NON-NLS-1$  $NON-NLS-2$
+
     // N.B. these are not multi-threaded, so don't make it static
     private final DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd 
HH:mm:ss z"); // ISO format $NON-NLS-1$
 
@@ -403,7 +408,11 @@ public abstract class SamplerResultTab i
         paneRaw.setBorder(BorderFactory.createEmptyBorder(2, 2, 2, 2));
 
         // Set up the 1st table Result with empty headers
-        tableResult = new JTable(resultModel);     
+        tableResult = new JTable(resultModel);
+        // HiDPI mode management
+        if (HIDPI_MODE) {
+            tableResult.setRowHeight((int) 
Math.round(tableResult.getRowHeight() * HIDPI_SCALE_FACTOR));
+        }
         
tableResult.setToolTipText(JMeterUtils.getResString("textbox_tooltip_cell")); 
// $NON-NLS-1$
         tableResult.addMouseListener(new TextBoxDoubleClick(tableResult));
         setFirstColumnPreferredSize(tableResult);
@@ -411,6 +420,10 @@ public abstract class SamplerResultTab i
 
         // Set up the 2nd table 
         tableResHeaders = new JTable(resHeadersModel);
+        // HiDPI mode management
+        if (HIDPI_MODE) {
+            tableResHeaders.setRowHeight((int) 
Math.round(tableResHeaders.getRowHeight() * HIDPI_SCALE_FACTOR));
+        }
         
tableResHeaders.setToolTipText(JMeterUtils.getResString("textbox_tooltip_cell"));
 // $NON-NLS-1$
         tableResHeaders.addMouseListener(new 
TextBoxDoubleClick(tableResHeaders));
         setFirstColumnPreferredSize(tableResHeaders);
@@ -420,6 +433,10 @@ public abstract class SamplerResultTab i
 
         // Set up the 3rd table 
         tableResFields = new JTable(resFieldsModel);
+        // HiDPI mode management
+        if (HIDPI_MODE) {
+            tableResFields.setRowHeight((int) 
Math.round(tableResFields.getRowHeight() * HIDPI_SCALE_FACTOR));
+        }
         
tableResFields.setToolTipText(JMeterUtils.getResString("textbox_tooltip_cell"));
 // $NON-NLS-1$
         tableResFields.addMouseListener(new 
TextBoxDoubleClick(tableResFields));
         setFirstColumnPreferredSize(tableResFields);

Modified: 
jmeter/trunk/src/components/org/apache/jmeter/visualizers/StatGraphVisualizer.java
URL: 
http://svn.apache.org/viewvc/jmeter/trunk/src/components/org/apache/jmeter/visualizers/StatGraphVisualizer.java?rev=1733718&r1=1733717&r2=1733718&view=diff
==============================================================================
--- 
jmeter/trunk/src/components/org/apache/jmeter/visualizers/StatGraphVisualizer.java
 (original)
+++ 
jmeter/trunk/src/components/org/apache/jmeter/visualizers/StatGraphVisualizer.java
 Sat Mar  5 13:49:07 2016
@@ -413,6 +413,10 @@ public class StatGraphVisualizer extends
         mainPanel.add(makeTitlePanel());
 
         myJTable = new JTable(model);
+        // HiDPI mode management
+        if (HIDPI_MODE) {
+            myJTable.setRowHeight((int) Math.round(myJTable.getRowHeight() * 
HIDPI_SCALE_FACTOR));
+        }
         // Fix centering of titles
         myJTable.getTableHeader().setDefaultRenderer(new 
HeaderAsPropertyRenderer(COLUMNS_MSG_PARAMETERS));
         myJTable.setPreferredScrollableViewportSize(new Dimension(500, 70));

Modified: 
jmeter/trunk/src/components/org/apache/jmeter/visualizers/StatVisualizer.java
URL: 
http://svn.apache.org/viewvc/jmeter/trunk/src/components/org/apache/jmeter/visualizers/StatVisualizer.java?rev=1733718&r1=1733717&r2=1733718&view=diff
==============================================================================
--- 
jmeter/trunk/src/components/org/apache/jmeter/visualizers/StatVisualizer.java 
(original)
+++ 
jmeter/trunk/src/components/org/apache/jmeter/visualizers/StatVisualizer.java 
Sat Mar  5 13:49:07 2016
@@ -173,6 +173,10 @@ public class StatVisualizer extends Abst
         // SortFilterModel mySortedModel =
         // new SortFilterModel(myStatTableModel);
         myJTable = new JTable(model);
+        // HiDPI mode management
+        if (HIDPI_MODE) {
+            myJTable.setRowHeight((int) Math.round(myJTable.getRowHeight() * 
HIDPI_SCALE_FACTOR));
+        }
         myJTable.getTableHeader().setDefaultRenderer(new 
HeaderAsPropertyRenderer(StatGraphVisualizer.COLUMNS_MSG_PARAMETERS));
         myJTable.setPreferredScrollableViewportSize(new Dimension(500, 70));
         RendererUtils.applyRenderers(myJTable, StatGraphVisualizer.RENDERERS);

Modified: 
jmeter/trunk/src/components/org/apache/jmeter/visualizers/SummaryReport.java
URL: 
http://svn.apache.org/viewvc/jmeter/trunk/src/components/org/apache/jmeter/visualizers/SummaryReport.java?rev=1733718&r1=1733717&r2=1733718&view=diff
==============================================================================
--- 
jmeter/trunk/src/components/org/apache/jmeter/visualizers/SummaryReport.java 
(original)
+++ 
jmeter/trunk/src/components/org/apache/jmeter/visualizers/SummaryReport.java 
Sat Mar  5 13:49:07 2016
@@ -234,6 +234,10 @@ public class SummaryReport extends Abstr
         mainPanel.add(makeTitlePanel());
 
         myJTable = new JTable(model);
+        // HiDPI mode management
+        if (HIDPI_MODE) {
+            myJTable.setRowHeight((int) Math.round(myJTable.getRowHeight() * 
HIDPI_SCALE_FACTOR));
+        }
         myJTable.getTableHeader().setDefaultRenderer(new 
HeaderAsPropertyRenderer());
         myJTable.setPreferredScrollableViewportSize(new Dimension(500, 70));
         RendererUtils.applyRenderers(myJTable, RENDERERS);

Modified: 
jmeter/trunk/src/components/org/apache/jmeter/visualizers/TableVisualizer.java
URL: 
http://svn.apache.org/viewvc/jmeter/trunk/src/components/org/apache/jmeter/visualizers/TableVisualizer.java?rev=1733718&r1=1733717&r2=1733718&view=diff
==============================================================================
--- 
jmeter/trunk/src/components/org/apache/jmeter/visualizers/TableVisualizer.java 
(original)
+++ 
jmeter/trunk/src/components/org/apache/jmeter/visualizers/TableVisualizer.java 
Sat Mar  5 13:49:07 2016
@@ -36,6 +36,7 @@ import javax.swing.border.Border;
 import javax.swing.border.EmptyBorder;
 import javax.swing.table.TableCellRenderer;
 
+import org.apache.jmeter.JMeter;
 import org.apache.jmeter.gui.util.HeaderAsPropertyRenderer;
 import org.apache.jmeter.gui.util.HorizontalPanel;
 import org.apache.jmeter.samplers.Clearable;
@@ -61,16 +62,18 @@ public class TableVisualizer extends Abs
 
     private static final long serialVersionUID = 240L;
 
+    private static final String iconSize = 
JMeterUtils.getPropDefault(JMeter.TREE_ICON_SIZE, 
JMeter.DEFAULT_TREE_ICON_SIZE);
+
     // Note: the resource string won't respond to locale-changes,
     // however this does not matter as it is only used when pasting to the 
clipboard
     private static final ImageIcon imageSuccess = JMeterUtils.getImage(
             JMeterUtils.getPropDefault("viewResultsTree.success",  
//$NON-NLS-1$
-                                       "icon_success_sml.gif"),    
//$NON-NLS-1$
+                                       "vrt/" + iconSize + 
"/security-high-2.png"),    //$NON-NLS-1$ $NON-NLS-2$
             JMeterUtils.getResString("table_visualizer_success")); 
//$NON-NLS-1$
 
     private static final ImageIcon imageFailure = JMeterUtils.getImage(
             JMeterUtils.getPropDefault("viewResultsTree.failure",  
//$NON-NLS-1$
-                                       "icon_warning_sml.gif"),    
//$NON-NLS-1$
+                                       "vrt/" + iconSize + 
"/security-low-2.png"),    //$NON-NLS-1$ $NON-NLS-2$
             JMeterUtils.getResString("table_visualizer_warning")); 
//$NON-NLS-1$
 
     private static final String[] COLUMNS = new String[] {
@@ -234,6 +237,10 @@ public class TableVisualizer extends Abs
 
         // Set up the table itself
         table = new JTable(model);
+        // HiDPI mode management
+        if (HIDPI_MODE) {
+            table.setRowHeight((int) Math.round(table.getRowHeight() * 
HIDPI_SCALE_FACTOR));
+        }
         table.getTableHeader().setDefaultRenderer(new 
HeaderAsPropertyRenderer());
         // table.getTableHeader().setReorderingAllowed(false);
         RendererUtils.applyRenderers(table, RENDERERS);

Modified: 
jmeter/trunk/src/components/org/apache/jmeter/visualizers/TreeNodeRenderer.java
URL: 
http://svn.apache.org/viewvc/jmeter/trunk/src/components/org/apache/jmeter/visualizers/TreeNodeRenderer.java?rev=1733718&r1=1733717&r2=1733718&view=diff
==============================================================================
--- 
jmeter/trunk/src/components/org/apache/jmeter/visualizers/TreeNodeRenderer.java 
(original)
+++ 
jmeter/trunk/src/components/org/apache/jmeter/visualizers/TreeNodeRenderer.java 
Sat Mar  5 13:49:07 2016
@@ -26,6 +26,7 @@ import javax.swing.JTree;
 import javax.swing.tree.DefaultMutableTreeNode;
 import javax.swing.tree.DefaultTreeCellRenderer;
 
+import org.apache.jmeter.JMeter;
 import org.apache.jmeter.samplers.SampleResult;
 import org.apache.jmeter.util.JMeterUtils;
 
@@ -36,14 +37,16 @@ public class TreeNodeRenderer extends De
 
     private static final long serialVersionUID = 240L;
 
+    private static final String iconSize = 
JMeterUtils.getPropDefault(JMeter.TREE_ICON_SIZE, 
JMeter.DEFAULT_TREE_ICON_SIZE);
+
     // Same ViewResultsTree
     private static final ImageIcon imageSuccess = JMeterUtils.getImage(
             JMeterUtils.getPropDefault("viewResultsTree.success",  
//$NON-NLS-1$
-                    "icon_success_sml.gif")); //$NON-NLS-1$
+                    "vrt/" + iconSize + "/security-high-2.png")); 
//$NON-NLS-1$ $NON-NLS-2$
 
     private static final ImageIcon imageFailure = JMeterUtils.getImage(
             JMeterUtils.getPropDefault("viewResultsTree.failure",  
//$NON-NLS-1$
-                    "icon_warning_sml.gif")); //$NON-NLS-1$
+                    "vrt/" + iconSize + "/security-low-2.png")); //$NON-NLS-1$ 
$NON-NLS-2$
 
     public TreeNodeRenderer() {
         super();

Modified: 
jmeter/trunk/src/components/org/apache/jmeter/visualizers/ViewResultsFullVisualizer.java
URL: 
http://svn.apache.org/viewvc/jmeter/trunk/src/components/org/apache/jmeter/visualizers/ViewResultsFullVisualizer.java?rev=1733718&r1=1733717&r2=1733718&view=diff
==============================================================================
--- 
jmeter/trunk/src/components/org/apache/jmeter/visualizers/ViewResultsFullVisualizer.java
 (original)
+++ 
jmeter/trunk/src/components/org/apache/jmeter/visualizers/ViewResultsFullVisualizer.java
 Sat Mar  5 13:49:07 2016
@@ -56,6 +56,7 @@ import javax.swing.tree.TreePath;
 import javax.swing.tree.TreeSelectionModel;
 
 import org.apache.commons.lang3.StringUtils;
+import org.apache.jmeter.JMeter;
 import org.apache.jmeter.assertions.AssertionResult;
 import org.apache.jmeter.gui.util.VerticalPanel;
 import org.apache.jmeter.samplers.Clearable;
@@ -104,13 +105,15 @@ implements ActionListener, TreeSelection
 
     protected static final String COMBO_CHANGE_COMMAND = "change_combo"; // 
$NON-NLS-1$
 
+    private static final String iconSize = 
JMeterUtils.getPropDefault(JMeter.TREE_ICON_SIZE, 
JMeter.DEFAULT_TREE_ICON_SIZE);
+
     private static final ImageIcon imageSuccess = JMeterUtils.getImage(
             JMeterUtils.getPropDefault("viewResultsTree.success",  
//$NON-NLS-1$
-                    "icon_success_sml.gif")); //$NON-NLS-1$
+                    "vrt/" + iconSize + "/security-high-2.png")); 
//$NON-NLS-1$ $NON-NLS-2$
 
     private static final ImageIcon imageFailure = JMeterUtils.getImage(
             JMeterUtils.getPropDefault("viewResultsTree.failure",  
//$NON-NLS-1$
-                    "icon_warning_sml.gif")); //$NON-NLS-1$
+                    "vrt/" + iconSize + "/security-low-2.png")); //$NON-NLS-1$ 
$NON-NLS-2$
 
     // Maximum size that we will display
     // Default limited to 10 megabytes

Modified: jmeter/trunk/src/core/org/apache/jmeter/JMeter.java
URL: 
http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/JMeter.java?rev=1733718&r1=1733717&r2=1733718&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/JMeter.java (original)
+++ jmeter/trunk/src/core/org/apache/jmeter/JMeter.java Sat Mar  5 13:49:07 2016
@@ -114,6 +114,13 @@ public class JMeter implements JMeterPlu
     public static final String JMETER_REPORT_OUTPUT_DIR_PROPERTY = 
             "jmeter.reportgenerator.outputdir"; //$NON-NLS-1$
 
+    // Icons size in the JMeter tree
+    public static final String TREE_ICON_SIZE = "jmeter.tree.icons.size"; 
//$NON-NLS-1$
+
+    public static final String DEFAULT_TREE_ICON_SIZE = "19x19"; //$NON-NLS-1$
+
+    protected static final String KEY_SIZE = "<SIZE>"; //$NON-NLS-1$
+
     // If the -t flag is to "LAST", then the last loaded file (if any) is used
     private static final String USE_LAST_JMX = "LAST";
     // If the -j  or -l flag is set to LAST or LAST.log|LAST.jtl, then the 
last loaded file name is used to
@@ -1179,6 +1186,7 @@ public class JMeter implements JMeterPlu
     @Override
     public String[][] getIconMappings() {
         final String defaultIconProp = 
"org/apache/jmeter/images/icon.properties"; //$NON-NLS-1$
+        final String iconSize = JMeterUtils.getPropDefault(TREE_ICON_SIZE, 
DEFAULT_TREE_ICON_SIZE); 
         String iconProp = JMeterUtils.getPropDefault("jmeter.icons", 
defaultIconProp);//$NON-NLS-1$
         Properties p = JMeterUtils.loadProperties(iconProp);
         if (p == null && !iconProp.equals(defaultIconProp)) {
@@ -1198,9 +1206,9 @@ public class JMeter implements JMeterPlu
             String key = (String) pe.nextElement();
             String[] icons = JOrphanUtils.split(p.getProperty(key), " 
");//$NON-NLS-1$
             iconlist[i][0] = key;
-            iconlist[i][1] = icons[0];
+            iconlist[i][1] = icons[0].replace(KEY_SIZE, iconSize);
             if (icons.length > 1) {
-                iconlist[i][2] = icons[1];
+                iconlist[i][2] = icons[1].replace(KEY_SIZE, iconSize);
             }
             i++;
         }

Modified: jmeter/trunk/src/core/org/apache/jmeter/config/gui/ArgumentsPanel.java
URL: 
http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/config/gui/ArgumentsPanel.java?rev=1733718&r1=1733717&r2=1733718&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/config/gui/ArgumentsPanel.java 
(original)
+++ jmeter/trunk/src/core/org/apache/jmeter/config/gui/ArgumentsPanel.java Sat 
Mar  5 13:49:07 2016
@@ -63,6 +63,11 @@ public class ArgumentsPanel extends Abst
 
     private static final long serialVersionUID = 240L;
 
+    // HiDPI mode
+    private static final boolean HIDPI_MODE = 
JMeterUtils.getPropDefault("jmeter.hidpi.mode", false);  // $NON-NLS-1$
+    // HiDPI mode
+    private static final double HIDPI_SCALE_FACTOR = 
Double.valueOf(JMeterUtils.getPropDefault("jmeter.hidpi.scale.factor", "1.0")); 
 // $NON-NLS-1$  $NON-NLS-2$
+
     /** The title label for this component. */
     private JLabel tableLabel;
 
@@ -644,6 +649,10 @@ public class ArgumentsPanel extends Abst
         if (this.background != null) {
             table.setBackground(this.background);
         }
+        // HiDPI mode management
+        if (HIDPI_MODE) {
+            table.setRowHeight((int) Math.round(table.getRowHeight() * 
HIDPI_SCALE_FACTOR));
+        }
         return makeScrollPane(table);
     }
 

Modified: 
jmeter/trunk/src/core/org/apache/jmeter/config/gui/SimpleConfigGui.java
URL: 
http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/config/gui/SimpleConfigGui.java?rev=1733718&r1=1733717&r2=1733718&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/config/gui/SimpleConfigGui.java 
(original)
+++ jmeter/trunk/src/core/org/apache/jmeter/config/gui/SimpleConfigGui.java Sat 
Mar  5 13:49:07 2016
@@ -203,6 +203,10 @@ public class SimpleConfigGui extends Abs
                 new Class[] { String.class, String.class });
 
         table = new JTable(tableModel);
+        // HiDPI mode management
+        if (HIDPI_MODE) {
+            table.setRowHeight((int) Math.round(table.getRowHeight() * 
HIDPI_SCALE_FACTOR));
+        }
         table.getTableHeader().setDefaultRenderer(new 
HeaderAsPropertyRenderer());
         table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
         return makeScrollPane(table);

Modified: 
jmeter/trunk/src/core/org/apache/jmeter/gui/AbstractJMeterGuiComponent.java
URL: 
http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/gui/AbstractJMeterGuiComponent.java?rev=1733718&r1=1733717&r2=1733718&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/gui/AbstractJMeterGuiComponent.java 
(original)
+++ jmeter/trunk/src/core/org/apache/jmeter/gui/AbstractJMeterGuiComponent.java 
Sat Mar  5 13:49:07 2016
@@ -59,6 +59,11 @@ public abstract class AbstractJMeterGuiC
 
     /** Logging */
     private static final Logger log = LoggingManager.getLoggerForClass();
+    
+    // HiDPI mode
+    public static final boolean HIDPI_MODE = 
JMeterUtils.getPropDefault("jmeter.hidpi.mode", false);  // $NON-NLS-1$
+    // HiDPI mode
+    public static final double HIDPI_SCALE_FACTOR = 
Double.valueOf(JMeterUtils.getPropDefault("jmeter.hidpi.scale.factor", "1.0")); 
 // $NON-NLS-1$  $NON-NLS-2$
 
     /** Flag indicating whether or not this component is enabled. */
     private boolean enabled = true;

Modified: jmeter/trunk/src/core/org/apache/jmeter/gui/MainFrame.java
URL: 
http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/gui/MainFrame.java?rev=1733718&r1=1733717&r2=1733718&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/gui/MainFrame.java (original)
+++ jmeter/trunk/src/core/org/apache/jmeter/gui/MainFrame.java Sat Mar  5 
13:49:07 2016
@@ -151,14 +151,16 @@ public class MainFrame extends JFrame im
     /** The test tree. */
     private JTree tree;
 
+    private final String iconSize = 
JMeterUtils.getPropDefault(JMeterToolBar.TOOLBAR_ICON_SIZE, 
JMeterToolBar.DEFAULT_TOOLBAR_ICON_SIZE); 
+
     /** An image which is displayed when a test is running. */
-    private final ImageIcon runningIcon = 
JMeterUtils.getImage("thread.enabled.gif");// $NON-NLS-1$
+    private final ImageIcon runningIcon = JMeterUtils.getImage("status/" + 
iconSize +"/user-online-2.png");// $NON-NLS-1$
 
     /** An image which is displayed when a test is not currently running. */
-    private final ImageIcon stoppedIcon = 
JMeterUtils.getImage("thread.disabled.gif");// $NON-NLS-1$
-
+    private final ImageIcon stoppedIcon = JMeterUtils.getImage("status/" + 
iconSize +"/user-offline-2.png");// $NON-NLS-1$
+    
     /** An image which is displayed to indicate FATAL, ERROR or WARNING. */
-    private final ImageIcon warningIcon = 
JMeterUtils.getImage("warning.png");// $NON-NLS-1$
+    private final ImageIcon warningIcon = JMeterUtils.getImage("status/" + 
iconSize +"/pictogram-din-w000-general.png");// $NON-NLS-1$
 
     /** The button used to display the running/stopped image. */
     private JButton runningIndicator;
@@ -212,8 +214,9 @@ public class MainFrame extends JFrame im
 
         // TODO: Make the running indicator its own class instead of a JButton
         runningIndicator = new JButton(stoppedIcon);
+        runningIndicator.setFocusable(false);
+        runningIndicator.setBorderPainted(false);
         runningIndicator.setMargin(new Insets(0, 0, 0, 0));
-        runningIndicator.setBorder(BorderFactory.createEmptyBorder());
 
         testTimeDuration = new JLabel("00:00:00"); //$NON-NLS-1$
 

Modified: jmeter/trunk/src/core/org/apache/jmeter/gui/util/FileListPanel.java
URL: 
http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/gui/util/FileListPanel.java?rev=1733718&r1=1733717&r2=1733718&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/gui/util/FileListPanel.java 
(original)
+++ jmeter/trunk/src/core/org/apache/jmeter/gui/util/FileListPanel.java Sat Mar 
 5 13:49:07 2016
@@ -47,6 +47,11 @@ public class FileListPanel extends JPane
 
     private static final long serialVersionUID = 1L;
 
+    // HiDPI mode
+    private static final boolean HIDPI_MODE = 
JMeterUtils.getPropDefault("jmeter.hidpi.mode", false);  // $NON-NLS-1$
+    // HiDPI mode
+    private static final double HIDPI_SCALE_FACTOR = 
Double.valueOf(JMeterUtils.getPropDefault("jmeter.hidpi.scale.factor", "1.0")); 
 // $NON-NLS-1$  $NON-NLS-2$
+
     private JTable files = null;
 
     private transient ObjectTableModel tableModel = null;
@@ -115,6 +120,10 @@ public class FileListPanel extends JPane
 
         this.initializeTableModel();
         files = new JTable(tableModel);
+        // HiDPI mode management
+        if (HIDPI_MODE) {
+            files.setRowHeight((int) Math.round(files.getRowHeight() * 
HIDPI_SCALE_FACTOR));
+        }
         files.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
         files.revalidate();
 

Modified: jmeter/trunk/src/core/org/apache/jmeter/gui/util/JMeterToolBar.java
URL: 
http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/gui/util/JMeterToolBar.java?rev=1733718&r1=1733717&r2=1733718&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/gui/util/JMeterToolBar.java 
(original)
+++ jmeter/trunk/src/core/org/apache/jmeter/gui/util/JMeterToolBar.java Sat Mar 
 5 13:49:07 2016
@@ -62,11 +62,11 @@ public class JMeterToolBar extends JTool
 
     protected static final String USER_DEFINED_TOOLBAR_PROPERTY_FILE = 
"jmeter.toolbar.icons"; //$NON-NLS-1$
 
-    protected static final String TOOLBAR_ICON_SIZE = 
"jmeter.toolbar.icons.size"; //$NON-NLS-1$
+    public static final String TOOLBAR_ICON_SIZE = 
"jmeter.toolbar.icons.size"; //$NON-NLS-1$
 
-    protected static final String DEFAULT_TOOLBAR_ICON_SIZE = "22x22"; 
//$NON-NLS-1$
+    public static final String DEFAULT_TOOLBAR_ICON_SIZE = "22x22"; 
//$NON-NLS-1$
     
-    private static final String TOOLBAR_LIST = "jmeter.toolbar";
+    protected static final String TOOLBAR_LIST = "jmeter.toolbar";
     
     /**
      * Create the default JMeter toolbar

Modified: jmeter/trunk/src/core/org/apache/jmeter/images/icon.properties
URL: 
http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/images/icon.properties?rev=1733718&r1=1733717&r2=1733718&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/images/icon.properties (original)
+++ jmeter/trunk/src/core/org/apache/jmeter/images/icon.properties Sat Mar  5 
13:49:07 2016
@@ -16,14 +16,15 @@
 # Icon definition file.
 # Key:      (super) class names
 # Value:    icon, optionally followed by space and then the disabled icon name
-org.apache.jmeter.control.gui.TestPlanGui=org/apache/jmeter/images/beaker.gif
-org.apache.jmeter.timers.gui.AbstractTimerGui=org/apache/jmeter/images/timer.gif
-org.apache.jmeter.threads.gui.AbstractThreadGroupGui=org/apache/jmeter/images/thread.gif
-org.apache.jmeter.visualizers.gui.AbstractListenerGui=org/apache/jmeter/images/meter.png
-org.apache.jmeter.config.gui.AbstractConfigGui=org/apache/jmeter/images/testtubes.png
-org.apache.jmeter.processor.gui.AbstractPreProcessorGui=org/apache/jmeter/images/leafnode.gif
-org.apache.jmeter.processor.gui.AbstractPostProcessorGui=org/apache/jmeter/images/leafnodeflip.gif
-org.apache.jmeter.control.gui.AbstractControllerGui=org/apache/jmeter/images/knob.gif
-org.apache.jmeter.samplers.gui.AbstractSamplerGui=org/apache/jmeter/images/pipet.png
-org.apache.jmeter.assertions.gui.AbstractAssertionGui=org/apache/jmeter/images/question.gif
-org.apache.jmeter.control.gui.WorkBenchGui=org/apache/jmeter/images/clipboard.gif
\ No newline at end of file
+# Special keyword "<SIZE>" for the different size of the same icon (Available 
sizes are: 19x19, 24x24, 32x32, 48x48, default 19x19)
+org.apache.jmeter.control.gui.TestPlanGui=org/apache/jmeter/images/tree/<SIZE>/applications-science-3.png
+org.apache.jmeter.timers.gui.AbstractTimerGui=org/apache/jmeter/images/tree/<SIZE>/appointment-new-3.png
+org.apache.jmeter.threads.gui.AbstractThreadGroupGui=org/apache/jmeter/images/tree/<SIZE>/system-run-5.png
+org.apache.jmeter.visualizers.gui.AbstractListenerGui=org/apache/jmeter/images/tree/<SIZE>/office-chart-area.png
+org.apache.jmeter.config.gui.AbstractConfigGui=org/apache/jmeter/images/tree/<SIZE>/preferences-system-4.png
+org.apache.jmeter.processor.gui.AbstractPreProcessorGui=org/apache/jmeter/images/tree/<SIZE>/document-import-2.png
+org.apache.jmeter.processor.gui.AbstractPostProcessorGui=org/apache/jmeter/images/tree/<SIZE>/document-export-4.png
+org.apache.jmeter.control.gui.AbstractControllerGui=org/apache/jmeter/images/tree/<SIZE>/view-list-tree-4.png
+org.apache.jmeter.samplers.gui.AbstractSamplerGui=org/apache/jmeter/images/tree/<SIZE>/color-picker-grey.png
+org.apache.jmeter.assertions.gui.AbstractAssertionGui=org/apache/jmeter/images/tree/<SIZE>/document-preview.png
+org.apache.jmeter.control.gui.WorkBenchGui=org/apache/jmeter/images/tree/<SIZE>/view-pim-tasks.png

Added: jmeter/trunk/src/core/org/apache/jmeter/images/icon_old.properties
URL: 
http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/images/icon_old.properties?rev=1733718&view=auto
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/images/icon_old.properties (added)
+++ jmeter/trunk/src/core/org/apache/jmeter/images/icon_old.properties Sat Mar  
5 13:49:07 2016
@@ -0,0 +1,30 @@
+#   Licensed to the Apache Software Foundation (ASF) under one or more
+#   contributor license agreements.  See the NOTICE file distributed with
+#   this work for additional information regarding copyright ownership.
+#   The ASF licenses this file to You under the Apache License, Version 2.0
+#   (the "License"); you may not use this file except in compliance with
+#   the License.  You may obtain a copy of the License at
+# 
+#       http://www.apache.org/licenses/LICENSE-2.0
+# 
+#   Unless required by applicable law or agreed to in writing, software
+#   distributed under the License is distributed on an "AS IS" BASIS,
+#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#   See the License for the specific language governing permissions and
+#   limitations under the License.
+
+# Icon definition file.
+# Key:      (super) class names
+# Value:    icon, optionally followed by space and then the disabled icon name
+# Special keyword "<SIZE>" for the different size of the same icon (Available 
sizes are: 19x19, 24x24, 32x32, 48x48, default 19x19)
+org.apache.jmeter.control.gui.TestPlanGui=org/apache/jmeter/images/beaker.gif
+org.apache.jmeter.timers.gui.AbstractTimerGui=org/apache/jmeter/images/timer.gif
+org.apache.jmeter.threads.gui.AbstractThreadGroupGui=org/apache/jmeter/images/thread.gif
+org.apache.jmeter.visualizers.gui.AbstractListenerGui=org/apache/jmeter/images/meter.png
+org.apache.jmeter.config.gui.AbstractConfigGui=org/apache/jmeter/images/testtubes.png
+org.apache.jmeter.processor.gui.AbstractPreProcessorGui=org/apache/jmeter/images/leafnode.gif
+org.apache.jmeter.processor.gui.AbstractPostProcessorGui=org/apache/jmeter/images/leafnodeflip.gif
+org.apache.jmeter.control.gui.AbstractControllerGui=org/apache/jmeter/images/knob.gif
+org.apache.jmeter.samplers.gui.AbstractSamplerGui=org/apache/jmeter/images/pipet.png
+org.apache.jmeter.assertions.gui.AbstractAssertionGui=org/apache/jmeter/images/question.gif
+org.apache.jmeter.control.gui.WorkBenchGui=org/apache/jmeter/images/clipboard.gif
\ No newline at end of file

Propchange: jmeter/trunk/src/core/org/apache/jmeter/images/icon_old.properties
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: jmeter/trunk/src/core/org/apache/jmeter/images/icon_old.properties
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: jmeter/trunk/src/core/org/apache/jmeter/testbeans/gui/TableEditor.java
URL: 
http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/testbeans/gui/TableEditor.java?rev=1733718&r1=1733717&r2=1733718&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/testbeans/gui/TableEditor.java 
(original)
+++ jmeter/trunk/src/core/org/apache/jmeter/testbeans/gui/TableEditor.java Sat 
Mar  5 13:49:07 2016
@@ -61,6 +61,11 @@ import org.apache.log.Logger;
 public class TableEditor extends PropertyEditorSupport implements 
FocusListener,TestBeanPropertyEditor,TableModelListener, ClearGui {
     private static final Logger log = LoggingManager.getLoggerForClass();
 
+    // HiDPI mode
+    public static final boolean HIDPI_MODE = 
JMeterUtils.getPropDefault("jmeter.hidpi.mode", false);  // $NON-NLS-1$
+    // HiDPI mode
+    public static final double HIDPI_SCALE_FACTOR = 
Double.valueOf(JMeterUtils.getPropDefault("jmeter.hidpi.scale.factor", "1.0")); 
 // $NON-NLS-1$  $NON-NLS-2$
+
     /** 
      * attribute name for class name of a table row;
      * value must be java.lang.String, or a class which supports set and 
get/is methods for the property name.
@@ -215,6 +220,10 @@ public class TableEditor extends Propert
         }
         model.addTableModelListener(this);
         table = new JTable(model);
+        // HiDPI mode management
+        if (HIDPI_MODE) {
+            table.setRowHeight((int) Math.round(table.getRowHeight() * 
HIDPI_SCALE_FACTOR));
+        }
         table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
         table.addFocusListener(this);
     }

Modified: 
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/gui/AuthPanel.java
URL: 
http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/gui/AuthPanel.java?rev=1733718&r1=1733717&r2=1733718&view=diff
==============================================================================
--- 
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/gui/AuthPanel.java
 (original)
+++ 
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/gui/AuthPanel.java
 Sat Mar  5 13:49:07 2016
@@ -269,6 +269,10 @@ public class AuthPanel extends AbstractC
     public JPanel createAuthTablePanel() {
         // create the JTable that holds auth per row
         authTable = new JTable(tableModel);
+        // HiDPI mode management
+        if (HIDPI_MODE) {
+            authTable.setRowHeight((int) Math.round(authTable.getRowHeight() * 
HIDPI_SCALE_FACTOR));
+        }
         authTable.getTableHeader().setDefaultRenderer(new 
HeaderAsPropertyRenderer());
         authTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
         authTable.setPreferredScrollableViewportSize(new Dimension(100, 70));

Modified: 
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/gui/CookiePanel.java
URL: 
http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/gui/CookiePanel.java?rev=1733718&r1=1733717&r2=1733718&view=diff
==============================================================================
--- 
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/gui/CookiePanel.java
 (original)
+++ 
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/gui/CookiePanel.java
 Sat Mar  5 13:49:07 2016
@@ -368,6 +368,10 @@ public class CookiePanel extends Abstrac
     public JPanel createCookieTablePanel() {
         // create the JTable that holds one cookie per row
         cookieTable = new JTable(tableModel);
+        // HiDPI mode management
+        if (HIDPI_MODE) {
+            cookieTable.setRowHeight((int) 
Math.round(cookieTable.getRowHeight() * HIDPI_SCALE_FACTOR));
+        }
         cookieTable.getTableHeader().setDefaultRenderer(new 
HeaderAsPropertyRenderer());
         cookieTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
         cookieTable.setPreferredScrollableViewportSize(new Dimension(100, 70));

Modified: 
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/gui/DNSCachePanel.java
URL: 
http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/gui/DNSCachePanel.java?rev=1733718&r1=1733717&r2=1733718&view=diff
==============================================================================
--- 
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/gui/DNSCachePanel.java
 (original)
+++ 
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/gui/DNSCachePanel.java
 Sat Mar  5 13:49:07 2016
@@ -199,6 +199,10 @@ public class DNSCachePanel extends Abstr
     public JPanel createDnsServersTablePanel() {
         // create the JTable that holds header per row
         dnsServersTable = new JTable(dnsServersTableModel);
+        // HiDPI mode management
+        if (HIDPI_MODE) {
+            dnsServersTable.setRowHeight((int) 
Math.round(dnsServersTable.getRowHeight() * HIDPI_SCALE_FACTOR));
+        }
         dnsServersTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
         dnsServersTable.setPreferredScrollableViewportSize(new Dimension(400, 
100));
 

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=1733718&r1=1733717&r2=1733718&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
 Sat Mar  5 13:49:07 2016
@@ -61,6 +61,11 @@ public class HTTPFileArgsPanel extends J
 
     private static final long serialVersionUID = 240L;
 
+    // HiDPI mode
+    private static final boolean HIDPI_MODE = 
JMeterUtils.getPropDefault("jmeter.hidpi.mode", false);  // $NON-NLS-1$
+    // HiDPI mode
+    private static final double HIDPI_SCALE_FACTOR = 
Double.valueOf(JMeterUtils.getPropDefault("jmeter.hidpi.scale.factor", "1.0")); 
 // $NON-NLS-1$  $NON-NLS-2$
+
     /** The title label for this component. */
     @Deprecated
     private JLabel tableLabel;
@@ -344,6 +349,10 @@ public class HTTPFileArgsPanel extends J
     private Component makeMainPanel() {
         initializeTableModel();
         table = new JTable(tableModel);
+        // HiDPI mode management
+        if (HIDPI_MODE) {
+            table.setRowHeight((int) Math.round(table.getRowHeight() * 
HIDPI_SCALE_FACTOR));
+        }
         table.getTableHeader().setDefaultRenderer(new 
HeaderAsPropertyRenderer());
         table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
         return makeScrollPane(table);

Modified: 
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/gui/HeaderPanel.java
URL: 
http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/gui/HeaderPanel.java?rev=1733718&r1=1733717&r2=1733718&view=diff
==============================================================================
--- 
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/gui/HeaderPanel.java
 (original)
+++ 
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/gui/HeaderPanel.java
 Sat Mar  5 13:49:07 2016
@@ -279,6 +279,10 @@ public class HeaderPanel extends Abstrac
     public JPanel createHeaderTablePanel() {
         // create the JTable that holds header per row
         headerTable = new JTable(tableModel);
+        // HiDPI mode management
+        if (HIDPI_MODE) {
+            headerTable.setRowHeight((int) 
Math.round(headerTable.getRowHeight() * HIDPI_SCALE_FACTOR));
+        }
         headerTable.getTableHeader().setDefaultRenderer(new 
HeaderAsPropertyRenderer());
         headerTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
         headerTable.setPreferredScrollableViewportSize(new Dimension(100, 70));

Modified: 
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/proxy/gui/ProxyControlGui.java
URL: 
http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/proxy/gui/ProxyControlGui.java?rev=1733718&r1=1733717&r2=1733718&view=diff
==============================================================================
--- 
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/proxy/gui/ProxyControlGui.java
 (original)
+++ 
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/proxy/gui/ProxyControlGui.java
 Sat Mar  5 13:49:07 2016
@@ -861,6 +861,10 @@ public class ProxyControlGui extends Log
     private JPanel createIncludePanel() {
         includeModel = new PowerTableModel(new String[] { INCLUDE_COL }, new 
Class[] { String.class });
         includeTable = new JTable(includeModel);
+        // HiDPI mode management
+        if (HIDPI_MODE) {
+            includeTable.setRowHeight((int) 
Math.round(includeTable.getRowHeight() * HIDPI_SCALE_FACTOR));
+        }
         includeTable.getTableHeader().setDefaultRenderer(new 
HeaderAsPropertyRenderer());
         includeTable.setPreferredScrollableViewportSize(new Dimension(100, 
30));
 
@@ -877,6 +881,10 @@ public class ProxyControlGui extends Log
     private JPanel createExcludePanel() {
         excludeModel = new PowerTableModel(new String[] { EXCLUDE_COL }, new 
Class[] { String.class });
         excludeTable = new JTable(excludeModel);
+        // HiDPI mode management
+        if (HIDPI_MODE) {
+            excludeTable.setRowHeight((int) 
Math.round(excludeTable.getRowHeight() * HIDPI_SCALE_FACTOR));
+        }
         excludeTable.getTableHeader().setDefaultRenderer(new 
HeaderAsPropertyRenderer());
         excludeTable.setPreferredScrollableViewportSize(new Dimension(100, 
30));
 

Modified: 
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/visualizers/RequestViewHTTP.java
URL: 
http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/visualizers/RequestViewHTTP.java?rev=1733718&r1=1733717&r2=1733718&view=diff
==============================================================================
--- 
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/visualizers/RequestViewHTTP.java
 (original)
+++ 
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/visualizers/RequestViewHTTP.java
 Sat Mar  5 13:49:07 2016
@@ -65,6 +65,11 @@ public class RequestViewHTTP implements
 
     private static final Logger log = LoggingManager.getLoggerForClass();
 
+    // HiDPI mode
+    private static final boolean HIDPI_MODE = 
JMeterUtils.getPropDefault("jmeter.hidpi.mode", false);  // $NON-NLS-1$
+    // HiDPI mode
+    private static final double HIDPI_SCALE_FACTOR = 
Double.valueOf(JMeterUtils.getPropDefault("jmeter.hidpi.scale.factor", "1.0")); 
 // $NON-NLS-1$  $NON-NLS-2$
+
     private static final String KEY_LABEL = 
"view_results_table_request_tab_http"; //$NON-NLS-1$
     
     private static final String CHARSET_DECODE = "ISO-8859-1"; //$NON-NLS-1$
@@ -370,6 +375,10 @@ public class RequestViewHTTP implements
     private Component createRequestPane() {
         // Set up the 1st table Result with empty headers
         tableRequest = new JTable(requestModel);
+        // HiDPI mode management
+        if (HIDPI_MODE) {
+            tableRequest.setRowHeight((int) 
Math.round(tableRequest.getRowHeight() * HIDPI_SCALE_FACTOR));
+        }
         
tableRequest.setToolTipText(JMeterUtils.getResString("textbox_tooltip_cell")); 
// $NON-NLS-1$
         tableRequest.addMouseListener(new TextBoxDoubleClick(tableRequest));
         
@@ -378,6 +387,10 @@ public class RequestViewHTTP implements
 
         // Set up the 2nd table 
         tableParams = new JTable(paramsModel);
+        // HiDPI mode management
+        if (HIDPI_MODE) {
+            tableParams.setRowHeight((int) 
Math.round(tableParams.getRowHeight() * HIDPI_SCALE_FACTOR));
+        }
         
tableParams.setToolTipText(JMeterUtils.getResString("textbox_tooltip_cell")); 
// $NON-NLS-1$
         tableParams.addMouseListener(new TextBoxDoubleClick(tableParams));
         TableColumn column = tableParams.getColumnModel().getColumn(0);
@@ -387,6 +400,10 @@ public class RequestViewHTTP implements
 
         // Set up the 3rd table 
         tableHeaders = new JTable(headersModel);
+        // HiDPI mode management
+        if (HIDPI_MODE) {
+            tableHeaders.setRowHeight((int) 
Math.round(tableHeaders.getRowHeight() * HIDPI_SCALE_FACTOR));
+        }
         
tableHeaders.setToolTipText(JMeterUtils.getResString("textbox_tooltip_cell")); 
// $NON-NLS-1$
         tableHeaders.addMouseListener(new TextBoxDoubleClick(tableHeaders));
         setFirstColumnPreferredAndMaxWidth(tableHeaders);

Modified: 
jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/control/gui/JMSPropertiesPanel.java
URL: 
http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/control/gui/JMSPropertiesPanel.java?rev=1733718&r1=1733717&r2=1733718&view=diff
==============================================================================
--- 
jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/control/gui/JMSPropertiesPanel.java
 (original)
+++ 
jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/control/gui/JMSPropertiesPanel.java
 Sat Mar  5 13:49:07 2016
@@ -54,6 +54,11 @@ public class JMSPropertiesPanel extends
 
     private static final Logger log = LoggingManager.getLoggerForClass();
 
+    // HiDPI mode
+    private static final boolean HIDPI_MODE = 
JMeterUtils.getPropDefault("jmeter.hidpi.mode", false);  // $NON-NLS-1$
+    // HiDPI mode
+    private static final double HIDPI_SCALE_FACTOR = 
Double.valueOf(JMeterUtils.getPropDefault("jmeter.hidpi.scale.factor", "1.0")); 
 // $NON-NLS-1$  $NON-NLS-2$
+
     private static final String ADD_COMMAND = "Add"; //$NON-NLS-1$
 
     private static final String DELETE_COMMAND = "Delete"; //$NON-NLS-1$
@@ -190,6 +195,10 @@ public class JMSPropertiesPanel extends
     public JPanel createPropertiesPanel() {
         // create the JTable that holds JMSProperty per row
         jmsPropertiesTable = new JTable(tableModel);
+        // HiDPI mode management
+        if (HIDPI_MODE) {
+            jmsPropertiesTable.setRowHeight((int) 
Math.round(jmsPropertiesTable.getRowHeight() * HIDPI_SCALE_FACTOR));
+        }
         jmsPropertiesTable.getTableHeader().setDefaultRenderer(new 
HeaderAsPropertyRenderer());
         
jmsPropertiesTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
         jmsPropertiesTable.setPreferredScrollableViewportSize(new 
Dimension(100, 70));

Modified: 
jmeter/trunk/src/protocol/ldap/org/apache/jmeter/protocol/ldap/config/gui/LDAPArgumentsPanel.java
URL: 
http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/ldap/org/apache/jmeter/protocol/ldap/config/gui/LDAPArgumentsPanel.java?rev=1733718&r1=1733717&r2=1733718&view=diff
==============================================================================
--- 
jmeter/trunk/src/protocol/ldap/org/apache/jmeter/protocol/ldap/config/gui/LDAPArgumentsPanel.java
 (original)
+++ 
jmeter/trunk/src/protocol/ldap/org/apache/jmeter/protocol/ldap/config/gui/LDAPArgumentsPanel.java
 Sat Mar  5 13:49:07 2016
@@ -290,6 +290,10 @@ public class LDAPArgumentsPanel extends
     private Component makeMainPanel() {
         initializeTableModel();
         table = new JTable(tableModel);
+        // HiDPI mode management
+        if (HIDPI_MODE) {
+            table.setRowHeight((int) Math.round(table.getRowHeight() * 
HIDPI_SCALE_FACTOR));
+        }
         table.getTableHeader().setDefaultRenderer(new 
HeaderAsPropertyRenderer());
         table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
         return makeScrollPane(table);

Modified: jmeter/trunk/xdocs/changes.xml
URL: 
http://svn.apache.org/viewvc/jmeter/trunk/xdocs/changes.xml?rev=1733718&r1=1733717&r2=1733718&view=diff
==============================================================================
--- jmeter/trunk/xdocs/changes.xml (original)
+++ jmeter/trunk/xdocs/changes.xml Sat Mar  5 13:49:07 2016
@@ -250,6 +250,7 @@ Summary
 <li><bug>59093</bug>Option parsing error message can be 'lost'</li>
 <li><bug>58715</bug>Feature request: Bundle groovy-all with JMeter</li>
 <li><bug>59095</bug>Remove UserParameterXMLParser that was deprecated 8 years 
ago. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>
+<li><bug>58426</bug>Use DPI scaling of interface for high resolution devices 
(HiDPI support for Windows/Linux) - <i>BETA</i> see hidpi properties in 
bin/jmeter.properties</li>
 </ul>
 <ch_section>Non-functional changes</ch_section>
 <ul>


Reply via email to