mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IDEADEV-40762: correct getData(VIRTUAL_FILE_ARRAY) for content roots of the modules
This commit is contained in:
@@ -74,7 +74,9 @@ import javax.swing.border.Border;
|
||||
import java.awt.*;
|
||||
import java.awt.event.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.LinkedHashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
* User: anna
|
||||
@@ -237,7 +239,7 @@ public class NavBarPanel extends JPanel implements DataProvider, PopupOwner {
|
||||
public void select() {
|
||||
updateModel();
|
||||
updateList();
|
||||
|
||||
|
||||
if (!myList.isEmpty()) {
|
||||
myModel.setSelectedIndex(myList.size() - 1);
|
||||
IdeFocusManager.getInstance(myProject).requestFocus(this, true);
|
||||
@@ -563,7 +565,7 @@ public class NavBarPanel extends JPanel implements DataProvider, PopupOwner {
|
||||
private void navigateInsideBar(final Object object) {
|
||||
myModel.updateModel(object);
|
||||
updateList();
|
||||
|
||||
|
||||
myModel.setSelectedIndex(myList.size() - 1);
|
||||
|
||||
if (myHint != null) {
|
||||
@@ -646,6 +648,18 @@ public class NavBarPanel extends JPanel implements DataProvider, PopupOwner {
|
||||
return element != null && element.isValid() ? new PsiElement[]{element} : null;
|
||||
}
|
||||
|
||||
if (dataId.equals(DataConstants.VIRTUAL_FILE_ARRAY)) {
|
||||
PsiElement[] psiElements = (PsiElement[])getData(DataConstants.PSI_ELEMENT_ARRAY);
|
||||
if (psiElements == null) return null;
|
||||
Set<VirtualFile> files = new LinkedHashSet<VirtualFile>();
|
||||
for (PsiElement element : psiElements) {
|
||||
if (element instanceof PsiFileSystemItem) {
|
||||
files.add(((PsiFileSystemItem)element).getVirtualFile());
|
||||
}
|
||||
}
|
||||
return files.size() > 0 ? files.toArray(new VirtualFile[files.size()]) : null;
|
||||
}
|
||||
|
||||
if (dataId.equals(DataConstants.CONTEXT_COMPONENT)) {
|
||||
return this;
|
||||
}
|
||||
|
||||
@@ -970,6 +970,17 @@ public final class ProjectViewImpl extends ProjectView implements PersistentStat
|
||||
PsiElement[] elements = currentProjectViewPane.getSelectedPSIElements();
|
||||
return elements.length == 0 ? null : elements;
|
||||
}
|
||||
if (DataConstants.VIRTUAL_FILE_ARRAY.equals(dataId)) {
|
||||
PsiElement[] psiElements = (PsiElement[])getData(DataConstants.PSI_ELEMENT_ARRAY);
|
||||
if (psiElements == null) return null;
|
||||
Set<VirtualFile> files = new LinkedHashSet<VirtualFile>();
|
||||
for (PsiElement element : psiElements) {
|
||||
if (element instanceof PsiFileSystemItem) {
|
||||
files.add(((PsiFileSystemItem)element).getVirtualFile());
|
||||
}
|
||||
}
|
||||
return files.size() > 0 ? files.toArray(new VirtualFile[files.size()]) : null;
|
||||
}
|
||||
if (DataConstantsEx.TARGET_PSI_ELEMENT.equals(dataId)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user