gpt4 book ai didi

java - eclipse插件启动后立即调用方法

转载 作者:行者123 更新时间:2023-12-02 13:19:57 24 4
gpt4 key购买 nike

我正在为 Eclipse Luna 开发一个插件,我想向某些 View 添加一些监听器,我知道该怎么做。我的问题是在哪里做?

我需要在插件启动后立即添加它们。所以我想在加载插件时一定有某种方法被调用,我只是在文档中找不到它。到目前为止,我尝试在 Activator 类中的 public void start(BundleContext context) throws Exception 方法中添加此监听器,但它不起作用。我认为此时 ui 部分尚未加载,这就是它失败的原因。

最佳答案

插件的 Activator start 方法在使用插件中的其他内容之前不会运行,因此这不是放置监听器的合适位置。默认情况下,Eclipse 初始化期间不会加载插件,仅在需要时加载。

您可以使用 org.eclipse.ui.startup 扩展点来定义一个实现 IStartup 的类,该类将在 Eclipse 初始化期间运行。

请注意,此接口(interface)定义的earlyStartup方法可能会在UI初始化之前运行。使用类似以下内容的内容从 earlyStartup 运行 UI 代码:

Display.getDefault().asyncExec(new Runnable() {
public void run() {
// UI code
}
});

例如获取选择服务:

@Override
public void earlyStartup()
{
Display.getDefault().asyncExec(new Runnable() {
@Override
public void run() {
final ISelectionService service = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getSelectionService();
System.out.println("service " + service);
}
});
}

关于java - eclipse插件启动后立即调用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43609733/

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