gpt4 book ai didi

java - Eclipse 4 RCP Part 类最佳实践

转载 作者:行者123 更新时间:2023-12-01 05:02:52 25 4
gpt4 key购买 nike

我正在学习新的 Eclipse 4 RCP 平台,我刚刚遇到了一个有趣的问题。

假设我正在为 Application.e4xmi 中定义的 MPart 设计一个 Part 类:

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 文档相当稀疏,如果有人能给我链接一本详尽的书籍或引用手册,让我可以找到答案,那就太好了。

最佳答案

我不确定是否可以给你一个完整的答案,但我会尝试提出一些提示或评论。

首先,只有应用程序模型引用的类才会获得依赖注入(inject);因此 SomePartView 将执行相应的 @PostConstruct。但是,在应用程序模型之外没有与 SomePartViewController 的直接连接,因此您不会获得任何自动注入(inject)。

有一些方法可以实现这一点,例如通过使用Extending the application model中描述的处理器扩展或者通过循环依赖于 SomePartView 并从那里实例化行为类。

如果我的问题正确,那么这将无法实现划分 View 和行为的主要实现目的。

也许XWT是您真正寻找的技术。这里 UI 是声明式定义的,事件处理程序仍然在 Java 类中实现。我认为 XWT 的工作方式已经是一种最佳实践,因为它可以与创建用户界面的 Android 编程风格进行比较。

关于java - Eclipse 4 RCP Part 类最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13159605/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com