01: import java.awt.Component;
02: import java.beans.PropertyEditorSupport;
03: import javax.swing.JScrollPane;
04: import javax.swing.JTextArea;
05: import javax.swing.event.DocumentEvent;
06: import javax.swing.event.DocumentListener;
07: import javax.swing.text.Document;
08: 
09: /**
10:    A property editor for the MultiLineString type.
11: */
12: public class MultiLineStringEditor extends PropertyEditorSupport
13: {
14:    public boolean supportsCustomEditor()
15:    {
16:       return true;
17:    }
18: 
19:    public Component getCustomEditor()
20:    {
21:       final MultiLineString value = (MultiLineString) getValue();
22:       final JTextArea textArea = new JTextArea(10, 40);
23:       textArea.setText(value.getText());
24:       textArea.getDocument().addDocumentListener(new
25:          DocumentListener()
26:          {
27:             public void insertUpdate(DocumentEvent e) 
28:             {
29:                value.setText(textArea.getText());
30:                firePropertyChange();
31:             }
32:             public void removeUpdate(DocumentEvent e) 
33:             {
34:                value.setText(textArea.getText());
35:                firePropertyChange();
36:             }
37:             public void changedUpdate(DocumentEvent e) 
38:             {
39:             }
40:          });
41:       return new JScrollPane(textArea);
42:    }
43: }