001 package log.swing; 002 003 import log.*; 004 005 import util.swing.*; 006 007 import java.util.*; 008 009 /** 010 * TableEntryDescriptor that can be used to display {@link LogEntry LogEntries}. 011 * 012 * <p>LogEntries will be displayed using two columns. The first column will have the heading "Date" 013 * and will show the LogEntry's {@link LogEntry#getLogDate log date}. The second column will show the return 014 * of the LogEntry's {@link Object#toString} method under the heading "Description". Both columns 015 * are not editable.</p> 016 * 017 * @author Steffen Zschaler 018 * @version 2.0 14/07/1999 019 * @since v2.0 020 */ 021 public class DefaultLogEntryTED extends AbstractTableEntryDescriptor { 022 023 /** 024 * ID for serialization. 025 */ 026 private static final long serialVersionUID = 3964287940745797692L; 027 028 /** 029 * There are two columns. 030 */ 031 public int getColumnCount() { 032 return 2; 033 } 034 035 /** 036 * The column name of the first column is "Date", that of the second column is 037 * "Description". 038 */ 039 public String getColumnName(int nIdx) { 040 String[] asNames = { 041 "Date", "Description"}; 042 043 return asNames[nIdx]; 044 } 045 046 /** 047 * The column class of the first column is <code>Date.class</code>, that of the second column is 048 * <code>String.class</code>. 049 */ 050 public Class<?> getColumnClass(int nIdx) { 051 Class[] acClasses = { 052 Date.class, String.class}; 053 054 return acClasses[nIdx]; 055 } 056 057 /** 058 * The object is assumed to be a {@link LogEntry}; the value of the first column is the 059 * {@link LogEntry#getLogDate log date} that of the second column is the result of the object's 060 * {@link Object#toString} method. 061 */ 062 public Object getValueAt(Object oData, int nIdx) { 063 switch (nIdx) { 064 case 0: 065 return ((LogEntry)oData).getLogDate(); 066 default: 067 return oData.toString(); 068 } 069 } 070 }