0
這是我如何更新我的TableViewer顯示一個列表:查看在Eclipse(RCP)數據矩陣
public void view(MyListClass list) {
ViewerSupport.bind(
this,
new WritableList(list, controller.theClass()),
BeanProperties.values(controller.theClass(), controller.strings())
);
}
controller
是一個封裝我的膠水代碼的類的實例(它是一個不同的類這兩個列表;因爲是controller.theClass()
)。 strings()
是一組屬性名稱。 MyListClass從ArrayList<MyListEntryObject>
下降。這工作正常。但是,我想顯示一個數據矩陣。 MyMatrixClass
是HashMap<Point, MyMatrixEntryObject>
。這是我試過的:
private void view(MyMatrixClass matrix) {
columns(matrix.columns());
List<WritableList> lists = new ArrayList<WritableList>(matrix.rows());
for (MyEntityClass list : matrix.children())
if (list instanceof MyListClass)
lists.add(new WritableList((MyListClass) list, controller.theClass()));
WritableList[] alists = lists.toArray(new WritableList[0]);
MultiList mlist = new MultiList(alists);
ViewerSupport.bind(
this,
mlist,
BeanProperties.value(controller.theClass(), "value")
);
}
這是行不通的。我得到空參數彈出錯誤。 (每個數據模型類實現MyEntityClass
。類名稱已經改變,由於這是我被用來開發一個專用程序。)
長話短說,我怎麼使用ViewerSupport
和BeanProperties
顯示數據的矩陣在TableViewer
?
這就是爲什麼我使用'MultiList'。我想我可能能夠在每行中推入一個'WritableList'。顯然,這並不奏效。無論如何,'MultiList'是什麼? 有一次,我有一個類MyMatrixRow,但我不知道如何有效地使用它。每行都有任意數量的條目 - >任意數量的屬性。那麼我該如何避免需要編寫大量的'getValue1','getValue2'等? –
不幸的是,我不知道如何用Databinding來解決你的問題。但是,您可以定義自己的內容和標籤提供者,這可以利用您的數據模型 - 但是,在這種情況下,當底層模型元素髮生更改時,您有責任更新顯示。 –