Custom Document for Comma Separated Values in a JTextField
Hi,
I tried to create a custom structured Document implementation for comma separated values (on one line) in a JTextField:
I want to have one LeafElement for each value (to store as an attribute the Object associated with this value). So, if I plug a DocumentListener to the JTextField, I can easily see which value(s) have been added/removed (see ElementChange).
I used the PlainDocument implementation as a starting point and replaced the logic related to the '\n' character by the ',' (see #insertUpdate).
Then I realized that the View must be customized too. So I created a View with a custom #paint method to draw each LeafElement on the same line.
But, now, I try to fix the ElementChange returned by the #insertUpdate and #removeUpdate methods.
Indeed, I played with a JTextArea with two lines "Bart\nisa" and plugged a debugging DocumentListener.
And the event I get when I type 'L' before "isa" is really strange:
- Two elements removed,
- Two elements added.
In the PlainDocument#insertUpdate, the code updates the 'offset' but I don't understand the logic behind.
Could you explain me why I got this result?
Could you give me an hint?
Best Regards,
El Barto.

