让你的视图(ViewPart)支持Show In请求(1)

编辑器和视图都能支持名为Show In的导航操作。这个操作在workbench菜单栏的Navitate菜单的show in子菜单下,UI上的展示可能如下图所示:

这一功能通常也会被添加至视图或编辑器的右键菜单中(如何添加在后面的博文中有描述),如下所示:

Show In请求,为WrokbenchPart间的交互提供了一种较为通用的方式。
本篇,描述的是下面一种需求: 将你自己的视图添加至show in目标列表并提供show in支持。
步骤:
1.首先,你的视图需要实现org.eclipse.ui.part.IShowInTarget接口,并实现show方法,show方法的响应方式是:选择被传递的上下文中的合适内容,并在可能的情况下显示这些内容。eg:
protected IShowInTarget getShowInTarget() {
		return new IShowInTarget() {
			public boolean show(ShowInContext context) {
				ISelection sel= context.getSelection();
				if (sel instanceof ITextSelection) {
					ITextSelection tsel= (ITextSelection) sel;
					int offset= tsel.getOffset();
					IJavaElement element= fEditor.getElementAt(offset);
					if (element != null) {
						setSelection(new StructuredSelection(element));
						return true;
					}
				} else if (sel instanceof IStructuredSelection) {
					setSelection(sel);
					return true;
				}
				return false;
			}
		};
}


2.只实现IShowInTarget接口是不够的,为了能在Navitate菜单的show in子菜单下包含该视图,还必须将该视图声明为一个目标,这通常是和透视图(Perspective)相关联的。可以通过"org.eclipse.ui.perspectiveExtendsions"扩展点的showInPart节点来定制。
eg:
如下为java透视图(其id为org.eclipse.jdt.ui.JavaPerspective)的show in目标列表中添加
id为“org.eclipse.jdt.ui.PackageExplorer”和“ net.chenxs.SampleView"的两个视图。
 <extension
         point="org.eclipse.ui.perspectiveExtensions">      
      <perspectiveExtension targetID="org.eclipse.jdt.ui.JavaPerspective">
         <perspectiveShortcut id="org.eclipse.debug.ui.DebugPerspective"/>
         <perspectiveShortcut id="org.eclipse.jdt.ui.JavaBrowsingPerspective"/>
         <showInPart id="org.eclipse.jdt.ui.PackageExplorer"/>
         <showInPart id="viewdemo.views.SampleView"/>
      </perspectiveExtension>
</extension>

显示效果截图:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值