View Javadoc

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   * @author christoph_pickl@users.sourceforge.net
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  		// nothing to do
39  	}
40  
41  	// ----------------- custom
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  	// ----------------- table model optional
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  	// ----------------- table model mandatory
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  }