2012-10-31 77 views
1

我正在學習新的Eclipse 4 RCP平臺,並且我遇到了一個有趣的問題。Eclipse 4 RCP部件類最佳實踐

假設我設計我Application.e4xmi定義爲MPart零件類:

public class SomePartView { 
    private Text someText; 
    private Button someButton; 

    @PostConstruct 
    public void createControls(Composite parent) { 
     parent.setLayout(new GridLayout(3, false)); 
     someText = new Text(parent, SWT.BORDER); 
     someButton = new Button(parent, SWT.NONE); 
     someButton.setText("SomeButton"); 
    } 

    @Focus 
    private void setFocus(IEclipseContext context) { 
     someText.setFocus(); 
    } 

    // ... getters 
} 

我使用的WindowBuilder創建用戶界面,但我希望它是免費的任何通行的行爲代碼,以便我克里特島的一類,我處理的交互是這樣的:

public class SomePartViewController { 

    @PostConstruct 
    public void addBehavior(SomePartView view) { 
     view.getSomeButton().addSelectionListener(new SelectionAdapter() { 
      @Override 
      public void widgetSelected(SelectionEvent e) { 
       // do something 
      } 
     });  
    } 
} 

這是一個很好的做法還是我在這裏重新發明輪子和E4已經有一些這方面的解決方案?如果不是,我如何將這些類連接在一起?我想避免在Eclipse上下文之外創建實例。由於官方的e4文檔相當稀少,如果有人能夠將我的詳盡的書籍或參考手冊鏈接到我可以找到答案的地方,那將會很不錯。

回答

0

我不確定我是否可以給你一個完整的答案,但我會嘗試提出一些提示或評論。

首先,只有應用程序模型引用的類纔會獲得依賴注入;所以SomePartView將分別執行@PostConstruct。然而,在應用程序模型中沒有直接連接SomePartViewController,所以你不會得到任何自動注入。

有些方法可以實現這一點,例如通過使用中描述的處理器擴展,或者通過循環依賴於SomePartView並從那裏實例化行爲類。

如果我的問題得到了解決,但是這會使您的主要實現目的是劃分視圖和行爲。

也許XWT是您真正需要的技術。在這裏,UI是以聲明的方式定義的,而事件處理程序仍然在Java類中實現。我想XWT的工作方式已經是最佳實踐了,因爲它可以與創建用戶界面的Android編程風格相比較。

+0

您是否知道有關e4的良好參考手冊/書籍?我查了官方文件,但它非常稀疏。 –

+0

目前市場上有非常稀少的印刷文檔,afaik有兩本來自Lars Vogel的書(它似乎是關於所有e4東西的文檔權威)http://www.amazon.de/dp/3943747034和一個來自馬克Teufel http://www.amazon.de/Eclipse-4-Marc-Teufel/dp/3868020632這是在德國書面,但是。 目前官方和最好的學習資源是源代碼和示例應用程序。關於如何檢查它,請參閱http://www.vogella.com/articles/Eclipse4Source/article.html!在這裏您還可以找到演示和示例。 –