RCP:如何移除Search对话框中不需要的项

 

前言

很久没写文章了,准备写一系列关于Eclipse RCP /Plugin的文章。 这些文章都是trouble shooting性质的,不准备写的很细,当你碰到这样的问题,google到时,能帮你把问题解决了,这就ok了。另外有些问题我也是不求甚解的,哈。

 

正文

Search Dialog中可能出现一些你不需要的项,比如“Java Search”,这个项是org.eclipse.jdt.ui贡献的,如果你因为某些需要引用了这个包,比如我需要用到这个包中的org.eclipse.jdt.ui.action.MoveAction,用来在Project Explorer右键菜单添加Move。 那么“Java Search”就会被贡献到Search Dialog中,我们有两个办法去除这些不需要的项:

1,在plugin.xml中添加org.eclipse.ui.activities扩展点来过滤。我读过源代码,通过activities应该是可以生效的,但是我没有成功,可能还是匹配符不对。贴出我的代码,只供参考:

<extension
       point="org.eclipse.ui.activities">
       <activity
    id="com.balabala.JavaSearchPage"
        name="DisableJavaSearch"></activity>
    <activityPatternBinding
          activityId="com.balabalaactivityPatternBinding1"
          isEqualityPattern="true"
          pattern="org\.eclipse\.jdt\.ui/org\.eclipse\.jdt\.ui\.JavaSearchPage">
    </activityPatternBinding>
</extension>

有兴趣的可以参考以下连接自己研究:

http://stackoverflow.com/questions/11188145/how-to-remove-java-search-entry-from-search-group-icon-in-eclipse-pde-using-ac/13293606#13293606

2,通过继承org.eclipse.search.internal.ui.SearchDialog来去除多余的项,重写createPageArea方法,把TabFolder中不需要的TabItem移除掉。

CustomSearchDialog.java:

protected Control createPageArea(Composite parent) { 
    Control control = super.createPageArea(parent); 
    Composite composite = (Composite)control; 
    Control[] controls = composite.getChildren(); 
    for(Control c: controls) 
    { 
        if(c instanceof TabFolder) 
        { 
            TabFolder tabFolder =(TabFolder)c; 
            for(int i=tabFolder.getItemCount()-1;i>=0;i--) 
            { 
                TabItem item = tabFolder.getItem(i); 
                if(!item.getText().equals("File Search")) 
                { 
                    item.dispose(); 
                } 
            } 
        } 
    } 
    return control; 
} 

 

然后,需要继承org.eclipse.search.internal.ui.OpenSearchDialogAction, 重写run方法:

CustomSearchDialogAction.java:

	public void run() {
		if (workbenchWindow.getActivePage() == null) {
			SearchPlugin.beep();
			return;
		}
		CustomSearchDialog dialog= new CustomSearchDialog(workbenchWindow, null);
		dialog.open();
	}

最后在Menu和toolbar中调用CustomSearchDialogAction。

Python网络爬虫与推荐算法新闻推荐平台:网络爬虫:通过Python实现新浪新闻的爬取,可爬取新闻页面上的标题、文本、图片、视频链接(保留排版) 推荐算法:权重衰减+标签推荐+区域推荐+热点推荐.zip目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此目,该资源内目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【目价值】:可用在相关目设计,皆可应用在目、毕业设计、课程设计、期末/期/大作业、工程实训、大创等学科竞赛比赛、初期目立、学习/练手等方面,可借鉴此优质目实现复刻,设计报告也可借鉴此目,也可基于此目来扩展开发出更多功能 下载后请首先打开README文件(如有),目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值