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 * The Currency used to format the rendered values. 022 * 023 * @serial 024 */ 025 protected Currency m_cCurrency; 026 027 /** 028 * Create a new CurrencyRenderer. 029 * 030 * @param c the Currency to be used for formatting. 031 */ 032 public CurrencyRenderer(Currency c) { 033 super(); 034 035 m_cCurrency = c; 036 037 setHorizontalAlignment(RIGHT); 038 } 039 040 /** 041 * @override Never 042 */ 043 public java.awt.Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, 044 boolean hasFocus, int row, int column) { 045 super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); 046 setText(m_cCurrency.toString((NumberValue)value)); 047 048 return this; 049 } 050 }