| package com.intellij.coverage.view; |
| |
| import com.intellij.coverage.CoverageDataManager; |
| import com.intellij.coverage.CoverageSuitesBundle; |
| import com.intellij.ide.util.treeView.AbstractTreeNode; |
| import com.intellij.openapi.project.Project; |
| import com.intellij.openapi.vfs.VirtualFile; |
| import com.intellij.psi.PsiDirectory; |
| import com.intellij.psi.PsiElement; |
| import com.intellij.psi.PsiFile; |
| import com.intellij.psi.PsiManager; |
| import com.intellij.util.ui.ColumnInfo; |
| import org.jetbrains.annotations.Nullable; |
| |
| import java.util.Collections; |
| import java.util.List; |
| |
| public abstract class CoverageViewExtension { |
| |
| protected final Project myProject; |
| protected final CoverageSuitesBundle mySuitesBundle; |
| protected final CoverageViewManager.StateBean myStateBean; |
| protected final CoverageDataManager myCoverageDataManager; |
| protected final CoverageViewManager myCoverageViewManager; |
| |
| public CoverageViewExtension(Project project, CoverageSuitesBundle suitesBundle, CoverageViewManager.StateBean stateBean) { |
| myProject = project; |
| mySuitesBundle = suitesBundle; |
| myStateBean = stateBean; |
| myCoverageDataManager = CoverageDataManager.getInstance(myProject); |
| myCoverageViewManager = CoverageViewManager.getInstance(myProject); |
| } |
| |
| @Nullable |
| public abstract String getSummaryForNode(AbstractTreeNode node); |
| |
| @Nullable |
| public abstract String getSummaryForRootNode(AbstractTreeNode childNode); |
| |
| @Nullable |
| public abstract String getPercentage(int columnIdx, AbstractTreeNode node); |
| |
| public abstract List<AbstractTreeNode> getChildrenNodes(AbstractTreeNode node); |
| |
| public abstract ColumnInfo[] createColumnInfos(); |
| |
| @Nullable |
| public abstract PsiElement getParentElement(PsiElement element); |
| |
| public abstract AbstractTreeNode createRootNode(); |
| |
| public boolean canSelectInCoverageView(Object object) { |
| return object instanceof VirtualFile && PsiManager.getInstance(myProject).findFile((VirtualFile)object) != null; |
| } |
| |
| @Nullable |
| public PsiElement getElementToSelect(Object object) { |
| if (object instanceof PsiElement) return (PsiElement)object; |
| return object instanceof VirtualFile ? PsiManager.getInstance(myProject).findFile((VirtualFile)object) : null; |
| } |
| |
| @Nullable |
| public VirtualFile getVirtualFile(Object object) { |
| if (object instanceof PsiElement) { |
| if (object instanceof PsiDirectory) return ((PsiDirectory)object).getVirtualFile(); |
| final PsiFile containingFile = ((PsiElement)object).getContainingFile(); |
| if (containingFile != null) { |
| return containingFile.getVirtualFile(); |
| } |
| return null; |
| } |
| return object instanceof VirtualFile ? (VirtualFile)object : null; |
| } |
| |
| public List<AbstractTreeNode> createTopLevelNodes() { |
| return Collections.emptyList(); |
| } |
| |
| public boolean supportFlattenPackages() { |
| return false; |
| } |
| } |