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>
有兴趣的可以参考以下连接自己研究:
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。
RCP:如何移除Search对话框中不需要的项的更多相关文章
- Eclipse RCP /Plugin移除Search对话框
RCP:如何移除Search对话框中不需要的项 2013-08-18 22:31 by Binhua Liu, 231 阅读, 0 评论, 收藏, 编辑 前言 很久没写文章了,准备写一系列关于Ecli ...
- 如何给对话框中的控件发送消息呢?Windows消息分类
以博文CTabCtrl中介绍的那样,给Tab添加子对话框来显示Tab内容.那么如果这个子对话框中含有个CTreeCtrl控件,有个Button控件,我想要模拟给这两个控件发送消息,该怎么办呢?直接把给 ...
- Get your site working on Google Search Console , 在 Google Search Console中运行您的网站, Google Search Console
1 1 https://support.google.com/webmasters/topic/4564315? Search Console Help SEARCH CONSOLEHELP FORU ...
- MFC对话框中使用CHtmlEditCtrl
MFC对话框中使用CHtmlEditCtrl 感谢原帖作者: http://blog.csdn.net/tingya/article/details/2028172 我在VS2008校正了一些代码. ...
- MFC对话框中显示BMP,JPG图片
//************************************ // 方法说明: 显示JPG和GIF.BMP图片 // 参数说明: CDC * pDC 设 ...
- [CareerCup] 2.1 Remove Duplicates from Unsorted List 移除无序链表中的重复项
2.1 Write code to remove duplicates from an unsorted linked list.FOLLOW UPHow would you solve this p ...
- CODESOFT对话框中的显示字体怎么修改
不同的人其使用软件的视觉习惯是不一样的,直接给大家介绍过如何设置CODESOFT的界面语言,这是一个大范围的界面显示设置.本文,将介绍如何修改CODESOFT对话框显示的字体,以满足自己的视觉习惯 ...
- MFC中关于子对话框中编辑框不能编辑的问题
最近在用MFC写程序.发现子对话框中的编辑框不能编辑.具体问题是这样的: 我有一个对话框YhglDlg,创建了这个对话框的子对话框ZjyhxxDlg,子对话框的Style属性为Child,Border ...
- 屏蔽QQ聊天对话框中的广告
原文地址: 怎么在QQ聊天对话框中屏蔽广告_百度经验 http://jingyan.baidu.com/article/48a42057ca12c1a924250402.html QQ已经成为 ...
随机推荐
- []with[[]]
[brand@localhost ~]$ echo $name hello hello [brand@localhost ~]$ [$name = "hello"] -bash: ...
- 将CachedRowSet中的数据转储到对象中
虽然还有很多bug,但凑合能用,就是将CachedRowSet中的数据转换成对象或List.省去了繁琐难看的一系列get/set方法. 先说调用: 注: cachedRowSet是查询的结果集 Stu ...
- 关于Response.redirect()方法
1. sendRedirect 后面要加上return.2. sendRedirect 执行过程是先转向还是先执行后续代码再转向?答: 先执行代码再转向,在一个sendRedirect后面不能再有其他 ...
- 累积进度图及本周PSP饼状图
每周进度 项目:词频统计 项目类型:个人项目 项目完成情况:已完成 C类别 C内容 S开始时间 E结束时间 I间隔 T净时间 分析 需求,设计 10:00 10:49 20 29 编码 代码的实 ...
- Windows内核 WDM驱动程序的基本结构和实例
WDM驱动的基本结构: WDM驱动模型是建立在NT式驱动程序模型基础之上的.对于WDM驱动程序来说,一般都是基于分层的,即完成一个设备的操作,至少要由两个驱动设备共同完成. 1)物理设备对象和功能设备 ...
- 安卓中級教程(1):@InjectView
package com.mycompany.hungry; import android.annotation.SuppressLint; import android.app.Activity; i ...
- 【iCore3 双核心板】例程三十一:HTTP_IAP_FPGA实验——更新升级FPGA
实验指导书及代码包下载: http://pan.baidu.com/s/1gdYnQGN iCore3 购买链接: https://item.taobao.com/item.htm?id=524229 ...
- 无法启动Mysql服务,错误InnoDB: Attempted to open a previously opened tablespace.
2013-08-04 13:48:22 760 [ERROR] InnoDB: Attempted to open a previously opened tablespace. Previous t ...
- java基础学习总结——基础语法1
一.标识符
- github展示项目
首先在原repo中创建一个gh-pages分支,然后把你master分支的东西都搬过来,将这个gh-pages作为你的HEAD主分支.如果想删掉master分支,需要在repo的settings中修改 ...