| 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 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; |
| } |
| |
| @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(); |
| } |
| } |