Author: sebb
Date: Thu Feb 25 00:55:27 2010
New Revision: 916067

URL: http://svn.apache.org/viewvc?rev=916067&view=rev
Log:
Better implementation of fixsize() for table columns

Modified:
    jakarta/jmeter/trunk/src/jorphan/org/apache/jorphan/gui/GuiUtils.java
    
jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/gui/HTTPArgumentsPanel.java
    
jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/gui/HTTPFileArgsPanel.java

Modified: jakarta/jmeter/trunk/src/jorphan/org/apache/jorphan/gui/GuiUtils.java
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/jorphan/org/apache/jorphan/gui/GuiUtils.java?rev=916067&r1=916066&r2=916067&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/jorphan/org/apache/jorphan/gui/GuiUtils.java 
(original)
+++ jakarta/jmeter/trunk/src/jorphan/org/apache/jorphan/gui/GuiUtils.java Thu 
Feb 25 00:55:27 2010
@@ -21,6 +21,9 @@
 import java.awt.Component;
 
 import javax.swing.JScrollPane;
+import javax.swing.JTable;
+import javax.swing.table.TableCellRenderer;
+import javax.swing.table.TableColumn;
 
 public class GuiUtils {
 
@@ -42,4 +45,23 @@
         return pane;
     }
 
+    /**
+     * Fix the size of a column according to the header text.
+     * 
+     * @param column to be resized
+     * @param table containing the column
+     */
+    public static void fixSize(TableColumn column, JTable table) {
+        TableCellRenderer rndr;
+        rndr = column.getHeaderRenderer();
+        if (rndr == null){
+            rndr = table.getTableHeader().getDefaultRenderer();
+        }
+        Component c = rndr.getTableCellRendererComponent(
+                table, column.getHeaderValue(), false, false, -1, 
column.getModelIndex());
+        int width = c.getPreferredSize().width+10;
+        column.setMaxWidth(width);
+        column.setPreferredWidth(width);
+        column.setResizable(false);        
+    }
 }

Modified: 
jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/gui/HTTPArgumentsPanel.java
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/gui/HTTPArgumentsPanel.java?rev=916067&r1=916066&r2=916067&view=diff
==============================================================================
--- 
jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/gui/HTTPArgumentsPanel.java
 (original)
+++ 
jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/gui/HTTPArgumentsPanel.java
 Thu Feb 25 00:55:27 2010
@@ -21,7 +21,6 @@
 import java.util.Iterator;
 
 import javax.swing.JTable;
-import javax.swing.table.TableColumn;
 
 import org.apache.jmeter.config.Arguments;
 import org.apache.jmeter.config.gui.ArgumentsPanel;
@@ -29,6 +28,7 @@
 import org.apache.jmeter.testelement.TestElement;
 import org.apache.jmeter.testelement.property.PropertyIterator;
 import org.apache.jmeter.util.JMeterUtils;
+import org.apache.jorphan.gui.GuiUtils;
 import org.apache.jorphan.gui.ObjectTableModel;
 import org.apache.jorphan.reflect.Functor;
 
@@ -71,11 +71,8 @@
 
     @Override
     protected void sizeColumns(JTable table) {
-        int resizeMode = table.getAutoResizeMode();
-        table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
-        fixSize(table.getColumn(INCLUDE_EQUALS));
-        fixSize(table.getColumn(ENCODE_OR_NOT));
-        table.setAutoResizeMode(resizeMode);
+        GuiUtils.fixSize(table.getColumn(INCLUDE_EQUALS), table);
+        GuiUtils.fixSize(table.getColumn(ENCODE_OR_NOT), table);
     }
 
     @Override
@@ -86,14 +83,6 @@
         return arg;
     }
 
-    private void fixSize(TableColumn column) {
-        column.sizeWidthToFit();
-        // column.setMinWidth(column.getWidth());
-        column.setMaxWidth((int) (column.getWidth() * 1.5));
-        column.setWidth(column.getMaxWidth());
-        column.setResizable(false);
-    }
-
     public HTTPArgumentsPanel() {
         super(JMeterUtils.getResString("paramtable")); //$NON-NLS-1$
     }

Modified: 
jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/gui/HTTPFileArgsPanel.java
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/gui/HTTPFileArgsPanel.java?rev=916067&r1=916066&r2=916067&view=diff
==============================================================================
--- 
jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/gui/HTTPFileArgsPanel.java
 (original)
+++ 
jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/gui/HTTPFileArgsPanel.java
 Thu Feb 25 00:55:27 2010
@@ -36,7 +36,6 @@
 import javax.swing.JTable;
 import javax.swing.ListSelectionModel;
 import javax.swing.table.TableCellEditor;
-import javax.swing.table.TableColumn;
 
 import org.apache.jmeter.gui.util.FileDialoger;
 import org.apache.jmeter.gui.util.HeaderAsPropertyRenderer;
@@ -44,6 +43,7 @@
 import org.apache.jmeter.protocol.http.util.HTTPFileArg;
 import org.apache.jmeter.testelement.TestElement;
 import org.apache.jmeter.util.JMeterUtils;
+import org.apache.jorphan.gui.GuiUtils;
 import org.apache.jorphan.gui.ObjectTableModel;
 import org.apache.jorphan.reflect.Functor;
 
@@ -142,24 +142,8 @@
      *  the table to resize columns for
      */
     private void sizeColumns(JTable table) {
-        int resizeMode = table.getAutoResizeMode();
-        table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
-        fixSize(table.getColumn(PARAMNAME));
-        fixSize(table.getColumn(MIMETYPE));
-        table.setAutoResizeMode(resizeMode);
-    }
-
-    /**
-     * Resize the table column to a fixed size.
-     *
-     * @param column
-     *  the column whose size will be fixed
-     */
-    private void fixSize(TableColumn column) {
-        column.sizeWidthToFit();
-        column.setMaxWidth(column.getWidth() * 2);
-        column.setWidth(column.getMaxWidth());
-        column.setResizable(false);
+        GuiUtils.fixSize(table.getColumn(PARAMNAME), table);
+        GuiUtils.fixSize(table.getColumn(MIMETYPE), table);
     }
 
     /**



---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-dev-unsubscr...@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-h...@jakarta.apache.org

Reply via email to