- 浏览: 404044 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
zyu67:
这个类运行不起来呀 这类如何导出数据呀
一个数据库连接Java工具类和数据迁移类 -
kobe7777:
你好,请问我想写个excelToExcel 另存一个excel ...
Jacob 另存为Word、Excel -
di1984HIT:
记录一下学习。
Eclipse 平台架构 -
di1984HIT:
鞋的不错啊。呵呵额
一个数据库连接Java工具类和数据迁移类 -
Jameslyy:
确认jacob dll是否已经放入系统路径,jacob版本不同 ...
Jacob 另存为Word、Excel
工作台定义了一定数量的扩展点,帮助插件向已经存在的视图和编辑器添加新的行为或者实现新的视图和编辑器。基于命令(Commands)的基本平台扩展点将会在别的章节讲解。在这里我们将会通过一个称为“自述工具”的工作台实例程序,看一看是向扩展点贡献功能的。
这个自述工具是一个插件,提供了对以 .readme 为后缀的文件的自定义编辑和导航功能。这个例子展示了多个使用扩展实现专门工具的具有代表性(但是不简单)的方法。
自述工具向导航视图添加了菜单,在工作台菜单和工具栏中添加了和编辑器相关的菜单项或工具栏按钮,定义了一个自定制视图和内容大纲,定义了标签和标签解析。下面的图展示了自述工具向平台添加的一些定制的特性。
自述工具也向工作台添加首选项和属性页面,后面我们也将会在 对话框和向导 部分讲解是如果扩展向导的。
自述工具包含在org.eclipse.ui.examples.readmetool 包,可以在插件目录下面的org.eclipse.ui.examples.readmetool 目录下找到eadmetool.jar 和 plugin.xml ,之前必须确保已经安装了平台实例。(查看 Examples Guide 获得更多信息。)
自述工具实现了很多不同的平台扩展,下面将会从一个最简单的工作台扩展点——视图——开始,之后会陆续讲解自述工具实现的更多的扩展。
1. org.eclipse.ui.views
视图工作台的组成部分,用来导航层级信息或展示对性的属性信息,在一个工作台页面中只能打开一个视图的实例,当用户在视图中进行选择或者其他更改行为时,这些更改会立即反应到工作台中,视图经常用来支持一个对应的编辑器,例如,大纲视图展示编辑器中的数据的结构化视图,属性视图展示一个正在被编辑的对象的属性。
扩展点 org.eclipse.ui.views 允许插件向工作台添加视图,创建视图的插件必须在plugin.xml 文件中注册一个视图,并提供视图的配置信息,例如视图的实现类,视图所属目录,用于在菜单和标签中描述视图的名称和图片。
视图的接口为IViewPart,但是插件可以选择扩展 ViewPart 类,而不是重新实现IViewPart 接口。
在Hello World 例子中,我们实现了一个最小化的视图扩展,现在我们看看这个例子中的视图,它能够获悉其他工作台视图并且-对工作台中的用户导航和选择变化作出反应,首先让我们看一下plugin.xml 中的扩展声明:
<extension point="org.eclipse.ui.views"> <category id="org.eclipse.ui.examples.readmetool" name="%Views.category"> </category> <view id="org.eclipse.ui.examples.readmetool.views.SectionsView" name="%Views.ReadmeSections" icon="icons/view16/sections.png" category="org.eclipse.ui.examples.readmetool" class="org.eclipse.ui.examples.readmetool.ReadmeSectionsView"> </view> </extension>
一个新的视图, ReadmeSectionsView,被添加到了工作台。在声明中设定了视图的ID、名称和所属的分类,使用相对插件安装目录的路径为视图提供了一个图标。
现在来看一下ReadmeSectionsView 的显示效果,可以通过在工作台中选择 Window > Show View > Other... 并在 显示视图 列表中选择一个视图打开视图。
ReadmeSectionsView 视图是一个带有一个列表的视图,如果没有选择一个带有.readme后缀的文件,这个列表将会是空的,这个列表来自于自述文件的章节信息。
插件是怎样识别自述文件并怎么知道选择变化的呢? 如果我们能够追踪到这个问题答案,我们就能更加理解是如果创建集成的工作台插件的。
我们先从熟悉的createPartControl 开始,就像我们在Hello World 例子中看到的一样,这个方法是创建视图小部件的地方,我们会忽略一些不太相关的代码:
public void createPartControl(Composite parent) { viewer = new ListViewer(parent); ... // add myself as a global selection listener getSite().getPage().addSelectionListener(this); // prime the selection selectionChanged(null, getSite().getPage().getSelection()); }
这个视图创建并保存了一个 ListViewer,并把自己注册为所属页面的选择监听器,通过IViewSite 获取页面对象,页面对象包含了视图的上下文信息,例如工作台窗口,所属页,本地服务,和所属插件。当收到一个选择变化的通知时,下面的代码会被执行:
public void selectionChanged(IWorkbenchPart part, ISelection sel) { //if the selection is a readme file, get its sections. AdaptableList input = ReadmeModelFactory.getInstance().getSections(sel); viewer.setInput(input); }
ReadmeModelFactory 类负责把选择对象转换为自述数据,自述数据是在createPartControl 方法中创建的ListViewer 的输入。
但是ListViewer 是如何填充内容的呢,现在我们假设一旦为Viewer 提供了输入元素,它自己知道如何在列表中填充数据, 毕竟它是一个ListViewer。如果你现在想了解更多关于viewer的内容,请阅读Viewers。
ReadmeModelFactory 提供了探测和读取自述文件内容的方法:
public AdaptableList getSections(ISelection sel) { // If sel is not a structured selection just return. if (!(sel instanceof IStructuredSelection)) return null; IStructuredSelection structured = (IStructuredSelection)sel; //if the selection is a readme file, get its sections. Object object = structured.getFirstElement(); if (object instanceof IFile) { IFile file = (IFile) object; String extension = file.getFileExtension(); if (extension != null && extension.equals(IReadmeConstants.EXTENSION)) { return getSections(file); } } //the selected object is not a readme file return null; }
首先检查选择对象是不是一个结构化的选择对象,检查选择对象的首个元素对象是不是一个文件资源,如果是的话,检查它的后缀是不是“.readme”,当我们能够确认获得了一个自述文件时,就可以使用其他方法来解析器其中的内容了。
2. org.eclipse.ui.viewActions
发表评论
-
插件开发——基于Action的基本平台扩展点 二 : viewActions
2011-01-12 16:35 1908org.eclipse.ui.viewActions 通过插 ... -
插件开发—— 通过插件扩展工作台
2011-01-12 01:15 1489现在,你应该对工作台的操作和怎样使用视图和编辑 ... -
Eclipse 运行时概述 Part 3 —— 并行框架
2011-01-10 18:11 1369并行框架(Concurrency infras ... -
Eclipse 运行时概述 Part 2 —— 内容类型
2011-01-07 17:59 1460内容类型(Content Type) ... -
Eclipse 运行时概述
2011-01-05 17:45 2431Eclipse 运行时(Runtime)概述 ... -
Eclipse 平台架构
2011-01-05 00:25 28681. Eclipse 平台架构 Eclips ... -
SWT Part 7 —— Graphics (绘图)
2010-12-29 17:04 2846Graphics SWT 提供了一个图形引擎 ... -
SWT Part 6 —— Error Handling (错误处理)
2010-12-29 13:52 1401Error handling SWT 可以抛 ... -
SWT Part 5 —— 多线程
2010-12-22 23:22 2079在使用SWT构建应用程序时,理解系统底层读取和 ... -
SWT part 3 —— Event(事件)
2010-12-22 16:47 3070创建了一个display对象和一些用户界面部件 ... -
SWT Part 2 —— Controls(控件)
2010-12-22 09:26 1943Control (控件)就是我们能够在用户界面上看到的 ... -
SWT —— Standard Widget Toolkit
2010-12-21 16:24 19201.1 SWT— Standard Widget Toolki ... -
Project Builders and Natures In Eclipse
2010-10-29 18:24 2405Project natures allow a plug-in ... -
Web Facet Installation Delegate in WTP
2010-08-25 16:00 1146plugin: org.eclipse.jst.j2ee.we ... -
SWT 日期时间选择控件
2008-12-26 16:18 8089Eclipse 3.3 及 更新的版本 // DateTi ... -
OSGI 资源
2008-03-03 11:25 1901OSGi Alliance | Main / OSGi All ... -
eRCP 嵌入式富客户端平台
2008-01-08 15:55 1817嵌入式富客户端平台,embedded Rich Client ... -
GEF (二) -- 创建模型的可视化视图(Graphical View)
2008-01-04 18:35 2898创建了模型和显示 ... -
GEF (一) -- GEF简介及控制器EditPart
2008-01-04 11:19 3676一 GEF简介 GEF ... -
GEF EMF GMF 资源
2007-12-14 11:16 3902alphaWorks Eclipse technology. ...
相关推荐
【描述】中提到的"PHP实例开发源码——wordpress语言翻译插件中文版.zip"进一步确认了这是一个基于PHP的项目,它是一个实际的开发实例,专注于WordPress平台上的语言翻译功能,且专为中文环境设计。这个描述暗示了...
- REST支持:简化了基于RESTful Web服务的开发过程。 - Convention插件:提供了“零配置”的支持,使得开发者无需编写额外的配置文件即可完成框架的基本设置。 - Java Templates:增强了模板语言的支持,方便动态...
【标题】:基于IntelliJ IDEA的代码生成插件开发详解——自定义模板(Java,html,js,xml) 在软件开发过程中,重复编写相似的代码片段是一项耗时的工作。为了解决这个问题,开发者通常会利用IDE的代码生成功能来...
WordPress是一种广泛应用的内容管理系统(CMS),而WP-Connect则是WordPress的一个扩展,通过PHP编程语言实现了与社交媒体平台的集成,特别是中国的微博服务——新浪微博。 【描述】:这个描述简单明了,指出该插件...
WordPress 是一个基于 PHP 和 MySQL 的开源内容管理系统(CMS),它被广泛用于构建各种类型的网站,包括博客、企业网站、电子商务平台等。这个压缩包“PHP实例开发源码——WordPress 官方简体中文版”提供了...
在安卓平台上,开发一款电量显示Widgets插件涉及到多个关键知识点,包括Android SDK的使用、Widget组件的实现、电源管理API的交互以及UI设计等。以下将详细解释这些方面。 首先,Android SDK是开发者构建Android...
- 开发者可能定义了自定义函数以扩展WordPress的功能,这些函数可能与WordPress的钩子(如`add_action`和`add_filter`)结合,以在特定的生命周期事件中执行。 6. **响应式设计**: - “恰拍贷款助手”的手机APP...
Struts是Java开发Web应用程序的一种框架,它基于Model-View-Controller(MVC)设计模式,为开发者提供了构建可维护性、可扩展性良好的企业级应用的结构。在这个"struts——java文件"中,我们可以推测包含的是与...
Eclipse RCP的架构基于插件(Plugins)和扩展点(Extension Points)。插件是可互相协作的代码单元,它们定义了应用的功能;扩展点则是插件可以插入的接口,使得不同的插件之间可以通信和协同工作。 #### 1.2. ...
- **插件机制** 是Struts2的一个重要特性,允许开发者通过简单的配置来扩展框架的功能。Struts2支持通过插件的形式与其它Java EE框架进行整合。 - **插件示例**:struts2-spring-plugin-2.1.8.1.jar 是一个典型的...
在安卓平台上,开发一款电量显示Widgets插件涉及到多个关键知识点,包括Android SDK的使用、Widget API的掌握、UI设计以及电源管理API的调用。以下是对这些知识点的详细阐述: 1. **Android SDK**:所有安卓应用的...
- **插件扩展点**:解释了Eclipse插件系统中的关键概念——扩展点,这对于开发插件至关重要。 - **SWT入门**:提供了SWT的简介,包括其特点和基本使用方法。 - **JFace入门**:同样介绍了JFace的基础知识,使开发者...
Chrome插件,也被称为Chrome扩展,是基于 Chromium 浏览器的一种增强功能,它们通过JavaScript、HTML和CSS等技术编写,能够实现对浏览器界面、功能的定制和扩展,以满足用户的个性化需求。在本文中,我们将深入探讨...
**1.2 Eclipse RCP建设风格——插件、扩展和扩展点** Eclipse RCP的核心是插件系统,它允许通过插件来组织应用程序的功能。每个插件都有自己的生命周期,并通过扩展点与其他插件进行交互。扩展点定义了插件可以插入...
Eclipse RCP 建设风格——插件、扩展和扩展点 Eclipse RCP的核心是插件、扩展和扩展点的概念。这些概念是Eclipse RCP架构的基础,也是构建应用的关键组成部分。 - **插件**:在Eclipse RCP中,每个功能模块都被...
这个"struts2.2.1.1帮助文档——英文"是开发者的重要参考资料,它提供了关于Struts2框架核心组件、配置、拦截器、插件以及API的详细信息。以下是基于该文档和Struts2.2.1.1版本的一些关键知识点: 1. **MVC设计模式...
Struts 2是Java Web开发中的一个强大框架,它基于Model-View-Controller(MVC)设计模式,为开发者提供了一种结构化和可扩展的方式来构建动态web应用程序。该框架结合了WebWork的核心功能和经典的Struts 1框架的优点...