2

I have the following model:

public class HoverDescriptor {

    private String id;
    private String label;
    private boolean enabled;
    private String description;
    private int stateMask;
    private String modifierString;

    public HoverDescriptor(String id, String label, boolean isEnabled, String description,
        ...
}

public class HoverViewModel {

    Set<HoverDescriptor> mHovers;

    private HoverViewModel() {
        mHovers = new HashSet<HoverDescriptor>();
        mHovers.add(new HoverDescriptor("Mock1", "Label1", true, "Desc1", SWT.DEFAULT, ""));
        mHovers.add(new HoverDescriptor("Mock2", "Label2", false, "Desc2",SWT.DEFAULT, ""));
        mHovers.add(new HoverDescriptor("Mock3", "Label3", false, "Desc3", SWT.DEFAULT, ""));
    }

    public static HoverViewModel newInstance() {
        return new HoverViewModel();
    }

    public Set<HoverDescriptor> getHovers() {
        return mHovers;
    }

I would like to bind:

final IObservableSet checkedElements = ViewersObservables.observeCheckedElements(viewer, HoverDescriptor.class);

to the following ObservableMap:

IBeanSetProperty descriptors = PojoProperties.set("hovers", HoverDescriptor.class);
IObservableMap observeMap = PojoObservables.observeMap(descriptors.observe(fViewModel), HoverDescriptor.class, "enabled");

But, except from the deprecated MappedSet and DataBindingContext.bindSet(?) I couldn't find any idiomatic way. How can I effectively do it?

Andrea Richiardi
  • 703
  • 6
  • 21

0 Answers0