use of org.eclipse.linuxtools.internal.gcov.model.CovFunctionTreeElement in project linuxtools by eclipse.
the class CovManager method fillGcovView.
/**
* fill the model by count results
* @throws CoreException, IOException, InterruptedException
*/
public void fillGcovView() {
// process counts for summary level
int summaryTotal = 0, summaryInstrumented = 0, summaryExecuted = 0;
for (Folder f : allFolders) {
summaryTotal += f.getNumLines();
summaryInstrumented += f.getLinesInstrumented();
summaryExecuted += f.getLinesExecuted();
}
// fill rootNode model: the entry of the contentProvider
rootNode = new CovRootTreeElement(Messages.CovManager_Summary, summaryTotal, summaryExecuted, summaryInstrumented);
IBinaryObject binaryObject = STSymbolManager.sharedInstance.getBinaryObject(new Path(binaryPath));
for (Folder fldr : allFolders) {
String folderLocation = fldr.getPath();
CovFolderTreeElement fldrTreeElem = new CovFolderTreeElement(rootNode, folderLocation, fldr.getNumLines(), fldr.getLinesExecuted(), fldr.getLinesInstrumented());
rootNode.addChild(fldrTreeElem);
for (SourceFile src : fldr.getSrcFiles()) {
CovFileTreeElement srcTreeElem = new CovFileTreeElement(fldrTreeElem, src.getName(), src.getNumLines(), src.getLinesExecuted(), src.getLinesInstrumented());
fldrTreeElem.addChild(srcTreeElem);
for (GcnoFunction fnctn : src.getFnctns()) {
String name = fnctn.getName();
name = STSymbolManager.sharedInstance.demangle(binaryObject, name, project);
srcTreeElem.addChild(new CovFunctionTreeElement(srcTreeElem, name, fnctn.getSrcFile(), fnctn.getFirstLineNmbr(), fnctn.getCvrge().getLinesExecuted(), fnctn.getCvrge().getLinesInstrumented()));
}
}
}
}
use of org.eclipse.linuxtools.internal.gcov.model.CovFunctionTreeElement in project linuxtools by eclipse.
the class CovViewer method handleOpenEvent.
@Override
protected void handleOpenEvent(OpenEvent event) {
IStructuredSelection selection = (IStructuredSelection) event.getSelection();
TreeElement element = (TreeElement) selection.getFirstElement();
if (element != null) {
if (element.getParent() != null) {
// $NON-NLS-1$
String sourceLoc = "";
long lineNumber = 0;
if (element.getClass() == CovFileTreeElement.class) {
sourceLoc = element.getName();
} else if (element.getClass() == CovFunctionTreeElement.class) {
sourceLoc = ((CovFunctionTreeElement) element).getSourceFilePath();
lineNumber = ((CovFunctionTreeElement) element).getFirstLnNmbr();
}
CovManager cvm = (CovManager) this.getInput();
SourceFile sourceFile = cvm.getSourceFile(sourceLoc);
if (sourceFile != null) {
IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
String binaryLoc = cvm.getBinaryPath();
IPath binaryPath = new Path(binaryLoc);
IFile binary = root.getFileForLocation(binaryPath);
IProject project = null;
if (binary != null) {
project = binary.getProject();
}
OpenSourceFileAction.openAnnotatedSourceFile(project, binary, sourceFile, (int) lineNumber);
}
}
}
}
Aggregations