Class ReportGenerator


  • public class ReportGenerator
    extends java.lang.Object
    Helper class for generation of HTML/TXT/CSV reports.
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      (package private) class  ReportGenerator.ProjectRow
      Comparable object representing one project in the summary on report.
      (package private) class  ReportGenerator.TaskRow
      Comparable object representing one task in the summary on report.
    • Constructor Summary

      Constructors 
      Constructor Description
      ReportGenerator​(java.io.File file, java.lang.String title, boolean showChart, boolean showFilters, java.lang.String rowsRepresent, boolean includeDuration, boolean includeProjectsTasks, boolean includeOccurrences, boolean includeNotes, java.lang.String sortBy, java.util.Vector days, HistoryChart chart, AbstractTaskFilter highlightFilter, java.util.Vector selectFilters)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      private java.util.Vector filterTasks​(java.util.Vector tasks)
      Filters given vector of tasks trough all used filters and returns vector of tasks satisfying all filters.
      void generateReport()
      Generates report based on data provided in constructor of ReportGenerator class.
      private ReportGenerator.ProjectRow[] getProjectRows()
      Processes all days in selected period and their tasks and for each non-idle, non-private (unless required) task calculates projects statistic (@see ProjectRow).
      private ReportGenerator.TaskRow[] getTaskRows()
      Processes all days in selected period and their tasks and for each non-idle, non-private (unless required) task calculates its statistic (@see TaskRow).
      private void writeChart​(java.io.OutputStreamWriter writer)  
      private void writeFilters​(java.io.OutputStreamWriter writer)  
      private void writeFooter​(java.io.OutputStreamWriter writer)  
      private void writeHeader​(java.io.OutputStreamWriter writer)  
      private void writeHTMLFilters​(java.io.OutputStreamWriter writer)  
      private void writeHTMLFooter​(java.io.OutputStreamWriter writer)  
      private void writeHTMLHeader​(java.io.OutputStreamWriter writer)  
      private void writeHTMLProjects​(java.io.OutputStreamWriter writer)  
      private void writeHTMLTasks​(java.io.OutputStreamWriter writer)  
      private void writeProjects​(java.io.OutputStreamWriter writer)  
      private void writeTasks​(java.io.OutputStreamWriter writer)  
      private void writeTXTCSVFilters​(java.io.OutputStreamWriter writer, java.lang.String prefix, java.lang.String delimiter)  
      private void writeTXTCSVFooter​(java.io.OutputStreamWriter writer, java.lang.String prefix)  
      private void writeTXTCSVHeader​(java.io.OutputStreamWriter writer, java.lang.String prefix)  
      private void writeTXTCSVProjects​(java.io.OutputStreamWriter writer, int output)  
      private void writeTXTCSVTasks​(java.io.OutputStreamWriter writer, int output)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • file

        private java.io.File file
      • title

        private java.lang.String title
      • showChart

        private boolean showChart
      • showFilters

        private boolean showFilters
      • rowsRepresent

        private java.lang.String rowsRepresent
      • includeDuration

        private boolean includeDuration
      • includeProjectsTasks

        private boolean includeProjectsTasks
      • includeOccurrences

        private boolean includeOccurrences
      • includeNotes

        private boolean includeNotes
      • sortBy

        private java.lang.String sortBy
      • days

        private java.util.Vector days
      • selectFilters

        private java.util.Vector selectFilters
      • OUTPUT_TXT

        private static int OUTPUT_TXT
      • OUTPUT_CSV

        private static int OUTPUT_CSV
    • Constructor Detail

      • ReportGenerator

        public ReportGenerator​(java.io.File file,
                               java.lang.String title,
                               boolean showChart,
                               boolean showFilters,
                               java.lang.String rowsRepresent,
                               boolean includeDuration,
                               boolean includeProjectsTasks,
                               boolean includeOccurrences,
                               boolean includeNotes,
                               java.lang.String sortBy,
                               java.util.Vector days,
                               HistoryChart chart,
                               AbstractTaskFilter highlightFilter,
                               java.util.Vector selectFilters)
    • Method Detail

      • generateReport

        public void generateReport()
        Generates report based on data provided in constructor of ReportGenerator class.
      • writeHeader

        private void writeHeader​(java.io.OutputStreamWriter writer)
                          throws java.io.IOException
        Throws:
        java.io.IOException
      • writeHTMLHeader

        private void writeHTMLHeader​(java.io.OutputStreamWriter writer)
                              throws java.io.IOException
        Throws:
        java.io.IOException
      • writeTXTCSVHeader

        private void writeTXTCSVHeader​(java.io.OutputStreamWriter writer,
                                       java.lang.String prefix)
                                throws java.io.IOException
        Throws:
        java.io.IOException
      • writeFooter

        private void writeFooter​(java.io.OutputStreamWriter writer)
                          throws java.io.IOException
        Throws:
        java.io.IOException
      • writeHTMLFooter

        private void writeHTMLFooter​(java.io.OutputStreamWriter writer)
                              throws java.io.IOException
        Throws:
        java.io.IOException
      • writeTXTCSVFooter

        private void writeTXTCSVFooter​(java.io.OutputStreamWriter writer,
                                       java.lang.String prefix)
                                throws java.io.IOException
        Throws:
        java.io.IOException
      • writeChart

        private void writeChart​(java.io.OutputStreamWriter writer)
                         throws java.io.FileNotFoundException,
                                java.io.IOException
        Throws:
        java.io.FileNotFoundException
        java.io.IOException
      • writeFilters

        private void writeFilters​(java.io.OutputStreamWriter writer)
                           throws java.io.IOException
        Throws:
        java.io.IOException
      • writeHTMLFilters

        private void writeHTMLFilters​(java.io.OutputStreamWriter writer)
                               throws java.io.IOException
        Throws:
        java.io.IOException
      • writeTXTCSVFilters

        private void writeTXTCSVFilters​(java.io.OutputStreamWriter writer,
                                        java.lang.String prefix,
                                        java.lang.String delimiter)
                                 throws java.io.IOException
        Throws:
        java.io.IOException
      • writeTasks

        private void writeTasks​(java.io.OutputStreamWriter writer)
                         throws java.io.IOException
        Throws:
        java.io.IOException
      • writeHTMLTasks

        private void writeHTMLTasks​(java.io.OutputStreamWriter writer)
                             throws java.io.IOException
        Throws:
        java.io.IOException
      • writeTXTCSVTasks

        private void writeTXTCSVTasks​(java.io.OutputStreamWriter writer,
                                      int output)
                               throws java.io.IOException
        Throws:
        java.io.IOException
      • writeProjects

        private void writeProjects​(java.io.OutputStreamWriter writer)
                            throws java.io.IOException
        Throws:
        java.io.IOException
      • writeHTMLProjects

        private void writeHTMLProjects​(java.io.OutputStreamWriter writer)
                                throws java.io.IOException
        Throws:
        java.io.IOException
      • writeTXTCSVProjects

        private void writeTXTCSVProjects​(java.io.OutputStreamWriter writer,
                                         int output)
                                  throws java.io.IOException
        Throws:
        java.io.IOException
      • getTaskRows

        private ReportGenerator.TaskRow[] getTaskRows()
        Processes all days in selected period and their tasks and for each non-idle, non-private (unless required) task calculates its statistic (@see TaskRow). Finally, sorts all entries according to user's preference.
        Returns:
        Sorted array of task rows to be included on the report.
      • getProjectRows

        private ReportGenerator.ProjectRow[] getProjectRows()
        Processes all days in selected period and their tasks and for each non-idle, non-private (unless required) task calculates projects statistic (@see ProjectRow). Finally, sorts all entries according to user's preference.
        Returns:
        Sorted array of project rows to be included on the report.
      • filterTasks

        private java.util.Vector filterTasks​(java.util.Vector tasks)
        Filters given vector of tasks trough all used filters and returns vector of tasks satisfying all filters.
        Parameters:
        tasks - Vector of tasks to be filtered.
        Returns:
        Vector of tasks that satisfied all filters.