为 SWT 应用程序配备内容助理:通过上下文敏感的智能内容完成建议,提高最终用户的便利性和生产率
2009-12-14 00:00:00 来源:WEB开发网然后创建一个 ArrayList 实例 ,用于收集所生成的 ICompletionProposal 实例,如清单 3 所示。
清单 3. computeCompletionProposals (续)
List propList = new ArrayList();
如果选中了文本范围,则检索选中的文本,并计算出样式标签建议,如清单 4 所示。
清单 4. computeCompletionProposals (续)
if (selectedRange.y > 0) {
try {
// Retrieve selected text
String text = doc.get(selectedRange.x, selectedRange.y);
// Compute completion proposals
computeStyleProposals(text, selectedRange, propList);
} catch (BadLocationException e) {
}
} else {
否则,设法从文档中检索一个限定符,如清单 5 所示。这样的限定符包含部分地进入 HTML 标签的所有字符,用来限制可能的建议集。
清单 5. computeCompletionProposals (续)
// Retrieve qualifier
String qualifier = getQualifier(doc, documentOffset);
// Compute completion proposals
computeStructureProposals(qualifier, documentOffset, propList);
}
最后,将自动完成建议列表转换为一个数组,并将这个数组作为结果返回,如清单 6 所示。
清单 6. computeCompletionProposals (续)
// Create completion proposal array
ICompletionProposal[] proposals = new ICompletionProposal[propList.size()];
// and fill with list elements
propList.toArray(proposals);
// Return the proposals
return proposals;
}
更多精彩
赞助商链接