KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > compiere > report > core > ResultTableCellRenderer


1 /******************************************************************************
2  * The contents of this file are subject to the Compiere License Version 1.1
3  * ("License"); You may not use this file except in compliance with the License
4  * You may obtain a copy of the License at http://www.compiere.org/license.html
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 for
7  * the specific language governing rights and limitations under the License.
8  * The Original Code is Compiere ERP & CRM Business Solution
9  * The Initial Developer of the Original Code is Jorg Janke and ComPiere, Inc.
10  * Portions created by Jorg Janke are Copyright (C) 1999-2001 Jorg Janke, parts
11  * created by ComPiere are Copyright (C) ComPiere, Inc.; All Rights Reserved.
12  * Contributor(s): ______________________________________.
13  *****************************************************************************/

14 package org.compiere.report.core;
15
16 import java.awt.*;
17 import javax.swing.*;
18 import javax.swing.table.*;
19
20 import java.math.*;
21 import java.text.*;
22 import java.util.*;
23
24 import org.compiere.util.*;
25 import org.compiere.plaf.*;
26
27 /**
28  * Cell Renderer for Report Result Table
29  *
30  * @author Jorg Janke
31  * @version $Id: ResultTableCellRenderer.java,v 1.4 2002/08/12 01:55:12 danb Exp $
32  */

33 class ResultTableCellRenderer extends DefaultTableCellRenderer implements TableCellRenderer
34 {
35     /**
36      * Constructor (extends Label)
37      * @param rm
38      * @param rc
39      */

40     public ResultTableCellRenderer(RModel rm, RColumn rc)
41     {
42         m_rm = rm;
43         m_rc = rc;
44         int dt = m_rc.getDisplayType();
45         // Numbers
46
if (DisplayType.isNumeric(dt))
47         {
48             super.setHorizontalAlignment(JLabel.TRAILING);
49             m_nFormat = DisplayType.getNumberFormat(dt);
50         }
51         // Dates
52
else if (DisplayType.isDate(m_rc.getDisplayType()))
53         {
54             super.setHorizontalAlignment(JLabel.TRAILING);
55             m_dFormat = DisplayType.getDateFormat(dt);
56         }
57         //
58
else if (dt == DisplayType.YesNo)
59         {
60             m_check = new JCheckBox();
61             m_check.setMargin(new Insets(0,0,0,0));
62             m_check.setHorizontalAlignment(JLabel.CENTER);
63         }
64     } // ResultTableCellRenderer
65

66     /** Report Column */
67     private RModel m_rm = null;
68     /** Report Column */
69     private RColumn m_rc = null;
70     /** Number Format */
71     private DecimalFormat m_nFormat = null;
72     /** Date Format */
73     private SimpleDateFormat m_dFormat = null;
74     /** Boolean renderer */
75     private JCheckBox m_check;
76
77
78     /**
79      * Return Renderer Component
80      * @param table
81      * @param value
82      * @param isSelected
83      * @param hasFocus
84      * @param row
85      * @param col
86      * @return renderer component
87      */

88     public Component getTableCellRendererComponent(JTable table, Object JavaDoc value,
89         boolean isSelected, boolean hasFocus, int row, int col)
90     {
91         // Get Component
92
Component c = m_check;
93         if (c == null) // default JLabel
94
c = super.getTableCellRendererComponent(table,value, isSelected,hasFocus, row,col);
95         // Background
96
if (m_rm.isCellEditable(row, col))
97             c.setBackground(CompierePLAF.getFieldBackground_Normal());
98         else
99             c.setBackground(CompierePLAF.getFieldBackground_Inactive());
100         //
101
if (m_rm.isGroupRow(row))
102             c.setFont(c.getFont().deriveFont(Font.BOLD));
103         // Value
104
setValue (value);
105         return c;
106     } // getTableCellRendererComponent
107

108     /**
109      * Set Value
110      * @param value
111      */

112     protected void setValue (Object JavaDoc value)
113     {
114         // Boolean
115
if (m_check != null)
116         {
117             boolean sel = false;
118             if (value != null && ((Boolean JavaDoc)value).booleanValue())
119                 sel = true;
120             m_check.setSelected(sel);
121             return;
122         }
123
124         // JLabel
125
if (value == null)
126             setText("");
127         else if (m_nFormat != null)
128             try
129             {
130                 setText(m_nFormat.format(value));
131             }
132             catch (Exception JavaDoc e)
133             {
134                 setText(value.toString());
135             }
136         else if (m_dFormat != null)
137             try
138             {
139                 setText(m_dFormat.format(value));
140             }
141             catch (Exception JavaDoc e)
142             {
143                 setText(value.toString());
144             }
145         else
146             setText(value.toString());
147     } // setValue
148

149 } // ResultTableCellRenderer
150
Popular Tags