2012-09-20 47 views
1

我是SWT和JFace的新手。我有一個附有TableViewer的對話框。我爲TableViewer添加了一個過濾器。我的要求是,當搜索返回多個項目時,對話框應該顯示它們並讓用戶選擇他想要的,然後單擊確定,以便將選定的值傳回給父函數。如何模擬OK按鈕單擊Jface對話框

我實現它沒有任何問題。但是當搜索只返回一個值時,這個值應該被傳遞迴父窗口並關閉對話框。

我在通過代碼關閉對話框時遇到問題。當條件滿足時,我嘗試使用okPressed()

這是我打電話okPressed():在 org.eclipse參數在 org.eclipse.swt.SWT.error(來源不明)無效:

if(!searchStr.isEmpty()){ 
    dialogSearch(); 
    if(tableViewer.getTable().getItems().length == 1){ 
     TableItem[] itemSelected = tableViewer.getTable().getItems(); 
     pojoRefType = (Object)itemSelected[0].getData(); 
     this.okPressed(); 
    } 
} 

java.lang.IllegalArgumentException異常.swt.SWT.error(Unknown Source)

任何人都可以請建議如何處理這種情況?

+0

確切位置在哪裏,你得到這個錯誤? – Baz

+0

如果對我的回答和/或我的評論有任何迴應,我們將非常樂意。 – Baz

回答

0

要關閉該對話框,只要致電:

this.setReturnCode(OK); 
this.close(); 

這是所有有做...

你還可以嘗試:

super.okPressed(); 
相關問題