为SWT应用程序配备内容助理 - 编程入门网
- 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. 样式标签集合
清单 11 显示了方法 computeStyleProposals()。 清单 11. computeStyleProposals
对于每种受支持的样式标签,我们将构造一个替换字符串,并创建一个新的自动完成建议。当然,这种解决办法是相当简单的。恰当的实现应该进一步检查替换字符串。如果这个字符串包含标签,我们将相应地对该字 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |