/* * Copyright 2016 Nokia Solutions and Networks * Licensed under the Apache License, Version 2.0, * see license.txt file for details. */ package org.robotframework.red.nattable.edit; import java.util.Optional; import org.eclipse.swt.widgets.Text; import org.robotframework.red.jface.assist.AssistantContext; import org.robotframework.red.jface.assist.RedContentProposalAdapter; import org.robotframework.red.jface.assist.RedContentProposalAdapter.RedContentProposalListener; import org.robotframework.red.jface.assist.RedContentProposalProvider; /** * @author Michal Anglart * */ public class AssistanceSupport { private final RedContentProposalProvider proposalsProvider; private RedContentProposalAdapter adapter; AssistanceSupport(final RedContentProposalProvider proposalsProvider) { this.proposalsProvider = proposalsProvider; } public void install(final Text textControl, final AssistantContext context, final Optional<RedContentProposalListener> listener) { if (proposalsProvider == null || textControl.isDisposed()) { return; } adapter = RedContentProposalAdapter.install(textControl, context, proposalsProvider, listener); RedContentProposalAdapter.markControlWithDecoration(adapter); } public boolean areContentProposalsShown() { return adapter != null && adapter.isProposalPopupOpen(); } public static class NatTableAssistantContext implements AssistantContext { private final int column; private final int row; public NatTableAssistantContext(final int column, final int row) { this.column = column; this.row = row; } public int getColumn() { return column; } public int getRow() { return row; } } }