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