mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IDEADEV-168
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
package com.intellij.packageDependencies;
|
||||
|
||||
import com.intellij.openapi.components.ProjectComponent;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.psi.PsiFile;
|
||||
import com.intellij.psi.search.scope.packageSet.NamedScopesHolder;
|
||||
|
||||
/**
|
||||
* User: anna
|
||||
* Date: Mar 2, 2005
|
||||
*/
|
||||
public abstract class DependencyValidationManager extends NamedScopesHolder implements ProjectComponent{
|
||||
public static DependencyValidationManager getInstance(Project project) {
|
||||
return project.getComponent(DependencyValidationManager.class);
|
||||
}
|
||||
|
||||
public abstract DependencyRule getViolatorDependencyRule(PsiFile from, PsiFile to);
|
||||
|
||||
public abstract DependencyRule[] getViolatorDependencyRules(PsiFile from, PsiFile to);
|
||||
|
||||
public abstract DependencyRule[] getAllRules();
|
||||
|
||||
public abstract void removeAllRules();
|
||||
|
||||
public abstract void addRule(DependencyRule rule);
|
||||
}
|
||||
@@ -3,12 +3,12 @@ package com.intellij.codeInsight.daemon.impl;
|
||||
import com.intellij.analysis.AnalysisScope;
|
||||
import com.intellij.codeInsight.CodeInsightColors;
|
||||
import com.intellij.codeInsight.CodeInsightUtil;
|
||||
import com.intellij.codeInsight.intention.IntentionAction;
|
||||
import com.intellij.codeInsight.daemon.DaemonCodeAnalyzer;
|
||||
import com.intellij.codeInsight.daemon.DaemonCodeAnalyzerSettings;
|
||||
import com.intellij.codeInsight.daemon.HighlightDisplayKey;
|
||||
import com.intellij.codeInsight.daemon.impl.analysis.HighlightInfoHolder;
|
||||
import com.intellij.codeInsight.daemon.impl.quickfix.QuickFixAction;
|
||||
import com.intellij.codeInsight.intention.IntentionAction;
|
||||
import com.intellij.j2ee.J2EERolesUtil;
|
||||
import com.intellij.j2ee.ejb.EjbUtil;
|
||||
import com.intellij.j2ee.ejb.role.EjbImplMethodRole;
|
||||
@@ -21,13 +21,13 @@ import com.intellij.openapi.editor.Editor;
|
||||
import com.intellij.openapi.editor.colors.EditorColorsManager;
|
||||
import com.intellij.openapi.editor.colors.EditorColorsScheme;
|
||||
import com.intellij.openapi.editor.markup.SeparatorPlacement;
|
||||
import com.intellij.openapi.options.ShowSettingsUtil;
|
||||
import com.intellij.openapi.progress.ProcessCanceledException;
|
||||
import com.intellij.openapi.progress.ProgressIndicator;
|
||||
import com.intellij.openapi.progress.ProgressManager;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.util.IconLoader;
|
||||
import com.intellij.openapi.util.TextRange;
|
||||
import com.intellij.openapi.options.ShowSettingsUtil;
|
||||
import com.intellij.packageDependencies.DependenciesBuilder;
|
||||
import com.intellij.packageDependencies.DependencyRule;
|
||||
import com.intellij.packageDependencies.DependencyValidationManager;
|
||||
@@ -37,11 +37,7 @@ import com.intellij.psi.*;
|
||||
import com.intellij.psi.search.PsiSearchHelper;
|
||||
import com.intellij.psi.search.TodoItem;
|
||||
import com.intellij.psi.util.PsiSuperMethodUtil;
|
||||
import com.intellij.codeInspection.LocalInspectionTool;
|
||||
import com.intellij.util.IncorrectOperationException;
|
||||
import com.intellij.application.options.ErrorHighlightingPanel;
|
||||
import com.intellij.application.options.ErrorHighlightingOptions;
|
||||
import com.intellij.uiDesigner.quickFixes.QuickFixManager;
|
||||
import gnu.trove.THashSet;
|
||||
|
||||
import javax.swing.*;
|
||||
@@ -287,14 +283,16 @@ public class GeneralHighlightingPass extends TextEditorHighlightingPass {
|
||||
public void process(PsiElement place, PsiElement dependency) {
|
||||
PsiFile dependencyFile = dependency.getContainingFile();
|
||||
if (dependencyFile != null && dependencyFile.isPhysical() && dependencyFile.getVirtualFile() != null) {
|
||||
final DependencyRule rule = validationManager.getViolatorDependencyRule(myFile, dependencyFile);
|
||||
if (rule != null) {
|
||||
final DependencyRule[] rules = validationManager.getViolatorDependencyRules(myFile, dependencyFile);
|
||||
if (rules.length > 0) {
|
||||
HighlightInfo info = HighlightInfo.createHighlightInfo(HighlightInfoType.ILLEGAL_DEPENDENCY, place,
|
||||
"Illegal dependency. Violated rule: \"" + rule.getDisplayText() +
|
||||
"Illegal dependency. Violated rules: \"" + rules[0].getDisplayText() +
|
||||
"\"");
|
||||
if (info != null) {
|
||||
list.add(info);
|
||||
QuickFixAction.registerQuickFixAction(info, new EditDependencyRulesAction(rule));
|
||||
for (int i = 0; i < rules.length; i++) {
|
||||
QuickFixAction.registerQuickFixAction(info, new EditDependencyRulesAction(rules[i]));
|
||||
}
|
||||
QuickFixAction.registerQuickFixAction(info, new SwitchOffToolAction(HighlightDisplayKey.ILLEGAL_DEPENDENCY));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@ import com.intellij.cyclicDependencies.ui.CyclicDependenciesPanel;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.packageDependencies.DependencyValidationManager;
|
||||
import com.intellij.packageDependencies.DependencyValidationManagerImpl;
|
||||
import com.intellij.peer.PeerFactory;
|
||||
import com.intellij.ui.content.Content;
|
||||
|
||||
@@ -34,7 +35,7 @@ public class CyclicDependenciesHandler {
|
||||
"Cyclic Dependencies of " + builder.getScope().getDisplayName(),
|
||||
false);
|
||||
panel.setContent(content);
|
||||
DependencyValidationManager.getInstance(myProject).addContent(content);
|
||||
((DependencyValidationManagerImpl)DependencyValidationManager.getInstance(myProject)).addContent(content);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,6 +9,7 @@ import com.intellij.openapi.ui.Splitter;
|
||||
import com.intellij.openapi.util.IconLoader;
|
||||
import com.intellij.packageDependencies.DependencyUISettings;
|
||||
import com.intellij.packageDependencies.DependencyValidationManager;
|
||||
import com.intellij.packageDependencies.DependencyValidationManagerImpl;
|
||||
import com.intellij.packageDependencies.ui.*;
|
||||
import com.intellij.psi.PsiClass;
|
||||
import com.intellij.psi.PsiFile;
|
||||
@@ -373,7 +374,7 @@ public class CyclicDependenciesPanel extends JPanel {
|
||||
|
||||
public void actionPerformed(AnActionEvent e) {
|
||||
myUsagesPanel.dispose();
|
||||
DependencyValidationManager.getInstance(myProject).closeContent(myContent);
|
||||
((DependencyValidationManagerImpl)DependencyValidationManager.getInstance(myProject)).closeContent(myContent);
|
||||
mySettings.copyToApplicationDependencySettings();
|
||||
}
|
||||
}
|
||||
@@ -437,7 +438,7 @@ public class CyclicDependenciesPanel extends JPanel {
|
||||
}
|
||||
|
||||
public void actionPerformed(AnActionEvent e) {
|
||||
DependencyValidationManager.getInstance(myProject).closeContent(myContent);
|
||||
((DependencyValidationManagerImpl)DependencyValidationManager.getInstance(myProject)).closeContent(myContent);
|
||||
mySettings.copyToApplicationDependencySettings();
|
||||
SwingUtilities.invokeLater(new Runnable() {
|
||||
public void run() {
|
||||
|
||||
+2
-8
@@ -1,7 +1,6 @@
|
||||
package com.intellij.packageDependencies;
|
||||
|
||||
import com.intellij.ide.impl.ContentManagerWatcher;
|
||||
import com.intellij.openapi.components.ProjectComponent;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.startup.StartupManager;
|
||||
import com.intellij.openapi.util.*;
|
||||
@@ -12,7 +11,6 @@ import com.intellij.openapi.wm.ToolWindowManager;
|
||||
import com.intellij.peer.PeerFactory;
|
||||
import com.intellij.psi.PsiFile;
|
||||
import com.intellij.psi.search.scope.packageSet.NamedScope;
|
||||
import com.intellij.psi.search.scope.packageSet.NamedScopesHolder;
|
||||
import com.intellij.ui.content.Content;
|
||||
import com.intellij.ui.content.ContentManager;
|
||||
import org.jdom.Element;
|
||||
@@ -20,19 +18,15 @@ import org.jdom.Element;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class DependencyValidationManager extends NamedScopesHolder implements ProjectComponent, JDOMExternalizable {
|
||||
public class DependencyValidationManagerImpl extends DependencyValidationManager implements JDOMExternalizable {
|
||||
private List<DependencyRule> myRules = new ArrayList<DependencyRule>();
|
||||
private Project myProject;
|
||||
private ContentManager myContentManager;
|
||||
|
||||
public DependencyValidationManager(Project project) {
|
||||
public DependencyValidationManagerImpl(Project project) {
|
||||
myProject = project;
|
||||
}
|
||||
|
||||
public static DependencyValidationManager getInstance(Project project) {
|
||||
return project.getComponent(DependencyValidationManager.class);
|
||||
}
|
||||
|
||||
public DependencyRule getViolatorDependencyRule(PsiFile from, PsiFile to) {
|
||||
for (int i = 0; i < myRules.size(); i++) {
|
||||
DependencyRule dependencyRule = myRules.get(i);
|
||||
@@ -3,12 +3,13 @@ package com.intellij.packageDependencies.actions;
|
||||
import com.intellij.analysis.AnalysisScope;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.packageDependencies.DependencyValidationManager;
|
||||
import com.intellij.packageDependencies.ForwardDependenciesBuilder;
|
||||
import com.intellij.packageDependencies.DependenciesBuilder;
|
||||
import com.intellij.packageDependencies.DependencyValidationManager;
|
||||
import com.intellij.packageDependencies.DependencyValidationManagerImpl;
|
||||
import com.intellij.packageDependencies.ForwardDependenciesBuilder;
|
||||
import com.intellij.packageDependencies.ui.DependenciesPanel;
|
||||
import com.intellij.ui.content.Content;
|
||||
import com.intellij.peer.PeerFactory;
|
||||
import com.intellij.ui.content.Content;
|
||||
|
||||
public class AnalyzeDependenciesHandler {
|
||||
private Project myProject;
|
||||
@@ -31,7 +32,7 @@ public class AnalyzeDependenciesHandler {
|
||||
"Dependencies of " + forwardBuilder.getScope().getDisplayName(),
|
||||
false);
|
||||
panel.setContent(content);
|
||||
DependencyValidationManager.getInstance(myProject).addContent(content);
|
||||
((DependencyValidationManagerImpl)DependencyValidationManager.getInstance(myProject)).addContent(content);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,14 +1,15 @@
|
||||
package com.intellij.packageDependencies.actions;
|
||||
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.analysis.AnalysisScope;
|
||||
import com.intellij.packageDependencies.DependencyValidationManager;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.packageDependencies.BackwardDependenciesBuilder;
|
||||
import com.intellij.packageDependencies.DependenciesBuilder;
|
||||
import com.intellij.packageDependencies.DependencyValidationManager;
|
||||
import com.intellij.packageDependencies.DependencyValidationManagerImpl;
|
||||
import com.intellij.packageDependencies.ui.DependenciesPanel;
|
||||
import com.intellij.ui.content.Content;
|
||||
import com.intellij.peer.PeerFactory;
|
||||
import com.intellij.ui.content.Content;
|
||||
|
||||
/**
|
||||
* User: anna
|
||||
@@ -36,7 +37,7 @@ public class BackwardDependenciesHandler {
|
||||
"Backward Dependencies of " + builder.getScope().getDisplayName(),
|
||||
false);
|
||||
panel.setContent(content);
|
||||
DependencyValidationManager.getInstance(myProject).addContent(content);
|
||||
((DependencyValidationManagerImpl)DependencyValidationManager.getInstance(myProject)).addContent(content);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,10 +12,7 @@ import com.intellij.openapi.util.Comparing;
|
||||
import com.intellij.openapi.util.IconLoader;
|
||||
import com.intellij.openapi.wm.StatusBar;
|
||||
import com.intellij.openapi.wm.WindowManager;
|
||||
import com.intellij.packageDependencies.DependenciesBuilder;
|
||||
import com.intellij.packageDependencies.DependencyRule;
|
||||
import com.intellij.packageDependencies.DependencyUISettings;
|
||||
import com.intellij.packageDependencies.DependencyValidationManager;
|
||||
import com.intellij.packageDependencies.*;
|
||||
import com.intellij.packageDependencies.actions.AnalyzeDependenciesHandler;
|
||||
import com.intellij.packageDependencies.actions.BackwardDependenciesHandler;
|
||||
import com.intellij.psi.*;
|
||||
@@ -331,7 +328,7 @@ public class DependenciesPanel extends JPanel {
|
||||
|
||||
public void actionPerformed(AnActionEvent e) {
|
||||
myUsagesPanel.dispose();
|
||||
DependencyValidationManager.getInstance(myProject).closeContent(myContent);
|
||||
((DependencyValidationManagerImpl)DependencyValidationManager.getInstance(myProject)).closeContent(myContent);
|
||||
mySettings.copyToApplicationDependencySettings();
|
||||
}
|
||||
}
|
||||
@@ -441,7 +438,7 @@ public class DependenciesPanel extends JPanel {
|
||||
}
|
||||
|
||||
public void actionPerformed(AnActionEvent e) {
|
||||
DependencyValidationManager.getInstance(myProject).closeContent(myContent);
|
||||
((DependencyValidationManagerImpl)DependencyValidationManager.getInstance(myProject)).closeContent(myContent);
|
||||
mySettings.copyToApplicationDependencySettings();
|
||||
SwingUtilities.invokeLater(new Runnable() {
|
||||
public void run() {
|
||||
|
||||
Reference in New Issue
Block a user