快速业务通道

为SWT应用程序配备内容助理 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-19

为SWT应用程序配备内容助理

时间:2011-02-09 IBM Berthold Daum

通过上下文敏感的智能内容完成建议,提高最终用户的便利性和生产率

创建 HTML 编辑器

内容助理的概念与 JFace 文本查看器(即 org.eclipse.jface.text.source.SourceViewer 类)的特定实现有关。整个 Eclipse 工作台中都使用了这个类的实例来实现各种编辑器。然而, SourceViewers 并不仅限用于 Eclipse 工作台,而是还使用在基于 SWT 和 JFace JAR 建立的任何应用程序中。本文将在 Eclipse 编辑器插件的环境中展示内容助理的实现,并给出关于如何通过“裸” SourceViewers 使用内容助理的技巧。

下面让我们实现一个简单的 HTML 编辑器。内容助理对 HTML 编辑可能非常有用。例如,内容助理能够生成诸如表或链接等典型的 HTML 结构,或者能够将选中的文本区域包装到样式标签中。

为节省时间,我们将使用 New Plug-in Project向导之一来实现这个编辑器,以生成适当的编辑器插件。由于所生成的这个编辑器是 XML 编辑器,而 HTML 是基于 XML 的标记语言,我们只需进行一些次要的修改,将所生成的编辑器转换为一个 HTML 编辑器。下面就让我们开始吧。

在调用 New向导之后,选择 Plug-in Development 和 Plug-in Project。在随后的屏幕上,输入项目名称“Sample HTML Editor”。在接下来的屏幕上,定义适当的插件 ID,比如“com.bdaum.SampleHTMLEditor”。下面的屏幕允许您选择适当的代码生成向导。请选择 Plug-in with an editor,如图 1 所示。

图 1. 带编辑器的插件

在下一个屏幕上,修改建议的插件名称(如果想这样做的话)和插件类名称,并指定一个提供者名称。其他内容保留不变。

继续到下一个屏幕,把建议的名称 Editor Class Name修改为“HTMLEditor”,把 Editor Name修改为“Sample HTML Editor”,把 File Extension修改为“html, htm”,如图 2 所示。后一个条目将把新的编辑器与具有 .html 或 .htm 文件扩展名的所有文件关联起来。

图 2. 编辑器选项

单击 Finish按钮来生成新的编辑器。现在通过 Run > Run as ... > Run-time workbench启动一个新的工作台。在创建具有 .html 或 .htm 文件扩展名的新文件(或导入这样的文件)之后,再使用新的编辑器来打开它。

为SWT应用程序配备内容助理(2)

时间:2011-02-09 IBM Berthold Daum

添加内容助理

正如您很快将会发现的,这个编辑器没有具备内容助理特性;按 Ctrl + 空格键没有任何作用。 SourceViewers 默认情况下没有配备内容助理。我们需要相应地配置这个 HTML 编辑器中使用的 SourceViewer。

HTML 编辑器的 SourceViewer 的配置是通过所生成的类 XMLConfiguration 来表示的,这个类是 SourceViewerConfiguration 的子类(如果您愿意,可以将这个类重命名为 HTMLConfiguration ,不过这并不是必需的)。为了向源代码查看器添加一个内容助理,我们需要重写 SourceViewerConfiguration 方法 getContentAssistant() 。这最适合通过 Java 编辑器的上下文功能 Source > Override/Implement Methods...来完成,这个功能会为该方法创建一个存根(stub)。现在我们需要实现这个方法,并返回一个 IContentAssistant 类型的适当实例。

内容助理由一个或多个内容处理器组成,我们想要支持的每种内容类型分别有一个内容处理器。源代码查看器处理过的文档可以划分为具有不同内容类型的多个分区。这样的分区将由分区扫描程序确定,事实上,我们在包 com.bdaum.HTMLEditor.editors 中发现了一个类 XMLPartitionScanner 。这个类为我们的文档类型 XML_DEFAULT 、 XML_COMMENT 和 XML_TAG 定义了三种不同的内容类型。此

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号