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 * There are two columns.
025 */
026 public int getColumnCount() {
027 return 2;
028 }
029
030 /**
031 * The column name of the first column is "Date", that of the second column is
032 * "Description".
033 */
034 public String getColumnName(int nIdx) {
035 String[] asNames = {
036 "Date", "Description"};
037
038 return asNames[nIdx];
039 }
040
041 /**
042 * The column class of the first column is <code>Date.class</code>, that of the second column is
043 * <code>String.class</code>.
044 */
045 public Class getColumnClass(int nIdx) {
046 Class[] acClasses = {
047 Date.class, String.class};
048
049 return acClasses[nIdx];
050 }
051
052 /**
053 * The object is assumed to be a {@link LogEntry}; the value of the first column is the
054 * {@link LogEntry#getLogDate log date} that of the second column is the result of the object's
055 * {@link Object#toString} method.
056 */
057 public Object getValueAt(Object oData, int nIdx) {
058 switch (nIdx) {
059 case 0:
060 return ((LogEntry)oData).getLogDate();
061 default:
062 return oData.toString();
063 }
064 }
065 }