1 package org.columba.addressbook.gui.table.model; 19 20 import java.util.Iterator ; 21 import java.util.Map ; 22 import java.util.logging.Logger ; 23 24 import javax.swing.table.AbstractTableModel ; 25 26 import org.columba.addressbook.model.ContactModelPartial; 27 import org.columba.addressbook.model.IContactModelPartial; 28 29 34 public class AddressbookTableModel extends AbstractTableModel 35 implements 36 ContactItemTableModel { 37 38 39 private static final Logger LOG = Logger 40 .getLogger("org.columba.addressbook.gui.table.model"); 41 42 private String [] columns = {"displayname", "given", "family", "email;internet", "url"}; 43 private ContactModelPartial[] rows; 44 45 private Map <String ,IContactModelPartial> headerItemList; 46 47 public AddressbookTableModel() { 48 super(); 49 50 } 51 52 public void setContactItemMap(Map <String ,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 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 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 97 public int getColumnCount() { 98 return columns.length; 99 } 100 101 104 public int getRowCount() { 105 if (rows == null) 106 return 0; 107 108 return rows.length; 109 } 110 111 114 public Object 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 137 public IContactModelPartial getContactItem(int index) { 138 139 return rows[index]; 140 } 141 144 public Map <String ,IContactModelPartial> getContactItemMap() { 145 return headerItemList; 146 } 147 } | Popular Tags |