SWT字段中的实现类提议机制

时间:2011-03-07 17:38:04

标签: eclipse swt

我知道如何使用字段辅助和搜索模式来实现它,但每次触发新搜索的机制。我不确定,例如如何在Open Type中实现该机制(我认为使用索引)。如何使用此缓存进行时间类路径搜索

这几乎是我的整个解决方案。每次调用createProposalData

private TreeSet<String> data;
private SearchParticipant[] participants = new SearchParticipant[] { SearchEngine
        .getDefaultSearchParticipant() };
private SearchPattern pattern;
private IJavaProject prj;
private JavaSearchScope scope;
private SearchEngine searchEngine = new SearchEngine();
private SearchRequestor requestor = new SearchRequestor() {

    @Override
    public void acceptSearchMatch(SearchMatch match) throws CoreException {
        String text = getText(match.getElement());

        if (text != null) {
            data.add(text);
        }

    }
    public String getText(Object element) {
        ...
        }
};

public ProposalEngine(IJavaProject prj) {
    super();
    this.prj = prj;
    scope = new JavaSearchScope();
    try {
        scope.add(prj);
    } catch (JavaModelException e) {
        //
    }
}

public Collection<String> createProposalData(final String patternText) {
    data = new TreeSet<String>();
    try {
        pattern = getPatternForSeach(patternText);
        searchEngine.search(pattern, participants, scope, requestor, null);
    } catch (Exception e) {
        // skip
    }
    return data;
}

protected SearchPattern getPatternForSeach(String patternText) {
    return SearchPattern.createPattern(patternText,
            IJavaSearchConstants.CLASS_AND_INTERFACE,
            IJavaSearchConstants.DECLARATIONS,
            SearchPattern.R_CAMELCASE_MATCH);
}

1 个答案:

答案 0 :(得分:0)

我相信你正在做的是Open Type对话框正在做的事情。在JDT API下面进行索引以加速搜索。