【问题标题】:JFace Databinding Map Property to SWT Text FieldJFace 数据绑定映射属性到 SWT 文本字段
【发布时间】:2015-10-12 03:33:56
【问题描述】:

我正在尝试将地图属性绑定到一个简单的 SWT 文本小部件。

这是一些伪代码:

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(...) 使用它。

如果有人能解释如何正确地做,我会很高兴。

【问题讨论】:

  • 一个地图有多个值,文本小部件应该显示什么?
  • 我想在(不工作)示例中指定的键的值...我想将地图的几个键绑定到每个文本字段

标签: java dictionary data-binding swt jface


【解决方案1】:

终于找到了……地图条目可以通过

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

【讨论】:

    【解决方案2】:

    如果找不到正确的方式(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);
    }
    }
    

    【讨论】:

    • 嗨,好的,这是另一个解决方案。所以似乎没有人知道如何通过数据绑定 api 来实现它,我会接受你的回答,因为它也适合我的情况!非常感谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-14
    • 2011-09-13
    • 1970-01-01
    • 2011-02-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多