SWT组合的自动完成建议

时间:2019-01-13 09:55:41

标签: java eclipse swt

鉴于下面的代码可以正常工作,该代码如何实现包含文字的建议,而不只是实现开头的给定序列的建议?

我正在寻找SQL中的“%LIKE%”之类的东西。例如,写“汽车”我想成为像“ verdure carciofi”这样的词。

class WordCount
    def self.word_count_from_file(filename)
        @s = File.open(filename) { |file| file.read }
        count_frequency
    end

    def self.word_count_from_string(str)
        @s = str
        count_frequency
    end

    def self.count_frequency
        words_array.each_with_object(Hash.new(0)) { |word, cnt| cnt[word] += 1 }.sort_by(&:last).reverse
    end

    def self.words_array
        @s.downcase.scan(/[\w']+/)
    end
end

1 个答案:

答案 0 :(得分:2)

您可以编写自己的类来实现SimpleContentProposalProvider,而不是IContentProposalProvider

此界面只有一种方法:

public IContentProposal[] getProposals(String contents, int position)

将为您提供当前控件的内容和插入位置,并由您决定是否返回适当的建议。

您可以使用实现ContentProposal的{​​{1}}类。

因此,如果文本为“汽车”,返回提案的简单提供者可能是:

IContentProposal

,您的代码将变为:

class MyProposalProvider implements IContentProposalProvider
{
  @Override
  public IContentProposal [] getProposals(final String contents, final int position)
  {
    if (contents.equals("car")) {
      return new IContentProposal [] {
        new ContentProposal("proposal 1", "description 1", null),  
        new ContentProposal("proposal 2", "description 2", null),  
      };
    }

    return new IContentProposal [0];
  }
}