• 在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。

  • 相关阅读:
    思科 ASA 系列防火墙 官方文档下载指南
    Batch批量替换hosts
    OPCDA通信--工作在透明模式下的CISCO ASA 5506-X防火墙配置
    OPC DA通讯 KEP6.4 DCOM 配置脚本
    拖放获取文件信息的bat代码
    禁用UpdateOrchestrator重新启动任务
    SIAMATIC S7-1200 中通过 Modbus RTU 如何读取地址范围 9999 到 65535 的输入字
    提问的智慧 (提问前必读)
    [AHK]输入法状态提示,中文状态提示“中”,英文状态提示“EN”[转]
    Wincc V7.3SE安装截图
  • 原文地址:https://www.cnblogs.com/guanghuiqq/p/2644296.html
Copyright © 2020-2023  润新知