package com.intellij.codeInsight.daemon;
import com.intellij.codeInsight.daemon.impl.PsiElementListNavigator;
import com.intellij.ide.util.DefaultPsiElementCellRenderer;
import com.intellij.psi.NavigatablePsiElement;
import com.intellij.psi.PsiElement;
import consulo.annotations.RequiredDispatchThread;
import javax.swing.*;
import java.awt.event.MouseEvent;
import java.util.Collection;
/**
* @author yole
*/
public class DefaultGutterIconNavigationHandler<T extends PsiElement> implements GutterIconNavigationHandler<T> {
private final Collection<? extends NavigatablePsiElement> myReferences;
private final String myTitle;
public DefaultGutterIconNavigationHandler(Collection<? extends NavigatablePsiElement> references, String title) {
myReferences = references;
myTitle = title;
}
public Collection<? extends NavigatablePsiElement> getReferences() {
return myReferences;
}
@RequiredDispatchThread
@Override
public void navigate(MouseEvent e, T elt) {
PsiElementListNavigator.openTargets(e,
myReferences.toArray(new NavigatablePsiElement[myReferences.size()]),
myTitle, null, createListCellRenderer());
}
protected ListCellRenderer createListCellRenderer() {
return new DefaultPsiElementCellRenderer();
}
}