java - BeanProperties.list().observe() does not propagate ListChangeEvent -


i have data class contains observable list of items:

public class data {     private final iobservablelist items = writablelist.withelementtype(item.class);      public iobservablelist getitems() {        return items;             } } 

when bind directly items fine:

data.addlistchangelistener(mylistener); //ok 

but when bind items via beanproperties.list() listchangeevent not propagated

beanproperties.list(data.class, "items", item.class).     observe(data).addlistchangelistener(mylistener); //not working 

my goal automatically add rows (and remove from) tree.

realm realm = swtobservables.getrealm(composite.getdisplay()); ilistproperty listproperty = beanproperties.list(data.class, "items", item.class); iobservablefactory observablefactory = listproperty.listfactory(realm); observablelisttreecontentprovider contentprovider = new observablelisttreecontentprovider(observablefactory, null); treeviewer.setcontentprovider(contentprovider); 

it seems beanproperties not expect property iobservablelist. have implemented own observablelistproperty. works only properties of iobservablelist type.

public class observablelistproperty extends listproperty {     private final propertydescriptor propertydescriptor;     private final class elementtype;      public observablelistproperty(class beanclass, string propertyname) {         this(beanclass, propertyname, null);     }      public observablelistproperty(class beanclass, string propertyname, class elementtype) {         propertydescriptor = beanpropertyhelper.getpropertydescriptor(beanclass, propertyname);         if (elementtype == null) {             elementtype = beanpropertyhelper.getcollectionpropertyelementtype(propertydescriptor);         }         this.elementtype = elementtype;     }      @override     public object getelementtype() {         return elementtype;     }      @override     public iobservablelist observe(realm realm, object source) {         iobservablelist list = (iobservablelist)beanpropertyhelper.readproperty(source, propertydescriptor);         return new decoratingobservablelist(list, false);     } } 

Comments

Popular posts from this blog

javascript - Using jquery append to add option values into a select element not working -

Android soft keyboard reverts to default keyboard on orientation change -

Rendering JButton to get the JCheckBox behavior in a JTable by using images does not update my table -