快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-19
- compute whole proposal text       String text = startTag + STRUCTTAGS2[i];       // Derive cursor position       int cursor = startTag.length();       // Construct proposal        CompletionProposal proposal =        new CompletionProposal(text, documentOffset - qlen, qlen, cursor);       // and add to result list       propList.add(proposal);     }    } }

我们遍历标签数组,选择以指定限定符开头的所有标签。对于每个选定的标签,我们创建一个新的 CompletionProposal 实例。对于参数,我们传递完整的标签文本、这段文本应该插入的位置、文档中应该被替换的文本的长度(也就是限定符的长度),以及相对于插入文本开头的预计光标位置。

这个方法将为我们提供 WYSIWYG(“所见即所得”)的建议。内容助理的弹出窗口将列出建议,其形式与它们被选定时插入文档的形式精确一致。

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

时间:2011-02-09 IBM Berthold Daum

处理复杂建议

前述方法并不适合于我们还必须实现的方法 computeStyleProposals() 。这里我们需要将选中的文本包装到选定的样式标签中,并使用这个新的字符串替换文档里选中的文本。由于这样的替换可能具有任何长度,在内容助理选择窗口中显示它是没有意义的。相反,显示一段简短而有意义的说明性文字,一旦选定明确的样式建议,就显示一个包含完整替换文本的预览窗口,这样会更有意义。我们可以通过使用 CompletionProposal() 构造函数的一种扩展形式来实现这点。

清单 10 显示了我们想要支持的样式标签以及关联的说明文字。同样,您可能希望添加更多的标签。

清单 10. 样式标签集合

private final static String[] STYLETAGS = new String[] {     "b", "i", "code", "strong" }; private final static String[] STYLELABELS = new String[] {     "bold", "italic", "code", "strong" };

清单 11 显示了方法 computeStyleProposals()。

清单 11. computeStyleProposals

private void computeStyleProposals(String selectedText, Point selectedRange, List propList) {    // Loop through all styles    for (int i = 0; i < STYLETAGS.length; i++) {     String tag = STYLETAGS[i];     // Compute replacement text     String replacement = "<" + tag + ">" + selectedText + "</" + tag + ">";     // Derive cursor position     int cursor = tag.length()+2;     // Compute a suitable context information     IContextInformation contextInfo =       new ContextInformation(null, STYLELABELS[i]+" Style");     // Construct proposal      CompletionProposal proposal = new CompletionProposal(replacement,       selectedRange.x, selectedRange.y, cursor, null, STYLELABELS[i],       contextInfo, replacement);     // and add to result list     propList.add(proposal);    } }

对于每种受支持的样式标签,我们将构造一个替换字符串,并创建一个新的自动完成建议。当然,这种解决办法是相当简单的。恰当的实现应该进一步检查替换字符串。如果这个字符串包含标签,我们将相应地对该字

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