2015-04-07 46 views
0

選擇一行,我在我的應用程序,它具有以下功能TableViewer在TableViewer的

  • 它從Web服務獲取數據,並在選擇一排,按鈕得到啓用,可以使操作(所有這些操作都在調用Web服務,所以表與數據庫保持同步)。
  • 當我添加一個新行時,我向Web服務提交了一個「add」命令,並刷新了表。現在我有了一條新線,我知道哪條線是新線。

現在我要選擇默認情況下,新的生產線,我試圖像tableViewer.getTable().select(index);許多命令,並因爲它現在是:

public void selectAdded(int id) { 
    tableViewer.getTable().setSelection(id); 
} 

此圖爲什麼問題:The two different type of selections

上面的代碼顯示了它現在可以使用該代碼。下面的行顯示了我單擊一行時的外觀。問題是,按鈕沒有啓用,並且我有兩個只讀文本字段保持空白,而不是顯示我需要的信息。但是當我點擊時,一切正常。

我該怎麼做才能確保selectAdded(int id)的行爲像點擊一樣?該解決方案應該是多平臺(Mac/Windows),但至少在Mac上。

回答

1

不要使用使用TableViewerTable選擇方法。而是使用

ISelection selection = new StructuredSelection(model object); 

tableViewer.setSelection(selection); 

'模型對象'是要選擇的行(由內容提供者返回)的模型對象。

+0

謝謝,它的工作。我的老闆注意到,如果選擇以藍色顯示(現在是深灰色),會更好。任何想法? –

+1

在大多數平臺上,當控件(表格)具有焦點時,將使用深藍色,而在其他焦點時使用深灰色。改變焦點顏色是困難的。 –

+0

非常感謝!我添加了'tableViewer.getTable()。setFocus();'它看起來像我想要的。 –

相關問題