/*
* Copyright 2016 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 org.eclipse.jface.fieldassist.IContentProposal;
import org.robotframework.ide.eclipse.main.plugin.assist.AssistProposal;
import org.robotframework.ide.eclipse.main.plugin.assist.RedSettingProposals;
import org.robotframework.ide.eclipse.main.plugin.assist.RedSettingProposals.SettingTarget;
import org.robotframework.red.jface.assist.AssistantContext;
import org.robotframework.red.jface.assist.RedContentProposal;
import org.robotframework.red.jface.assist.RedContentProposalProvider;
import org.robotframework.red.nattable.edit.AssistanceSupport.NatTableAssistantContext;
public class SettingProposalsProvider implements RedContentProposalProvider {
private final SettingTarget settingTarget;
public SettingProposalsProvider(final SettingTarget settingTarget) {
this.settingTarget = settingTarget;
}
@Override
public RedContentProposal[] getProposals(final String contents, final int position,
final AssistantContext context) {
final String prefix = contents.substring(0, position);
final List<IContentProposal> proposals = newArrayList();
final List<? extends AssistProposal> settingsProposals = new RedSettingProposals(settingTarget)
.getSettingsProposals(prefix);
final NatTableAssistantContext tableContext = (NatTableAssistantContext) context;
if (tableContext.getColumn() == 0) {
for (final AssistProposal proposedSetting : settingsProposals) {
proposals.add(new AssistProposalAdapter(proposedSetting));
}
}
return proposals.toArray(new RedContentProposal[0]);
}
}