`
pingpangsong
  • 浏览: 53398 次
  • 来自: ...
社区版块
存档分类
最新评论

在Eclipse插件开发中实现标准Search功能(原创)

阅读更多

引言:


Eclipse中Search功能很cool,如java\file search,功能强大,而且对搜索结果的管理很酷,可以查看上一个、下一个结果、删除一个结果,打开一个结果文件到预定义的编辑器,提供对搜索历史的查看和重新搜索。其实这Search是一个标准的功能,有对应的扩展点。扩展这些扩展点,继承相应的类,实现相应的接口,你也能获得这么cool的Eclipse插件UI。

这里以Spring IDE Bean Search为例,介绍应扩展之处和其中的关键点。搜索页的类名为BeanSearchPage, 搜索结果页的类名为BeanSearchResultPage

一、需要扩展的扩展点

1. 应该在org.eclipse.search.menu/dialogGroup中加一个action,以在java\file search 的旁边加一Tab, 显示你的搜索页BeanSearchPage。
2. 扩展org.eclipse.search.searchPages,定制自己的搜索页BeanSearchPage
3. 扩展org.eclipse.search.searchResultViewPages,定制自己的搜索结果页BeanSearchResultPage

二、搜索页(BeanSearchPage)

1. BeanSearchPage继承DialogPage,实现ISearchPage,创建自己的搜索条件UI
2. 在BeanSearchPage的performAction方法中激活搜索结果view, 并在背景进程中执行search过程,将搜索页和搜索结果页连接起来的关键一步。
    public boolean performAction() {
        NewSearchUI.activateSearchResultView();

        ISearchQuery query = new BeanSearchQuery();
        NewSearchUI.runQueryInBackground(query);
        return true;
       
    }

3. BeanSearchQuery要实现ISearchQuery接口
    public class BeanSearchQuery implements ISearchQuery {
        final BeanSearchResult result = (BeanSearchResult) getSearchResult();
        public IStatus run(IProgressMonitor monitor) {
            Match match = new Match(); //将Search结果加到Match中来,这保证了搜索结果view中很多很cool的按钮能用哦。
            result.addMatch(match);    //将Match加到result中来。
        }
    }

4. BeanSearchResult要继承AbstractTextSearchResult,并实现IEditorMatchAdapter和IFileMatchAdapter接口
    public class BeanSearchResult extends AbstractTextSearchResult implements
                                       IEditorMatchAdapter, IFileMatchAdapter {
    }

由以上代码可见BeanSearchPage、BeanSearchQuery和BeanSearchResult之间的关系。

三、搜索结果页(BeanSearchResultPage)

1. 需要扩展AbstractTextSearchViewPage抽象类,同时实现ISearchResultPage接口
2. 在BeanSearchResultPage的构造器中指定用TreeViewer还是TableViewer。FLAG_LAYOUT_TREE代表TreeViewer,
FLAG_LAYOUT_FLAT代表TableViewer。


未完待续……
分享到:
评论
2 楼 tomfish88 2011-08-22  
  有头无尾
1 楼 shine5566 2008-10-23  
续在哪呢?

相关推荐

    Eclipse插件开发学习笔记.pdf

    开发插件时,我们通常需要在PDE中编写Java代码,创建用户界面,定义扩展点,以及处理用户输入。 Eclipse插件开发的另一个重要方面是掌握Eclipse工作台(Workbench)的扩展。Eclipse工作台是Eclipse IDE的用户界面...

    Eclipse插件开发学习笔记全篇+源码.rar

    Eclipse插件开发是扩展其功能和定制工作环境的关键技术。本文将深入探讨Eclipse插件开发的相关知识点,结合提供的"全书分为4篇共24章"的学习笔记和源码,帮助你更全面地理解和实践Eclipse插件开发。 第一篇:基础篇...

    eclipse插件开发PDF

    首先,Eclipse是一个用Java编写的开源集成开发环境(IDE),而Eclipse插件开发是指通过编写插件来扩展Eclipse的功能,实现从一个基本的代码编辑器到可以支持多种语言和框架的开发平台。Eclipse插件架构允许开发者...

    Eclipse插件开发(第3版 - 高清).pdf.zip

    书中详细讲解了Eclipse插件的生命周期、插件结构、插件依赖关系以及如何使用Eclipse的Plug-in Development Environment (PDE)工具进行开发。 2. **Java**: Java作为Eclipse插件开发的基础语言,开发者需要掌握...

    Eclipse插件开发教程PPT Eclipse插件开发教程PPT

    10. **调试支持**:Eclipse的调试框架允许开发插件以扩展调试功能,如添加新的断点类型或提供自定义调试视图。 通过深入学习和实践Eclipse插件开发教程PPT中的内容,开发者不仅可以提升自身技能,还能更好地利用...

    Eclipse插件开发文档

    Eclipse是一款广泛使用的开源集成开发环境(IDE),尤其在Java开发者中非常流行。Eclipse的灵活性和可扩展性主要体现在其强大的插件系统上。Eclipse插件开发是为这个平台添加新功能或定制工作环境的关键技术。以下将...

    Eclipse 插件开发指南

    ### Eclipse 插件开发指南:深入理解与实践 #### 一、Eclipse平台概览 **1.1 Eclipse的历史** Eclipse项目起源于IBM,在2001年11月...无论是初学者还是经验丰富的开发者,都能在Eclipse插件开发中找到乐趣和价值。

    Eclipse插件开发系列

    1. **开发环境准备**:包括安装Eclipse IDE for RCP and RAP Developers,这是一个专门用于开发Eclipse插件的版本,它包含了开发插件所需的工具和API。 2. **插件项目创建**:在Eclipse中,我们可以通过"New -> ...

    Eclipse 插件开发 简易教程

    2. 安装插件开发工具:在Eclipse中,通过Help > Install New Software...,添加“Eclipse Plug-in Development Tools”(PDE)更新站点,然后选择并安装所需的插件开发组件。 三、创建插件项目 1. 新建项目:在...

    Eclipse插件开发 第1篇到第4篇 开发基础 核心技术 高级进阶 综合实例 eclipse 插件安装方法.zip

    在《Eclipse插件开发 学习笔记 第3篇 高级进阶》中,开发者将会学习到更多高级主题,比如命令框架(Command Framework)、透视图(Perspectives)、视图(Views)、编辑器(Editors)和操作(Actions)。这些是构建...

    神州数码 Eclipse插件开发面试

    Eclipse提供了内置的Equinox运行时环境,允许你在开发环境中直接测试插件功能。 七、插件打包与部署 完成开发后,可以使用PDE工具将插件打包成可安装的插件文件(.jar或.update-site),然后在其他Eclipse实例上...

    eclipse插件开发ppt

    【Eclipse插件开发】是IT领域中针对Eclipse集成开发环境进行功能扩展的一种技术。Eclipse是一个开放源代码的、基于Java的可扩展开发平台,它的核心是插件,而插件是Eclipse功能实现的基本单位。通过开发Eclipse插件...

    Eclipse插件开发笔记源码

    Eclipse插件开发是Java开发领域中的一个重要分支,它允许开发者通过扩展Eclipse IDE的功能来创建自定义的工作环境。这份“Eclipse插件开发笔记源码”提供了丰富的学习材料,帮助开发者深入理解并实践Eclipse插件开发...

    Eclipse插件开发方法与实战 2006 pdf 464页

    Eclipse通过使用扩展点来定义插件可以实现的功能,其他插件可以利用这些扩展点来增加自己的功能。开发者需要了解如何定义和使用扩展点来创建自己的插件。 此外,书中还可能详细讲解了Eclipse插件开发的工具和环境...

    Eclipse插件开发 第1篇到第4篇 开发基础 核心技术 高级进阶 综合实例 eclipse 插件安装方法

    1. **理解OSGi框架**:Eclipse基于OSGi模块化系统构建,理解其动态性、模块化特性和服务注册机制是开发插件的前提。 2. **Plug-in工程结构**:包括Plugin.xml配置文件、源代码目录结构和依赖管理。学习创建新的...

    Eclipse插件开发方法与实战_2006.pdf

    Eclipse插件可以利用这个核心运行时,通过标准的扩展点来实现功能的扩展。 Eclipse插件开发涉及的主要技术包括OSGi(Open Service Gateway Initiative)和JFace等。OSGi是一个Java的模块系统,它定义了如何在运行时...

    Eclipse插件开发中编辑器代码的定位及背景色改变高亮

    Eclipse插件开发中编辑器代码的定位、背景色改变、高亮

    eclipse插件开发步步教你

    本教程旨在逐步指导初学者进行Eclipse插件的开发,通过实例演示如何利用Eclipse平台的API和扩展点来实现各种功能。 首先,我们要理解Eclipse插件的基本概念。Eclipse插件是基于OSGi模块系统构建的,每个插件都是一...

Global site tag (gtag.js) - Google Analytics