2012-10-31 48 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!在这里您还可以找到演示和示例。 –