mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
more usages of getSourceContentRoots corrected to fetch only java roots where needed
This commit is contained in:
+3
-1
@@ -37,6 +37,7 @@ import com.intellij.psi.util.CreateClassUtil;
|
||||
import com.intellij.util.IncorrectOperationException;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.jps.model.java.JavaModuleSourceRootTypes;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
@@ -251,7 +252,8 @@ public class CreateClassOrPackageFix extends LocalQuickFixAndIntentionActionOnPs
|
||||
}
|
||||
}
|
||||
else {
|
||||
for (VirtualFile root : ProjectRootManager.getInstance(psiManager.getProject()).getContentSourceRoots()) {
|
||||
for (VirtualFile root : ProjectRootManager.getInstance(psiManager.getProject()).getModuleSourceRoots(
|
||||
JavaModuleSourceRootTypes.SOURCES)) {
|
||||
PsiDirectory directory = psiManager.findDirectory(root);
|
||||
if (LOG.isDebugEnabled()) {
|
||||
LOG.debug("Root: " + root + ", directory: " + directory);
|
||||
|
||||
@@ -49,6 +49,7 @@ import com.intellij.util.IncorrectOperationException;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.jps.model.java.JavaModuleSourceRootTypes;
|
||||
|
||||
import javax.swing.*;
|
||||
import javax.swing.event.DocumentEvent;
|
||||
@@ -207,7 +208,7 @@ public class CreateClassDialog extends DialogWrapper {
|
||||
gbConstraints.insets.top = 4;
|
||||
panel.add(myDestinationCB, gbConstraints);
|
||||
|
||||
final boolean isMultipleSourceRoots = ProjectRootManager.getInstance(myProject).getContentSourceRoots().length > 1;
|
||||
final boolean isMultipleSourceRoots = ProjectRootManager.getInstance(myProject).getModuleSourceRoots(JavaModuleSourceRootTypes.SOURCES).size() > 1;
|
||||
myDestinationCB.setVisible(isMultipleSourceRoots);
|
||||
label.setVisible(isMultipleSourceRoots);
|
||||
label.setLabelFor(myDestinationCB);
|
||||
|
||||
+1
-5
@@ -28,7 +28,6 @@ import com.intellij.psi.JavaDirectoryService;
|
||||
import com.intellij.psi.PsiDirectory;
|
||||
import com.intellij.psi.PsiManager;
|
||||
import com.intellij.psi.PsiPackage;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
@@ -55,15 +54,12 @@ public class PackageViewProjectNode extends AbstractProjectNode {
|
||||
return modulesAndGroups(allModules.toArray(new Module[allModules.size()]));
|
||||
}
|
||||
else {
|
||||
final List<VirtualFile> sourceRoots = new ArrayList<VirtualFile>();
|
||||
final ProjectRootManager projectRootManager = ProjectRootManager.getInstance(myProject);
|
||||
ContainerUtil.addAll(sourceRoots, projectRootManager.getContentSourceRoots());
|
||||
|
||||
final PsiManager psiManager = PsiManager.getInstance(myProject);
|
||||
final List<AbstractTreeNode> children = new ArrayList<AbstractTreeNode>();
|
||||
final Set<PsiPackage> topLevelPackages = new HashSet<PsiPackage>();
|
||||
|
||||
for (final VirtualFile root : sourceRoots) {
|
||||
for (final VirtualFile root : projectRootManager.getContentSourceRoots()) {
|
||||
final PsiDirectory directory = psiManager.findDirectory(root);
|
||||
if (directory == null) {
|
||||
continue;
|
||||
|
||||
@@ -38,6 +38,7 @@ import com.intellij.util.ui.FormBuilder;
|
||||
import com.intellij.util.ui.UIUtil;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.jps.model.java.JavaModuleSourceRootTypes;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.*;
|
||||
@@ -114,7 +115,7 @@ class CopyClassDialog extends DialogWrapper{
|
||||
}
|
||||
|
||||
final JLabel label = new JLabel(RefactoringBundle.message("target.destination.folder"));
|
||||
final boolean isMultipleSourceRoots = ProjectRootManager.getInstance(myProject).getContentSourceRoots().length > 1;
|
||||
final boolean isMultipleSourceRoots = ProjectRootManager.getInstance(myProject).getModuleSourceRoots(JavaModuleSourceRootTypes.SOURCES).size() > 1;
|
||||
myDestinationCB.setVisible(!myDoClone && isMultipleSourceRoots);
|
||||
label.setVisible(!myDoClone && isMultipleSourceRoots);
|
||||
label.setLabelFor(myDestinationCB);
|
||||
|
||||
+3
-2
@@ -36,6 +36,7 @@ import com.intellij.refactoring.util.classMembers.MemberInfo;
|
||||
import com.intellij.ui.EditorComboBox;
|
||||
import com.intellij.ui.components.JBLabel;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.jps.model.java.JavaModuleSourceRootTypes;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.*;
|
||||
@@ -71,8 +72,8 @@ public abstract class JavaExtractSuperBaseDialog extends ExtractSuperBaseDialog<
|
||||
|
||||
@Override
|
||||
protected JPanel createDestinationRootPanel() {
|
||||
final VirtualFile[] sourceRoots = ProjectRootManager.getInstance(myProject).getContentSourceRoots();
|
||||
if (sourceRoots.length <= 1) return super.createDestinationRootPanel();
|
||||
final List<VirtualFile> sourceRoots = ProjectRootManager.getInstance(myProject).getModuleSourceRoots(JavaModuleSourceRootTypes.SOURCES);
|
||||
if (sourceRoots.size() <= 1) return super.createDestinationRootPanel();
|
||||
final JPanel panel = new JPanel(new BorderLayout());
|
||||
panel.setBorder(BorderFactory.createEmptyBorder(10, 0, 0, 0));
|
||||
final JBLabel label = new JBLabel(RefactoringBundle.message("target.destination.folder"));
|
||||
|
||||
@@ -42,6 +42,7 @@ import com.intellij.util.ui.FormBuilder;
|
||||
import com.intellij.util.ui.UIUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.jps.model.java.JavaModuleSourceRootTypes;
|
||||
|
||||
import javax.swing.*;
|
||||
import javax.swing.event.DocumentEvent;
|
||||
@@ -60,7 +61,6 @@ class ExtractClassDialog extends RefactoringDialog implements MemberInfoChangeLi
|
||||
private final JTextField classNameField;
|
||||
private final ReferenceEditorComboWithBrowseButton packageTextField;
|
||||
private final DestinationFolderComboBox myDestinationFolderComboBox;
|
||||
private final JTextField sourceClassTextField = null;
|
||||
private JCheckBox myGenerateAccessorsCb;
|
||||
private final JavaVisibilityPanel myVisibilityPanel;
|
||||
private final JCheckBox extractAsEnum;
|
||||
@@ -252,7 +252,7 @@ class ExtractClassDialog extends RefactoringDialog implements MemberInfoChangeLi
|
||||
.addLabeledComponent(new JLabel(), extractAsEnum)
|
||||
.addLabeledComponent(RefactorJBundle.message("package.for.new.class.label"), packageTextField);
|
||||
|
||||
if (ProjectRootManager.getInstance(myProject).getContentSourceRoots().length > 1) {
|
||||
if (ProjectRootManager.getInstance(myProject).getModuleSourceRoots(JavaModuleSourceRootTypes.SOURCES).size() > 1) {
|
||||
builder.addLabeledComponent(RefactoringBundle.message("target.destination.folder"), myDestinationFolderComboBox);
|
||||
}
|
||||
|
||||
|
||||
+6
-4
@@ -34,12 +34,14 @@ import com.intellij.refactoring.MoveDestination;
|
||||
import com.intellij.refactoring.PackageWrapper;
|
||||
import com.intellij.ui.*;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.jps.model.java.JavaModuleSourceRootTypes;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.*;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import java.util.*;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* User: anna
|
||||
@@ -49,7 +51,7 @@ public abstract class DestinationFolderComboBox extends ComboboxWithBrowseButton
|
||||
private static final String LEAVE_IN_SAME_SOURCE_ROOT = "Leave in same source root";
|
||||
private static final DirectoryChooser.ItemWrapper NULL_WRAPPER = new DirectoryChooser.ItemWrapper(null, null);
|
||||
private PsiDirectory myInitialTargetDirectory;
|
||||
private VirtualFile[] mySourceRoots;
|
||||
private List<VirtualFile> mySourceRoots;
|
||||
|
||||
public DestinationFolderComboBox() {
|
||||
super(new ComboBoxWithWidePopup());
|
||||
@@ -79,7 +81,7 @@ public abstract class DestinationFolderComboBox extends ComboboxWithBrowseButton
|
||||
final PsiDirectory initialTargetDirectory,
|
||||
final Pass<String> errorMessageUpdater, final EditorComboBox editorComboBox) {
|
||||
myInitialTargetDirectory = initialTargetDirectory;
|
||||
mySourceRoots = ProjectRootManager.getInstance(project).getContentSourceRoots();
|
||||
mySourceRoots = ProjectRootManager.getInstance(project).getModuleSourceRoots(JavaModuleSourceRootTypes.SOURCES);
|
||||
new ComboboxSpeedSearch(getComboBox()) {
|
||||
@Override
|
||||
protected String getElementText(Object element) {
|
||||
@@ -168,7 +170,7 @@ public abstract class DestinationFolderComboBox extends ComboboxWithBrowseButton
|
||||
VirtualFile selectedDestination = selectedPsiDirectory.getVirtualFile();
|
||||
if (showChooserWhenDefault &&
|
||||
myInitialTargetDirectory != null && Comparing.equal(selectedDestination, myInitialTargetDirectory.getVirtualFile()) &&
|
||||
mySourceRoots.length > 1) {
|
||||
mySourceRoots.size() > 1) {
|
||||
selectedDestination = MoveClassesOrPackagesUtil.chooseSourceRoot(targetPackage, mySourceRoots, myInitialTargetDirectory);
|
||||
}
|
||||
if (selectedDestination == null) return null;
|
||||
@@ -197,7 +199,7 @@ public abstract class DestinationFolderComboBox extends ComboboxWithBrowseButton
|
||||
final VirtualFile initialTargetDirectorySourceRoot,
|
||||
final VirtualFile oldSelection,
|
||||
final ProjectFileIndex fileIndex,
|
||||
final VirtualFile[] sourceRoots,
|
||||
final List<VirtualFile> sourceRoots,
|
||||
final Project project,
|
||||
final boolean forceIncludeAll,
|
||||
final Pass<String> updateErrorMessage) {
|
||||
|
||||
+2
-1
@@ -44,6 +44,7 @@ import com.intellij.refactoring.util.RefactoringUtil;
|
||||
import com.intellij.util.IncorrectOperationException;
|
||||
import com.intellij.util.containers.HashSet;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.jps.model.java.JavaModuleSourceRootTypes;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.*;
|
||||
@@ -300,7 +301,7 @@ public class JavaMoveClassesOrPackagesHandler extends MoveHandlerDelegate {
|
||||
private static boolean canMoveOrRearrangePackages(PsiElement[] elements) {
|
||||
if (elements.length == 0) return false;
|
||||
final Project project = elements[0].getProject();
|
||||
if (ProjectRootManager.getInstance(project).getContentSourceRoots().length == 1) {
|
||||
if (ProjectRootManager.getInstance(project).getModuleSourceRoots(JavaModuleSourceRootTypes.SOURCES).size() == 1) {
|
||||
return false;
|
||||
}
|
||||
for (PsiElement element : elements) {
|
||||
|
||||
+7
-7
@@ -33,7 +33,6 @@ import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.search.ProjectScope;
|
||||
import com.intellij.psi.util.PsiTreeUtil;
|
||||
import com.intellij.psi.util.PsiUtil;
|
||||
import com.intellij.psi.util.PsiUtilCore;
|
||||
import com.intellij.refactoring.*;
|
||||
import com.intellij.refactoring.move.MoveCallback;
|
||||
@@ -55,11 +54,13 @@ import com.intellij.util.ui.UIUtil;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.jps.model.java.JavaModuleSourceRootTypes;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.*;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
public class MoveClassesOrPackagesDialog extends RefactoringDialog {
|
||||
@@ -141,7 +142,7 @@ public class MoveClassesOrPackagesDialog extends RefactoringDialog {
|
||||
private void updateControlsEnabled() {
|
||||
myClassPackageChooser.setEnabled(myToPackageRadioButton.isSelected());
|
||||
myInnerClassChooser.setEnabled(myMakeInnerClassOfRadioButton.isSelected());
|
||||
UIUtil.setEnabled(myTargetPanel, isMoveToPackage() && getSourceRoots().length > 1 && !myTargetDirectoryFixed, true);
|
||||
UIUtil.setEnabled(myTargetPanel, isMoveToPackage() && getSourceRoots().size() > 1 && !myTargetDirectoryFixed, true);
|
||||
validateButtons();
|
||||
}
|
||||
|
||||
@@ -162,8 +163,7 @@ public class MoveClassesOrPackagesDialog extends RefactoringDialog {
|
||||
}
|
||||
|
||||
protected JComponent createCenterPanel() {
|
||||
final VirtualFile[] sourceRoots = getSourceRoots();
|
||||
boolean isDestinationVisible = sourceRoots.length > 1;
|
||||
boolean isDestinationVisible = getSourceRoots().size() > 1;
|
||||
myDestinationFolderCB.setVisible(isDestinationVisible);
|
||||
myTargetDestinationLabel.setVisible(isDestinationVisible);
|
||||
return null;
|
||||
@@ -289,7 +289,7 @@ public class MoveClassesOrPackagesDialog extends RefactoringDialog {
|
||||
setErrorText(s);
|
||||
}
|
||||
}, myHavePackages ? myWithBrowseButtonReference.getChildComponent() : myClassPackageChooser.getChildComponent());
|
||||
UIUtil.setEnabled(myTargetPanel, getSourceRoots().length > 0 && isMoveToPackage() && !isTargetDirectoryFixed, true);
|
||||
UIUtil.setEnabled(myTargetPanel, !getSourceRoots().isEmpty() && isMoveToPackage() && !isTargetDirectoryFixed, true);
|
||||
validateButtons();
|
||||
myHelpID = helpID;
|
||||
}
|
||||
@@ -505,7 +505,7 @@ public class MoveClassesOrPackagesDialog extends RefactoringDialog {
|
||||
return ((DestinationFolderComboBox)myDestinationFolderCB).selectDirectory(targetPackage, mySuggestToMoveToAnotherRoot);
|
||||
}
|
||||
|
||||
private VirtualFile[] getSourceRoots() {
|
||||
return ProjectRootManager.getInstance(myProject).getContentSourceRoots();
|
||||
private List<VirtualFile> getSourceRoots() {
|
||||
return ProjectRootManager.getInstance(myProject).getModuleSourceRoots(JavaModuleSourceRootTypes.SOURCES);
|
||||
}
|
||||
}
|
||||
|
||||
+2
-1
@@ -44,6 +44,7 @@ import com.intellij.usageView.UsageInfo;
|
||||
import com.intellij.util.IncorrectOperationException;
|
||||
import com.intellij.util.containers.MultiMap;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.jps.model.java.JavaModuleSourceRootTypes;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
@@ -367,7 +368,7 @@ public class MoveClassesOrPackagesImpl {
|
||||
}
|
||||
|
||||
private static List<PsiDirectory> buildRearrangeTargetsList(final Project project, final PsiDirectory[] directories) {
|
||||
final VirtualFile[] sourceRoots = ProjectRootManager.getInstance(project).getContentSourceRoots();
|
||||
final List<VirtualFile> sourceRoots = ProjectRootManager.getInstance(project).getModuleSourceRoots(JavaModuleSourceRootTypes.SOURCES);
|
||||
List<PsiDirectory> sourceRootDirectories = new ArrayList<PsiDirectory>();
|
||||
sourceRoots:
|
||||
for (final VirtualFile sourceRoot : sourceRoots) {
|
||||
|
||||
+9
-7
@@ -40,6 +40,7 @@ import com.intellij.util.IncorrectOperationException;
|
||||
import com.intellij.util.containers.HashMap;
|
||||
import com.intellij.psi.util.FileTypeUtils;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.jps.model.java.JavaModuleSourceRootTypes;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.*;
|
||||
@@ -283,12 +284,13 @@ public class MoveClassesOrPackagesUtil {
|
||||
directory = directories[0];
|
||||
}
|
||||
else {
|
||||
final VirtualFile[] contentSourceRoots = ProjectRootManager.getInstance(project).getContentSourceRoots();
|
||||
if (contentSourceRoots.length == 1 && (baseDirVirtualFile == null || fileIndex.isInTestSourceContent(contentSourceRoots[0]) == isBaseDirInTestSources)) {
|
||||
final List<VirtualFile> contentSourceRoots = ProjectRootManager.getInstance(project).getModuleSourceRoots(
|
||||
JavaModuleSourceRootTypes.SOURCES);
|
||||
if (contentSourceRoots.size() == 1 && (baseDirVirtualFile == null || fileIndex.isInTestSourceContent(contentSourceRoots.get(0)) == isBaseDirInTestSources)) {
|
||||
directory = ApplicationManager.getApplication().runWriteAction(new Computable<PsiDirectory>() {
|
||||
@Override
|
||||
public PsiDirectory compute() {
|
||||
return RefactoringUtil.createPackageDirectoryInSourceRoot(packageWrapper, contentSourceRoots[0]);
|
||||
return RefactoringUtil.createPackageDirectoryInSourceRoot(packageWrapper, contentSourceRoots.get(0));
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -307,7 +309,7 @@ public class MoveClassesOrPackagesUtil {
|
||||
}
|
||||
|
||||
public static VirtualFile chooseSourceRoot(final PackageWrapper targetPackage,
|
||||
final VirtualFile[] contentSourceRoots,
|
||||
final List<VirtualFile> contentSourceRoots,
|
||||
final PsiDirectory initialDirectory) {
|
||||
Project project = targetPackage.getManager().getProject();
|
||||
//ensure that there would be no duplicates: e.g. when one content root is subfolder of another root (configured via excluded roots)
|
||||
@@ -330,7 +332,7 @@ public class MoveClassesOrPackagesUtil {
|
||||
}
|
||||
|
||||
public static void buildDirectoryList(PackageWrapper aPackage,
|
||||
VirtualFile[] contentSourceRoots,
|
||||
List<VirtualFile> contentSourceRoots,
|
||||
LinkedHashSet<PsiDirectory> targetDirectories,
|
||||
Map<PsiDirectory, String> relativePathsToCreate) {
|
||||
|
||||
@@ -372,7 +374,7 @@ public class MoveClassesOrPackagesUtil {
|
||||
}
|
||||
}
|
||||
}
|
||||
LOG.assertTrue(targetDirectories.size() <= contentSourceRoots.length);
|
||||
LOG.assertTrue(relativePathsToCreate.size() <= contentSourceRoots.length);
|
||||
LOG.assertTrue(targetDirectories.size() <= contentSourceRoots.size());
|
||||
LOG.assertTrue(relativePathsToCreate.size() <= contentSourceRoots.size());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -49,10 +49,12 @@ import com.intellij.util.IncorrectOperationException;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.jps.model.java.JavaModuleSourceRootTypes;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.event.ItemEvent;
|
||||
import java.awt.event.ItemListener;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
@@ -196,10 +198,10 @@ public class MoveInnerDialog extends RefactoringDialog {
|
||||
final String targetName = myPackageNameField.getText();
|
||||
if (!Comparing.equal(name, targetName)) {
|
||||
final ProjectRootManager projectRootManager = ProjectRootManager.getInstance(myProject);
|
||||
final VirtualFile[] contentSourceRoots = projectRootManager.getContentSourceRoots();
|
||||
final List<VirtualFile> contentSourceRoots = projectRootManager.getModuleSourceRoots(JavaModuleSourceRootTypes.SOURCES);
|
||||
final PackageWrapper newPackage = new PackageWrapper(PsiManager.getInstance(myProject), targetName);
|
||||
final VirtualFile targetSourceRoot;
|
||||
if (contentSourceRoots.length > 1) {
|
||||
if (contentSourceRoots.size() > 1) {
|
||||
PsiDirectory initialDir = null;
|
||||
if (oldPackage != null) {
|
||||
final PsiDirectory[] directories = oldPackage.getDirectories();
|
||||
@@ -215,7 +217,7 @@ public class MoveInnerDialog extends RefactoringDialog {
|
||||
targetSourceRoot = sourceRoot;
|
||||
}
|
||||
else {
|
||||
targetSourceRoot = contentSourceRoots [0];
|
||||
targetSourceRoot = contentSourceRoots.get(0);
|
||||
}
|
||||
PsiDirectory dir = RefactoringUtil.findPackageDirectoryInSourceRoot(newPackage, targetSourceRoot);
|
||||
if (dir == null) {
|
||||
|
||||
@@ -465,7 +465,7 @@ public class CreateTestDialog extends DialogWrapper {
|
||||
}
|
||||
else {
|
||||
PsiDirectory defaultDir = chooseDefaultDirectory(packageName);
|
||||
result.setResult(MoveClassesOrPackagesUtil.chooseSourceRoot(targetPackage, roots.toArray(new VirtualFile[roots.size()]), defaultDir));
|
||||
result.setResult(MoveClassesOrPackagesUtil.chooseSourceRoot(targetPackage, roots, defaultDir));
|
||||
}
|
||||
}
|
||||
}.execute().getResultObject();
|
||||
|
||||
+2
-1
@@ -41,6 +41,7 @@ import com.intellij.util.messages.MessageBusConnection;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.jps.model.java.JavaModuleSourceRootTypes;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
@@ -333,7 +334,7 @@ public abstract class JavaFileManagerBase implements JavaFileManager, Disposable
|
||||
if (myNontrivialPackagePrefixes == null) {
|
||||
Set<String> names = new HashSet<String>();
|
||||
final ProjectRootManager rootManager = myProjectRootManager;
|
||||
final VirtualFile[] sourceRoots = rootManager.getContentSourceRoots();
|
||||
final List<VirtualFile> sourceRoots = rootManager.getModuleSourceRoots(JavaModuleSourceRootTypes.SOURCES);
|
||||
final ProjectFileIndex fileIndex = rootManager.getFileIndex();
|
||||
for (final VirtualFile sourceRoot : sourceRoots) {
|
||||
final String packageName = fileIndex.getPackageNameByDirectory(sourceRoot);
|
||||
|
||||
@@ -21,13 +21,13 @@ import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.util.SystemProperties;
|
||||
import org.jdom.Document;
|
||||
import org.jdom.Element;
|
||||
import org.jetbrains.jps.model.java.JavaModuleSourceRootTypes;
|
||||
import org.jetbrains.jps.model.java.compiler.JpsJavaCompilerOptions;
|
||||
import org.jetbrains.jps.model.serialization.JDomSerializationUtil;
|
||||
import org.jetbrains.jps.model.serialization.JpsGlobalLoader;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
@@ -48,7 +48,7 @@ public class CompilerTestUtil {
|
||||
|
||||
public static void scanSourceRootsToRecompile(Project project) {
|
||||
// need this to emulate project opening
|
||||
final List<VirtualFile> roots = Arrays.asList(ProjectRootManager.getInstance(project).getContentSourceRoots());
|
||||
final List<VirtualFile> roots = ProjectRootManager.getInstance(project).getModuleSourceRoots(JavaModuleSourceRootTypes.SOURCES);
|
||||
TranslatingCompilerFilesMonitor.getInstance().scanSourceContent(new TranslatingCompilerFilesMonitor.ProjectRef(project), roots, roots.size(), true);
|
||||
}
|
||||
|
||||
|
||||
@@ -22,10 +22,12 @@ import com.intellij.openapi.roots.ProjectFileIndex;
|
||||
import com.intellij.openapi.roots.ProjectRootManager;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.jps.model.module.JpsModuleSourceRootType;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
*
|
||||
@@ -74,11 +76,18 @@ public class MockProjectRootManager extends ProjectRootManager {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public VirtualFile[] getContentSourceRoots() {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public List<VirtualFile> getModuleSourceRoots(@NotNull Set<? extends JpsModuleSourceRootType<?>> rootTypes) {
|
||||
throw new UnsupportedOperationException("'getContentSourceRoots' not implemented in " + getClass().getName());
|
||||
}
|
||||
|
||||
@Override
|
||||
public Sdk getProjectSdk() {
|
||||
throw new UnsupportedOperationException();
|
||||
|
||||
@@ -23,9 +23,11 @@ import com.intellij.openapi.util.ModificationTracker;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.jps.model.module.JpsModuleSourceRootType;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
* Allows to query and modify the list of root directories belonging to a project.
|
||||
@@ -95,8 +97,18 @@ public abstract class ProjectRootManager implements ModificationTracker {
|
||||
*
|
||||
* @return the list of content source roots.
|
||||
*/
|
||||
@NotNull
|
||||
public abstract VirtualFile[] getContentSourceRoots();
|
||||
|
||||
/**
|
||||
* Returns the list of source roots from all modules which types belong to the specified set
|
||||
*
|
||||
* @param rootTypes types of source roots
|
||||
* @return list of source roots
|
||||
*/
|
||||
@NotNull
|
||||
public abstract List<VirtualFile> getModuleSourceRoots(@NotNull Set<? extends JpsModuleSourceRootType<?>> rootTypes);
|
||||
|
||||
/**
|
||||
* Returns the instance of the JDK selected for the project.
|
||||
*
|
||||
|
||||
+12
@@ -46,6 +46,7 @@ import com.intellij.util.messages.MessageBusConnection;
|
||||
import org.jdom.Element;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.jps.model.module.JpsModuleSourceRootType;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
@@ -167,6 +168,7 @@ public class ProjectRootManagerImpl extends ProjectRootManagerEx implements Proj
|
||||
return VfsUtilCore.toVirtualFileArray(result);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public VirtualFile[] getContentSourceRoots() {
|
||||
final List<VirtualFile> result = new ArrayList<VirtualFile>();
|
||||
@@ -177,6 +179,16 @@ public class ProjectRootManagerImpl extends ProjectRootManagerEx implements Proj
|
||||
return VfsUtilCore.toVirtualFileArray(result);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public List<VirtualFile> getModuleSourceRoots(@NotNull Set<? extends JpsModuleSourceRootType<?>> rootTypes) {
|
||||
List<VirtualFile> roots = new ArrayList<VirtualFile>();
|
||||
for (Module module : getModuleManager().getModules()) {
|
||||
roots.addAll(ModuleRootManager.getInstance(module).getSourceRoots(rootTypes));
|
||||
}
|
||||
return roots;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public OrderEnumerator orderEntries() {
|
||||
|
||||
Reference in New Issue
Block a user