快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-19
/ Remember start of tag           start = i;           break;          case ''>'' :           if (start >= 0) {            // We have found a tag and create a new style range            StyleRange range =              new StyleRange(start, i - start + 1, null, null, SWT.BOLD)            // Add this style range to the presentation            presentation.addStyleRange(range);            // Reset tag start indicator            start = -1;           }           break;       }     }     // Return the information text     return infoText;    } };

处理过程是在 updatePresentation() 方法中完成的。这个方法接受要显示的文本和一个默认的 TextPresentation 实例。我们只需循环遍历该文本的字符,针对从该文本中找到的每个 XML 标签,我们向它的这个文本展示实例添加一个新的样式范围。在这个新的样式范围中,我们保留前景色和背景色不变,但是把字体样式设为粗体。

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

时间:2011-02-09 IBM Berthold Daum

上下文信息

现在研究一下我们已在 computeStyleProposals() 方法中创建的 ContextInformation 实例。这个上下文信息将在某个建议已被插入文档之后显示出来。它可用于通知用户关于某个自动完成建议已被成功应用的信息。然而,仅只是向 CompletionProposal() 构造函数传递一个 ContextInformation 实例是不足够的。我们还必须完成方法 getContextInformationValidator() 来为这个上下文信息提供验证器。清单 16 显示了这是如何进行的。

清单 16. getContextInformationValidator

public IContextInformationValidator getContextInformationValidator() {    return new ContextInformationValidator(this); }

这里使用了 ContextInformationValidator 的默认实现。这个验证器将检查要显示的上下文信息是否包含在方法 computeContextInformation() 返回的上下文信息项数组中。如果没有,该信息将不会显示。因此我们还必须完成方法 computeContextInformation() ,如清单 17 所示。

清单 17. computeContextInformation

public IContextInformation[] computeContextInformation(ITextViewer viewer,     int documentOffset) {    // Retrieve selected range    Point selectedRange = viewer.getSelectedRange();    if (selectedRange.y > 0) {     // Text is selected. Create a context information array.     ContextInformation[] contextInfos = new ContextInformation[STYLELABELS.length];     // Create one context information item for each style     for (int i = 0; i < STYLELABELS.length; i++)       contextInfos[i] = new ContextInformation(null, STYLELABELS[i]+" Style");     return contextInfos;    }    return new ContextInformation[0]; }

这里我们仅为每个样式标签创建一个 IContextInformation 项。当然,这种解决办法相当简单。更高级的实现应该检查选中文本的周围,并确定哪些具体的样式标签适用于选中的文本。

如果我们不想实现这个方法,还可以选择实现我们自己的 IContextInformationValidator ,它总是返回 true。

激活助理

到目前为止,我们已经完成了新内容助理

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号