/* * Copyright 2015 Nokia Solutions and Networks * Licensed under the Apache License, Version 2.0, * see license.txt file for details. */ package org.robotframework.ide.eclipse.main.plugin.tableeditor.assist; import static com.google.common.collect.Lists.newArrayList; import java.util.List; import java.util.function.Supplier; import org.eclipse.jface.fieldassist.IContentProposal; import org.robotframework.ide.eclipse.main.plugin.assist.AssistProposal; import org.robotframework.ide.eclipse.main.plugin.assist.RedKeywordProposals; import org.robotframework.ide.eclipse.main.plugin.model.RobotSuiteFile; import org.robotframework.red.jface.assist.AssistantContext; import org.robotframework.red.jface.assist.RedContentProposal; import org.robotframework.red.jface.assist.RedContentProposalProvider; public class KeywordProposalsProvider implements RedContentProposalProvider { private final Supplier<RobotSuiteFile> suiteFile; public KeywordProposalsProvider(final RobotSuiteFile suiteFile) { this(() -> suiteFile); } public KeywordProposalsProvider(final Supplier<RobotSuiteFile> suiteFile) { this.suiteFile = suiteFile; } @Override public RedContentProposal[] getProposals(final String contents, final int position, final AssistantContext context) { final String prefix = contents.substring(0, position); final List<? extends AssistProposal> keywordsEntities = new RedKeywordProposals(suiteFile.get()) .getKeywordProposals(prefix); final List<IContentProposal> proposals = newArrayList(); for (final AssistProposal proposedKeyword : keywordsEntities) { proposals.add(new AssistProposalAdapter(proposedKeyword)); } return proposals.toArray(new RedContentProposal[0]); } }