Revision 2487 org.gvsig.tools/library/trunk/org.gvsig.tools/org.gvsig.tools.dynform/org.gvsig.tools.dynform.services/src/main/java/org/gvsig/tools/dynform/services/dynformfield/Text/JDynFormFieldText.java

View differences:

JDynFormFieldText.java
23 23
 */
24 24
package org.gvsig.tools.dynform.services.dynformfield.Text;
25 25

  
26
import java.awt.event.ContainerEvent;
27
import java.awt.event.ContainerListener;
26 28
import java.util.Objects;
27 29
import javax.swing.JTextArea;
30
import javax.swing.event.DocumentEvent;
31
import javax.swing.event.DocumentListener;
32
import org.apache.commons.lang3.StringUtils;
28 33
import org.gvsig.tools.dynform.DynFormFieldDefinition;
29 34

  
30 35
import org.gvsig.tools.dynform.JDynFormField;
......
47 52
            Object value
48 53
    ) {
49 54
        super(serviceManager, componentsFactory, factory, definition, value);
50
        this.assignedValue = Objects.toString(value, "");
55
        this.assignedValue = Objects.toString(value, null);
51 56
    }
52 57

  
53 58
    @Override
......
61 66

  
62 67
    @Override
63 68
    public void initComponent() {
64
        this.textArea = this.getComponentsFactory().getJTextArea(this.getDefinition(), null);
69
        ScrolledComponent<JTextArea> text = this.getComponentsFactory().getJTextArea(this.getDefinition(), null);
70
        this.textArea = text;
71
        text.getComponent().getDocument().addDocumentListener(new DocumentListener() {
72
            @Override
73
            public void insertUpdate(DocumentEvent e) {
74
                fireFieldChangedEvent();
75
            }
76

  
77
            @Override
78
            public void removeUpdate(DocumentEvent e) {
79
                fireFieldChangedEvent();
80
            }
81

  
82
            @Override
83
            public void changedUpdate(DocumentEvent e) {
84
                fireFieldChangedEvent();
85
            }
86
        });
65 87
        this.contents = this.textArea.getScrollPane();
66 88
        this.getJTextArea().setLineWrap(true);
67 89
        this.getJTextArea().setWrapStyleWord(true);
......
76 98

  
77 99
    @Override
78 100
    public void setValue(Object value) {
79
        String s;
80
        if (value == null) {
81
            value = this.getDefinition().getDefaultValue();
82
            if (value == null) {
83
                s = "";
84
            } else {
85
                s = value.toString();
86
            }
87
        } else {
88
            s = value.toString();
89
        }
101
        String s = Objects.toString(value, "");
102
        this.assignedValue = Objects.toString(value, null);
90 103
        this.getJTextArea().setText(s);
104
        this.setTranslateEmptyToNull(value == null);
91 105
    }
92 106

  
93 107
    @Override
94 108
    public Object getValue() {
95
        Object value;
96 109
        String s = this.getJTextArea().getText();
97
        if (s.trim().length() == 0) {
98
            value = (String) this.getDefinition().getDefaultValue();
99
        } else {
100
            value = s;
110
        if (this.translateEmptyToNull() && StringUtils.isBlank(s)) {
111
            return null;
101 112
        }
102
        this.setValue(value);
103
        return value;
113
        return s;
104 114
    }
105 115

  
106 116
    @Override
......
108 118
        return true;
109 119
    }
110 120

  
111
    @Override
112
    public void clear() {
113
        Object value = this.getDefinition().getDefaultValue();
114
        if (value != null) {
115
            value = value.toString();
116
        } else {
117
            value = "";
118
        }
119
        this.getJTextArea().setText((String) value);
120
    }
121
//    @Override
122
//    public void clear() {
123
//        Object value = this.getDefinition().getDefaultValue();
124
//        String s = Objects.toString(value, "");
125
//        this.getJTextArea().setText(s);
126
//    }
121 127
}

Also available in: Unified diff