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 com.eviware.x.form.XFormTextField;
16  import org.jdesktop.swingx.JXTable;
17  
18  import javax.swing.*;
19  import javax.swing.table.TableModel;
20  import java.awt.*;
21  
22  public class JTableFormField extends AbstractSwingXFormField<JComponent> implements XFormTextField
23  {
24  	private JScrollPane scrollPane;
25  
26  	public JTableFormField(String description)
27  	{
28  		super( new JTable() );
29  		
30  		scrollPane = new JScrollPane( getTable() );
31  		scrollPane.setPreferredSize(new Dimension( 350, 200 ));
32  		getTable().setToolTipText(description);
33  		getTable().setHorizontalScrollEnabled(true);
34  	}
35  	
36  	public void setRequired(boolean required, String message)
37  	{
38  		super.setRequired(required, message);
39  		
40  		if( required )
41  			getComponent().setBorder( 
42  					BorderFactory.createCompoundBorder(
43  							BorderFactory.createLineBorder( Color.RED ), 
44  							BorderFactory.createEmptyBorder( 2, 2, 2, 2 )));
45  		else
46  			getComponent().setBorder( 
47  					BorderFactory.createCompoundBorder(
48  							BorderFactory.createLineBorder( Color.GRAY ), 
49  							BorderFactory.createEmptyBorder( 2, 2, 2, 2 )));
50  	}
51  	
52  	public JXTable getTable()
53  	{
54  		return (JXTable) super.getComponent();
55  	}
56  	
57  	public JComponent getComponent()
58  	{
59  		return scrollPane;
60  	}
61  	
62  	@Override
63  	public void setProperty(String name, Object value)
64  	{
65  		if( "tableModel".equals(name))
66  		{
67  			getTable().setModel((TableModel) value);
68  		}
69  		else
70  			super.setProperty(name, value);
71  	}
72  	
73  
74  	@Override
75  	public Object getProperty(String name)
76  	{
77  		if( "tableModel".equals(name))
78  		{
79  			return getTable().getModel();
80  		}
81  		else 
82  			return super.getProperty(name);
83  	}
84  
85  	public void setValue(String value)
86  	{
87  		
88  	}
89  
90  	public String getValue()
91  	{
92  		return null;
93  	}
94  
95  	public void setWidth(int columns)
96  	{
97  	}
98  
99  	@Override
100 	public boolean isMultiRow()
101 	{
102 		return true;
103 	}
104 }