You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jmeter-dev@jakarta.apache.org by se...@apache.org on 2007/03/02 22:10:10 UTC

svn commit: r513951 - in /jakarta/jmeter/branches/rel-2-2/src/jorphan/org/apache/jorphan/gui: NumberRenderer.java RateRenderer.java RendererUtils.java RightAlignRenderer.java

Author: sebb
Date: Fri Mar  2 13:10:10 2007
New Revision: 513951

URL: http://svn.apache.org/viewvc?view=rev&rev=513951
Log:
Initial version of JTable rendering utility classes

Added:
    jakarta/jmeter/branches/rel-2-2/src/jorphan/org/apache/jorphan/gui/NumberRenderer.java
    jakarta/jmeter/branches/rel-2-2/src/jorphan/org/apache/jorphan/gui/RateRenderer.java
    jakarta/jmeter/branches/rel-2-2/src/jorphan/org/apache/jorphan/gui/RendererUtils.java
    jakarta/jmeter/branches/rel-2-2/src/jorphan/org/apache/jorphan/gui/RightAlignRenderer.java

Added: jakarta/jmeter/branches/rel-2-2/src/jorphan/org/apache/jorphan/gui/NumberRenderer.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/branches/rel-2-2/src/jorphan/org/apache/jorphan/gui/NumberRenderer.java?view=auto&rev=513951
==============================================================================
--- jakarta/jmeter/branches/rel-2-2/src/jorphan/org/apache/jorphan/gui/NumberRenderer.java (added)
+++ jakarta/jmeter/branches/rel-2-2/src/jorphan/org/apache/jorphan/gui/NumberRenderer.java Fri Mar  2 13:10:10 2007
@@ -0,0 +1,48 @@
+/*
+ * 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.
+ * 
+ */
+
+package org.apache.jorphan.gui;
+
+import java.text.DecimalFormat;
+import java.text.NumberFormat;
+
+import javax.swing.JLabel;
+import javax.swing.table.DefaultTableCellRenderer;
+
+/**
+ * Renders numbers in a JTable with a specified format 
+ */
+public class NumberRenderer extends DefaultTableCellRenderer {
+	protected final NumberFormat formatter;
+
+    public NumberRenderer() {
+    	super();
+    	formatter = NumberFormat.getInstance();
+    	setHorizontalAlignment(JLabel.RIGHT);
+    }
+    
+    public NumberRenderer(String format) {
+    	super();
+    	formatter = new DecimalFormat(format);
+    	setHorizontalAlignment(JLabel.RIGHT);
+    }
+    
+	public void setValue(Object value) {
+	    setText((value == null) ? "" : formatter.format(value));
+	}
+}
\ No newline at end of file

Added: jakarta/jmeter/branches/rel-2-2/src/jorphan/org/apache/jorphan/gui/RateRenderer.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/branches/rel-2-2/src/jorphan/org/apache/jorphan/gui/RateRenderer.java?view=auto&rev=513951
==============================================================================
--- jakarta/jmeter/branches/rel-2-2/src/jorphan/org/apache/jorphan/gui/RateRenderer.java (added)
+++ jakarta/jmeter/branches/rel-2-2/src/jorphan/org/apache/jorphan/gui/RateRenderer.java Fri Mar  2 13:10:10 2007
@@ -0,0 +1,44 @@
+package org.apache.jorphan.gui;
+
+/**
+ * Renders a rate in a JTable.
+ * 
+ * The output is in units appropriate to its dimension:
+ * <p>
+ * The number is represented in one of:
+ * - requests/second
+ * - requests/minute
+ * - requests/hour.
+ * <p>
+ * Examples: "34.2/sec" "0.1/sec" "43.0/hour" "15.9/min"
+ */
+public class RateRenderer extends NumberRenderer{
+
+	public RateRenderer(String format) {
+		super(format);
+	}
+	
+	public void setValue(Object value) {
+		if (value == null || ! (value instanceof Double)) {
+			setText("#N/A"); // TODO: should this just call super()?
+			return;
+		}
+		double rate = ((Double) value).doubleValue();
+		if (rate == Double.MAX_VALUE){
+			setText("#N/A"); // TODO: should this just call super()?
+			return;
+		}
+		
+	    String unit = "sec";
+
+	    if (rate < 1.0) {
+	        rate *= 60.0;
+	        unit = "min";
+	    }
+	    if (rate < 1.0) {
+	        rate *= 60.0;
+	        unit = "hour";
+	    }			
+	    setText(formatter.format(rate) + "/" + unit);
+	}
+}
\ No newline at end of file

Added: jakarta/jmeter/branches/rel-2-2/src/jorphan/org/apache/jorphan/gui/RendererUtils.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/branches/rel-2-2/src/jorphan/org/apache/jorphan/gui/RendererUtils.java?view=auto&rev=513951
==============================================================================
--- jakarta/jmeter/branches/rel-2-2/src/jorphan/org/apache/jorphan/gui/RendererUtils.java (added)
+++ jakarta/jmeter/branches/rel-2-2/src/jorphan/org/apache/jorphan/gui/RendererUtils.java Fri Mar  2 13:10:10 2007
@@ -0,0 +1,41 @@
+/*
+ * 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.
+ * 
+ */
+
+package org.apache.jorphan.gui;
+
+import javax.swing.JTable;
+import javax.swing.table.TableCellRenderer;
+import javax.swing.table.TableColumnModel;
+
+/**
+ * Utility class for Renderers
+ */
+public class RendererUtils {
+    private RendererUtils(){
+    	// uninstantiable
+    }
+    public static void applyRenderers(final JTable table, final TableCellRenderer [] renderers){
+		final TableColumnModel columnModel = table.getColumnModel();
+		for(int i = 0; i < renderers.length; i++){
+		    final TableCellRenderer rend = renderers[i];
+		    if (rend != null) {
+			    columnModel.getColumn(i).setCellRenderer(rend);
+		    }
+		}
+}
+}

Added: jakarta/jmeter/branches/rel-2-2/src/jorphan/org/apache/jorphan/gui/RightAlignRenderer.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/branches/rel-2-2/src/jorphan/org/apache/jorphan/gui/RightAlignRenderer.java?view=auto&rev=513951
==============================================================================
--- jakarta/jmeter/branches/rel-2-2/src/jorphan/org/apache/jorphan/gui/RightAlignRenderer.java (added)
+++ jakarta/jmeter/branches/rel-2-2/src/jorphan/org/apache/jorphan/gui/RightAlignRenderer.java Fri Mar  2 13:10:10 2007
@@ -0,0 +1,32 @@
+/*
+ * 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.
+ * 
+ */
+
+package org.apache.jorphan.gui;
+
+import javax.swing.JLabel;
+import javax.swing.table.DefaultTableCellRenderer;
+
+/**
+ * Renders items in a JTable right-aligned
+ */
+class RightAlignRenderer extends DefaultTableCellRenderer {
+    public RightAlignRenderer() {
+    	super();
+    	setHorizontalAlignment(JLabel.RIGHT);
+    }
+}
\ No newline at end of file



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