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]