From fca79c7e349d7969c965b3196013debe22841381 Mon Sep 17 00:00:00 2001 From: Vladimir Krivosheev Date: Wed, 27 Mar 2019 07:39:57 +0100 Subject: [PATCH] get project from context --- ...tractCoverageProjectViewNodeDecorator.java | 13 ++++++- ...rageProjectViewDirectoryNodeDecorator.java | 23 ++++++++---- ...CoverageProjectViewClassNodeDecorator.java | 37 ++++++++++--------- 3 files changed, 47 insertions(+), 26 deletions(-) diff --git a/plugins/coverage-common/src/com/intellij/coverage/AbstractCoverageProjectViewNodeDecorator.java b/plugins/coverage-common/src/com/intellij/coverage/AbstractCoverageProjectViewNodeDecorator.java index 41192dc42743..85e5a4db146e 100644 --- a/plugins/coverage-common/src/com/intellij/coverage/AbstractCoverageProjectViewNodeDecorator.java +++ b/plugins/coverage-common/src/com/intellij/coverage/AbstractCoverageProjectViewNodeDecorator.java @@ -22,9 +22,20 @@ public abstract class AbstractCoverageProjectViewNodeDecorator implements Projec myProject = project; } + /** + * @deprecated Use {@link #getCoverageDataManager(Project)} + * @return + */ @Nullable + @Deprecated protected final CoverageDataManager getCoverageDataManager() { - return CoverageDataManager.getInstance(myProject); + return getCoverageDataManager(myProject); + } + + @SuppressWarnings("MethodMayBeStatic") + @Nullable + protected final CoverageDataManager getCoverageDataManager(@NotNull Project project) { + return CoverageDataManager.getInstance(project); } protected static void appendCoverageInfo(ColoredTreeCellRenderer cellRenderer, String coverageInfo) { diff --git a/plugins/coverage-common/src/com/intellij/coverage/CoverageProjectViewDirectoryNodeDecorator.java b/plugins/coverage-common/src/com/intellij/coverage/CoverageProjectViewDirectoryNodeDecorator.java index 8b74eca537f5..c32dfd42b1dd 100644 --- a/plugins/coverage-common/src/com/intellij/coverage/CoverageProjectViewDirectoryNodeDecorator.java +++ b/plugins/coverage-common/src/com/intellij/coverage/CoverageProjectViewDirectoryNodeDecorator.java @@ -22,16 +22,20 @@ final class CoverageProjectViewDirectoryNodeDecorator extends AbstractCoveragePr @Override public void decorate(PackageDependenciesNode node, ColoredTreeCellRenderer cellRenderer) { - final CoverageDataManager manager = getCoverageDataManager(); - if (manager == null) return; - final PsiElement element = node.getPsiElement(); if (element == null || !element.isValid()) { return; } + Project project = element.getProject(); + + final CoverageDataManager manager = getCoverageDataManager(project); + if (manager == null) { + return; + } + final CoverageSuitesBundle currentSuite = manager.getCurrentSuitesBundle(); - final CoverageAnnotator coverageAnnotator = currentSuite != null ? currentSuite.getAnnotator(element.getProject()) : null; + final CoverageAnnotator coverageAnnotator = currentSuite != null ? currentSuite.getAnnotator(project) : null; if (coverageAnnotator == null) { // N/A return; @@ -51,11 +55,16 @@ final class CoverageProjectViewDirectoryNodeDecorator extends AbstractCoveragePr @Override public void decorate(ProjectViewNode node, PresentationData data) { - final CoverageDataManager manager = getCoverageDataManager(); + Project project = node.getProject(); + if (project == null) { + return; + } + + final CoverageDataManager manager = getCoverageDataManager(project); if (manager == null) return; final CoverageSuitesBundle currentSuite = manager.getCurrentSuitesBundle(); - Project project = node.getProject(); - final CoverageAnnotator coverageAnnotator = currentSuite == null || project == null ? null : currentSuite.getAnnotator(project); + + final CoverageAnnotator coverageAnnotator = currentSuite == null ? null : currentSuite.getAnnotator(project); if (coverageAnnotator == null) { // N/A return; diff --git a/plugins/coverage/src/com/intellij/coverage/CoverageProjectViewClassNodeDecorator.java b/plugins/coverage/src/com/intellij/coverage/CoverageProjectViewClassNodeDecorator.java index 12953e7c7c20..151ff4882cc5 100644 --- a/plugins/coverage/src/com/intellij/coverage/CoverageProjectViewClassNodeDecorator.java +++ b/plugins/coverage/src/com/intellij/coverage/CoverageProjectViewClassNodeDecorator.java @@ -23,39 +23,35 @@ final class CoverageProjectViewClassNodeDecorator extends AbstractCoverageProjec @Override public void decorate(PackageDependenciesNode node, ColoredTreeCellRenderer cellRenderer) { - final CoverageDataManager dataManager = getCoverageDataManager(); - if (dataManager == null) return; - final PsiElement element = node.getPsiElement(); - if (element == null || !element.isValid()) { + if (element == null || !element.isValid() || !(element instanceof PsiClass)) { return; } - final CoverageSuitesBundle currentSuite = dataManager.getCurrentSuitesBundle(); final Project project = element.getProject(); - final JavaCoverageAnnotator javaCovAnnotator = getCovAnnotator(currentSuite, project); + final CoverageDataManager dataManager = getCoverageDataManager(project); + final JavaCoverageAnnotator javaCovAnnotator = getCovAnnotator(dataManager, project); // This decorator is applicable only to JavaCoverageAnnotator if (javaCovAnnotator == null) { return; } - if (element instanceof PsiClass) { - final String qName = ((PsiClass)element).getQualifiedName(); - if (qName != null) { - appendCoverageInfo(cellRenderer, javaCovAnnotator.getClassCoverageInformationString(qName, dataManager)); - } + final String qName = ((PsiClass)element).getQualifiedName(); + if (qName != null) { + appendCoverageInfo(cellRenderer, javaCovAnnotator.getClassCoverageInformationString(qName, dataManager)); } } @Override public void decorate(ProjectViewNode node, PresentationData data) { - final CoverageDataManager coverageDataManager = getCoverageDataManager(); - if (coverageDataManager == null) return; - final CoverageSuitesBundle currentSuite = coverageDataManager.getCurrentSuitesBundle(); - final Project project = node.getProject(); - final JavaCoverageAnnotator javaCovAnnotator = getCovAnnotator(currentSuite, project); + if (project == null) { + return; + } + + final CoverageDataManager coverageDataManager = getCoverageDataManager(project); + final JavaCoverageAnnotator javaCovAnnotator = getCovAnnotator(coverageDataManager, project); // This decorator is applicable only to JavaCoverageAnnotator if (javaCovAnnotator == null) { return; @@ -78,7 +74,7 @@ final class CoverageProjectViewClassNodeDecorator extends AbstractCoverageProjec } if (element instanceof PsiClass) { - final GlobalSearchScope searchScope = currentSuite.getSearchScope(project); + final GlobalSearchScope searchScope = coverageDataManager.getCurrentSuitesBundle().getSearchScope(project); final VirtualFile vFile = PsiUtilCore.getVirtualFile(element); if (vFile != null && searchScope.contains(vFile)) { final String qName = ((PsiClass)element).getQualifiedName(); @@ -90,7 +86,12 @@ final class CoverageProjectViewClassNodeDecorator extends AbstractCoverageProjec } @Nullable - private static JavaCoverageAnnotator getCovAnnotator(final CoverageSuitesBundle currentSuite, Project project) { + private static JavaCoverageAnnotator getCovAnnotator(@Nullable CoverageDataManager dataManager, @NotNull Project project) { + if (dataManager == null) { + return null; + } + + CoverageSuitesBundle currentSuite = dataManager.getCurrentSuitesBundle(); if (currentSuite != null) { final CoverageAnnotator coverageAnnotator = currentSuite.getAnnotator(project); if (coverageAnnotator instanceof JavaCoverageAnnotator) {