1、相关代码MyAction

package myviewrcp2;

import org.eclipse.core.runtime.Assert;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.ui.ISelectionListener;
import org.eclipse.ui.IWorkbenchPart;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.actions.ActionFactory.IWorkbenchAction;

public class MyAction extends Action implements ISelectionListener,IWorkbenchAction{

	private IWorkbenchWindow window;
	public final static String ID = "myviewrcp2.MyAction";
	
	public MyAction(IWorkbenchWindow window) {
		super("Test Action");
		setId(ID);
		setText("MyAction");
		setToolTipText("My Action");
		this.window = window;
		//注册选择服务监听器
		window.getSelectionService().addSelectionListener(this);
	}
	
	public void run() {}
	
	//IWorkbenchAction 接口中的方法,释放后取消注册
	@Override
	public void dispose() {
		// TODO Auto-generated method stub
		window.getSelectionService().removeSelectionListener(this);
	}

	//接口 ISelectionListener 中的方法
	@Override
	public void selectionChanged(IWorkbenchPart part, ISelection incoming) {
		// TODO Auto-generated method stub
		if(incoming instanceof IStructuredSelection) {
			//获得事件发生的源所携带的对象
			IStructuredSelection selection = (IStructuredSelection) incoming;
			String s = (String) selection.getFirstElement();
			if(s == null || "".equals(s)) {
				return;
			}
			//如果选择的是Three,则设置为可用,否则设置为不可用
			if(s.equals("Three3")) {
				setEnabled(true);
			}else {
				setEnabled(false);
			}
		}
	}

	
}

2、SampleView.java

3、效果:

 

原文地址:http://www.cnblogs.com/wwssgg/p/16879518.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性