1 package net.sourceforge.jpotpourri.gui.log4jlog.gui;
2
3 import java.util.ArrayList;
4 import java.util.List;
5
6 import javax.swing.table.AbstractTableModel;
7
8 import net.sourceforge.jpotpourri.gui.log4jlog.De;
9 import net.sourceforge.jpotpourri.gui.log4jlog.Log4jEvent;
10 import net.sourceforge.jpotpourri.gui.log4jlog.TableFilter;
11
12
13
14
15 final class Log4jTableModel extends AbstractTableModel {
16
17 private static final long serialVersionUID = -4864887345823485298L;
18
19 private final ModelCoreData data = new ModelCoreData();
20
21
22 private static final List<LogTableColumn> TABLE_COLUMNS = new ArrayList<LogTableColumn>(2);
23 static {
24 TABLE_COLUMNS.add(LogTableColumn.DATE);
25 TABLE_COLUMNS.add(LogTableColumn.LEVEL);
26 TABLE_COLUMNS.add(LogTableColumn.CLASS);
27 TABLE_COLUMNS.add(LogTableColumn.METHOD);
28
29 TABLE_COLUMNS.add(LogTableColumn.MESSAGE);
30 TABLE_COLUMNS.add(LogTableColumn.THREAD);
31 TABLE_COLUMNS.add(LogTableColumn.EXCEPTION);
32
33 }
34
35
36
37 public Log4jTableModel() {
38
39 }
40
41
42
43 public void addLoggingEvent(final Log4jEvent event) {
44 De.bug("Log4jTableModel --- addLoggignEvent(" + event + ")");
45 this.data.addLoggingEvent(event);
46 this.fireTableDataChanged();
47 }
48
49 public void doFilter(final TableFilter filter) {
50 De.bug("Log4jTableModel --- doFilter(" + filter + ")");
51 this.data.doFilter(filter);
52 this.fireTableDataChanged();
53 }
54
55 public void doClearData() {
56 De.bug("Log4jTableModel --- doClearData()");
57 this.data.doClear();
58 this.fireTableDataChanged();
59 }
60
61
62
63 @Override
64 @SuppressWarnings("unused")
65 public boolean isCellEditable(final int rowIndex, final int columnIndex) {
66 return false;
67 }
68
69
70 @Override
71 public String getColumnName(final int columnIndex) {
72 return TABLE_COLUMNS.get(columnIndex).getColumnLabel();
73 }
74
75
76
77 public int getColumnCount() {
78 return TABLE_COLUMNS.size();
79 }
80
81 public int getRowCount() {
82 return this.data.getSize();
83 }
84
85 public Object getValueAt(final int rowIndex, final int columnIndex) {
86 final Log4jEvent event = this.data.get(rowIndex);
87 return TABLE_COLUMNS.get(columnIndex).getTableModelValue(event);
88
89 }
90
91 }