001    package data.swing;
002    
003    import data.*;
004    
005    import util.swing.*;
006    
007    /**
008     * A {@link TableEntryDescriptor} that can be used with a {@link DataBasketTableModel} modelling
009     * {@link DataBasketEntry DataBasketEntries} that describe operations on items in a {@link CountingStock}.
010     *
011             * <p>There will be two columns, headed "Name" and "Count". The first will give the item's
012     * name, the second the number of items of that sort available.</p>
013     *
014     * @author Steffen Zschaler
015     * @version 2.0 23/08/1999
016     * @since v2.0
017     */
018    public class DefaultCountingStockDBETableEntryDescriptor extends AbstractTableEntryDescriptor {
019    
020        /**
021         * Create a new DefaultCountingStockDBETableEntryDescriptor.
022         */
023        public DefaultCountingStockDBETableEntryDescriptor() {
024            super();
025        }
026    
027        /**
028         * @return 2.
029         * @override Sometimes
030         */
031        public int getColumnCount() {
032            return 2;
033        }
034    
035        /**
036         * @return "Name" for the first and "Count" for the second column.
037         * @override Sometimes
038         */
039        public String getColumnName(int nIdx) {
040            String[] asNames = {
041                    "Name", "Count"};
042            return asNames[nIdx];
043        }
044    
045        /**
046         * @return <code>String.class</code> for the first and <code>Integer.class</code> for the second column.
047         * @override Sometimes
048         */
049        public Class getColumnClass(int nIdx) {
050            Class[] acClasses = {
051                    String.class, Integer.class};
052            return acClasses[nIdx];
053        }
054    
055        /**
056         * @return the item's name for the first and the number of available items for the second column.
057         * @override Sometimes
058         */
059        public Object getValueAt(Object oData, int nIdx) {
060            DataBasketEntry dbe = (DataBasketEntry)oData;
061    
062            switch (nIdx) {
063                case 0:
064                    return dbe.getSecondaryKey();
065                case 1:
066                    return dbe.getValue();
067            }
068    
069            return null;
070        }
071    }