in reports/src/main/java/nl/obren/sokrates/reports/landscape/statichtml/LandscapeReportGenerator.java [392:431]
private void addProjectsSection(List<ProjectAnalysisResults> projectsAnalysisResults) {
Collections.sort(projectsAnalysisResults, (a, b) -> b.getAnalysisResults().getMainAspectAnalysisResults().getLinesOfCode() - a.getAnalysisResults().getMainAspectAnalysisResults().getLinesOfCode());
landscapeReport.startSubSection("Projects (" + projectsAnalysisResults.size() + ")", "");
if (projectsAnalysisResults.size() > 0) {
List<NumericMetric> projectSizes = new ArrayList<>();
projectsAnalysisResults.forEach(projectAnalysisResults -> {
CodeAnalysisResults analysisResults = projectAnalysisResults.getAnalysisResults();
projectSizes.add(new NumericMetric(analysisResults.getMetadata().getName(), analysisResults.getMainAspectAnalysisResults().getLinesOfCode()));
});
landscapeReport.addNewTabLink("bubble chart", "visuals/bubble_chart_projects.html");
landscapeReport.addHtmlContent(" | ");
landscapeReport.addNewTabLink("tree map", "visuals/tree_map_projects.html");
landscapeReport.addHtmlContent(" | ");
landscapeReport.addNewTabLink("data", "data/projects.txt");
landscapeReport.addLineBreak();
landscapeReport.addLineBreak();
if (projectsAnalysisResults.size() > 100) {
landscapeReport.startShowMoreBlock("show details...");
}
landscapeReport.startTable("width: 100%");
int thresholdCommits = landscapeAnalysisResults.getConfiguration().getContributorThresholdCommits();
int thresholdContributors = landscapeAnalysisResults.getConfiguration().getProjectThresholdContributors();
landscapeReport.addTableHeader("",
"Project" + (thresholdContributors > 1 ? "<br/>(" + thresholdContributors + "+ contributors)" : ""),
"Main<br/>Language", "LOC<br/>(main)",
"LOC<br/>(test)", "LOC<br/>(other)",
"Age", "Contributors" + (thresholdCommits > 1 ? "<br/>(" + thresholdCommits + "+ commits)" : ""),
"Recent<br>Contributors<br>(30d)", "Rookies", "Commits<br>this year", "Report");
projectsAnalysisResults.forEach(projectAnalysis -> {
addProjectRow(projectAnalysis);
});
landscapeReport.endTable();
if (projectsAnalysisResults.size() > 100) {
landscapeReport.endShowMoreBlock();
}
}
landscapeReport.endSection();
}