View Javadoc

1   /*
2    *  soapUI, copyright (C) 2004-2008 eviware.com 
3    *
4    *  soapUI is free software; you can redistribute it and/or modify it under the 
5    *  terms of version 2.1 of the GNU Lesser General Public License as published by 
6    *  the Free Software Foundation.
7    *
8    *  soapUI is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without 
9    *  even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
10   *  See the GNU Lesser General Public License for more details at gnu.org.
11   */
12  
13  package com.eviware.x.impl.swing;
14  
15  import java.awt.Color;
16  import java.awt.Dimension;
17  
18  import javax.swing.BorderFactory;
19  import javax.swing.JComponent;
20  import javax.swing.JScrollPane;
21  import javax.swing.table.TableModel;
22  
23  import org.jdesktop.swingx.JXTable;
24  
25  import com.eviware.x.form.XFormTextField;
26  
27  public class JTableFormField extends AbstractSwingXFormField<JComponent> implements XFormTextField
28  {
29  	private JScrollPane scrollPane;
30  
31  	public JTableFormField(String description)
32  	{
33  		super( new JXTable() );
34  		
35  		scrollPane = new JScrollPane( getTable() );
36  		scrollPane.setPreferredSize(new Dimension( 350, 200 ));
37  		getTable().setToolTipText(description);
38  		getTable().setHorizontalScrollEnabled(true);
39  	}
40  	
41  	public void setRequired(boolean required, String message)
42  	{
43  		super.setRequired(required, message);
44  		
45  		if( required )
46  			getComponent().setBorder( 
47  					BorderFactory.createCompoundBorder(
48  							BorderFactory.createLineBorder( Color.RED ), 
49  							BorderFactory.createEmptyBorder( 2, 2, 2, 2 )));
50  		else
51  			getComponent().setBorder( 
52  					BorderFactory.createCompoundBorder(
53  							BorderFactory.createLineBorder( Color.GRAY ), 
54  							BorderFactory.createEmptyBorder( 2, 2, 2, 2 )));
55  	}
56  	
57  	public JXTable getTable()
58  	{
59  		return (JXTable) super.getComponent();
60  	}
61  	
62  	public JComponent getComponent()
63  	{
64  		return scrollPane;
65  	}
66  	
67  	@Override
68  	public void setProperty(String name, Object value)
69  	{
70  		if( "tableModel".equals(name))
71  		{
72  			getTable().setModel((TableModel) value);
73  		}
74  		else
75  			super.setProperty(name, value);
76  	}
77  	
78  
79  	@Override
80  	public Object getProperty(String name)
81  	{
82  		if( "tableModel".equals(name))
83  		{
84  			return getTable().getModel();
85  		}
86  		else 
87  			return super.getProperty(name);
88  	}
89  
90  	public void setValue(String value)
91  	{
92  		
93  	}
94  
95  	public String getValue()
96  	{
97  		return null;
98  	}
99  
100 	public void setWidth(int columns)
101 	{
102 	}
103 
104 	@Override
105 	public boolean isMultiRow()
106 	{
107 		return true;
108 	}
109 }