后起的黑马 2015-11-13 02:11 采纳率: 0%
浏览 626

eclipse rcp 扩展点view创建时机问题

我创建了两个view扩展点,他们以分页方式布局,如图图片说明

启动时自动加载左边的页面(view类的构造函数和CreatPartControl被调用)。只有当鼠标点击切换到右边页面时,对应view的构造函数和CreatePartControl方法才会被调用,页面才会创建。有没有什么方法让这个页面在这个插件启动时就自动创建,而不是点击后才创建。

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-04 18:56
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    在 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 方法并初始化视图。

    注意:这种方法可能会导致内存泄漏,因为它每次运行都会创建一个新的实例。如果你的应用程序非常依赖于这些部分,或者它们需要大量的资源,那么你可能需要考虑其他的方法来解决这个问题。

    评论

报告相同问题?

悬赏问题

  • ¥30 STM32 INMP441无法读取数据
  • ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
  • ¥15 用visualstudio2022创建vue项目后无法启动
  • ¥15 x趋于0时tanx-sinx极限可以拆开算吗
  • ¥500 把面具戴到人脸上,请大家贡献智慧
  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。
  • ¥15 各位 帮我看看如何写代码,打出来的图形要和如下图呈现的一样,急
  • ¥30 c#打开word开启修订并实时显示批注
  • ¥15 如何解决ldsc的这条报错/index error
  • ¥15 VS2022+WDK驱动开发环境