1 package org.columba.mail.gui.table.plugins; 17 18 import java.awt.Component ; 19 20 import javax.swing.ImageIcon ; 21 import javax.swing.JTable ; 22 import javax.swing.SwingConstants ; 23 import javax.swing.UIManager ; 24 import javax.swing.table.DefaultTableCellRenderer ; 25 import javax.swing.table.JTableHeader ; 26 27 import org.columba.core.gui.base.AscendingIcon; 28 import org.columba.core.gui.base.DescendingIcon; 29 import org.columba.mail.gui.table.model.TableModelSorter; 30 31 32 33 public class BasicHeaderRenderer extends DefaultTableCellRenderer { 34 private TableModelSorter sorter; 35 private ImageIcon ascending = new AscendingIcon(); 36 private ImageIcon descending = new DescendingIcon(); 37 private String name; 38 39 public BasicHeaderRenderer(String name, TableModelSorter sorter) { 40 super(); 41 42 this.name = name; 43 this.sorter = sorter; 44 45 setHorizontalAlignment(SwingConstants.LEFT); 46 setHorizontalTextPosition(SwingConstants.LEFT); 47 } 48 49 public Component getTableCellRendererComponent(JTable table, Object value, 50 boolean isSelected, boolean hasFocus, int row, int column) { 51 if (table != null) { 52 JTableHeader header = table.getTableHeader(); 53 54 if (header != null) { 55 setForeground(header.getForeground()); 56 setBackground(header.getBackground()); 57 setFont(header.getFont()); 58 } 59 } 60 61 setText((value == null) ? "" : value.toString()); 62 setBorder(UIManager.getBorder("TableHeader.cellBorder")); 63 64 if (sorter.getSortingColumn().equals(name)) { 65 if (sorter.getSortingOrder()) { 66 setIcon(descending); 67 } else { 68 setIcon(ascending); 69 } 70 } else { 71 setIcon(null); 72 } 73 74 return this; 75 } 76 } 77 | Popular Tags |