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
17 import javax.swing.BorderFactory;
18 import javax.swing.JTextField;
19 import javax.swing.text.Document;
20
21 import com.eviware.soapui.support.DocumentListenerAdapter;
22 import com.eviware.x.form.XFormTextField;
23
24 public class JTextFieldFormField extends AbstractSwingXFormField<JTextField> implements XFormTextField
25 {
26 private boolean updating;
27 private String oldValue;
28
29 public JTextFieldFormField()
30 {
31 super( new JTextField() );
32
33 getComponent().getDocument().addDocumentListener( new DocumentListenerAdapter() {
34
35 @Override
36 public void update( Document document )
37 {
38 String text = getComponent().getText();
39
40 if( !updating )
41 fireValueChanged( text, oldValue );
42
43 oldValue = text;
44 }} );
45 }
46
47 public void setRequired(boolean required, String message)
48 {
49 super.setRequired(required, message);
50
51 if( required )
52 getComponent().setBorder(
53 BorderFactory.createCompoundBorder(
54 BorderFactory.createLineBorder( Color.RED ),
55 BorderFactory.createEmptyBorder( 2, 2, 2, 2 )));
56 else
57 getComponent().setBorder(
58 BorderFactory.createCompoundBorder(
59 BorderFactory.createLineBorder( Color.GRAY ),
60 BorderFactory.createEmptyBorder( 2, 2, 2, 2 )));
61 }
62
63 public void setValue(String value)
64 {
65 updating = true;
66 oldValue = null;
67 getComponent().setText( value );
68 updating = false;
69 }
70
71 public String getValue()
72 {
73 return getComponent().getText();
74 }
75
76 public void setWidth(int columns)
77 {
78 getComponent().setColumns( columns );
79 }
80 }