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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to