001 package data.swing;
002
003 /**
004 * A {@link util.swing.TableEntryDescriptor} that can be used with a {@link CountingStockTableModel}.
005 *
006 * <p>There will be three columns: "Name", "Value" and "Count". The first will
007 * display the items' names, the secind their values and the third will show how many items of a sort are
008 * actually in the Stock.</p>
009 *
010 * @author Steffen Zschaler
011 * @version 2.0 23/08/1999
012 * @since v2.0
013 */
014 public class DefaultCountingStockItemTED extends DefaultCatalogItemTED {
015
016 /**
017 * Create a new DefaultCountingStockItemTED.
018 */
019 public DefaultCountingStockItemTED() {
020 super();
021 }
022
023 /**
024 * @return 3.
025 * @override Sometimes
026 */
027 public int getColumnCount() {
028 return 3;
029 }
030
031 /**
032 * @return "Name" for the first, "Value" for the second and "Count" for the
033 * third column.
034 * @override Sometimes
035 */
036 public String getColumnName(int nIdx) {
037 if (nIdx == 2) {
038 return "Count";
039 } else {
040 return super.getColumnName(nIdx);
041 }
042 }
043
044 /**
045 * @return <code>String.class</code> for the first, <code>{@link data.Value}.class</code> for the second and
046 * <code>Integer.class</code> for the third column.
047 * @override Sometimes
048 */
049 public Class getColumnClass(int nIdx) {
050 if (nIdx == 2) {
051 return Integer.class;
052 } else {
053 return super.getColumnClass(nIdx);
054 }
055 }
056
057 /**
058 * @return the item's name for the first, its value for the second and the number of items for the third
059 * column.
060 * @override Sometimes
061 */
062 public Object getValueAt(Object oData, int nIdx) {
063 CountingStockTableModel.Record r = (CountingStockTableModel.Record)oData;
064
065 if (nIdx == 2) {
066 return new Integer(r.getCount());
067 } else {
068 return super.getValueAt(r.getDescriptor(), nIdx);
069 }
070 }
071 }