KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > jaspersoft > jasperserver > irplugin > gui > inputcontrols > ui > MultiColumnListInputControlUI


1 /*
2  * ListInputControlUI.java
3  *
4  * All rights reserved.
5  * Copyright (C) 2005 JasperSoft Corporation
6  *
7  * JasperSoft Corporation
8  * 303 Second Street, Suite 450 North
9  * San Francisco, CA 94107
10  * http://www.jaspersoft.com
11  *
12  *
13  * Created on June 8, 2006, 2:59 PM
14  *
15  */

16
17 package com.jaspersoft.jasperserver.irplugin.gui.inputcontrols.ui;
18
19 import com.jaspersoft.jasperserver.api.metadata.xml.domain.impl.InputControlQueryDataRow;
20 import com.jaspersoft.jasperserver.irplugin.gui.inputcontrols.ListItemWrapper;
21 import com.jaspersoft.jasperserver.irplugin.gui.inputcontrols.ui.ItemRenderer;
22 import java.awt.Color JavaDoc;
23 import java.awt.Component JavaDoc;
24 import java.awt.GridLayout JavaDoc;
25 import javax.swing.JLabel JavaDoc;
26 import javax.swing.JList JavaDoc;
27 import javax.swing.JPanel JavaDoc;
28 import javax.swing.ListCellRenderer JavaDoc;
29
30
31 /**
32  *
33  * @author gtoffoli
34  */

35 public class MultiColumnListInputControlUI extends BasicInputControlUI {
36     
37     /**
38      * Creates a new instance of ListInputControlUI
39      */

40     public MultiColumnListInputControlUI() {
41         super();
42         setComboEditable(false);
43         getJComboBoxValue().setMinimumSize(new java.awt.Dimension JavaDoc(400,26));
44     }
45     
46     public void setHistory(java.util.List JavaDoc values){
47         
48         getJComboBoxValue().removeAllItems();
49         if (values == null) return;
50         
51         // Try to understand how much columns...
52
int maxColumns = 1;
53         for (int i=0; i<values.size(); ++i)
54         {
55             InputControlQueryDataRow qd = (InputControlQueryDataRow)values.get(i);
56             maxColumns = (qd.getColumnValues().size()>maxColumns) ? qd.getColumnValues().size() : maxColumns;
57         }
58         //System.out.println("ItemRenderer set to" + maxColumns );
59
getJComboBoxValue().setRenderer(new ItemRenderer(maxColumns));
60         
61         for (int i=0; i<values.size(); ++i)
62         {
63             getJComboBoxValue().addItem( values.get(i));
64         }
65         
66         if (getJComboBoxValue().getItemCount() > 0)
67         {
68             getJComboBoxValue().setSelectedIndex(0);
69         }
70         
71         getJComboBoxValue().updateUI();
72     }
73     
74     public void setValue(Object JavaDoc v)
75     {
76         for (int i=0; i<getJComboBoxValue().getItemCount(); ++i)
77         {
78             Object JavaDoc val = getJComboBoxValue().getItemAt(i);
79             
80             if (val instanceof InputControlQueryDataRow)
81             {
82                 val = ((InputControlQueryDataRow)val).getValue();
83                 if ( ((val == null) ? val == v : val.equals(v)) )
84                 {
85                     getJComboBoxValue().setSelectedIndex(i);
86                     return;
87                 }
88             }
89         }
90         
91         getJComboBoxValue().setSelectedItem(v);
92     }
93      
94      public Object JavaDoc getValue()
95     {
96         Object JavaDoc val = getJComboBoxValue().getSelectedItem();
97         if (val == null) return null;
98         if (val instanceof InputControlQueryDataRow)
99         {
100             return ((InputControlQueryDataRow)val).getValue();
101         }
102         
103         return val;
104     }
105      
106      
107      
108 }
109
Popular Tags