`

naviteContent viewer

阅读更多
2008-01-05
定义自己的Common Navigator三
关键字: common navigator
 
OK,我们已经有了一个初步可运行的Navigator了,现在它看起来已经比较丰富了。不过我们在xml文件下的任意结点上点右键时,都没有菜单显示。另外假如我们有一个新的wizard,我们也想像java的package explorer视图一样显示在new菜单的那一层。那我们应该怎么做呢?这一节就来介绍这部分的实现。



实际上,从上面的介绍里,很多人可能都已经知道了怎么完成这些事情。不过这里还是写一个完整的介绍过程。



先说一下我们的目标:在IResource对象的new菜单里,加上java project wizard。在xml文件的node上,加一个菜单用来显示它的所有属性。



首先我们完成第一件事。



增加快捷Wizard

第二节中,我们提到过,在org.eclipse.ui.navigator.navigatorContent扩展点的navigatorContent里也有两个子扩展:commonWizard和actionProvider。

这里要加一个wizard的快捷方式,就是需要扩展这个commonWizard。所以在上面我们扩展的navigatorContent里,我们再声明子扩展:commonWizard。如下:

         <commonWizard

               type="new"

               wizardId="org.eclipse.jdt.ui.wizards.JavaProjectWizard">

            <enablement>

               <instanceof

                     value="org.eclipse.core.resources.IResource">

               </instanceof>

            </enablement>

         </commonWizard>



有三种类型的wizard,这里我们选择new;然后就是指定wizardId,这里我们指定为java project wizard的ID;最后就是定义出现在条件,这里定义的条件就是如果选择的对象为IResource对象,则出现。

最后我们的图如下:




图九



显然你可以很简易的推到其他两种类型wizard的快捷定义。



增加自定义菜单

现在看我们的XML下的那些结点,点右键时没有菜单显示。这里我们就给他们加一个显示值的菜单。

要实现自定义菜单,我们就需要扩展和上面的commonWizard在同一级的actionProvider。先看一下我们的声明:

        <actionProvider

               class="com.tibco.cdc.liugang.navigator.actions.LiugangCommonActionProvider"

               id="com.tibco.cdc.liugang.navigator.navigatorContent.actions">

            <enablement>

               <instanceof

                     value="org.w3c.dom.Node">

               </instanceof>

            </enablement>

         </actionProvider>



这里有五个属性定义,不过我们需要关心的只有上面两个:class用来定义实现类;id唯一标识这个actionProvider。然后我们加了一个可用的约束条件:选择的对象需要是一个Node实例。



定义完actionProvider之后,我们就要注册这个actionProvider了。在我们的viewer扩展的viewerActionBinding的includes下面加一句就行了:



<actionExtension              pattern="com.tibco.cdc.liugang.navigator.navigatorContent.actions">

</actionExtension>



好,接下来我们先完成实现类,如下:

public class LiugangCommonActionProvider extends CommonActionProvider {


  private Action propertyAction;

  private ICommonViewerSite viewSite;


  public LiugangCommonActionProvider() {

  }


  @Override

  public void init(ICommonActionExtensionSite site) {

         super.init(site);

         viewSite = site.getViewSite();

         propertyAction = new Action("Show Property") {

               @Override

               public void run() {

                      IStructuredSelection selection = (IStructuredSelection) viewSite

                                    .getSelectionProvider().getSelection();

                      Object firstElement = selection.getFirstElement();

                      if (firstElement instanceof Node) {

                             Node selectedNode = (Node) firstElement;

                             MessageDialog.openInformation(viewSite.getShell(),

                                           "Property", getAllAttributes(selectedNode));

                      }

               }

         };

  }

分享到:
评论

相关推荐

    U_VIEWER.zip

    《联影医疗自研DICOM查看工具U_VIEWER深度解析》 在医学成像领域,数据交换和存储标准DICOM(Digital Imaging and Communications in Medicine)是不可或缺的一部分。它定义了一套标准,使得不同制造商的医学影像...

    dlt-viewer.rar

    《DLT日志解析工具——dlt-viewer详解》 DLT(Diagnostic Log and Trace)是一种广泛应用于嵌入式系统中的日志记录格式,它能够为开发者提供详细的系统运行信息,便于调试和故障排查。在Windows环境下,有一个名为...

    Steelray Project Viewer key

    "Steelray Project Viewer key" 是一个关于项目管理软件——Steelray Project Viewer的许可证密钥或激活码。这个软件主要用于查看和分析Microsoft Project的文件,它提供了对MPP文件的详细视图,允许用户在没有完整...

    VOSviewer安装包

    VOSviewer是一款强大的可视化软件,尤其在科学引文分析和合作网络分析领域有着广泛的应用。它是由Leiden University图书馆开发的,旨在帮助用户创建和查看各种类型的网络图和地图,如作者合作图、引文图、关键词共现...

    Help Viewer安装包.rar

    【Microsoft Help Viewer】是微软为开发者提供的一款离线帮助系统,它允许用户在不联网的情况下查阅Visual Studio相关的技术文档和教程。此安装包是从Visual Studio 2019的完整安装包中提取出来的独立组件,版本号为...

    WPF 文本阅读器(DocumentViewer控件)

    在Windows Presentation Foundation(WPF)框架中,`DocumentViewer`控件是一个非常有用的组件,用于展示各种文档格式,如XPS、PDF或基于FlowDocument的内容。它提供了丰富的文本排版和样式控制,使得开发者可以轻松...

    HTML版JsonViewer

    1. **树形展示**:JsonViewer的核心功能是将JSON数据转换为树形结构,使得用户能够清晰地看到数据的层次关系。通过展开和折叠节点,可以方便地浏览和理解数据结构。 2. **自适应屏幕**:该工具具有自适应显示器大小...

    Microsoft Visio 2016 Viewer

    即使还未安装 Visio,使用 Visio Viewer 也可打开、查看或打印 Visio 绘图。不过,使用 Visio Viewer 不能编辑、保存或创建新的 Visio 绘图。要进行这些操作,需要安装 Visio 完整版。如果你使用 Visio 完整版创建和...

    vs2017HelpViewer 2.3 中文版 MSDN 可下载

    【VS2017HelpViewer 2.3 中文版 MSDN 可下载】这个标题表明,这是一个关于Visual Studio 2017帮助查看器(Help Viewer)的中文版本,它允许用户离线查看MSDN(Microsoft Developer Network)文档。MSDN是微软提供的...

    VOSviewer 使用手册

    ### VOSviewer 使用手册知识点概览 #### 一、引言与概述 VOSviewer是一款功能强大的软件工具,主要用于基于网络数据创建地图,并提供可视化及探索这些地图的能力。该工具适用于学术研究领域,特别是用于分析科学...

    打开vnc viewer并自动输入密码

    在这个场景中,我们关注的是如何使用VNC Viewer,并且在启动时自动输入密码,这对于远程管理和无人值守的系统尤其有用。C++在这里可能是指用于编写自动化脚本或工具的编程语言。 首先,我们需要了解VNC Viewer。它...

    viewer点击图片弹出(可放大缩小自由旋转拖拽)

    本教程将介绍如何利用JavaScript库`viewer.js`和CSS文件`viewer.css`来实现这样的功能,使得用户点击图片时能弹出一个可交互的视图窗口,该窗口支持图片的放大、缩小、自由旋转和拖拽。 `viewer.js`是一个轻量级的...

    viewerjs下载,版本为Viewer.js v1.11.1

    Viewer.js 是一个强大的JavaScript库,专门用于在网页中展示图片,尤其适合于实现图片的预览、缩放、旋转和导航等交互功能。版本v1.11.1是这个库的一个特定版本,可能包含了对前一版本的优化、修复或新特性添加。 ...

    DBF Viewer 2002 v2.02汉化注册版

    首先,DBF Viewer 2002的核心功能在于其强大的查看能力。它允许用户打开和浏览不同版本的DBF文件,包括dBase III、IV、V以及Visual FoxPro等格式。用户可以通过简洁的界面查看表格中的所有记录,同时支持排序和过滤...

    Photo-Sphere-Viewer使用案例及注意点

    **Photo-Sphere-Viewer 使用详解与实践指南** `Photo-Sphere-Viewer` 是一个JavaScript库,专门用于在网页上展示全景图像,使用户能够通过鼠标或触摸设备进行交互式360度全景浏览。这个库提供了丰富的功能和自定义...

    harviewer-master-11-24.zip

    《.har文件解析工具——HarViewer深度解析》 在当今的网络开发与调试过程中,HTTP Archive(简称.har)文件是一种广泛使用的格式,用于记录浏览器与服务器之间的通信数据。它包含了请求、响应、时间戳等关键信息,...

    harviewer har解析工具

    **哈宝(HAR)解析工具——HarViewer详解** 在互联网开发中,HTTP Archive (简称HAR) 是一种标准格式,用于记录浏览器与服务器之间的HTTP交互数据,包括请求、响应、时间戳等详细信息。这对于网页性能分析、调试...

    viewer.js,pdf.js,pdf.worker.js,viewer.min.css

    "viewer.js", "pdf.js", "pdf.worker.js" 和 "viewer.min.css" 是一组用于在Web浏览器中实现高质量PDF文档查看功能的核心文件。下面我们将深入探讨这些文件的作用以及如何利用它们创建一个前端PDF查看器。 首先,...

    DBF Viewer V2000 2.30.1 汉化绿色特别版

    DBF Viewer V2000 2.30.1 是一款专为处理DBF文件设计的高效软件,尤其适合那些需要对这种特定数据库格式进行查看、编辑和管理的用户。DBF,全称为dBase File,是早期流行的数据库文件格式,常用于FoxPro、dBase、...

Global site tag (gtag.js) - Google Analytics