There is no possibility to get information about text removed from TextArea component. In the ParagraphListener there are two methods:
- void textInserted(Paragraph paragraph, int index, int count) - this one is OK, information about inserted text can be retrieved from the paragraph's CharSequence (using getCharacters() method), there is everything what is needed: index and count
- void textRemoved(Paragraph paragraph, int index, int count) - here the problem begins, paragraph received as parameter has no text that was removed because it has been already removed.
Of course one can make a deep copy of paragraph's characters (every time it changed) and search for removed text using previously created copy, but is it really too expensive.
I checked the source and in the TextArea.Paragraph class in the method void removeText(int index, int count) there is a line where real text removal operation takes place: characters.delete(index, index + count), but removed text is not stored or passed to any of the listeners.