我创建了两个view扩展点,他们以分页方式布局,如图
启动时自动加载左边的页面(view类的构造函数和CreatPartControl被调用)。只有当鼠标点击切换到右边页面时,对应view的构造函数和CreatePartControl方法才会被调用,页面才会创建。有没有什么方法让这个页面在这个插件启动时就自动创建,而不是点击后才创建。
我创建了两个view扩展点,他们以分页方式布局,如图
启动时自动加载左边的页面(view类的构造函数和CreatPartControl被调用)。只有当鼠标点击切换到右边页面时,对应view的构造函数和CreatePartControl方法才会被调用,页面才会创建。有没有什么方法让这个页面在这个插件启动时就自动创建,而不是点击后才创建。
以下回答参考 皆我百晓生、券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。
在 Eclipse 中,我们可以使用 org.eclipse.ui.part.PartInit
接口来实现自动初始化部分功能。但是请注意,这并不是一个完美的解决方案,因为某些特定的行为可能需要额外的逻辑处理。
以下是一个简单的示例:
public class MyView extends View {
private PartInit partInit;
public void setPartInit(PartInit partInit) {
this.partInit = partInit;
}
@Override
protected void createPartControl() {
// 在这里添加你的代码
partInit.init(this);
}
}
然后,在你想要自动初始化的部分中注入这个 MyView
实例:
private MyView myView;
...
myView.setPartInit(new MyPartInit());
在 MyPartInit
类中,你可以重写 init()
方法,并添加一些必要的逻辑:
@Override
public void init(View view) {
view.setPartControl(new MyPartControl(view));
}
这样,当你第一次运行你的插件时,setPartControl
将会立即执行,从而触发 createPartControl
方法并初始化视图。
注意:这种方法可能会导致内存泄漏,因为它每次运行都会创建一个新的实例。如果你的应用程序非常依赖于这些部分,或者它们需要大量的资源,那么你可能需要考虑其他的方法来解决这个问题。