001 package videoautomat; 002 003 import util.swing.AbstractTableEntryDescriptor; 004 005 /** 006 * This class implements a TableEntryDescriptor used to display rented {@link VideoCassette}s 007 * 008 */ 009 public class TEDVideoCassette extends AbstractTableEntryDescriptor { 010 011 /** 012 * @return the number of columns each record will consist of. 013 * 014 * @see util.swing.TableEntryDescriptor#getColumnCount() 015 */ 016 public int getColumnCount() { 017 return 3; 018 } 019 020 /** 021 * @return the text to be printed in the header of the given column. 022 * @param nIdx 023 * the index of the column for which to return the header. Indices run from 0 to 024 * {@link TEDVideoCassette#getColumnCount()}- 1. 025 * @see util.swing.TableEntryDescriptor#getColumnName(int) 026 */ 027 public String getColumnName(int nIdx) { 028 switch (nIdx) { 029 case 0 : 030 return "Title"; 031 case 1 : 032 return "Days"; 033 case 2 : 034 return "Cost"; 035 } 036 return null; 037 } 038 039 /** 040 * @return the class of objects that make up the values of cells of the given column. This will be used to 041 * determine the cell renderer and editor unless you specify otherwise through 042 * util.swing.AbstractTableEntryDescriptor#getCellEditor(int) and 043 * util.swing.AbstractTableEntryDescriptor#getCellRenderer(int). 044 * @param nIdx 045 * the index of the column for which to return the header. Indices run from 0 to 046 * {@link TEDVideoCassette#getColumnCount()}- 1. 047 * @see util.swing.TableEntryDescriptor#getColumnClass(int) 048 */ 049 public Class getColumnClass(int nIdx) { 050 switch (nIdx) { 051 case 0 : 052 return String.class; 053 case 1 : 054 return Integer.class; 055 case 2 : 056 return String.class; 057 } 058 return null; 059 } 060 061 /** 062 * @return the value to be printed in the given column for the given record. The actual class must be a subclass of 063 * what was returned by {@link TEDVideoCassette#getColumnClass(int)}or that class itself. 064 * @param nIdx 065 * the index of the column for which to return the header. Indices run from 0 to 066 * {@link TEDVideoCassette#getColumnCount()}- 1. 067 * @see util.swing.TableEntryDescriptor#getValueAt(java.lang.Object, int) 068 */ 069 public Object getValueAt(Object oRecord, int nIdx) { 070 VideoCassette vc = (VideoCassette) oRecord; 071 switch (nIdx) { 072 case 0 : 073 return vc.getName(); 074 case 1 : 075 return new Integer(vc.getDays()); 076 case 2 : 077 return VideoShop.getCurrency().toString(vc.getCost()); 078 } 079 return null; 080 } 081 }