KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > sape > carbon > services > log > console > LogMessageListModel


1 /*
2  * The contents of this file are subject to the Sapient Public License
3  * Version 1.0 (the "License"); you may not use this file except in compliance
4  * with the License. You may obtain a copy of the License at
5  * http://carbon.sf.net/License.html.
6  *
7  * Software distributed under the License is distributed on an "AS IS" basis,
8  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for
9  * the specific language governing rights and limitations under the License.
10  *
11  * The Original Code is The Carbon Component Framework.
12  *
13  * The Initial Developer of the Original Code is Sapient Corporation
14  *
15  * Copyright (C) 2003 Sapient Corporation. All Rights Reserved.
16  */

17
18 package org.sape.carbon.services.log.console;
19
20
21 import java.util.ArrayList JavaDoc;
22 import java.util.Iterator JavaDoc;
23 import java.util.List JavaDoc;
24 import java.util.Set JavaDoc;
25
26 import org.sape.carbon.services.log.console.LogView.LogMessage;
27
28 /**
29  *
30  * @since carbon 1.0
31  * @author Gregory Hinkle, February 2002
32  * @version $Revision: 1.7 $($Author: dvoet $ / $Date: 2003/05/05 21:21:26 $)
33  * <br>Copyright 2002 Sapient
34  */

35 public class LogMessageListModel extends javax.swing.AbstractListModel JavaDoc {
36
37     private List JavaDoc all = new ArrayList JavaDoc(2000);
38     private List JavaDoc filtered = new ArrayList JavaDoc(2000);
39
40     private Set JavaDoc severities;
41     private String JavaDoc textFilter = "";
42
43     /** Creates new LogMessageListModel */
44     public LogMessageListModel() {
45         super();
46     }
47
48     public synchronized java.lang.Object JavaDoc getElementAt(int param) {
49        return filtered.get(param);
50     }
51
52     public synchronized int getSize() {
53         return filtered.size();
54     }
55     public synchronized int getTotalSize() {
56         return all.size();
57     }
58
59     public void setFilter(Set JavaDoc severities, String JavaDoc textFilter) {
60         //System.out.println("Setting filter to: " + textFilter);
61

62         this.severities = severities;
63         this.textFilter = textFilter;
64
65         this.filter();
66
67         this.fireContentsChanged(this,0,this.getSize());
68     }
69
70     public void addElement(LogMessage msg) {
71
72
73         this.all.add(msg);
74
75         if (this.severities.contains(msg.getSeverity()) &&
76                 (this.textFilter.equals("") || (msg.toString().indexOf(this.textFilter) >= 0))) {
77
78             this.filtered.add(msg);
79
80             this.fireContentsChanged(this,this.getSize()-1,this.getSize());
81         }
82     }
83
84
85     private synchronized void filter() {
86
87         this.filtered.clear();
88         Iterator JavaDoc iter = all.iterator();
89         while (iter.hasNext()) {
90             LogMessage msg = (LogMessage) iter.next();
91             if (this.severities.contains(msg.getSeverity()) &&
92                 (this.textFilter.equals("") || (msg.toString().indexOf(this.textFilter) >= 0))) {
93
94                 // If the message is not filtered, then add it.
95
filtered.add(msg);
96             }
97         }
98     }
99
100     public synchronized void clear() {
101         System.out.println("Clearing");
102         this.all.clear();
103         this.filtered.clear();
104         this.fireContentsChanged(this,0,this.getSize());
105     }
106 }
Popular Tags