[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Newsgroup Home]
|
[news.eclipse.platform] Re: treeviewer databinding error
|
- From: d95776@xxxxxxxxx (hao)
- Date: Mon, 26 May 2008 00:51:54 +0000 (UTC)
- Newsgroups: eclipse.platform
- Organization: Eclipse
- User-agent: NewsPortal/0.36 (http://florian-amrhein.de/newsportal)
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(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.PhoneBookUsingTreeViewerEx.initDataBindings(PhoneBookUsingTreeViewerEx.java:487)
at
com.discover.plugin.phonebook.treeviewer.v34.PhoneBookUsingTreeViewerEx.createContents(PhoneBookUsingTreeViewerEx.java:456)
at
com.discover.plugin.phonebook.treeviewer.v34.PhoneBookUsingTreeViewerEx.open(PhoneBookUsingTreeViewerEx.java:362)
at
com.discover.plugin.phonebook.treeviewer.v34.PhoneBookUsingTreeViewerEx$1.run(PhoneBookUsingTreeViewerEx.java:348)
at
org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:288)
at
com.discover.plugin.phonebook.treeviewer.v34.PhoneBookUsingTreeViewerEx.main(PhoneBookUsingTreeViewerEx.java:343)
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.PhoneBookUsingTreeViewerEx.initDataBindings(PhoneBookUsingTreeViewerEx.java:487)
at
com.discover.plugin.phonebook.treeviewer.v34.PhoneBookUsingTreeViewerEx.createContents(PhoneBookUsingTreeViewerEx.java:456)
at
com.discover.plugin.phonebook.treeviewer.v34.PhoneBookUsingTreeViewerEx.open(PhoneBookUsingTreeViewerEx.java:362)
at
com.discover.plugin.phonebook.treeviewer.v34.PhoneBookUsingTreeViewerEx$1.run(PhoneBookUsingTreeViewerEx.java:348)
at
org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:288)
at
com.discover.plugin.phonebook.treeviewer.v34.PhoneBookUsingTreeViewerEx.main(PhoneBookUsingTreeViewerEx.java:343)
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
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.IObservableFactory;
import org.eclipse.core.databinding.observable.value.IObservableValue;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.jface.databinding.swt.SWTObservables;
import
org.eclipse.jface.databinding.viewers.ObservableListTreeContentProvider;
import org.eclipse.jface.databinding.viewers.ObservableMapLabelProvider;
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(propertyName,
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@xxxxxxxxxx",
"1234567890", "", ""));
group1.addPersonPhone(new PersonPhone("Alexander Mitin",
"mitin@xxxxxxxxxx", "",
"0987654321", ""));
group1.addPersonPhone(new PersonPhone("Alexander Lobas",
"lobas@xxxxxxxxxx", "",
"", "111-222-333-00"));
group2.addPersonPhone(new PersonPhone("Mike Taylor",
"taylor@xxxxxxxxxxxxxxxxxx",
"503-598-4900", "", ""));
group2.addPersonPhone(new PersonPhone("Eric Clayberg",
"clayberg@xxxxxxxxxxxxxxxxxx", "+1 (503) 598-4900", "", ""));
group2.addPersonPhone(new PersonPhone("Dan Rubel",
"dan@xxxxxxxxxxxxxxxxxx",
"503-598-4900", "", ""));
group3.addPersonPhone(new PersonPhone("Gina Nebling",
"support@xxxxxxxxxxxxxxxxxx", "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.getKnownElements(),
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.getKnownElements(),
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_personViewerNameObserveDetailValue,
m_nameTextTextObserveWidget, null, new PersonViewerUpdateValueStrategy());
bindingContext.bindValue(m_personViewerEmailObserveDetailValue,
m_emailTextTextObserveWidget, null, new PersonViewerUpdateValueStrategy());
bindingContext.bindValue(m_personViewerPhoneObserveDetailValue,
m_phoneTextTextObserveWidget, null, new PersonViewerUpdateValueStrategy());
bindingContext.bindValue(m_personViewerMobilePhone1ObserveDetailValue,
m_mobile1TextTextObserveWidget, null, new
PersonViewerUpdateValueStrategy());
bindingContext.bindValue(m_personViewerMobilePhone2ObserveDetailValue,
m_mobile2TextTextObserveWidget, null, new
PersonViewerUpdateValueStrategy());
//
return bindingContext;
}
*/
}