我正在开发一个 Eclipse 插件。当我们第一次打开 Eclipse 时,我需要打开我的预想。有什么方法可以实现这一目标?我想一定有一些听众可用,但无法追踪。
我们可以在eclipse开始使用后打开一个preferivePlatformUI.getWorkbench().showPrespective(<prespective id>)
同样有一种方法可以在 Eclipse 启动时打开预置项,以便在启动 Eclipse 时打开我们想要的预置项。
我正在开发一个 Eclipse 插件。当我们第一次打开 Eclipse 时,我需要打开我的预想。有什么方法可以实现这一目标?我想一定有一些听众可用,但无法追踪。
我们可以在eclipse开始使用后打开一个preferivePlatformUI.getWorkbench().showPrespective(<prespective id>)
同样有一种方法可以在 Eclipse 启动时打开预置项,以便在启动 Eclipse 时打开我们想要的预置项。
您可以org.eclipse.ui.startup
在插件中使用扩展点。激活插件后,检查/设置首选项以决定是否要切换视角,然后安排UIJob
执行。
实现扩展点。插件中的某些类需要implements org.eclipse.ui.IStartup
. 在这种情况下,激活器类很好。特别是,因为您不需要该earlyStartup
方法中的任何内容。
在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());
}
}
使用首选项存储为您的决策逻辑保留数据。在此实现中,每当升级插件时,每个工作区都会切换一次透视图。偏好存储中记录的数据将允许未来版本具有不同的策略。它使用getPreferenceStore
fromAbstractUIPlugin
因此它是每个工作区的范围。如果您想使用其他范围,请参阅常见问题解答。
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;
}
我在插件中打开自定义透视图的一件事是config.ini
在 eclipe 的安装文件夹中对其进行配置,如下所示:
-perspective <my perspective id>
它工作正常。我从 Lars Vogel 的教程中获得了这些信息,您可以在此处找到。希望这可以帮助。
另一种方式:
org.eclipse.ui.IPerspectiveRegistry.setDefaultPerspective(id)
这会将默认透视图设置为给定的 id。 相同的 API 文档。
去
D:\{MyTestSpace}\eclipse\features\myCustom.plugin.feature_3.1.0.201607220552
你可以feature.xml
在插件标签下看到你得到了 id。
使用此 ID config.ini
,您可以在其中找到
D:\{MyTestSpace}\eclipse\configuration
作为
-perspective <myCustum.plugin>