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 &quot;Name&quot; and &quot;Count&quot;. 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             * ID for serialization.
022             */
023            private static final long serialVersionUID = -4430208665224971966L;
024    
025            /**
026         * Create a new DefaultCountingStockDBETableEntryDescriptor.
027         */
028        public DefaultCountingStockDBETableEntryDescriptor() {
029            super();
030        }
031    
032        /**
033         * @return 2.
034         * @override Sometimes
035         */
036        public int getColumnCount() {
037            return 2;
038        }
039    
040        /**
041         * @return &quot;Name&quot; for the first and &quot;Count&quot; for the second column.
042         * @override Sometimes
043         */
044        public String getColumnName(int nIdx) {
045            String[] asNames = {
046                    "Name", "Count"};
047            return asNames[nIdx];
048        }
049    
050        /**
051         * @return <code>String.class</code> for the first and <code>Integer.class</code> for the second column.
052         * @override Sometimes
053         */
054        public Class<?> getColumnClass(int nIdx) {
055            Class[] acClasses = {
056                    String.class, Integer.class};
057            return acClasses[nIdx];
058        }
059    
060        /**
061         * @return the item's name for the first and the number of available items for the second column.
062         * @override Sometimes
063         */
064        public Object getValueAt(Object oData, int nIdx) {
065            DataBasketEntry dbe = (DataBasketEntry)oData;
066    
067            switch (nIdx) {
068                case 0:
069                    return dbe.getSecondaryKey();
070                case 1:
071                    return dbe.getValue();
072            }
073    
074            return null;
075        }
076    }