get project from context

This commit is contained in:
Vladimir Krivosheev
2019-03-27 07:53:04 +01:00
parent bd85d99314
commit fca79c7e34
3 changed files with 47 additions and 26 deletions
@@ -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) {
@@ -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;
@@ -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) {