我正在学习新的 Eclipse 4 RCP 平台,但遇到了一个有趣的问题。
MPart
假设我正在为我的 Application.e4xmi 中定义的一个零件类设计:
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 来创建 ui,但我希望它没有任何行为代码,所以我创建了一个类来处理这样的交互:
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 文档相当稀疏,如果有人可以链接我一本详尽的书或参考手册,我可以在其中找到答案,那就太好了。