为 SWT 应用程序配备内容助理:通过上下文敏感的智能内容完成建议,提高最终用户的便利性和生产率
2009-12-14 00:00:00 来源:WEB开发网内容助理由一个或多个内容处理器组成,我们想要支持的每种内容类型分别有一个内容处理器。源代码查看器处理过的文档可以划分为具有不同内容类型的多个分区。这样的分区将由分区扫描程序确定,事实上,我们在包 com.bdaum.HTMLEditor.editors 中发现了一个类 XMLPartitionScanner 。这个类为我们的文档类型 XML_DEFAULT 、 XML_COMMENT 和 XML_TAG 定义了三种不同的内容类型。此外,文档也可能包含 IDocument.DEFAULT_CONTENT_TYPE 类型的分区。
在新方法 getContentAssistant() 中,我们首先创建了 IContentAssistant 的默认实现的一个新实例,并给它配备了针对 XML_DEFAULT 、 XML_TAG 和 IDocument.DEFAULT_CONTENT_TYPE 内容类型的完全一样的内容助理处理器。由于不打算在 HTML 注释内提供辅助,因此我们没有为内容类型 XML_COMMENT 创建内容助理处理器。清单 1 显示了该代码。
清单 1. getContentAssistant
public IContentAssistant getContentAssistant(SourceViewer sourceViewer) {
// Create content assistant
ContentAssistant assistant = new ContentAssistant();
// Create content assistant processor
IContentAssistProcessor processor = new HtmlContentAssistProcessor();
// Set this processor for each supported content type
assistant.setContentAssistProcessor(processor, XMLPartitionScanner.XML_TAG);
assistant.setContentAssistProcessor(processor, XMLPartitionScanner.XML_DEFAULT);
assistant.setContentAssistProcessor(processor, IDocument.DEFAULT_CONTENT_TYPE);
// Return the content assistant
return assistant;
}
更多精彩
赞助商链接