2011-06-11 53 views
0

我想将我的SWT UI绑定到Java中的测试模型。绑定工作。但这个价值恰恰是来自模型的价值。因此,如果模型是布尔型的,并且它返回true,它将在UI小部件上真实地显示为“true”,这不是我想要显示用户的内容。有没有一种方法可以在放入UI小部件之前检查绑定值?说如果模型返回true,我检查模型值是否为true,然后决定在我的标签上显示为“它是正确的”,否则“不是错误的”,如果为false。在SWT/Jface中检查数据绑定的值

同样,如果我有一个标签,并且希望将其绑定到返回帐户信用余额值的模型,我的标签可能已经有一些文字显示“您的帐户有”,我希望我只能将THE_BOUND_VALUE附加到标签上,而没有将整个标签的值覆盖模型的值。以下是我做我的绑定:

IObservableValue tableViewer_myTestObserveSingleSelection = ViewersObservables.observeSingleSelection(tableViewer_myTest); 
    IObservableList tableViewer_myTestDataContentObserveDetailList = BeansObservables.observeDetailList(tableViewer_myTestObserveSingleSelection, "DataContent", TestModelData.class); 
    tableViewer_DataContent.setInput(tableViewer_myTestDataContentObserveDetailList); 

这些代码是从windowsbuilder亲生成食,但不知何故,我不能使用任何修改绑定值到我要展示我的UI的方式方法。

感谢您的任何帮助。

回答

3

你可以在Converters之间进行类型转换。看看this example

+0

感谢您的示例。这真的很有帮助。我对转换器很新颖。但是,当放入表格查看器或具有主 - 细节类型关系的组件并且其细节呈列表形式时,我似乎无法找到将转换器加入其中的方法。或者我错过了什么?这些UpdateStrategy有更多的例子吗?我发现,当我谷歌的时候,有很少的例子。 – Carven 2011-06-14 12:33:34

+1

@ Xenon:您可以使用ViewerSupport绑定tableviewer。使用查看器的标签提供程序设置实际显示模型中的值的方式。看到这个:http://dev.eclipse.org/viewcvs/viewvc.cgi/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet009TableViewer.java?view=markup – Sandman 2011-06-14 13:04:50