[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Newsgroup Home]
[news.eclipse.platform] treeviewer databinding error

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(NativeMethodAccessorImpl.java:64)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:615)
at org.eclipse.core.internal.databinding.beans.JavaBeanObservableMap.doGet(JavaBeanObservableMap.java:105)
at org.eclipse.core.databinding.observable.map.ComputedObservableMap$1.handleSetChange(ComputedObservableMap.java:52)
at org.eclipse.core.databinding.observable.set.SetChangeEvent.dispatch(SetChangeEvent.java:61)
at org.eclipse.core.databinding.observable.ChangeManager.fireEvent(ChangeManager.java:129)
at org.eclipse.core.databinding.observable.set.ObservableSet.fireSetChange(ObservableSet.java:67)
at org.eclipse.core.internal.databinding.observable.UnmodifiableObservableSet.access$0(UnmodifiableObservableSet.java:1)
at org.eclipse.core.internal.databinding.observable.UnmodifiableObservableSet$1.handleSetChange(UnmodifiableObservableSet.java:30)
at org.eclipse.core.databinding.observable.set.SetChangeEvent.dispatch(SetChangeEvent.java:61)
at org.eclipse.core.databinding.observable.ChangeManager.fireEvent(ChangeManager.java:129)
at org.eclipse.core.databinding.observable.set.ObservableSet.fireSetChange(ObservableSet.java:67)
at org.eclipse.core.internal.databinding.observable.masterdetail.DetailObservableSet.access$1(DetailObservableSet.java:1)
at org.eclipse.core.internal.databinding.observable.masterdetail.DetailObservableSet$1.handleSetChange(DetailObservableSet.java:42)
at org.eclipse.core.databinding.observable.set.SetChangeEvent.dispatch(SetChangeEvent.java:61)
at org.eclipse.core.databinding.observable.ChangeManager.fireEvent(ChangeManager.java:129)
at org.eclipse.core.databinding.observable.set.ObservableSet.fireSetChange(ObservableSet.java:67)
at org.eclipse.core.databinding.observable.set.WritableSet.add(WritableSet.java:90)
at org.eclipse.core.internal.databinding.observable.masterdetail.DetailObservableSet.add(DetailObservableSet.java:106)
at org.eclipse.jface.internal.databinding.viewers.ObservableCollectionTreeContentProvider$TreeNode.<init>(ObservableCollectionTreeContentProvider.java:284)
at org.eclipse.jface.internal.databinding.viewers.ObservableCollectionTreeContentProvider.getOrCreateNode(ObservableCollectionTreeContentProvider.java:181)
at org.eclipse.jface.internal.databinding.viewers.ObservableCollectionTreeContentProvider.getChildren(ObservableCollectionTreeContentProvider.java:162)
at org.eclipse.jface.internal.databinding.viewers.ObservableCollectionTreeContentProvider.getElements(ObservableCollectionTreeContentProvider.java:158)
at org.eclipse.jface.databinding.viewers.ObservableListTreeContentProvider.getElements(ObservableListTreeContentProvider.java:155)
at org.eclipse.jface.viewers.StructuredViewer.getRawChildren(StructuredViewer.java:937)
at org.eclipse.jface.viewers.ColumnViewer.getRawChildren(ColumnViewer.java:703)
at org.eclipse.jface.viewers.AbstractTreeViewer.getRawChildren(AbstractTreeViewer.java:1330)
at org.eclipse.jface.viewers.TreeViewer.getRawChildren(TreeViewer.java:385)
at org.eclipse.jface.viewers.AbstractTreeViewer.getFilteredChildren(AbstractTreeViewer.java:636)
at org.eclipse.jface.viewers.AbstractTreeViewer.getSortedChildren(AbstractTreeViewer.java:602)
at org.eclipse.jface.viewers.AbstractTreeViewer$1.run(AbstractTreeViewer.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(TreeViewer.java:634)
at org.eclipse.jface.viewers.AbstractTreeViewer.internalInitializeTree(AbstractTreeViewer.java:1490)
at org.eclipse.jface.viewers.TreeViewer.internalInitializeTree(TreeViewer.java:823)
at org.eclipse.jface.viewers.AbstractTreeViewer$5.run(AbstractTreeViewer.java:1474)
at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1365)
at org.eclipse.jface.viewers.TreeViewer.preservingSelection(TreeViewer.java:397)
at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1328)
at org.eclipse.jface.viewers.AbstractTreeViewer.inputChanged(AbstractTreeViewer.java:1467)
at org.eclipse.jface.viewers.ContentViewer.setInput(ContentViewer.java:251)
at org.eclipse.jface.viewers.StructuredViewer.setInput(StructuredViewer.java:1603)
at com.discover.plugin.phonebook.treeviewer.v34.PhoneBookUsingTreeViewer.initDataBindings(PhoneBookUsingTreeViewer.java:313)
at com.discover.plugin.phonebook.treeviewer.v34.PhoneBookUsingTreeViewer.createContents(PhoneBookUsingTreeViewer.java:283)
at com.discover.plugin.phonebook.treeviewer.v34.PhoneBookUsingTreeViewer.open(PhoneBookUsingTreeViewer.java:161)
at com.discover.plugin.phonebook.treeviewer.v34.PhoneBookUsingTreeViewer$1.run(PhoneBookUsingTreeViewer.java:147)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:288)
at com.discover.plugin.phonebook.treeviewer.v34.PhoneBookUsingTreeViewer.main(PhoneBookUsingTreeViewer.java:142)
java.lang.RuntimeException: java.lang.IllegalArgumentException
at org.eclipse.core.internal.databinding.beans.JavaBeanObservableMap.doGet(JavaBeanObservableMap.java:110)
at org.eclipse.core.databinding.observable.map.ComputedObservableMap$1.handleSetChange(ComputedObservableMap.java:52)
at org.eclipse.core.databinding.observable.set.SetChangeEvent.dispatch(SetChangeEvent.java:61)
at org.eclipse.core.databinding.observable.ChangeManager.fireEvent(ChangeManager.java:129)
at org.eclipse.core.databinding.observable.set.ObservableSet.fireSetChange(ObservableSet.java:67)
at org.eclipse.core.internal.databinding.observable.UnmodifiableObservableSet.access$0(UnmodifiableObservableSet.java:1)
at org.eclipse.core.internal.databinding.observable.UnmodifiableObservableSet$1.handleSetChange(UnmodifiableObservableSet.java:30)
at org.eclipse.core.databinding.observable.set.SetChangeEvent.dispatch(SetChangeEvent.java:61)
at org.eclipse.core.databinding.observable.ChangeManager.fireEvent(ChangeManager.java:129)
at org.eclipse.core.databinding.observable.set.ObservableSet.fireSetChange(ObservableSet.java:67)
at org.eclipse.core.internal.databinding.observable.masterdetail.DetailObservableSet.access$1(DetailObservableSet.java:1)
at org.eclipse.core.internal.databinding.observable.masterdetail.DetailObservableSet$1.handleSetChange(DetailObservableSet.java:42)
at org.eclipse.core.databinding.observable.set.SetChangeEvent.dispatch(SetChangeEvent.java:61)
at org.eclipse.core.databinding.observable.ChangeManager.fireEvent(ChangeManager.java:129)
at org.eclipse.core.databinding.observable.set.ObservableSet.fireSetChange(ObservableSet.java:67)
at org.eclipse.core.databinding.observable.set.WritableSet.add(WritableSet.java:90)
at org.eclipse.core.internal.databinding.observable.masterdetail.DetailObservableSet.add(DetailObservableSet.java:106)
at org.eclipse.jface.internal.databinding.viewers.ObservableCollectionTreeContentProvider$TreeNode.<init>(ObservableCollectionTreeContentProvider.java:284)
at org.eclipse.jface.internal.databinding.viewers.ObservableCollectionTreeContentProvider.getOrCreateNode(ObservableCollectionTreeContentProvider.java:181)
at org.eclipse.jface.internal.databinding.viewers.ObservableCollectionTreeContentProvider.getChildren(ObservableCollectionTreeContentProvider.java:162)
at org.eclipse.jface.internal.databinding.viewers.ObservableCollectionTreeContentProvider.getElements(ObservableCollectionTreeContentProvider.java:158)
at org.eclipse.jface.databinding.viewers.ObservableListTreeContentProvider.getElements(ObservableListTreeContentProvider.java:155)
at org.eclipse.jface.viewers.StructuredViewer.getRawChildren(StructuredViewer.java:937)
at org.eclipse.jface.viewers.ColumnViewer.getRawChildren(ColumnViewer.java:703)
at org.eclipse.jface.viewers.AbstractTreeViewer.getRawChildren(AbstractTreeViewer.java:1330)
at org.eclipse.jface.viewers.TreeViewer.getRawChildren(TreeViewer.java:385)
at org.eclipse.jface.viewers.AbstractTreeViewer.getFilteredChildren(AbstractTreeViewer.java:636)
at org.eclipse.jface.viewers.AbstractTreeViewer.getSortedChildren(AbstractTreeViewer.java:602)
at org.eclipse.jface.viewers.AbstractTreeViewer$1.run(AbstractTreeViewer.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(TreeViewer.java:634)
at org.eclipse.jface.viewers.AbstractTreeViewer.internalInitializeTree(AbstractTreeViewer.java:1490)
at org.eclipse.jface.viewers.TreeViewer.internalInitializeTree(TreeViewer.java:823)
at org.eclipse.jface.viewers.AbstractTreeViewer$5.run(AbstractTreeViewer.java:1474)
at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1365)
at org.eclipse.jface.viewers.TreeViewer.preservingSelection(TreeViewer.java:397)
at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1328)
at org.eclipse.jface.viewers.AbstractTreeViewer.inputChanged(AbstractTreeViewer.java:1467)
at org.eclipse.jface.viewers.ContentViewer.setInput(ContentViewer.java:251)
at org.eclipse.jface.viewers.StructuredViewer.setInput(StructuredViewer.java:1603)
at com.discover.plugin.phonebook.treeviewer.v34.PhoneBookUsingTreeViewer.initDataBindings(PhoneBookUsingTreeViewer.java:313)
at com.discover.plugin.phonebook.treeviewer.v34.PhoneBookUsingTreeViewer.createContents(PhoneBookUsingTreeViewer.java:283)
at com.discover.plugin.phonebook.treeviewer.v34.PhoneBookUsingTreeViewer.open(PhoneBookUsingTreeViewer.java:161)
at com.discover.plugin.phonebook.treeviewer.v34.PhoneBookUsingTreeViewer$1.run(PhoneBookUsingTreeViewer.java:147)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:288)
at com.discover.plugin.phonebook.treeviewer.v34.PhoneBookUsingTreeViewer.main(PhoneBookUsingTreeViewer.java:142)
Caused by: java.lang.IllegalArgumentException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:615)
at org.eclipse.core.internal.databinding.beans.JavaBeanObservableMap.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.getKnownElements(),
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();
	}
	
}