Skip to main content



      Home
Home » Eclipse Projects » Eclipse Platform » treeviewer databinding error
treeviewer databinding error [message #328444] Sun, 25 May 2008 07:56 Go to next message
Eclipse UserFriend
I tried a treeviewer jface databinding but got some error. Could someone
tell me what causes the error. Here are the error I got:
org.eclipse.core.databinding - 4 - cannot get value
java.lang.IllegalArgumentException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce ssorImpl.java:64)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe thodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:615)
at
org.eclipse.core.internal.databinding.beans.JavaBeanObservab leMap.doGet(JavaBeanObservableMap.java:105)
at
org.eclipse.core.databinding.observable.map.ComputedObservab leMap$1.handleSetChange(ComputedObservableMap.java:52)
at
org.eclipse.core.databinding.observable.set.SetChangeEvent.d ispatch(SetChangeEvent.java:61)
at
org.eclipse.core.databinding.observable.ChangeManager.fireEv ent(ChangeManager.java:129)
at
org.eclipse.core.databinding.observable.set.ObservableSet.fi reSetChange(ObservableSet.java:67)
at
org.eclipse.core.internal.databinding.observable.Unmodifiabl eObservableSet.access$0(UnmodifiableObservableSet.java:1)
at
org.eclipse.core.internal.databinding.observable.Unmodifiabl eObservableSet$1.handleSetChange(UnmodifiableObservableSet.j ava:30)
at
org.eclipse.core.databinding.observable.set.SetChangeEvent.d ispatch(SetChangeEvent.java:61)
at
org.eclipse.core.databinding.observable.ChangeManager.fireEv ent(ChangeManager.java:129)
at
org.eclipse.core.databinding.observable.set.ObservableSet.fi reSetChange(ObservableSet.java:67)
at
org.eclipse.core.internal.databinding.observable.masterdetai l.DetailObservableSet.access$1(DetailObservableSet.java:1)
at
org.eclipse.core.internal.databinding.observable.masterdetai l.DetailObservableSet$1.handleSetChange(DetailObservableSet. java:42)
at
org.eclipse.core.databinding.observable.set.SetChangeEvent.d ispatch(SetChangeEvent.java:61)
at
org.eclipse.core.databinding.observable.ChangeManager.fireEv ent(ChangeManager.java:129)
at
org.eclipse.core.databinding.observable.set.ObservableSet.fi reSetChange(ObservableSet.java:67)
at
org.eclipse.core.databinding.observable.set.WritableSet.add( WritableSet.java:90)
at
org.eclipse.core.internal.databinding.observable.masterdetai l.DetailObservableSet.add(DetailObservableSet.java:106)
at
org.eclipse.jface.internal.databinding.viewers.ObservableCol lectionTreeContentProvider$TreeNode. <init>(ObservableCollectionTreeContentProvider.java:284)
at
org.eclipse.jface.internal.databinding.viewers.ObservableCol lectionTreeContentProvider.getOrCreateNode(ObservableCollect ionTreeContentProvider.java:181)
at
org.eclipse.jface.internal.databinding.viewers.ObservableCol lectionTreeContentProvider.getChildren(ObservableCollectionT reeContentProvider.java:162)
at
org.eclipse.jface.internal.databinding.viewers.ObservableCol lectionTreeContentProvider.getElements(ObservableCollectionT reeContentProvider.java:158)
at
org.eclipse.jface.databinding.viewers.ObservableListTreeCont entProvider.getElements(ObservableListTreeContentProvider.ja va:155)
at
org.eclipse.jface.viewers.StructuredViewer.getRawChildren(St ructuredViewer.java:937)
at
org.eclipse.jface.viewers.ColumnViewer.getRawChildren(Column Viewer.java:703)
at
org.eclipse.jface.viewers.AbstractTreeViewer.getRawChildren( AbstractTreeViewer.java:1330)
at
org.eclipse.jface.viewers.TreeViewer.getRawChildren(TreeView er.java:385)
at
org.eclipse.jface.viewers.AbstractTreeViewer.getFilteredChil dren(AbstractTreeViewer.java:636)
at
org.eclipse.jface.viewers.AbstractTreeViewer.getSortedChildr en(AbstractTreeViewer.java:602)
at
org.eclipse.jface.viewers.AbstractTreeViewer$1.run(AbstractT reeViewer.java:799)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator .java:67)
at
org.eclipse.jface.viewers.AbstractTreeViewer.createChildren( AbstractTreeViewer.java:776)
at
org.eclipse.jface.viewers.TreeViewer.createChildren(TreeView er.java:634)
at
org.eclipse.jface.viewers.AbstractTreeViewer.internalInitial izeTree(AbstractTreeViewer.java:1490)
at
org.eclipse.jface.viewers.TreeViewer.internalInitializeTree( TreeViewer.java:823)
at
org.eclipse.jface.viewers.AbstractTreeViewer$5.run(AbstractT reeViewer.java:1474)
at
org.eclipse.jface.viewers.StructuredViewer.preservingSelecti on(StructuredViewer.java:1365)
at
org.eclipse.jface.viewers.TreeViewer.preservingSelection(Tre eViewer.java:397)
at
org.eclipse.jface.viewers.StructuredViewer.preservingSelecti on(StructuredViewer.java:1328)
at
org.eclipse.jface.viewers.AbstractTreeViewer.inputChanged(Ab stractTreeViewer.java:1467)
at
org.eclipse.jface.viewers.ContentViewer.setInput(ContentView er.java:251)
at
org.eclipse.jface.viewers.StructuredViewer.setInput(Structur edViewer.java:1603)
at
com.discover.plugin.phonebook.treeviewer.v34.PhoneBookUsingT reeViewer.initDataBindings(PhoneBookUsingTreeViewer.java:313 )
at
com.discover.plugin.phonebook.treeviewer.v34.PhoneBookUsingT reeViewer.createContents(PhoneBookUsingTreeViewer.java:283)
at
com.discover.plugin.phonebook.treeviewer.v34.PhoneBookUsingT reeViewer.open(PhoneBookUsingTreeViewer.java:161)
at
com.discover.plugin.phonebook.treeviewer.v34.PhoneBookUsingT reeViewer$1.run(PhoneBookUsingTreeViewer.java:147)
at
org.eclipse.core.databinding.observable.Realm.runWithDefault (Realm.java:288)
at
com.discover.plugin.phonebook.treeviewer.v34.PhoneBookUsingT reeViewer.main(PhoneBookUsingTreeViewer.java:142)
java.lang.RuntimeException: java.lang.IllegalArgumentException
at
org.eclipse.core.internal.databinding.beans.JavaBeanObservab leMap.doGet(JavaBeanObservableMap.java:110)
at
org.eclipse.core.databinding.observable.map.ComputedObservab leMap$1.handleSetChange(ComputedObservableMap.java:52)
at
org.eclipse.core.databinding.observable.set.SetChangeEvent.d ispatch(SetChangeEvent.java:61)
at
org.eclipse.core.databinding.observable.ChangeManager.fireEv ent(ChangeManager.java:129)
at
org.eclipse.core.databinding.observable.set.ObservableSet.fi reSetChange(ObservableSet.java:67)
at
org.eclipse.core.internal.databinding.observable.Unmodifiabl eObservableSet.access$0(UnmodifiableObservableSet.java:1)
at
org.eclipse.core.internal.databinding.observable.Unmodifiabl eObservableSet$1.handleSetChange(UnmodifiableObservableSet.j ava:30)
at
org.eclipse.core.databinding.observable.set.SetChangeEvent.d ispatch(SetChangeEvent.java:61)
at
org.eclipse.core.databinding.observable.ChangeManager.fireEv ent(ChangeManager.java:129)
at
org.eclipse.core.databinding.observable.set.ObservableSet.fi reSetChange(ObservableSet.java:67)
at
org.eclipse.core.internal.databinding.observable.masterdetai l.DetailObservableSet.access$1(DetailObservableSet.java:1)
at
org.eclipse.core.internal.databinding.observable.masterdetai l.DetailObservableSet$1.handleSetChange(DetailObservableSet. java:42)
at
org.eclipse.core.databinding.observable.set.SetChangeEvent.d ispatch(SetChangeEvent.java:61)
at
org.eclipse.core.databinding.observable.ChangeManager.fireEv ent(ChangeManager.java:129)
at
org.eclipse.core.databinding.observable.set.ObservableSet.fi reSetChange(ObservableSet.java:67)
at
org.eclipse.core.databinding.observable.set.WritableSet.add( WritableSet.java:90)
at
org.eclipse.core.internal.databinding.observable.masterdetai l.DetailObservableSet.add(DetailObservableSet.java:106)
at
org.eclipse.jface.internal.databinding.viewers.ObservableCol lectionTreeContentProvider$TreeNode. <init>(ObservableCollectionTreeContentProvider.java:284)
at
org.eclipse.jface.internal.databinding.viewers.ObservableCol lectionTreeContentProvider.getOrCreateNode(ObservableCollect ionTreeContentProvider.java:181)
at
org.eclipse.jface.internal.databinding.viewers.ObservableCol lectionTreeContentProvider.getChildren(ObservableCollectionT reeContentProvider.java:162)
at
org.eclipse.jface.internal.databinding.viewers.ObservableCol lectionTreeContentProvider.getElements(ObservableCollectionT reeContentProvider.java:158)
at
org.eclipse.jface.databinding.viewers.ObservableListTreeCont entProvider.getElements(ObservableListTreeContentProvider.ja va:155)
at
org.eclipse.jface.viewers.StructuredViewer.getRawChildren(St ructuredViewer.java:937)
at
org.eclipse.jface.viewers.ColumnViewer.getRawChildren(Column Viewer.java:703)
at
org.eclipse.jface.viewers.AbstractTreeViewer.getRawChildren( AbstractTreeViewer.java:1330)
at
org.eclipse.jface.viewers.TreeViewer.getRawChildren(TreeView er.java:385)
at
org.eclipse.jface.viewers.AbstractTreeViewer.getFilteredChil dren(AbstractTreeViewer.java:636)
at
org.eclipse.jface.viewers.AbstractTreeViewer.getSortedChildr en(AbstractTreeViewer.java:602)
at
org.eclipse.jface.viewers.AbstractTreeViewer$1.run(AbstractT reeViewer.java:799)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator .java:67)
at
org.eclipse.jface.viewers.AbstractTreeViewer.createChildren( AbstractTreeViewer.java:776)
at
org.eclipse.jface.viewers.TreeViewer.createChildren(TreeView er.java:634)
at
org.eclipse.jface.viewers.AbstractTreeViewer.internalInitial izeTree(AbstractTreeViewer.java:1490)
at
org.eclipse.jface.viewers.TreeViewer.internalInitializeTree( TreeViewer.java:823)
at
org.eclipse.jface.viewers.AbstractTreeViewer$5.run(AbstractT reeViewer.java:1474)
at
org.eclipse.jface.viewers.StructuredViewer.preservingSelecti on(StructuredViewer.java:1365)
at
org.eclipse.jface.viewers.TreeViewer.preservingSelection(Tre eViewer.java:397)
at
org.eclipse.jface.viewers.StructuredViewer.preservingSelecti on(StructuredViewer.java:1328)
at
org.eclipse.jface.viewers.AbstractTreeViewer.inputChanged(Ab stractTreeViewer.java:1467)
at
org.eclipse.jface.viewers.ContentViewer.setInput(ContentView er.java:251)
at
org.eclipse.jface.viewers.StructuredViewer.setInput(Structur edViewer.java:1603)
at
com.discover.plugin.phonebook.treeviewer.v34.PhoneBookUsingT reeViewer.initDataBindings(PhoneBookUsingTreeViewer.java:313 )
at
com.discover.plugin.phonebook.treeviewer.v34.PhoneBookUsingT reeViewer.createContents(PhoneBookUsingTreeViewer.java:283)
at
com.discover.plugin.phonebook.treeviewer.v34.PhoneBookUsingT reeViewer.open(PhoneBookUsingTreeViewer.java:161)
at
com.discover.plugin.phonebook.treeviewer.v34.PhoneBookUsingT reeViewer$1.run(PhoneBookUsingTreeViewer.java:147)
at
org.eclipse.core.databinding.observable.Realm.runWithDefault (Realm.java:288)
at
com.discover.plugin.phonebook.treeviewer.v34.PhoneBookUsingT reeViewer.main(PhoneBookUsingTreeViewer.java:142)
Caused by: java.lang.IllegalArgumentException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce ssorImpl.java:64)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe thodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:615)
at
org.eclipse.core.internal.databinding.beans.JavaBeanObservab leMap.doGet(JavaBeanObservableMap.java:105)
... 46 more

Here's the binding code
private PersonGroups m_groups = new PersonGroups();
private TreeViewer m_personViewer;

ObservableListTreeContentProvider contentProvider =
new ObservableListTreeContentProvider(
BeansObservables.listFactory(Realm.getDefault(), "groups",
PersonGroups.class), null);
m_personViewer.setContentProvider(contentProvider);

IObservableMap[] m_personViewerLabelProviderMaps =
BeansObservables.observeMaps(contentProvider.getKnownElement s(),
PersonGroup.class, new String[]{"persons"});
m_personViewer.setLabelProvider(new
ObservableMapLabelProvider(m_personViewerLabelProviderMaps)) ;

//IObservableList m_groupsGroupsObserveList =
//BeansObservables.observeList(Realm.getDefault(), m_groups, "groups");

m_personViewer.setInput(m_groups);
...
public class PersonGroups extends AbstractModelObject {
private final List/* <PersonGroup> */m_groups = new ArrayList();

public void addGroup(PersonGroup group) {
m_groups.add(group);
firePropertyChange("groups", null, m_groups);
}

public void removeGroup(PersonGroup group) {
m_groups.remove(group);
firePropertyChange("groups", null, m_groups);
}

public List getGroups() {
return m_groups;
}

@Override
public String toString() {
String RL = System.getProperty("line.separator");
StringBuilder strBuf = new StringBuilder();
strBuf.append("Person Groups");
strBuf.append(RL);
for(Iterator it= m_groups.iterator(); it.hasNext(); ){
strBuf.append(it.next());
strBuf.append(RL);
}
return strBuf.toString();
}

}

public class PersonGroup extends AbstractModelObject {
private final List/* <Person> */m_persons = new ArrayList();
private String m_name;

public PersonGroup() {
}

public PersonGroup(String name) {
m_name = name;
}

public String getName() {
return m_name;
}

public void setName(String name) {
String oldValue = m_name;
m_name = name;
firePropertyChange("name", oldValue, m_name);
}

public void addPerson(Person person) {
m_persons.add(person);
firePropertyChange("persons", null, m_persons);
}

public void removePerson(Person person) {
m_persons.remove(person);
firePropertyChange("persons", null, m_persons);
}

public List getPersons() {
return m_persons;
}

public String getEmail() {
return "";
}

public void setEmail(String email) {
}

public String getPhone() {
return "";
}

public void setPhone(String phone) {
}

public String getMobilePhone1() {
return "";
}

public void setMobilePhone1(String phone1) {
}

public String getMobilePhone2() {
return "";
}

public void setMobilePhone2(String phone2) {
}


@Override
public String toString() {
String RL = System.getProperty("line.separator");
StringBuilder strBuf = new StringBuilder();
strBuf.append("Person Group - ");
strBuf.append(m_name);
strBuf.append(RL);
for(Iterator it= m_persons.iterator(); it.hasNext(); ){
strBuf.append(it.next());
strBuf.append(RL);
}
return strBuf.toString();
}

}

public class Person extends AbstractModelObject {
private String m_name = "";
private String m_email = "";
private String m_phone = "";
private String m_mobilePhone1 = "";
private String m_mobilePhone2 = "";

public Person() {
}

public Person(String name, String email, String phone, String phone1,
String phone2) {
m_name = name;
m_email = email;
m_phone = phone;
m_mobilePhone1 = phone1;
m_mobilePhone2 = phone2;
}

public String getName() {
return m_name;
}

public void setName(String name) {
String oldValue = m_name;
m_name = name;
firePropertyChange("name", oldValue, m_name);
}

public String getEmail() {
return m_email;
}

public void setEmail(String email) {
String oldValue = m_email;
m_email = email;
firePropertyChange("email", oldValue, m_email);
}

public String getPhone() {
return m_phone;
}

public void setPhone(String phone) {
String oldValue = m_phone;
m_phone = phone;
firePropertyChange("phone", oldValue, m_phone);
}

public String getMobilePhone1() {
return m_mobilePhone1;
}

public void setMobilePhone1(String phone1) {
String oldValue = m_mobilePhone1;
m_mobilePhone1 = phone1;
firePropertyChange("mobilePhone1", oldValue, m_mobilePhone1);
}

public String getMobilePhone2() {
return m_mobilePhone2;
}

public void setMobilePhone2(String phone2) {
String oldValue = m_mobilePhone2;
m_mobilePhone2 = phone2;
firePropertyChange("mobilePhone2", oldValue, m_mobilePhone2);
}

@Override
public String toString() {
StringBuilder strBuf = new StringBuilder();
strBuf.append("name=");
strBuf.append(m_name);
strBuf.append(";");
strBuf.append("email=");
strBuf.append(m_email);
strBuf.append(";");
strBuf.append("phone=");
strBuf.append(m_phone);
strBuf.append(";");
strBuf.append("mobilePhone1=");
strBuf.append(m_mobilePhone1);
strBuf.append(";");
strBuf.append("mobilePhone2=");
strBuf.append(m_mobilePhone2);
return strBuf.toString();
}

}
Re: treeviewer databinding error [message #328449 is a reply to message #328444] Sun, 25 May 2008 08:28 Go to previous messageGo to next message
Eclipse UserFriend
Could you provide a complete snippet I can runn out of the box?

Tom

hao schrieb:
> I tried a treeviewer jface databinding but got some error. Could someone
> tell me what causes the error. Here are the error I got:
> org.eclipse.core.databinding - 4 - cannot get value
> java.lang.IllegalArgumentException
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce ssorImpl.java:64)
>
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe thodAccessorImpl.java:43)
>
> at java.lang.reflect.Method.invoke(Method.java:615)
> at
> org.eclipse.core.internal.databinding.beans.JavaBeanObservab leMap.doGet(JavaBeanObservableMap.java:105)
>
> at
> org.eclipse.core.databinding.observable.map.ComputedObservab leMap$1.handleSetChange(ComputedObservableMap.java:52)
>
> at
> org.eclipse.core.databinding.observable.set.SetChangeEvent.d ispatch(SetChangeEvent.java:61)
>
> at
> org.eclipse.core.databinding.observable.ChangeManager.fireEv ent(ChangeManager.java:129)
>
> at
> org.eclipse.core.databinding.observable.set.ObservableSet.fi reSetChange(ObservableSet.java:67)
>
> at
> org.eclipse.core.internal.databinding.observable.Unmodifiabl eObservableSet.access$0(UnmodifiableObservableSet.java:1)
>
> at
> org.eclipse.core.internal.databinding.observable.Unmodifiabl eObservableSet$1.handleSetChange(UnmodifiableObservableSet.j ava:30)
>
> at
> org.eclipse.core.databinding.observable.set.SetChangeEvent.d ispatch(SetChangeEvent.java:61)
>
> at
> org.eclipse.core.databinding.observable.ChangeManager.fireEv ent(ChangeManager.java:129)
>
> at
> org.eclipse.core.databinding.observable.set.ObservableSet.fi reSetChange(ObservableSet.java:67)
>
> at
> org.eclipse.core.internal.databinding.observable.masterdetai l.DetailObservableSet.access$1(DetailObservableSet.java:1)
>
> at
> org.eclipse.core.internal.databinding.observable.masterdetai l.DetailObservableSet$1.handleSetChange(DetailObservableSet. java:42)
>
> at
> org.eclipse.core.databinding.observable.set.SetChangeEvent.d ispatch(SetChangeEvent.java:61)
>
> at
> org.eclipse.core.databinding.observable.ChangeManager.fireEv ent(ChangeManager.java:129)
>
> at
> org.eclipse.core.databinding.observable.set.ObservableSet.fi reSetChange(ObservableSet.java:67)
>
> at
> org.eclipse.core.databinding.observable.set.WritableSet.add( WritableSet.java:90)
>
> at
> org.eclipse.core.internal.databinding.observable.masterdetai l.DetailObservableSet.add(DetailObservableSet.java:106)
>
> at
> org.eclipse.jface.internal.databinding.viewers.ObservableCol lectionTreeContentProvider$TreeNode. <init>(ObservableCollectionTreeContentProvider.java:284)
>
> at
> org.eclipse.jface.internal.databinding.viewers.ObservableCol lectionTreeContentProvider.getOrCreateNode(ObservableCollect ionTreeContentProvider.java:181)
>
> at
> org.eclipse.jface.internal.databinding.viewers.ObservableCol lectionTreeContentProvider.getChildren(ObservableCollectionT reeContentProvider.java:162)
>
> at
> org.eclipse.jface.internal.databinding.viewers.ObservableCol lectionTreeContentProvider.getElements(ObservableCollectionT reeContentProvider.java:158)
>
> at
> org.eclipse.jface.databinding.viewers.ObservableListTreeCont entProvider.getElements(ObservableListTreeContentProvider.ja va:155)
>
> at
> org.eclipse.jface.viewers.StructuredViewer.getRawChildren(St ructuredViewer.java:937)
>
> at
> org.eclipse.jface.viewers.ColumnViewer.getRawChildren(Column Viewer.java:703)
>
> at
> org.eclipse.jface.viewers.AbstractTreeViewer.getRawChildren( AbstractTreeViewer.java:1330)
>
> at
> org.eclipse.jface.viewers.TreeViewer.getRawChildren(TreeView er.java:385)
> at
> org.eclipse.jface.viewers.AbstractTreeViewer.getFilteredChil dren(AbstractTreeViewer.java:636)
>
> at
> org.eclipse.jface.viewers.AbstractTreeViewer.getSortedChildr en(AbstractTreeViewer.java:602)
>
> at
> org.eclipse.jface.viewers.AbstractTreeViewer$1.run(AbstractT reeViewer.java:799)
>
> at
> org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator .java:67)
> at
> org.eclipse.jface.viewers.AbstractTreeViewer.createChildren( AbstractTreeViewer.java:776)
>
> at
> org.eclipse.jface.viewers.TreeViewer.createChildren(TreeView er.java:634)
> at
> org.eclipse.jface.viewers.AbstractTreeViewer.internalInitial izeTree(AbstractTreeViewer.java:1490)
>
> at
> org.eclipse.jface.viewers.TreeViewer.internalInitializeTree( TreeViewer.java:823)
>
> at
> org.eclipse.jface.viewers.AbstractTreeViewer$5.run(AbstractT reeViewer.java:1474)
>
> at
> org.eclipse.jface.viewers.StructuredViewer.preservingSelecti on(StructuredViewer.java:1365)
>
> at
> org.eclipse.jface.viewers.TreeViewer.preservingSelection(Tre eViewer.java:397)
>
> at
> org.eclipse.jface.viewers.StructuredViewer.preservingSelecti on(StructuredViewer.java:1328)
>
> at
> org.eclipse.jface.viewers.AbstractTreeViewer.inputChanged(Ab stractTreeViewer.java:1467)
>
> at
> org.eclipse.jface.viewers.ContentViewer.setInput(ContentView er.java:251)
> at
> org.eclipse.jface.viewers.StructuredViewer.setInput(Structur edViewer.java:1603)
>
> at
> com.discover.plugin.phonebook.treeviewer.v34.PhoneBookUsingT reeViewer.initDataBindings(PhoneBookUsingTreeViewer.java:313 )
>
> at
> com.discover.plugin.phonebook.treeviewer.v34.PhoneBookUsingT reeViewer.createContents(PhoneBookUsingTreeViewer.java:283)
>
> at
> com.discover.plugin.phonebook.treeviewer.v34.PhoneBookUsingT reeViewer.open(PhoneBookUsingTreeViewer.java:161)
>
> at
> com.discover.plugin.phonebook.treeviewer.v34.PhoneBookUsingT reeViewer$1.run(PhoneBookUsingTreeViewer.java:147)
>
> at
> org.eclipse.core.databinding.observable.Realm.runWithDefault (Realm.java:288)
>
> at
> com.discover.plugin.phonebook.treeviewer.v34.PhoneBookUsingT reeViewer.main(PhoneBookUsingTreeViewer.java:142)
>
> java.lang.RuntimeException: java.lang.IllegalArgumentException
> at
> org.eclipse.core.internal.databinding.beans.JavaBeanObservab leMap.doGet(JavaBeanObservableMap.java:110)
>
> at
> org.eclipse.core.databinding.observable.map.ComputedObservab leMap$1.handleSetChange(ComputedObservableMap.java:52)
>
> at
> org.eclipse.core.databinding.observable.set.SetChangeEvent.d ispatch(SetChangeEvent.java:61)
>
> at
> org.eclipse.core.databinding.observable.ChangeManager.fireEv ent(ChangeManager.java:129)
>
> at
> org.eclipse.core.databinding.observable.set.ObservableSet.fi reSetChange(ObservableSet.java:67)
>
> at
> org.eclipse.core.internal.databinding.observable.Unmodifiabl eObservableSet.access$0(UnmodifiableObservableSet.java:1)
>
> at
> org.eclipse.core.internal.databinding.observable.Unmodifiabl eObservableSet$1.handleSetChange(UnmodifiableObservableSet.j ava:30)
>
> at
> org.eclipse.core.databinding.observable.set.SetChangeEvent.d ispatch(SetChangeEvent.java:61)
>
> at
> org.eclipse.core.databinding.observable.ChangeManager.fireEv ent(ChangeManager.java:129)
>
> at
> org.eclipse.core.databinding.observable.set.ObservableSet.fi reSetChange(ObservableSet.java:67)
>
> at
> org.eclipse.core.internal.databinding.observable.masterdetai l.DetailObservableSet.access$1(DetailObservableSet.java:1)
>
> at
> org.eclipse.core.internal.databinding.observable.masterdetai l.DetailObservableSet$1.handleSetChange(DetailObservableSet. java:42)
>
> at
> org.eclipse.core.databinding.observable.set.SetChangeEvent.d ispatch(SetChangeEvent.java:61)
>
> at
> org.eclipse.core.databinding.observable.ChangeManager.fireEv ent(ChangeManager.java:129)
>
> at
> org.eclipse.core.databinding.observable.set.ObservableSet.fi reSetChange(ObservableSet.java:67)
>
> at
> org.eclipse.core.databinding.observable.set.WritableSet.add( WritableSet.java:90)
>
> at
> org.eclipse.core.internal.databinding.observable.masterdetai l.DetailObservableSet.add(DetailObservableSet.java:106)
>
> at
> org.eclipse.jface.internal.databinding.viewers.ObservableCol lectionTreeContentProvider$TreeNode. <init>(ObservableCollectionTreeContentProvider.java:284)
>
> at
> org.eclipse.jface.internal.databinding.viewers.ObservableCol lectionTreeContentProvider.getOrCreateNode(ObservableCollect ionTreeContentProvider.java:181)
>
> at
> org.eclipse.jface.internal.databinding.viewers.ObservableCol lectionTreeContentProvider.getChildren(ObservableCollectionT reeContentProvider.java:162)
>
> at
> org.eclipse.jface.internal.databinding.viewers.ObservableCol lectionTreeContentProvider.getElements(ObservableCollectionT reeContentProvider.java:158)
>
> at
> org.eclipse.jface.databinding.viewers.ObservableListTreeCont entProvider.getElements(ObservableListTreeContentProvider.ja va:155)
>
> at
> org.eclipse.jface.viewers.StructuredViewer.getRawChildren(St ructuredViewer.java:937)
>
> at
> org.eclipse.jface.viewers.ColumnViewer.getRawChildren(Column Viewer.java:703)
>
> at
> org.eclipse.jface.viewers.AbstractTreeViewer.getRawChildren( AbstractTreeViewer.java:1330)
>
> at
> org.eclipse.jface.viewers.TreeViewer.getRawChildren(TreeView er.java:385)
> at
> org.eclipse.jface.viewers.AbstractTreeViewer.getFilteredChil dren(AbstractTreeViewer.java:636)
>
> at
> org.eclipse.jface.viewers.AbstractTreeViewer.getSortedChildr en(AbstractTreeViewer.java:602)
>
> at
> org.eclipse.jface.viewers.AbstractTreeViewer$1.run(AbstractT reeViewer.java:799)
>
> at
> org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator .java:67)
> at
> org.eclipse.jface.viewers.AbstractTreeViewer.createChildren( AbstractTreeViewer.java:776)
>
> at
> org.eclipse.jface.viewers.TreeViewer.createChildren(TreeView er.java:634)
> at
> org.eclipse.jface.viewers.AbstractTreeViewer.internalInitial izeTree(AbstractTreeViewer.java:1490)
>
> at
> org.eclipse.jface.viewers.TreeViewer.internalInitializeTree( TreeViewer.java:823)
>
> at
> org.eclipse.jface.viewers.AbstractTreeViewer$5.run(AbstractT reeViewer.java:1474)
>
> at
> org.eclipse.jface.viewers.StructuredViewer.preservingSelecti on(StructuredViewer.java:1365)
>
> at
> org.eclipse.jface.viewers.TreeViewer.preservingSelection(Tre eViewer.java:397)
>
> at
> org.eclipse.jface.viewers.StructuredViewer.preservingSelecti on(StructuredViewer.java:1328)
>
> at
> org.eclipse.jface.viewers.AbstractTreeViewer.inputChanged(Ab stractTreeViewer.java:1467)
>
> at
> org.eclipse.jface.viewers.ContentViewer.setInput(ContentView er.java:251)
> at
> org.eclipse.jface.viewers.StructuredViewer.setInput(Structur edViewer.java:1603)
>
> at
> com.discover.plugin.phonebook.treeviewer.v34.PhoneBookUsingT reeViewer.initDataBindings(PhoneBookUsingTreeViewer.java:313 )
>
> at
> com.discover.plugin.phonebook.treeviewer.v34.PhoneBookUsingT reeViewer.createContents(PhoneBookUsingTreeViewer.java:283)
>
> at
> com.discover.plugin.phonebook.treeviewer.v34.PhoneBookUsingT reeViewer.open(PhoneBookUsingTreeViewer.java:161)
>
> at
> com.discover.plugin.phonebook.treeviewer.v34.PhoneBookUsingT reeViewer$1.run(PhoneBookUsingTreeViewer.java:147)
>
> at
> org.eclipse.core.databinding.observable.Realm.runWithDefault (Realm.java:288)
>
> at
> com.discover.plugin.phonebook.treeviewer.v34.PhoneBookUsingT reeViewer.main(PhoneBookUsingTreeViewer.java:142)
>
> Caused by: java.lang.IllegalArgumentException
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce ssorImpl.java:64)
>
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe thodAccessorImpl.java:43)
>
> at java.lang.reflect.Method.invoke(Method.java:615)
> at
> org.eclipse.core.internal.databinding.beans.JavaBeanObservab leMap.doGet(JavaBeanObservableMap.java:105)
>
> ... 46 more
>
> Here's the binding code
> private PersonGroups m_groups = new PersonGroups();
> private TreeViewer m_personViewer;
>
> ObservableListTreeContentProvider contentProvider =
> new ObservableListTreeContentProvider(
> BeansObservables.listFactory(Realm.getDefault(), "groups",
> PersonGroups.class), null);
> m_personViewer.setContentProvider(contentProvider);
>
> IObservableMap[] m_personViewerLabelProviderMaps =
> BeansObservables.observeMaps(contentProvider.getKnownElement s(),
> PersonGroup.class, new String[]{"persons"});
> m_personViewer.setLabelProvider(new
> ObservableMapLabelProvider(m_personViewerLabelProviderMaps)) ;
>
> //IObservableList m_groupsGroupsObserveList =
> //BeansObservables.observeList(Realm.getDefault(), m_groups, "groups");
>
> m_personViewer.setInput(m_groups);
> ..
> public class PersonGroups extends AbstractModelObject {
> private final List/* <PersonGroup> */m_groups = new ArrayList();
>
> public void addGroup(PersonGroup group) {
> m_groups.add(group);
> firePropertyChange("groups", null, m_groups);
> }
>
> public void removeGroup(PersonGroup group) {
> m_groups.remove(group);
> firePropertyChange("groups", null, m_groups);
> }
>
> public List getGroups() {
> return m_groups;
> }
>
> @Override
> public String toString() {
> String RL = System.getProperty("line.separator");
> StringBuilder strBuf = new StringBuilder();
> strBuf.append("Person Groups");
> strBuf.append(RL);
> for(Iterator it= m_groups.iterator(); it.hasNext(); ){
> strBuf.append(it.next());
> strBuf.append(RL);
> }
> return strBuf.toString();
> }
>
> }
>
> public class PersonGroup extends AbstractModelObject {
> private final List/* <Person> */m_persons = new ArrayList();
> private String m_name;
>
> public PersonGroup() {
> }
>
> public PersonGroup(String name) {
> m_name = name;
> }
>
> public String getName() {
> return m_name;
> }
>
> public void setName(String name) {
> String oldValue = m_name;
> m_name = name;
> firePropertyChange("name", oldValue, m_name);
> }
>
> public void addPerson(Person person) {
> m_persons.add(person);
> firePropertyChange("persons", null, m_persons);
> }
>
> public void removePerson(Person person) {
> m_persons.remove(person);
> firePropertyChange("persons", null, m_persons);
> }
>
> public List getPersons() {
> return m_persons;
> }
>
> public String getEmail() {
> return "";
> }
>
> public void setEmail(String email) {
> }
>
> public String getPhone() {
> return "";
> }
>
> public void setPhone(String phone) {
> }
>
> public String getMobilePhone1() {
> return "";
> }
>
> public void setMobilePhone1(String phone1) {
> }
>
> public String getMobilePhone2() {
> return "";
> }
>
> public void setMobilePhone2(String phone2) {
> }
>
>
> @Override
> public String toString() {
> String RL = System.getProperty("line.separator");
> StringBuilder strBuf = new StringBuilder();
> strBuf.append("Person Group - ");
> strBuf.append(m_name);
> strBuf.append(RL);
> for(Iterator it= m_persons.iterator(); it.hasNext(); ){
> strBuf.append(it.next());
> strBuf.append(RL);
> }
> return strBuf.toString();
> }
>
> }
>
> public class Person extends AbstractModelObject {
> private String m_name = "";
> private String m_email = "";
> private String m_phone = "";
> private String m_mobilePhone1 = "";
> private String m_mobilePhone2 = "";
>
> public Person() {
> }
>
> public Person(String name, String email, String phone, String phone1,
> String phone2) {
> m_name = name;
> m_email = email;
> m_phone = phone;
> m_mobilePhone1 = phone1;
> m_mobilePhone2 = phone2;
> }
>
> public String getName() {
> return m_name;
> }
>
> public void setName(String name) {
> String oldValue = m_name;
> m_name = name;
> firePropertyChange("name", oldValue, m_name);
> }
>
> public String getEmail() {
> return m_email;
> }
>
> public void setEmail(String email) {
> String oldValue = m_email;
> m_email = email;
> firePropertyChange("email", oldValue, m_email);
> }
>
> public String getPhone() {
> return m_phone;
> }
>
> public void setPhone(String phone) {
> String oldValue = m_phone;
> m_phone = phone;
> firePropertyChange("phone", oldValue, m_phone);
> }
>
> public String getMobilePhone1() {
> return m_mobilePhone1;
> }
>
> public void setMobilePhone1(String phone1) {
> String oldValue = m_mobilePhone1;
> m_mobilePhone1 = phone1;
> firePropertyChange("mobilePhone1", oldValue, m_mobilePhone1);
> }
>
> public String getMobilePhone2() {
> return m_mobilePhone2;
> }
>
> public void setMobilePhone2(String phone2) {
> String oldValue = m_mobilePhone2;
> m_mobilePhone2 = phone2;
> firePropertyChange("mobilePhone2", oldValue, m_mobilePhone2);
> }
>
> @Override
> public String toString() {
> StringBuilder strBuf = new StringBuilder();
> strBuf.append("name=");
> strBuf.append(m_name);
> strBuf.append(";");
> strBuf.append("email=");
> strBuf.append(m_email);
> strBuf.append(";");
> strBuf.append("phone=");
> strBuf.append(m_phone);
> strBuf.append(";");
> strBuf.append("mobilePhone1=");
> strBuf.append(m_mobilePhone1);
> strBuf.append(";");
> strBuf.append("mobilePhone2=");
> strBuf.append(m_mobilePhone2);
> return strBuf.toString();
> }
>
> }
>
>
>


--
B e s t S o l u t i o n . at
------------------------------------------------------------ --------
Tom Schindl JFace-Committer
------------------------------------------------------------ --------
Re: treeviewer databinding error [message #328451 is a reply to message #328449] Sun, 25 May 2008 08:58 Go to previous messageGo to next message
Eclipse UserFriend
How could I send a jared file to the post?
Re: treeviewer databinding error [message #328453 is a reply to message #328451] Sun, 25 May 2008 09:29 Go to previous messageGo to next message
Eclipse UserFriend
Is it more than one class? Then send it to tom.schind(a)bestsolution.at
hao schrieb:
> How could I send a jared file to the post?
>


--
B e s t S o l u t i o n . at
------------------------------------------------------------ --------
Tom Schindl JFace-Committer
------------------------------------------------------------ --------
Re: treeviewer databinding error [message #328456 is a reply to message #328453] Sun, 25 May 2008 20:51 Go to previous message
Eclipse UserFriend
Here are the error message and runnable code: (The problem is how to
create a correct label provider.)

org.eclipse.core.databinding - 4 - cannot get value
java.lang.IllegalArgumentException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce ssorImpl.java:64)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe thodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:615)
at
org.eclipse.core.internal.databinding.beans.JavaBeanObservab leMap.doGet(JavaBeanObservableMap.java:105)
at
org.eclipse.core.databinding.observable.map.ComputedObservab leMap$1.handleSetChange(ComputedObservableMap.java:52)
at
org.eclipse.core.databinding.observable.set.SetChangeEvent.d ispatch(SetChangeEvent.java:61)
at
org.eclipse.core.databinding.observable.ChangeManager.fireEv ent(ChangeManager.java:129)
at
org.eclipse.core.databinding.observable.set.ObservableSet.fi reSetChange(ObservableSet.java:67)
at
org.eclipse.core.internal.databinding.observable.Unmodifiabl eObservableSet.access$0(UnmodifiableObservableSet.java:1)
at
org.eclipse.core.internal.databinding.observable.Unmodifiabl eObservableSet$1.handleSetChange(UnmodifiableObservableSet.j ava:30)
at
org.eclipse.core.databinding.observable.set.SetChangeEvent.d ispatch(SetChangeEvent.java:61)
at
org.eclipse.core.databinding.observable.ChangeManager.fireEv ent(ChangeManager.java:129)
at
org.eclipse.core.databinding.observable.set.ObservableSet.fi reSetChange(ObservableSet.java:67)
at
org.eclipse.core.internal.databinding.observable.masterdetai l.DetailObservableSet.access$1(DetailObservableSet.java:1)
at
org.eclipse.core.internal.databinding.observable.masterdetai l.DetailObservableSet$1.handleSetChange(DetailObservableSet. java:42)
at
org.eclipse.core.databinding.observable.set.SetChangeEvent.d ispatch(SetChangeEvent.java:61)
at
org.eclipse.core.databinding.observable.ChangeManager.fireEv ent(ChangeManager.java:129)
at
org.eclipse.core.databinding.observable.set.ObservableSet.fi reSetChange(ObservableSet.java:67)
at
org.eclipse.core.databinding.observable.set.WritableSet.add( WritableSet.java:90)
at
org.eclipse.core.internal.databinding.observable.masterdetai l.DetailObservableSet.add(DetailObservableSet.java:106)
at
org.eclipse.jface.internal.databinding.viewers.ObservableCol lectionTreeContentProvider$TreeNode. <init>(ObservableCollectionTreeContentProvider.java:284)
at
org.eclipse.jface.internal.databinding.viewers.ObservableCol lectionTreeContentProvider.getOrCreateNode(ObservableCollect ionTreeContentProvider.java:181)
at
org.eclipse.jface.internal.databinding.viewers.ObservableCol lectionTreeContentProvider.getChildren(ObservableCollectionT reeContentProvider.java:162)
at
org.eclipse.jface.internal.databinding.viewers.ObservableCol lectionTreeContentProvider.getElements(ObservableCollectionT reeContentProvider.java:158)
at
org.eclipse.jface.databinding.viewers.ObservableListTreeCont entProvider.getElements(ObservableListTreeContentProvider.ja va:155)
at
org.eclipse.jface.viewers.StructuredViewer.getRawChildren(St ructuredViewer.java:937)
at
org.eclipse.jface.viewers.ColumnViewer.getRawChildren(Column Viewer.java:703)
at
org.eclipse.jface.viewers.AbstractTreeViewer.getRawChildren( AbstractTreeViewer.java:1330)
at
org.eclipse.jface.viewers.TreeViewer.getRawChildren(TreeView er.java:385)
at
org.eclipse.jface.viewers.AbstractTreeViewer.getFilteredChil dren(AbstractTreeViewer.java:636)
at
org.eclipse.jface.viewers.AbstractTreeViewer.getSortedChildr en(AbstractTreeViewer.java:602)
at
org.eclipse.jface.viewers.AbstractTreeViewer$1.run(AbstractT reeViewer.java:799)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator .java:67)
at
org.eclipse.jface.viewers.AbstractTreeViewer.createChildren( AbstractTreeViewer.java:776)
at
org.eclipse.jface.viewers.TreeViewer.createChildren(TreeView er.java:634)
at
org.eclipse.jface.viewers.AbstractTreeViewer.internalInitial izeTree(AbstractTreeViewer.java:1490)
at
org.eclipse.jface.viewers.TreeViewer.internalInitializeTree( TreeViewer.java:823)
at
org.eclipse.jface.viewers.AbstractTreeViewer$5.run(AbstractT reeViewer.java:1474)
at
org.eclipse.jface.viewers.StructuredViewer.preservingSelecti on(StructuredViewer.java:1365)
at
org.eclipse.jface.viewers.TreeViewer.preservingSelection(Tre eViewer.java:397)
at
org.eclipse.jface.viewers.StructuredViewer.preservingSelecti on(StructuredViewer.java:1328)
at
org.eclipse.jface.viewers.AbstractTreeViewer.inputChanged(Ab stractTreeViewer.java:1467)
at
org.eclipse.jface.viewers.ContentViewer.setInput(ContentView er.java:251)
at
org.eclipse.jface.viewers.StructuredViewer.setInput(Structur edViewer.java:1603)
at
com.discover.plugin.phonebook.treeviewer.v34.PhoneBookUsingT reeViewerEx.initDataBindings(PhoneBookUsingTreeViewerEx.java :487)
at
com.discover.plugin.phonebook.treeviewer.v34.PhoneBookUsingT reeViewerEx.createContents(PhoneBookUsingTreeViewerEx.java:4 56)
at
com.discover.plugin.phonebook.treeviewer.v34.PhoneBookUsingT reeViewerEx.open(PhoneBookUsingTreeViewerEx.java:362)
at
com.discover.plugin.phonebook.treeviewer.v34.PhoneBookUsingT reeViewerEx$1.run(PhoneBookUsingTreeViewerEx.java:348)
at
org.eclipse.core.databinding.observable.Realm.runWithDefault (Realm.java:288)
at
com.discover.plugin.phonebook.treeviewer.v34.PhoneBookUsingT reeViewerEx.main(PhoneBookUsingTreeViewerEx.java:343)
java.lang.RuntimeException: java.lang.IllegalArgumentException
at
org.eclipse.core.internal.databinding.beans.JavaBeanObservab leMap.doGet(JavaBeanObservableMap.java:110)
at
org.eclipse.core.databinding.observable.map.ComputedObservab leMap$1.handleSetChange(ComputedObservableMap.java:52)
at
org.eclipse.core.databinding.observable.set.SetChangeEvent.d ispatch(SetChangeEvent.java:61)
at
org.eclipse.core.databinding.observable.ChangeManager.fireEv ent(ChangeManager.java:129)
at
org.eclipse.core.databinding.observable.set.ObservableSet.fi reSetChange(ObservableSet.java:67)
at
org.eclipse.core.internal.databinding.observable.Unmodifiabl eObservableSet.access$0(UnmodifiableObservableSet.java:1)
at
org.eclipse.core.internal.databinding.observable.Unmodifiabl eObservableSet$1.handleSetChange(UnmodifiableObservableSet.j ava:30)
at
org.eclipse.core.databinding.observable.set.SetChangeEvent.d ispatch(SetChangeEvent.java:61)
at
org.eclipse.core.databinding.observable.ChangeManager.fireEv ent(ChangeManager.java:129)
at
org.eclipse.core.databinding.observable.set.ObservableSet.fi reSetChange(ObservableSet.java:67)
at
org.eclipse.core.internal.databinding.observable.masterdetai l.DetailObservableSet.access$1(DetailObservableSet.java:1)
at
org.eclipse.core.internal.databinding.observable.masterdetai l.DetailObservableSet$1.handleSetChange(DetailObservableSet. java:42)
at
org.eclipse.core.databinding.observable.set.SetChangeEvent.d ispatch(SetChangeEvent.java:61)
at
org.eclipse.core.databinding.observable.ChangeManager.fireEv ent(ChangeManager.java:129)
at
org.eclipse.core.databinding.observable.set.ObservableSet.fi reSetChange(ObservableSet.java:67)
at
org.eclipse.core.databinding.observable.set.WritableSet.add( WritableSet.java:90)
at
org.eclipse.core.internal.databinding.observable.masterdetai l.DetailObservableSet.add(DetailObservableSet.java:106)
at
org.eclipse.jface.internal.databinding.viewers.ObservableCol lectionTreeContentProvider$TreeNode. <init>(ObservableCollectionTreeContentProvider.java:284)
at
org.eclipse.jface.internal.databinding.viewers.ObservableCol lectionTreeContentProvider.getOrCreateNode(ObservableCollect ionTreeContentProvider.java:181)
at
org.eclipse.jface.internal.databinding.viewers.ObservableCol lectionTreeContentProvider.getChildren(ObservableCollectionT reeContentProvider.java:162)
at
org.eclipse.jface.internal.databinding.viewers.ObservableCol lectionTreeContentProvider.getElements(ObservableCollectionT reeContentProvider.java:158)
at
org.eclipse.jface.databinding.viewers.ObservableListTreeCont entProvider.getElements(ObservableListTreeContentProvider.ja va:155)
at
org.eclipse.jface.viewers.StructuredViewer.getRawChildren(St ructuredViewer.java:937)
at
org.eclipse.jface.viewers.ColumnViewer.getRawChildren(Column Viewer.java:703)
at
org.eclipse.jface.viewers.AbstractTreeViewer.getRawChildren( AbstractTreeViewer.java:1330)
at
org.eclipse.jface.viewers.TreeViewer.getRawChildren(TreeView er.java:385)
at
org.eclipse.jface.viewers.AbstractTreeViewer.getFilteredChil dren(AbstractTreeViewer.java:636)
at
org.eclipse.jface.viewers.AbstractTreeViewer.getSortedChildr en(AbstractTreeViewer.java:602)
at
org.eclipse.jface.viewers.AbstractTreeViewer$1.run(AbstractT reeViewer.java:799)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator .java:67)
at
org.eclipse.jface.viewers.AbstractTreeViewer.createChildren( AbstractTreeViewer.java:776)
at
org.eclipse.jface.viewers.TreeViewer.createChildren(TreeView er.java:634)
at
org.eclipse.jface.viewers.AbstractTreeViewer.internalInitial izeTree(AbstractTreeViewer.java:1490)
at
org.eclipse.jface.viewers.TreeViewer.internalInitializeTree( TreeViewer.java:823)
at
org.eclipse.jface.viewers.AbstractTreeViewer$5.run(AbstractT reeViewer.java:1474)
at
org.eclipse.jface.viewers.StructuredViewer.preservingSelecti on(StructuredViewer.java:1365)
at
org.eclipse.jface.viewers.TreeViewer.preservingSelection(Tre eViewer.java:397)
at
org.eclipse.jface.viewers.StructuredViewer.preservingSelecti on(StructuredViewer.java:1328)
at
org.eclipse.jface.viewers.AbstractTreeViewer.inputChanged(Ab stractTreeViewer.java:1467)
at
org.eclipse.jface.viewers.ContentViewer.setInput(ContentView er.java:251)
at
org.eclipse.jface.viewers.StructuredViewer.setInput(Structur edViewer.java:1603)
at
com.discover.plugin.phonebook.treeviewer.v34.PhoneBookUsingT reeViewerEx.initDataBindings(PhoneBookUsingTreeViewerEx.java :487)
at
com.discover.plugin.phonebook.treeviewer.v34.PhoneBookUsingT reeViewerEx.createContents(PhoneBookUsingTreeViewerEx.java:4 56)
at
com.discover.plugin.phonebook.treeviewer.v34.PhoneBookUsingT reeViewerEx.open(PhoneBookUsingTreeViewerEx.java:362)
at
com.discover.plugin.phonebook.treeviewer.v34.PhoneBookUsingT reeViewerEx$1.run(PhoneBookUsingTreeViewerEx.java:348)
at
org.eclipse.core.databinding.observable.Realm.runWithDefault (Realm.java:288)
at
com.discover.plugin.phonebook.treeviewer.v34.PhoneBookUsingT reeViewerEx.main(PhoneBookUsingTreeViewerEx.java:343)
Caused by: java.lang.IllegalArgumentException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce ssorImpl.java:64)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe thodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:615)
at
org.eclipse.core.internal.databinding.beans.JavaBeanObservab leMap.doGet(JavaBeanObservableMap.java:105)
... 46 more

package com.discover.plugin.phonebook.treeviewer.v34;

import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import org.eclipse.core.databinding.DataBindingContext;
import org.eclipse.core.databinding.UpdateValueStrategy;
import org.eclipse.core.databinding.beans.BeansObservables;
import org.eclipse.core.databinding.observable.IObservable;
import org.eclipse.core.databinding.observable.Realm;
import org.eclipse.core.databinding.observable.map.IObservableMap;
import
org.eclipse.core.databinding.observable.masterdetail.IObserv ableFactory;
import org.eclipse.core.databinding.observable.value.IObservableVal ue;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.jface.databinding.swt.SWTObservables;
import
org.eclipse.jface.databinding.viewers.ObservableListTreeCont entProvider;
import org.eclipse.jface.databinding.viewers.ObservableMapLabelProv ider;
import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.SashForm;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
import org.eclipse.swt.widgets.Tree;
import org.eclipse.swt.widgets.TreeColumn;

/**
*
* @author hchen
* The code is not a good solution
* Always get error: org.eclipse.core.databinding.BindingException: Could
not find property with name email in class class
com.discover.plugin.model.PersonGroup
*/
public class PhoneBookUsingTreeViewerEx {

class AbstractModelObject {
private final PropertyChangeSupport propertyChangeSupport = new
PropertyChangeSupport(
this);

public void addPropertyChangeListener(PropertyChangeListener listener) {
propertyChangeSupport.addPropertyChangeListener(listener);
}

public void addPropertyChangeListener(String propertyName,
PropertyChangeListener listener) {
propertyChangeSupport.addPropertyChangeListener(propertyName , listener);
}

public void removePropertyChangeListener(PropertyChangeListener
listener) {
propertyChangeSupport.removePropertyChangeListener(listener) ;
}

public void removePropertyChangeListener(String propertyName,
PropertyChangeListener listener) {
propertyChangeSupport.removePropertyChangeListener(propertyN ame,
listener);
}

protected void firePropertyChange(String propertyName, Object oldValue,
Object newValue) {
propertyChangeSupport.firePropertyChange(propertyName, oldValue,
newValue);
}
}

class PersonPhone extends AbstractModelObject{
private String m_name = "";
private String m_email = "";
private String m_phone = "";
private String m_mobilePhone1 = "";
private String m_mobilePhone2 = "";

public PersonPhone() {
}

public PersonPhone(String name, String email, String phone, String
phone1,
String phone2) {
m_name = name;
m_email = email;
m_phone = phone;
m_mobilePhone1 = phone1;
m_mobilePhone2 = phone2;
}

public String getName() {
return m_name;
}

public void setName(String name) {
String oldValue = m_name;
m_name = name;
firePropertyChange("name", oldValue, m_name);
}

public String getEmail() {
return m_email;
}

public void setEmail(String email) {
String oldValue = m_email;
m_email = email;
firePropertyChange("email", oldValue, m_email);
}

public String getPhone() {
return m_phone;
}

public void setPhone(String phone) {
String oldValue = m_phone;
m_phone = phone;
firePropertyChange("phone", oldValue, m_phone);
}

public String getMobilePhone1() {
return m_mobilePhone1;
}

public void setMobilePhone1(String phone1) {
String oldValue = m_mobilePhone1;
m_mobilePhone1 = phone1;
firePropertyChange("mobilePhone1", oldValue, m_mobilePhone1);
}

public String getMobilePhone2() {
return m_mobilePhone2;
}

public void setMobilePhone2(String phone2) {
String oldValue = m_mobilePhone2;
m_mobilePhone2 = phone2;
firePropertyChange("mobilePhone2", oldValue, m_mobilePhone2);
}

@Override
public String toString() {
StringBuilder strBuf = new StringBuilder();
strBuf.append("name=");
strBuf.append(m_name);
strBuf.append(";");
strBuf.append("email=");
strBuf.append(m_email);
strBuf.append(";");
strBuf.append("phone=");
strBuf.append(m_phone);
strBuf.append(";");
strBuf.append("mobilePhone1=");
strBuf.append(m_mobilePhone1);
strBuf.append(";");
strBuf.append("mobilePhone2=");
strBuf.append(m_mobilePhone2);
return strBuf.toString();
}
}

class PersonPhoneGroup extends AbstractModelObject{
private final List m_persons = new ArrayList();
private String m_name;

public PersonPhoneGroup() {
}

public PersonPhoneGroup(String name) {
m_name = name;
}

public String getName() {
return m_name;
}

public void setName(String name) {
String oldValue = m_name;
m_name = name;
firePropertyChange("name", oldValue, m_name);
}

public void addPersonPhone(PersonPhone person) {
m_persons.add(person);
firePropertyChange("persons", null, m_persons);
}

public void removePersonPhone(PersonPhone person) {
m_persons.remove(person);
firePropertyChange("persons", null, m_persons);
}

public List getPersons() {
return m_persons;
}

public String getEmail() {
return "";
}

public void setEmail(String email) {
}

public String getPhone() {
return "";
}

public void setPhone(String phone) {
}

public String getMobilePhone1() {
return "";
}

public void setMobilePhone1(String phone1) {
}

public String getMobilePhone2() {
return "";
}

public void setMobilePhone2(String phone2) {
}


@Override
public String toString() {
String RL = System.getProperty("line.separator");
StringBuilder strBuf = new StringBuilder();
strBuf.append("Person Group - ");
strBuf.append(m_name);
strBuf.append(RL);
for(Iterator it= m_persons.iterator(); it.hasNext(); ){
strBuf.append(it.next());
strBuf.append(RL);
}
return strBuf.toString();
}
}

class PersonPhoneGroups extends AbstractModelObject {
private List m_groups;

public PersonPhoneGroups(){
m_groups = new ArrayList();
}

public void addGroup(PersonPhoneGroup group) {
m_groups.add(group);
firePropertyChange("groups", null, m_groups);
}

public void removeGroup(PersonPhoneGroup group) {
m_groups.remove(group);
firePropertyChange("groups", null, m_groups);
}

public List getGroups() {
return m_groups;
}

@Override
public String toString() {
String RL = System.getProperty("line.separator");
StringBuilder strBuf = new StringBuilder();
strBuf.append("Person Groups");
strBuf.append(RL);
for(Iterator it= m_groups.iterator(); it.hasNext(); ){
strBuf.append(it.next());
strBuf.append(RL);
}
return strBuf.toString();
}

}
public class PersonPhoneObservableFactory implements IObservableFactory{

public PersonPhoneObservableFactory() {
super();
}

public IObservable createObservable(Object target) {
if( target instanceof PersonPhoneGroups ){
return BeansObservables.observeList(Realm.getDefault(), target,
"groups", PersonPhoneGroup.class);
}else if( target instanceof PersonPhoneGroup ){
return BeansObservables.observeList(Realm.getDefault(), target,
"persons", PersonPhone.class);
}else{
return null;
}
}

}

private DataBindingContext m_bindingContext;
private TreeColumn newColumnTreeColumn_4;
private TreeColumn newColumnTreeColumn_3;
private TreeColumn newColumnTreeColumn_2;
private TreeColumn newColumnTreeColumn_1;
private TreeColumn newColumnTreeColumn;
private Tree tree;
private TreeViewer m_personViewer;

private PersonPhoneGroups m_groups = new PersonPhoneGroups();
private Text m_mobile2Text;
private Text m_mobile1Text;
private Text m_phoneText;
private Text m_emailText;
private Text m_nameText;
protected Shell shell;

private void setDefaultValues() {
PersonPhoneGroup group1 = new PersonPhoneGroup("Developer Team");
m_groups.addGroup(group1);
//
PersonPhoneGroup group2 = new PersonPhoneGroup("Management Team");
m_groups.addGroup(group2);
//
PersonPhoneGroup group3 = new PersonPhoneGroup("Support Team");
m_groups.addGroup(group3);

group1.addPersonPhone(new PersonPhone("Konstantin Scheglov",
"kosta@nospam.com",
"1234567890", "", ""));
group1.addPersonPhone(new PersonPhone("Alexander Mitin",
"mitin@nospam.com", "",
"0987654321", ""));
group1.addPersonPhone(new PersonPhone("Alexander Lobas",
"lobas@nospam.com", "",
"", "111-222-333-00"));

group2.addPersonPhone(new PersonPhone("Mike Taylor",
"taylor@instantiations.com",
"503-598-4900", "", ""));
group2.addPersonPhone(new PersonPhone("Eric Clayberg",
"clayberg@instantiations.com", "+1 (503) 598-4900", "", ""));
group2.addPersonPhone(new PersonPhone("Dan Rubel",
"dan@instantiations.com",
"503-598-4900", "", ""));

group3.addPersonPhone(new PersonPhone("Gina Nebling",
"support@instantiations.com", "800-808-3737", "", ""));

}

public static void main(String[] args) {
Display display = new Display();
Realm.runWithDefault(SWTObservables.getRealm(display), new Runnable() {
public void run() {

try {
PhoneBookUsingTreeViewerEx window = new PhoneBookUsingTreeViewerEx();
window.open();
} catch (Exception e) {
e.printStackTrace();
}
}
});
}

/**
* Open the window
*/
public void open() {
final Display display = Display.getDefault();
setDefaultValues();
createContents();
shell.open();
shell.layout();
while (!shell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
}

/**
* Create contents of the window
*/
protected void createContents() {
shell = new Shell();
shell.setLayout(new FillLayout());
shell.setSize(789, 517);
shell.setText("Phone Book");

final SashForm sashForm = new SashForm(shell, SWT.VERTICAL);

m_personViewer = new TreeViewer(sashForm, SWT.FULL_SELECTION);
tree = m_personViewer.getTree();
tree.setLinesVisible(true);
tree.setHeaderVisible(true);

newColumnTreeColumn = new TreeColumn(tree, SWT.NONE);
newColumnTreeColumn.setWidth(148);
newColumnTreeColumn.setText("Name");

newColumnTreeColumn_1 = new TreeColumn(tree, SWT.NONE);
newColumnTreeColumn_1.setWidth(168);
newColumnTreeColumn_1.setText("E-mail");

newColumnTreeColumn_2 = new TreeColumn(tree, SWT.NONE);
newColumnTreeColumn_2.setWidth(119);
newColumnTreeColumn_2.setText("Phone");

newColumnTreeColumn_3 = new TreeColumn(tree, SWT.NONE);
newColumnTreeColumn_3.setWidth(100);
newColumnTreeColumn_3.setText("Mobile Phone 1");

newColumnTreeColumn_4 = new TreeColumn(tree, SWT.NONE);
newColumnTreeColumn_4.setWidth(100);
newColumnTreeColumn_4.setText("Mobile Phone 2");

final Composite detailComposite = new Composite(sashForm, SWT.BORDER);
final GridLayout gridLayout_2 = new GridLayout();
gridLayout_2.numColumns = 2;
detailComposite.setLayout(gridLayout_2);

final Label descriptionLabel = new Label(detailComposite, SWT.NONE);
descriptionLabel.setText("Description:");
new Label(detailComposite, SWT.NONE);

final Label label = new Label(detailComposite, SWT.NONE);
label.setText("Name:");

m_nameText = new Text(detailComposite, SWT.BORDER);
final GridData gd_m_nameText = new GridData(SWT.FILL, SWT.CENTER, true,
false);
m_nameText.setLayoutData(gd_m_nameText);

final Label emailLabel = new Label(detailComposite, SWT.NONE);
emailLabel.setText("E-mail:");

m_emailText = new Text(detailComposite, SWT.BORDER);
final GridData gd_m_emailText = new GridData(SWT.FILL, SWT.CENTER,
true, false);
m_emailText.setLayoutData(gd_m_emailText);

final Label phoneLabel = new Label(detailComposite, SWT.NONE);
phoneLabel.setText("Phone:");

m_phoneText = new Text(detailComposite, SWT.BORDER);
final GridData gd_m_phoneText = new GridData(SWT.FILL, SWT.CENTER,
true, false);
m_phoneText.setLayoutData(gd_m_phoneText);

final Label mobilePhone1Label = new Label(detailComposite, SWT.NONE);
mobilePhone1Label.setText("Mobile Phone 1:");

m_mobile1Text = new Text(detailComposite, SWT.BORDER);
final GridData gd_m_mobile1Text = new GridData(SWT.FILL, SWT.CENTER,
true, false);
m_mobile1Text.setLayoutData(gd_m_mobile1Text);

final Label mobilePhone2Label = new Label(detailComposite, SWT.NONE);
mobilePhone2Label.setText("Mobile Phone 2:");

m_mobile2Text = new Text(detailComposite, SWT.BORDER);
final GridData gd_m_mobile2Text = new GridData(SWT.FILL, SWT.CENTER,
true, false);
m_mobile2Text.setLayoutData(gd_m_mobile2Text);
sashForm.setWeights(new int[] {218, 262 });
m_bindingContext = initDataBindings();
//m_bindingContext = initDataBindings();
//
}

class PersonViewerUpdateValueStrategy extends UpdateValueStrategy {
protected IStatus doSet(IObservableValue observableValue, Object value) {
Realm.getDefault().asyncExec(new Runnable() {
public void run() {
m_personViewer.refresh();
}
});
return super.doSet(observableValue, value);
}
}
protected DataBindingContext initDataBindings() {

ObservableListTreeContentProvider contentProvider =
new ObservableListTreeContentProvider((IObservableFactory)new
PersonPhoneObservableFactory(), null);
m_personViewer.setContentProvider(contentProvider);

IObservableMap[] personViewerLabelProviderMaps =
BeansObservables.observeMaps(contentProvider.getKnownElement s(),
PersonPhone.class, new String[]{"name", "email", "phone", "mobilePhone1",
"mobilePhone2"});
m_personViewer.setLabelProvider(new
ObservableMapLabelProvider(personViewerLabelProviderMaps));

//m_personViewer.setLabelProvider(new ObservableMapLabelProvider(
// BeansObservables.observeMap(contentProvider.getKnownElements (),
// PersonPhone.class, "name")));

//IObservableMap[] m_personViewerLabelProviderMaps =
BeansObservables.observeMaps(contentProvider.getKnownElement s(),
PersonPhoneGroup.class, new String[]{"persons"});
//m_personViewer.setLabelProvider(new
ObservableMapLabelProvider(m_personViewerLabelProviderMaps)) ;

m_personViewer.setInput(m_groups);

//
DataBindingContext bindingContext = new DataBindingContext();
//
//
return bindingContext;
}

/*
protected DataBindingContext initDataBindings() {
IObservableValue m_mobile2TextTextObserveWidget =
SWTObservables.observeText(m_mobile2Text, SWT.Modify);
IObservableValue m_mobile1TextTextObserveWidget =
SWTObservables.observeText(m_mobile1Text, SWT.Modify);
IObservableValue m_personViewerSelectionObserveSelection =
ViewersObservables.observeSingleSelection(m_personViewer);
IObservableValue m_personViewerSelectionObserveSelection_1 =
ViewersObservables.observeSingleSelection(m_personViewer);
IObservableValue m_emailTextTextObserveWidget =
SWTObservables.observeText(m_emailText, SWT.Modify);
IObservableValue m_nameTextTextObserveWidget =
SWTObservables.observeText(m_nameText, SWT.Modify);
IObservableValue m_personViewerSelectionObserveSelection_1_1 =
ViewersObservables.observeSingleSelection(m_personViewer);
IObservableValue m_phoneTextTextObserveWidget =
SWTObservables.observeText(m_phoneText, SWT.Modify);
IObservableValue m_personViewerSelectionObserveSelection_1_1_1 =
ViewersObservables.observeSingleSelection(m_personViewer);
IObservableValue m_personViewerSelectionObserveSelection_1_1_1_1 =
ViewersObservables.observeSingleSelection(m_personViewer);
sIObservableValue m_personViewerMobilePhone2ObserveDetailValue =
BeansObservables.observeDetailValue(Realm.getDefault(),
m_personViewerSelectionObserveSelection_1, "mobilePhone2",
java.lang.String.class);
IObservableValue m_personViewerMobilePhone1ObserveDetailValue =
BeansObservables.observeDetailValue(Realm.getDefault(),
m_personViewerSelectionObserveSelection_1_1, "mobilePhone1",
java.lang.String.class);
IObservableValue m_personViewerEmailObserveDetailValue =
BeansObservables.observeDetailValue(Realm.getDefault(),
m_personViewerSelectionObserveSelection_1_1_1, "email",
java.lang.String.class);
IObservableValue m_personViewerNameObserveDetailValue =
BeansObservables.observeDetailValue(Realm.getDefault(),
m_personViewerSelectionObserveSelection_1_1_1_1, "name",
java.lang.String.class);
IObservableValue m_personViewerPhoneObserveDetailValue =
BeansObservables.observeDetailValue(Realm.getDefault(),
m_personViewerSelectionObserveSelection, "phone", java.lang.String.class);
//
//
DataBindingContext bindingContext = new DataBindingContext();
//
bindingContext.bindValue(m_personViewerNameObserveDetailValu e,
m_nameTextTextObserveWidget, null, new PersonViewerUpdateValueStrategy());
bindingContext.bindValue(m_personViewerEmailObserveDetailVal ue,
m_emailTextTextObserveWidget, null, new PersonViewerUpdateValueStrategy());
bindingContext.bindValue(m_personViewerPhoneObserveDetailVal ue,
m_phoneTextTextObserveWidget, null, new PersonViewerUpdateValueStrategy());
bindingContext.bindValue(m_personViewerMobilePhone1ObserveDe tailValue,
m_mobile1TextTextObserveWidget, null, new
PersonViewerUpdateValueStrategy());
bindingContext.bindValue(m_personViewerMobilePhone2ObserveDe tailValue,
m_mobile2TextTextObserveWidget, null, new
PersonViewerUpdateValueStrategy());
//
return bindingContext;
}
*/

}
Previous Topic:Wizard Initialization Problem
Next Topic:Wizard Initialization Problem
Goto Forum:
  


Current Time: Wed Apr 16 01:04:02 EDT 2025

Powered by FUDForum. Page generated in 0.03552 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top