1

我正在开发一个 Eclipse 插件。当我们第一次打开 Eclipse 时,我需要打开我的预想。有什么方法可以实现这一目标?我想一定有一些听众可用,但无法追踪。

我们可以在eclipse开始使用后打开一个preferivePlatformUI.getWorkbench().showPrespective(<prespective id>)

同样有一种方法可以在 Eclipse 启动时打开预置项,以便在启动 Eclipse 时打开我们想要的预置项。

4

3 回答 3

4

您可以org.eclipse.ui.startup在插件中使用扩展点。激活插件后,检查/设置首选项以决定是否要切换视角,然后安排UIJob执行。

  1. 实现扩展点。插件中的某些类需要implements org.eclipse.ui.IStartup. 在这种情况下,激活器类很好。特别是,因为您不需要该earlyStartup方法中的任何内容。

  2. start方法中,做出切换和调度的决定:

    public void start(BundleContext context) throws Exception {
        super.start(context);
        plugin = this;
    
        final boolean switchPerpective = processPluginUpgrading();
        if (switchPerpective) {
            final IWorkbench workbench = PlatformUI.getWorkbench();
            new UIJob("Switching perspectives"){
                @Override
                public IStatus runInUIThread(IProgressMonitor monitor) {
                    try {
                        workbench.showPerspective(perspectiveId, workbench.getActiveWorkbenchWindow());
                    } catch (WorkbenchException e) {
                        return new Status(IStatus.ERROR,PLUGIN_ID,"Error while switching perspectives", e);
                    }
                    return Status.OK_STATUS;
                }}
            .run(new NullProgressMonitor());
        }
    }
    
  3. 使用首选项存储为您的决策逻辑保留数据。在此实现中,每当升级插件时,每个工作区都会切换一次透视图。偏好存储中记录的数据将允许未来版本具有不同的策略。它使用getPreferenceStorefromAbstractUIPlugin因此它是每个工作区的范围。如果您想使用其他范围,请参阅常见问题解答

    private Boolean processPluginUpgrading() {
        final Version version = getDefault().getBundle().getVersion();
        final IPreferenceStore preferenceStore = getDefault().getPreferenceStore();
        final String preferenceName = "lastVersionActivated";
        final String lastVersionActivated = preferenceStore.getString(preferenceName);
        final boolean upgraded = 
                "".equals(lastVersionActivated)
                || (version.compareTo(new Version(lastVersionActivated)) > 0);
        preferenceStore.setValue(preferenceName, version.toString());
        return upgraded;
    }
    
于 2013-06-02T18:14:13.570 回答
1

我在插件中打开自定义透视图的一件事是config.ini在 eclipe 的安装文件夹中对其进行配置,如下所示:

-perspective <my perspective id>

它工作正常。我从 Lars Vogel 的教程中获得了这些信息,您可以在此处找到。希望这可以帮助。

另一种方式:

org.eclipse.ui.IPerspectiveRegistry.setDefaultPerspective(id)这会将默认透视图设置为给定的 id。 相同的 API 文档。

于 2013-06-01T15:13:35.587 回答
0

D:\{MyTestSpace}\eclipse\features\myCustom.plugin.feature_3.1.0.201607220552

你可以feature.xml在插件标签下看到你得到了 id。

使用此 ID config.ini,您可以在其中找到

D:\{MyTestSpace}\eclipse\configuration

作为

-perspective <myCustum.plugin>
于 2016-07-29T07:26:13.740 回答