KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > genimen > djeneric > ui > DjCheckCellRenderer


1 /*
2  * Copyright (c) 2001-2005 by Genimen BV (www.genimen.com) All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without modification, is permitted
5  * provided that the following conditions are met:
6  * - Redistributions of source code must retain the above copyright notice, this list of conditions
7  * and the following disclaimer.
8  * - Redistributions in binary form must reproduce the above copyright notice, this list of
9  * conditions and the following disclaimer in the documentation and/or other materials
10  * provided with the distribution.
11  * - All advertising materials mentioning features or use of this software must display the
12  * following acknowledgment: "This product includes Djeneric."
13  * - Products derived from this software may not be called "Djeneric" nor may
14  * "Djeneric" appear in their names without prior written permission of Genimen BV.
15  * - Redistributions of any form whatsoever must retain the following acknowledgment: "This
16  * product includes Djeneric."
17  *
18  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS "AS IS"
19  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21  * ARE DISCLAIMED. IN NO EVENT SHALL GENIMEN BV, DJENERIC.ORG,
22  * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
23  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
24  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
25  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
26  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
28  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29  */

30 package com.genimen.djeneric.ui;
31
32 import java.awt.Component JavaDoc;
33
34 import javax.swing.JCheckBox JavaDoc;
35 import javax.swing.JTable JavaDoc;
36 import javax.swing.UIManager JavaDoc;
37 import javax.swing.border.Border JavaDoc;
38 import javax.swing.border.EmptyBorder JavaDoc;
39 import javax.swing.table.TableCellRenderer JavaDoc;
40
41 import com.genimen.djeneric.language.Messages;
42 import com.genimen.djeneric.repository.DjDomain;
43 import com.genimen.djeneric.repository.DjDomainValue;
44
45 /**
46  * Description of the Class
47  *
48  *@author Wido Riezebos
49  *@created November 5, 2001
50  */

51 public class DjCheckCellRenderer extends JCheckBox JavaDoc implements TableCellRenderer JavaDoc
52 {
53   private static final long serialVersionUID = 1L;
54
55   protected static Border JavaDoc _noFocusBorder;
56
57   protected DjDomainValue[] _domainValues = null;
58
59   /**
60    * Constructor for the DjCheckCellRenderer object
61    */

62   public DjCheckCellRenderer()
63   {
64     super();
65     _noFocusBorder = new EmptyBorder JavaDoc(1, 2, 1, 2);
66     setOpaque(true);
67     setBorder(_noFocusBorder);
68   }
69
70   /**
71    * Constructor for the DjCheckCellRenderer object
72    *
73    *@param dom Description of the Parameter
74    *@exception Exception Description of the Exception
75    */

76   public DjCheckCellRenderer(DjDomain dom) throws Exception JavaDoc
77   {
78     this();
79     _domainValues = dom.getValidValues();
80     if (_domainValues.length != 2)
81     {
82       throw new Exception JavaDoc(Messages.getString("DjCheckCellRenderer.Domain", dom.getName()));
83     }
84   }
85
86   /**
87    * Gets the tableCellRendererComponent attribute of the DjCheckCellRenderer
88    * object
89    *
90    *@param table Description of the Parameter
91    *@param value Description of the Parameter
92    *@param isSelected Description of the Parameter
93    *@param hasFocus Description of the Parameter
94    *@param row Description of the Parameter
95    *@param column Description of the Parameter
96    *@return The tableCellRendererComponent value
97    */

98   public Component JavaDoc getTableCellRendererComponent(JTable JavaDoc table, Object JavaDoc value, boolean isSelected, boolean hasFocus,
99                                                  int row, int column)
100   {
101     if (_domainValues != null)
102     {
103       setSelected(_domainValues[0].getDescription().equals(value));
104     }
105     else if (value instanceof Boolean JavaDoc)
106     {
107       Boolean JavaDoc b = (Boolean JavaDoc) value;
108       setSelected(b.booleanValue());
109     }
110
111     setBackground(isSelected && !hasFocus ? table.getSelectionBackground() : table.getBackground());
112     setForeground(isSelected && !hasFocus ? table.getSelectionForeground() : table.getForeground());
113
114     setFont(table.getFont());
115     setBorder(hasFocus ? UIManager.getBorder("Table.focusCellHighlightBorder") : _noFocusBorder);
116     return this;
117   }
118
119 }
Popular Tags