我有Part
包含TreeViewer
与Node
s和每个Node
具有name
属性。我有一个文本字段来编辑当前所选节点的名称。我已绑定了当前的选择和低于这个文本字段:如何在文本字段值更改时标记脏部分?
IViewerObservableValue observedElementSingleSelection = ViewersObservables
.observeSingleSelection(treeViewer);
IObservableValue detailValue = PojoProperties.value(Node.PROPERTY_NAME, String.class)
.observeDetail(observedElementSingleSelection);
ISWTObservableValue observableNameText = WidgetProperties.text(SWT.Modify)
.observe(nameText);
dataBindingContext.bindValue(observableNameText, detailValue);
现在我想只要用户编辑任何Node
的名字,以纪念这个treeViewer
脏的部分。
当此Part
打开时,将从数据库中检索Node
,并创建树。如果我将ModifyListener
添加到文本字段以标记零件脏,然后在初始加载Part
被标记为脏,我不想。只有在用户编辑任何Node
的名称时才有办法标记Part
肮脏,但不是在初始加载时?
我试图设置UpdateStrategy
,以便数据绑定是单向的,即仅从视图到模型,但是在选择时名称不会出现在文本字段中。
我试过KeyListener
,但是我必须过滤掉所有不可打印的键,以将Part
标记为脏。有没有更好的解决方案?
我建议你先加载模型并设置绑定/侦听器等。之后。然后它不应该变脏。 –