簡體   English   中英

JFace數據綁定映射屬性到SWT文本字段

[英]JFace Databinding Map Property to SWT Text Field

我正在嘗試將map屬性綁定到一個簡單的SWT Text小部件。

這是一些偽代碼:

value = new WritableValue();
WritableMap map = new WritableMap();
map.put("test", "test");
value.setValue(map);

IObservableValue target = WidgetProperties.text().observe(part.getTxt());
IObservableValue model = BeanProperties.value("test").observeDetail(value); 
dbc.bindValue(target, model);

這確實不起作用。 如果我使用BeanProperties.map(...)然后它返回一個IObservableMap ,我不能在dbc.bindValue(...)

如果有人能解釋如何正確地做到這一點,我會很高興。

終於找到了...可以通過觀察地圖條目

IObservableValue o = Observables.observeMapEntry(map, "test")

如果你找不到正確的方法(TM),你也可以編寫自己的IObservableValue ,這並不難:

public class MapObservableValue extends AbstractObservableValue {

private final Map map;

public MapObservableValue(Map map) {
    this.map = map;
}

@Override
public Object getValueType() {
    return Object.class;
}

@Override
protected Object doGetValue() {
    return map.get("test");
}

@Override
protected void doSetValue(Object value) {
    map.put("test", value);
}
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM