ObservableList vs Models (original) (raw)

Knut Arne Vedaa knut.arne.vedaa at broadpark.no
Wed Oct 17 14:10:52 PDT 2012


So what you want is one single backing list, and any numbers of "views" into that list that can be independently sorted and filtered without changing or making a copy of the backing list, with these views being observable as well?

I'm not sure if this would be possible, but probably the implementations of the upcoming SortedList and FilteredList (http://javafx-jira.kenai.com/browse/RT-17053) will shed some light on the issue.

Perhaps someone in the know could give some info on the features of those and how and if they relate to OPs question...

Knut Arne Vedaa

On 17.10.2012 22:01, Mark Claassen wrote:

I really like the promise of the ObservableList, but am a bit wary of the current implementation.

We have several instances in our code where we rely on unique models wrapping the same data. We can have a large list of items, and show them in a combo box, and list, and a table. Generally, only one of these is visible at a given time, but having a single backing list is very handy. Further, each list can be independently sorted and filtered via a decorator construct in the model. By tweaking the underlying list object (so it fires events) and model (so that it listens to events), we accomplished something similar to an ObservableList: * Changes to the underlying list fires events to the models * Models could then respond as appropriate, add/deleting/changing items as necessary...perhaps triggering the view to re-sort the decorator as necessary However, different from ObservableList, we can manage the side-effects...not sorting and filtering all models in an identical fashion. Is there a mechanism to do this in JavaFX? The Swing methodology seemed a nice way to do it. With ObservableLists, it seems that in the end, I don't get much. The more common / trivial case is handled. However, in the case of a our application, I will need to * Make several ObservableLists, one for each control * Manage the synchronization between these lists programmaticly by myself. Am I missing something? Is there a way to have an ObservableList listening to another ObservableList, so that list #2 can notice the updates without forcing the sort order and filtering on list #1? Or am I just going to end up having to cut through extra/different layers of abstraction to re-implement what I had in Swing. Mark



More information about the openjfx-dev mailing list