1 package org.columba.addressbook.gui.table.renderer; 19 20 import java.awt.Component ; 21 22 import javax.swing.ImageIcon ; 23 import javax.swing.JTable ; 24 import javax.swing.SwingConstants ; 25 import javax.swing.UIManager ; 26 import javax.swing.table.DefaultTableCellRenderer ; 27 import javax.swing.table.JTableHeader ; 28 29 import org.columba.addressbook.gui.table.model.SortDecorator; 30 import org.columba.core.gui.base.AscendingIcon; 31 import org.columba.core.gui.base.DescendingIcon; 32 33 36 37 public class DefaultHeaderRenderer extends DefaultTableCellRenderer { 38 39 private String name; 40 41 private ImageIcon ascending = new AscendingIcon(); 42 43 private ImageIcon descending = new DescendingIcon(); 44 45 private SortDecorator sorter; 46 47 public DefaultHeaderRenderer(SortDecorator sorter, String name) { 48 super(); 49 50 this.name = name; 51 this.sorter = sorter; 52 53 setHorizontalAlignment(SwingConstants.LEFT); 54 setHorizontalTextPosition(SwingConstants.LEFT); 55 56 setOpaque(true); 58 setBorder(UIManager.getBorder("TableHeader.cellBorder")); 59 } 60 61 public Component getTableCellRendererComponent(JTable table, Object str, 62 boolean isSelected, boolean hasFocus, int row, int column) { 63 64 if (table != null) { 65 JTableHeader header = table.getTableHeader(); 66 67 if (header != null) { 68 setForeground(header.getForeground()); 69 setBackground(header.getBackground()); 70 setFont(header.getFont()); 71 } 72 } 73 74 if (sorter.getColumnName(sorter.getSelectedColumn()).equals( 75 (String ) str)) { 76 if (sorter.isSortOrder()) { 77 setIcon(descending); 78 } else { 79 setIcon(ascending); 80 } 81 } else { 82 setIcon(null); 83 } 84 85 setText(this.name); 86 87 return this; 88 } 89 } | Popular Tags |