2011-06-11 34 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