package ru.naumen.gintonic.widgets; import java.util.Collection; import org.eclipse.jface.viewers.ArrayContentProvider; import org.eclipse.jface.viewers.LabelProvider; import org.eclipse.ui.PlatformUI; import org.eclipse.ui.dialogs.ListDialog; import ru.naumen.gintonic.guice.statements.BindingDefinition; import ru.naumen.gintonic.guice.statements.LinkedBindingStatement; /** * Select with Binding Definitions * * @author Sergey Tselovalnikov * @since Jan 22, 2014 */ public class PossibleBindingsSelect extends ListDialog { public PossibleBindingsSelect(Collection<BindingDefinition> bindingDefinitions) { super(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell()); setTitle("Possible bindigns"); setInput(bindingDefinitions.toArray()); setHelpAvailable(false); setLabelProvider(new LabelProvider(){ @Override public String getText(Object element) { if(element instanceof LinkedBindingStatement) { return ((LinkedBindingStatement) element).getImplType(); } String boundType = ((BindingDefinition)element).getBoundType(); if(boundType == null) { return ((BindingDefinition)element).getSourceCodeReference().getPrimaryTypeName(); } return boundType; } }); setContentProvider(new ArrayContentProvider()); } }