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