KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > columba > mail > gui > table > plugins > BasicHeaderRenderer


1 //The contents of this file are subject to the Mozilla Public License Version 1.1
2
//(the "License"); you may not use this file except in compliance with the
3
//License. You may obtain a copy of the License at http://www.mozilla.org/MPL/
4
//
5
//Software distributed under the License is distributed on an "AS IS" basis,
6
//WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
7
//for the specific language governing rights and
8
//limitations under the License.
9
//
10
//The Original Code is "The Columba Project"
11
//
12
//The Initial Developers of the Original Code are Frederik Dietz and Timo Stich.
13
//Portions created by Frederik Dietz and Timo Stich are Copyright (C) 2003.
14
//
15
//All Rights Reserved.
16
package org.columba.mail.gui.table.plugins;
17
18 import java.awt.Component JavaDoc;
19
20 import javax.swing.ImageIcon JavaDoc;
21 import javax.swing.JTable JavaDoc;
22 import javax.swing.SwingConstants JavaDoc;
23 import javax.swing.UIManager JavaDoc;
24 import javax.swing.table.DefaultTableCellRenderer JavaDoc;
25 import javax.swing.table.JTableHeader JavaDoc;
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 JavaDoc {
34     private TableModelSorter sorter;
35     private ImageIcon JavaDoc ascending = new AscendingIcon();
36     private ImageIcon JavaDoc descending = new DescendingIcon();
37     private String JavaDoc name;
38
39     public BasicHeaderRenderer(String JavaDoc 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 JavaDoc getTableCellRendererComponent(JTable JavaDoc table, Object JavaDoc value,
50         boolean isSelected, boolean hasFocus, int row, int column) {
51         if (table != null) {
52             JTableHeader JavaDoc 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