in src/java/org/jetbrains/plugins/clojure/runner/console/ClojureFilter.java [97:125]
public void navigate(final Project project) {
DefaultPsiElementListCellRenderer renderer = new DefaultPsiElementListCellRenderer();
final JList list = new JList(myPsiFiles);
list.setCellRenderer(renderer);
renderer.installSpeedSearch(list);
final Runnable runnable = new Runnable() {
public void run() {
int[] ids = list.getSelectedIndices();
if (ids == null || ids.length == 0) return;
Object[] selectedElements = list.getSelectedValues();
for (Object element : selectedElements) {
Navigatable descriptor = EditSourceUtil.getDescriptor((PsiElement) element);
if (descriptor != null && descriptor.canNavigate()) {
descriptor.navigate(true);
}
}
}
};
final Editor editor = PlatformDataKeys.EDITOR.getData(DataManager.getInstance().getDataContext());
new PopupChooserBuilder(list).
setTitle("Choose file").
setItemChoosenCallback(runnable).
createPopup().showInBestPositionFor(editor);
}