001    package data.swing;
002    
003    import data.*;
004    
005    import util.swing.*;
006    
007    import javax.swing.*;
008    import java.util.*;
009    
010    /**
011     * A {@link JTable} for displaying and editing the contents of a {@link CountingStock}.
012     *
013     * @author Steffen Zschaler
014     * @version 2.0 23/08/1999
015     * @since v2.0
016     */
017    public class JCountingStockTable extends JAbstractTable {
018    
019        /**
020             * ID for serialization.
021             */
022            private static final long serialVersionUID = 1738508295457002566L;
023    
024            /**
025         * Create a new JCountingStockTable.
026         *
027         * @param cs the CountingStock to be displayed.
028         * @param db the DataBasket to be used to determine visibility.
029         * @param cmp a Comparator defining the sort order. If <code>null</code>, the records are ordered by their
030         * keys.
031         * @param fShowZeros if false, rows containing '0' in the value column will be omitted from the table.
032         * @param ted a TableEntryDescriptor that can split
033         * {@link CountingStockTableModel.Record CountingStockTableModel records} into a table's cells.
034         */
035        public JCountingStockTable(CountingStock cs, DataBasket db, Comparator<CatalogItem> cmp, boolean fShowZeros,
036                TableEntryDescriptor ted) {
037            super(new CountingStockTableModel(cs, db, cmp, fShowZeros, ted));
038    
039            if (cs instanceof MoneyBag) {
040                setDefaultRenderer(NumberValue.class, new CurrencyRenderer((data.Currency)cs.getCatalog(db)));
041            }
042        }
043    }