1
2
3
4
5
6
7
8
9
10
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 }