package data.swing; import data.*; import javax.swing.table.*; import javax.swing.*; /** * A {@link util.swing.TableEntryDescriptor} that can be used to model MoneyBags with a * {@link CountingStockTableModel}. * * <p>Essentially this is a {@link DefaultCountingStockItemTED} that renders its value column using a * Currency to format the values.</p> * * @author Steffen Zschaler * @version 2.0 23/08/1999 * @since v2.0 */ public class DefaultMoneyBagItemTED extends DefaultCountingStockItemTED { /** * The Currency used for formatting. * * @serial */ private Currency m_cCurrency; /** * The cell renderer that renders the value column. */ private transient TableCellRenderer m_tcrValueRenderer; /** * Internal helper function that gets (and if necessary creates) the cell renderer for the value column. * * @override Never */ protected TableCellRenderer getValueRenderer() { if (m_tcrValueRenderer == null) { m_tcrValueRenderer = new CurrencyRenderer (m_cCurrency); } return m_tcrValueRenderer; } /** * Create a new DefaultMoneyBagItemTED. * * @param c the Currency used for formatting. Must be the same as the Currency of the MoneyBag modelled by * the associated {@link CountingStockTableModel}. */ public DefaultMoneyBagItemTED (Currency c) { super(); m_cCurrency = c; } /** * @return <code>{@link NumberValue}.class</code> for the second column, otherwise the superclass' return * values. * @override Sometimes */ public Class getColumnClass (int nIdx) { if (nIdx == 1) { return NumberValue.class; } else { return super.getColumnClass (nIdx); } } /** * @return <code>null</code> for the first, {@link #getValueRenderer} for the second column. * @override Sometimes */ public TableCellRenderer getCellRenderer (int nIdx) { if (nIdx == 1) { return getValueRenderer(); } else { return super.getCellRenderer (nIdx); } } }