001 package data.swing; 002 003 import javax.swing.table.DefaultTableCellRenderer; 004 import javax.swing.JTable; 005 006 import data.Currency; 007 008 import data.NumberValue; 009 010 /** 011 * A cell renderer that takes a {@link NumberValue} and renders it using the formatting capabilities of a 012 * {@link Currency}. 013 * 014 * @author Steffen Zschaler 015 * @version 2.0 23/08/1999 016 * @since v2.0 017 */ 018 public class CurrencyRenderer extends DefaultTableCellRenderer { 019 020 /** 021 * ID for serialization. 022 */ 023 private static final long serialVersionUID = 7330291552008413274L; 024 025 /** 026 * The Currency used to format the rendered values. 027 * 028 * @serial 029 */ 030 protected Currency m_cCurrency; 031 032 /** 033 * Create a new CurrencyRenderer. 034 * 035 * @param c the Currency to be used for formatting. 036 */ 037 public CurrencyRenderer(Currency c) { 038 super(); 039 040 m_cCurrency = c; 041 042 setHorizontalAlignment(RIGHT); 043 } 044 045 /** 046 * @override Never 047 */ 048 public java.awt.Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, 049 boolean hasFocus, int row, int column) { 050 super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); 051 setText(m_cCurrency.toString((NumberValue)value)); 052 053 return this; 054 } 055 }