1 package org.columba.addressbook.gui.table; 19 20 import java.awt.Dimension ; 21 22 import javax.swing.JTable ; 23 import javax.swing.table.TableColumn ; 24 import javax.swing.table.TableModel ; 25 26 import org.columba.addressbook.gui.table.renderer.DefaultHeaderRenderer; 27 import org.columba.addressbook.util.AddressbookResourceLoader; 28 29 34 public class TableView extends JTable { 35 36 private TableController controller; 37 38 public TableView(TableController controller, TableModel tableModel) { 39 super(tableModel); 40 41 this.controller = controller; 42 43 setIntercellSpacing(new Dimension (0, 0)); 45 setShowGrid(false); 46 setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS); 47 48 TableColumn tc = getColumnModel().getColumn(0); 50 51 tc = getColumnModel().getColumn(0); 52 tc.setHeaderRenderer(createHeader("displayname")); 53 tc = getColumnModel().getColumn(1); 54 tc.setHeaderRenderer(createHeader("given")); 55 tc = getColumnModel().getColumn(2); 56 tc.setHeaderRenderer(createHeader("family")); 57 tc = getColumnModel().getColumn(3); 58 tc.setHeaderRenderer(createHeader("email;internet")); 59 tc = getColumnModel().getColumn(4); 60 tc.setHeaderRenderer(createHeader("url")); 61 } 62 63 public boolean getScrollableTracksViewportHeight() { 64 return getPreferredSize().height < getParent().getHeight(); 65 } 66 67 79 private DefaultHeaderRenderer createHeader(String name) { 80 int index = name.indexOf(";"); 81 82 if (index != -1) { 83 String prefix = AddressbookResourceLoader.getString("header", name 84 .substring(0, index)); 85 String suffix = AddressbookResourceLoader.getString("header", name 86 .substring(index + 1, name.length())); 87 88 return new DefaultHeaderRenderer(controller.getSortDecorator(), 89 prefix + " (" + suffix + ")"); 90 } else { 91 String trans = AddressbookResourceLoader.getString("header", name); 92 return new DefaultHeaderRenderer(controller.getSortDecorator(), 93 trans); 94 } 95 96 } 99 } 100 | Popular Tags |