01: /*
02: * Copyright (C) 2005 - 2008 JasperSoft Corporation. All rights reserved.
03: * http://www.jaspersoft.com.
04: *
05: * Unless you have purchased a commercial license agreement from JasperSoft,
06: * the following license terms apply:
07: *
08: * This program is free software; you can redistribute it and/or modify
09: * it under the terms of the GNU General Public License version 2 as published by
10: * the Free Software Foundation.
11: *
12: * This program is distributed WITHOUT ANY WARRANTY; and without the
13: * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
14: * See the GNU General Public License for more details.
15: *
16: * You should have received a copy of the GNU General Public License
17: * along with this program; if not, see http://www.gnu.org/licenses/gpl.txt
18: * or write to:
19: *
20: * Free Software Foundation, Inc.,
21: * 59 Temple Place - Suite 330,
22: * Boston, MA USA 02111-1307
23: *
24: *
25: *
26: *
27: * CheckboxCellRenderer.java
28: *
29: * Created on October 5, 2006, 10:03 AM
30: *
31: */
32:
33: package it.businesslogic.ireport.gui.fonts;
34:
35: import java.awt.Color;
36: import java.awt.Component;
37: import javax.swing.DefaultListCellRenderer;
38: import javax.swing.JCheckBox;
39: import javax.swing.JList;
40: import javax.swing.UIManager;
41: import javax.swing.border.*;
42:
43: /**
44: *
45: * @author gtoffoli
46: */
47: public class CheckboxCellRenderer extends DefaultListCellRenderer {
48: protected static Border noFocusBorder = new EmptyBorder(1, 1, 1, 1);
49:
50: public Component getListCellRendererComponent(JList list,
51: Object value, int index, boolean isSelected,
52: boolean cellHasFocus) {
53: if (value instanceof CheckBoxListEntry) {
54: CheckBoxListEntry checkbox = (CheckBoxListEntry) value;
55: checkbox.setBackground(isSelected ? list
56: .getSelectionBackground() : list.getBackground());
57: if (checkbox.isRed()) {
58: checkbox.setForeground(Color.red);
59: } else {
60: checkbox.setForeground(isSelected ? list
61: .getSelectionForeground() : list
62: .getForeground());
63: }
64: checkbox.setEnabled(isEnabled());
65: checkbox.setFont(getFont());
66: checkbox.setFocusPainted(false);
67: checkbox.setBorderPainted(true);
68: checkbox.setBorder(isSelected ? UIManager
69: .getBorder("List.focusCellHighlightBorder")
70: : noFocusBorder);
71:
72: return checkbox;
73: } else {
74: return super.getListCellRendererComponent(list, value
75: .getClass().getName(), index, isSelected,
76: cellHasFocus);
77: }
78: }
79: }
|