[英]how to synchronize two Eclipse parts using Jface
I found problem in synchronizing two Eclipse parts using databinding, I have used one model between two part class contains text boxes and both classes bind with that model. 我发现在使用数据绑定同步两个Eclipse部件时出现问题,我在两个包含文本框的零件类之间使用了一个模型,并且两个类都与该模型绑定。
For Part one: 对于第一部分:
DataBindingContext databindingcontext = new DataBindingContext();
textLeft = new Text(parent, SWT.BORDER);
textLeft.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
IObservableValue iobservableModel = PojoProperties.value("name").observe(new Name());
IObservableValue observablevalueLeft = WidgetProperties.text (SWT.Modify).observe(textLeft);
databindingcontext.bindValue (observablevalueLeft,iobservableModel);
Model: 模型:
public class Name {
public static String static_strName;
public String getName() {
return static_strName;
}
public void setName(String name) {
static_strName = name;
}
}
for Part 2: 对于第2部分:
DataBindingContext m_databindingcontext = new DataBindingContext();
textPart2 = new Text(parent, SWT.BORDER);
textPart2.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
IObservableValue iobservableModel = PojoProperties.value("name").observe(new Name());
IObservableValue observablevaluePart2 = WidgetProperties.text (SWT.Modify).observe(textPart2);
m_databindingcontext.bindValue (observablevaluePart2,iobservableModel);
Try this: You need PropertyChangeSupport 试试这个:您需要PropertyChangeSupport
DataBindingContext bindingContext = new DataBindingContext();
textLeft = new Text(parent, SWT.BORDER);
textLeft.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
IObservableValue observablevalueLeft = SWTObservables.observeText(textLeft , SWT.Modify);
IObservableValue iobservableModel = BeansObservables.observeValue(modelChangeRegistry, "name");
bindingContext.bindValue(iobservableModel, iobservableModel , null, null);
public class Name extends AbstractPropertyRegistration {
public static String static_strName;
public String getName() {
return static_strName;
}
public void setName(String name) {
static_strName = name;
}
}
public abstract class AbstractPropertyRegistration {
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);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.