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 }