KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > compiere > minigrid > IDColumnRenderer


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.minigrid;
15
16 import java.awt.*;
17 import javax.swing.*;
18 import javax.swing.table.*;
19
20 /**
21  * ID Column Renderer
22  *
23  * @author Jorg Janke
24  * @version $Id: IDColumnRenderer.java,v 1.4 2002/08/12 01:55:14 danb Exp $
25  */

26 public class IDColumnRenderer extends DefaultTableCellRenderer
27 {
28     /**
29      * Constructor
30      * @param multiSelection determines layout - button for single, check for multi
31      */

32     public IDColumnRenderer(boolean multiSelection)
33     {
34         super();
35         m_multiSelection = multiSelection;
36         // Multi => Check
37
if (m_multiSelection)
38         {
39             m_check = new JCheckBox();
40             m_check.setMargin(new Insets(0,0,0,0));
41             m_check.setHorizontalAlignment(JLabel.CENTER);
42         }
43         else // Single => Button
44
{
45             m_button = new JButton();
46             m_button.setMargin(new Insets(0,0,0,0));
47             m_button.setSize(new Dimension(5,5));
48         }
49     } // IDColumnRenderer
50

51     /** Mult-Selection flag */
52     private boolean m_multiSelection;
53     /** The Single-Selection renderer */
54     private JButton m_button;
55     /* The Multi-Selection renderer */
56     private JCheckBox m_check;
57
58     /**
59      * Set Value (for multi-selection)
60      * @param value
61      */

62     protected void setValue(Object JavaDoc value)
63     {
64         if (m_multiSelection)
65         {
66             boolean sel = false;
67             if (value == null)
68                 ;
69             else if (value instanceof IDColumn)
70                 sel = ((IDColumn)value).isSelected();
71             else if (value instanceof Boolean JavaDoc)
72                 sel = ((Boolean JavaDoc)value).booleanValue();
73             else
74                 sel = value.toString().equals("Y");
75             //
76
m_check.setSelected(sel);
77         }
78     } // setValue
79

80     /**
81      * Return rendering component
82      * @param table
83      * @param value
84      * @param isSelected
85      * @param hasFocus
86      * @param row
87      * @param column
88      * @return Component (CheckBox or Button)
89      */

90     public Component getTableCellRendererComponent(JTable table, Object JavaDoc value, boolean isSelected, boolean hasFocus, int row, int column)
91     {
92         setValue(value);
93         if (m_multiSelection)
94             return m_check;
95         else
96             return m_button;
97     } // setTableCellRenderereComponent
98

99 } // IDColumnRenderer
100
Popular Tags