mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
maven: refactorings (IDEA-53947, IDEA-53954, etc. )
This commit is contained in:
+14
-9
@@ -37,21 +37,26 @@ public class MavenDomProjectProcessorUtils {
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public static List<MavenDomProjectModel> collectChildrenProjects(@NotNull final MavenDomProjectModel model) {
|
||||
public static Set<MavenDomProjectModel> getChildrenProjects(@NotNull final MavenDomProjectModel model) {
|
||||
Set<MavenDomProjectModel> models = new HashSet<MavenDomProjectModel>();
|
||||
|
||||
collectChildrenProjects(model, models);
|
||||
|
||||
return models;
|
||||
}
|
||||
|
||||
private static void collectChildrenProjects(@NotNull final MavenDomProjectModel model, @NotNull Set<MavenDomProjectModel> models) {
|
||||
MavenProject mavenProject = MavenDomUtil.findProject(model);
|
||||
if (mavenProject != null) {
|
||||
final Project project = model.getManager().getProject();
|
||||
Set<MavenProject> inheritors = MavenProjectsManager.getInstance(project).findInheritors(mavenProject);
|
||||
|
||||
|
||||
return ContainerUtil.mapNotNull(inheritors, new Function<MavenProject, MavenDomProjectModel>() {
|
||||
public MavenDomProjectModel fun(MavenProject childProject) {
|
||||
return MavenDomUtil.getMavenDomProjectModel(project, childProject.getFile());
|
||||
for (MavenProject inheritor : MavenProjectsManager.getInstance(project).findInheritors(mavenProject)) {
|
||||
MavenDomProjectModel inheritorProjectModel = MavenDomUtil.getMavenDomProjectModel(project, inheritor.getFile());
|
||||
if (inheritorProjectModel != null && !models.contains(inheritorProjectModel)) {
|
||||
models.add(inheritorProjectModel);
|
||||
collectChildrenProjects(inheritorProjectModel, models);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
return Collections.emptyList();
|
||||
}
|
||||
@NotNull
|
||||
public static Set<MavenDomProjectModel> collectParentProjects(@NotNull final MavenDomProjectModel projectDom,
|
||||
|
||||
+1
-8
@@ -183,15 +183,8 @@ public class MavenDomGutterAnnotator implements Annotator {
|
||||
private static void annotateMavenDomProjectChildren(MavenDomProjectModel model, AnnotationHolder holder) {
|
||||
MavenProject mavenProject = MavenDomUtil.findProject(model);
|
||||
if (mavenProject != null) {
|
||||
final Project project = model.getManager().getProject();
|
||||
Set<MavenProject> inheritors = MavenProjectsManager.getInstance(project).findInheritors(mavenProject);
|
||||
Set<MavenDomProjectModel> children = MavenDomProjectProcessorUtils.getChildrenProjects(model);
|
||||
|
||||
|
||||
List<MavenDomProjectModel> children = ContainerUtil.mapNotNull(inheritors, new Function<MavenProject, MavenDomProjectModel>() {
|
||||
public MavenDomProjectModel fun(MavenProject childProject) {
|
||||
return MavenDomUtil.getMavenDomProjectModel(project, childProject.getFile());
|
||||
}
|
||||
});
|
||||
if (children.size() > 0) {
|
||||
NavigationGutterIconBuilder.create(MavenIcons.CHILDREN_PROJECTS, MAVEN_PROJECT_CONVERTER).
|
||||
setTargets(children).
|
||||
|
||||
+7
-4
@@ -205,16 +205,16 @@ public class IntroducePropertyAction extends BaseRefactoringAction {
|
||||
ApplicationManager.getApplication().runReadAction(new Runnable() {
|
||||
public void run() {
|
||||
collectUsages(myModel);
|
||||
for (MavenDomProjectModel model : MavenDomProjectProcessorUtils.collectChildrenProjects(myModel)) {
|
||||
for (MavenDomProjectModel model : MavenDomProjectProcessorUtils.getChildrenProjects(myModel)) {
|
||||
collectUsages(model);
|
||||
}
|
||||
}
|
||||
|
||||
private void collectUsages(@NotNull MavenDomProjectModel model) {
|
||||
if (model.isValid()) {
|
||||
XmlElement root = model.getXmlElement();
|
||||
final XmlElement root = model.getXmlElement();
|
||||
if (root != null) {
|
||||
root.accept(new XmlElementVisitor() {
|
||||
root.acceptChildren(new XmlElementVisitor() {
|
||||
|
||||
@Override
|
||||
public void visitXmlText(XmlText text) {
|
||||
@@ -226,7 +226,10 @@ public class IntroducePropertyAction extends BaseRefactoringAction {
|
||||
|
||||
@Override
|
||||
public void visitXmlAttributeValue(XmlAttributeValue value) {
|
||||
usages.addAll(getUsages(value));
|
||||
XmlTag xmlTag = PsiTreeUtil.getParentOfType(value, XmlTag.class);
|
||||
if (xmlTag != null && !xmlTag.equals(root)) {
|
||||
usages.addAll(getUsages(value));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+1
-2
@@ -26,7 +26,6 @@ import com.intellij.refactoring.introduceVariable.IntroduceVariableHandler;
|
||||
import com.intellij.refactoring.ui.NameSuggestionsField;
|
||||
import com.intellij.util.Function;
|
||||
import com.intellij.util.containers.OrderedSet;
|
||||
import com.intellij.util.xml.DomBundle;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.idea.maven.dom.MavenDomBundle;
|
||||
import org.jetbrains.idea.maven.dom.MavenDomProjectProcessorUtils;
|
||||
@@ -212,7 +211,7 @@ public class IntroducePropertyDialog extends DialogWrapper {
|
||||
|
||||
if (isPropertyExist(text, project)) return true;
|
||||
|
||||
for (MavenDomProjectModel child : MavenDomProjectProcessorUtils.collectChildrenProjects(project)) {
|
||||
for (MavenDomProjectModel child : MavenDomProjectProcessorUtils.getChildrenProjects(project)) {
|
||||
if (isPropertyExist(text, child)) return true;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user