eclipse插件开发,获取Package Explore视图中选中的项目

例如我们要想在自己开发的插件里面获取到选中的这个项目,应该怎么办呢?

1、要实现ISelectionListener接口

2、我们要在自己的插件初始化的时候加上这句话。

// 一定要添加这句话,select监听才会起效果
getSite().getPage().addSelectionListener("org.eclipse.ui.navigator.ProjectExplorer", this);

3、因为实现了ISelectionListener接口,需要重写selectionChanged方法,在这个里面当项目选择有变化的时候,我们就能通过ISelection获取到选择的项目。

例子:我这边自己的插件是一个ViewPat

public abstract class TestView extends ViewPart implements ISelectionListener {
	public IProject curPro = null;
	public ISelection curSelection;
	protected String chip = null;
	protected HashMap<String, Object> projectMap;
	@Override
	public void createPartControl(Composite parent) {
		// 一定要添加这句话,select监听才会起效果
		getSite().getPage().addSelectionListener("org.eclipse.ui.navigator.ProjectExplorer", this);
	}
	@Override
	public void selectionChanged(IWorkbenchPart part, ISelection selection) {
		if (selection == null) {
			return;
		}
		if (selection instanceof TreeSelection) {
			TreeSelection treeSel = (TreeSelection) selection;
			Object obj = treeSel.getFirstElement();
			if (obj == null) {
				setProject(null);
				return;
			}
			if (obj instanceof Project) {
				setProject((Project) obj);
				curSelection = selection;
			} else {
				if (obj instanceof ICElement) {
					String proName = ((ICElement) obj).getCProject().getElementName();
//					System.out.println(proName);
					setProject(ResourcesPlugin.getWorkspace().getRoot().getProject(proName));
				}else {
					setProject(null);
				}
			}
		}
	}
}

如何让代码控制让Package Explore视图选中我需要它选中的项目呢?

1、先获取到ProjectExplorer的视图。

IViewPart viewPart = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage()
                .findView("org.eclipse.ui.navigator.ProjectExplorer");

2、构造一个selection通过projectExplorer的视图给他set进去。例如tve.curSelection这个参数就是上面监听方法是,每次点击之后我保存下来的selection。

viewPart.getSite().getSelectionProvider().setSelection(tve.curSelection);

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值