KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > columba > addressbook > gui > table > model > AddressbookTableModel


1 // The contents of this file are subject to the Mozilla Public License Version
2
// 1.1
3
//(the "License"); you may not use this file except in compliance with the
4
//License. You may obtain a copy of the License at http://www.mozilla.org/MPL/
5
//
6
//Software distributed under the License is distributed on an "AS IS" basis,
7
//WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
8
//for the specific language governing rights and
9
//limitations under the License.
10
//
11
//The Original Code is "The Columba Project"
12
//
13
//The Initial Developers of the Original Code are Frederik Dietz and Timo
14
// Stich.
15
//Portions created by Frederik Dietz and Timo Stich are Copyright (C) 2003.
16
//
17
//All Rights Reserved.
18
package org.columba.addressbook.gui.table.model;
19
20 import java.util.Iterator JavaDoc;
21 import java.util.Map JavaDoc;
22 import java.util.logging.Logger JavaDoc;
23
24 import javax.swing.table.AbstractTableModel JavaDoc;
25
26 import org.columba.addressbook.model.ContactModelPartial;
27 import org.columba.addressbook.model.IContactModelPartial;
28
29 /**
30  * Simple table model, using an extended TableModel interface.
31  *
32  * @author fdietz
33  */

34 public class AddressbookTableModel extends AbstractTableModel JavaDoc
35         implements
36             ContactItemTableModel {
37     
38     /** JDK 1.4+ logging framework logger, used for logging. */
39     private static final Logger JavaDoc LOG = Logger
40             .getLogger("org.columba.addressbook.gui.table.model");
41     
42     private String JavaDoc[] columns = {"displayname", "given", "family", "email;internet", "url"};
43     private ContactModelPartial[] rows;
44
45     private Map JavaDoc<String JavaDoc,IContactModelPartial> headerItemList;
46
47     public AddressbookTableModel() {
48         super();
49
50     }
51
52     public void setContactItemMap(Map JavaDoc<String JavaDoc,IContactModelPartial> list) {
53         
54         
55         if ( list == null) {
56             LOG.fine("map == null");
57             
58             rows = new ContactModelPartial[0];
59         
60             fireTableDataChanged();
61             
62             return;
63             
64         }
65         
66         
67         this.headerItemList = list;
68
69         if ( list.size() == 0) LOG.fine("map is empty");
70         
71         rows = new ContactModelPartial[list.size()];
72
73         Iterator JavaDoc it = list.values().iterator();
74         int i = 0;
75         while (it.hasNext()) {
76             rows[i++] = (ContactModelPartial) it.next();
77         }
78
79         fireTableDataChanged();
80     }
81
82     public void update() {
83         rows = new ContactModelPartial[headerItemList.size()];
84
85         Iterator JavaDoc it = headerItemList.values().iterator();
86         int i = 0;
87         while (it.hasNext()) {
88             rows[i++] = (ContactModelPartial) it.next();
89         }
90
91         fireTableDataChanged();
92     }
93
94     /**
95      * @see javax.swing.table.TableModel#getColumnCount()
96      */

97     public int getColumnCount() {
98         return columns.length;
99     }
100
101     /**
102      * @see javax.swing.table.TableModel#getRowCount()
103      */

104     public int getRowCount() {
105         if (rows == null)
106             return 0;
107
108         return rows.length;
109     }
110
111     /**
112      * @see javax.swing.table.TableModel#getValueAt(int, int)
113      */

114     public Object JavaDoc getValueAt(int row, int column) {
115         ContactModelPartial item = rows[row];
116
117         switch (column) {
118             case 0 :
119                 return item.getName() != null ? item.getName() : "";
120             case 1 :
121                 return item.getFirstname() != null ? item.getFirstname() : "";
122             case 2 :
123                 return item.getLastname() != null ? item.getLastname() : "";
124             case 3 :
125                 return item.getAddress();
126             case 4 :
127                 return item.getWebsite() != null ? item.getWebsite() : "";
128             default :
129                 return "";
130
131         }
132
133     }
134     /**
135      * @see org.columba.addressbook.gui.table.model.ContactItemTableModel#getHeaderItem(int)
136      */

137     public IContactModelPartial getContactItem(int index) {
138
139         return rows[index];
140     }
141     /**
142      * @return Returns the headerItemList.
143      */

144     public Map JavaDoc<String JavaDoc,IContactModelPartial> getContactItemMap() {
145         return headerItemList;
146     }
147 }
Popular Tags