> - make ListView / TableView / TreeView extend a common base class > (maybe abstract), because they share some operations, and many times I > have to make changes in all them …
There are two main challenges here: - The selection state of a ListView or TableView is represented as a collection of integers, whereas in TreeView it is a collection of lists of integers. So you could probably share selection management code pretty easily between ListView and TableView, but maybe not TreeView. - All three components fire events with their own type as the source. So you'll need to change the definition of the event listeners to use a common base class as the source, which will break backwards compatibility. Not necessarily a show-stopper, just something to be aware of. > - add an extended JSONSerializer (or add something to the existing > one, it's a detail for now) to be able to trigger custom code > (application-specific) when some data has to be converted to/from json FYI, you can already do something like this by passing a Bean type to the JSONSerializer constructor. When given such a type, JSONSerializer will read and write data from and to the Bean's properties rather than from and to untyped objects like Map and List. G