2015-05-27 54 views
0

我有一個swt按鈕ViewPart與附加MySelectionListener implements SelectionListener 還有另一個按鈕被禁用。SWT如何有效地從SelectionListener訪問其他控件

聽衆應該做的工作,如果工作的返回結果是true,它應該啓用其他按鈕。

我的問題最好的辦法是什麼?

現在我所做的是將按鈕作爲構造函數參數傳遞給'MySelectionListener',我想還有其他方法可以做到這一點。

另一種方法是創建一個接口

public interface EnableButton(){ 
    void enableButton(); 
} 

而且具有View實現它,那麼界面傳遞給「MySelectionListener」作爲構造函數的參數又一次...... 我也並不喜歡這個方法,因爲這需要爲每次更新或任何其他我需要的任務創建和實現多個接口。

我沒有使用任何注射構架

回答

0

由於您SelectionListener中似乎只爲你ViewPart時相關的,你可以實現它作爲你ViewPart時中的內部類。

或者您將ViewPart作爲構造函數參數傳遞給MySelectionListener。然後讓方法MySelectionListener.widgetSelected委託給ViewPart的一個方法,在這裏你可以訪問你需要的所有東西,比如按鈕。