WEB开发网
开发学院软件开发Java 为 SWT 应用程序配备内容助理:通过上下文敏感的智... 阅读

为 SWT 应用程序配备内容助理:通过上下文敏感的智能内容完成建议,提高最终用户的便利性和生产率

 2009-12-14 00:00:00 来源:WEB开发网   
核心提示: 我们遍历标签数组,选择以指定限定符开头的所有标签,为 SWT 应用程序配备内容助理:通过上下文敏感的智能内容完成建议,提高最终用户的便利性和生产率(8),对于每个选定的标签,我们创建一个新的 CompletionProposal 实例,同样,您可能希望添加更多的标签,对于参数,我们传递完整的标签

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

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

处理复杂建议

前述方法并不适合于我们还必须实现的方法 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); 
  } 
} 

上一页  3 4 5 6 7 8 9 10  下一页

Tags:SWT 应用程序 配备

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接