View Javadoc

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