1 package net.sf.statcvs.pages;
2
3 import net.sf.statcvs.charts.ChartImage;
4 import net.sf.statcvs.charts.DirectoryPieChartMaker.DirectorySizesChartMaker;
5 import net.sf.statcvs.charts.LOCChartMaker.AllDirectoriesLOCChartMaker;
6 import net.sf.statcvs.model.Repository;
7 import net.sf.statcvs.output.ReportConfig;
8 import net.sf.statcvs.reports.DirectoriesTableReport;
9 import net.sf.statcvs.reports.TableReport;
10
11 /**
12 * @author anja
13 * @author Richard Cyganiak (richard@cyganiak.de)
14 * @version $Id: DirectorySizesPageMaker.java,v 1.5 2008/04/02 11:22:14 benoitx Exp $
15 */
16 public class DirectorySizesPageMaker {
17 private final ReportConfig config;
18 private final Repository repository;
19
20 public DirectorySizesPageMaker(final ReportConfig config) {
21 this.config = config;
22 this.repository = config.getRepository();
23 }
24
25 public NavigationNode toFile() {
26 final ChartImage allDirLOCChart = new AllDirectoriesLOCChartMaker(this.config, 6).toFile();
27 final ChartImage dirSizesChart = new DirectorySizesChartMaker(this.config).toFile();
28 final TableReport table = new DirectoriesTableReport(this.repository);
29
30 final Page page = this.config.createPage("dir_sizes", "Directory Sizes", "Directory Sizes");
31 page.addAttribute("Total Directories", this.repository.getDirectories().size());
32 page.add(allDirLOCChart);
33 page.addSection("Directory Statistics");
34 page.add(table);
35 page.add(dirSizesChart);
36 return page;
37 }
38 }