Package org.cesilko.rachota.gui
Class ReportGenerator
- java.lang.Object
-
- org.cesilko.rachota.gui.ReportGenerator
-
public class ReportGenerator extends java.lang.ObjectHelper class for generation of HTML/TXT/CSV reports.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) classReportGenerator.ProjectRowComparable object representing one project in the summary on report.(package private) classReportGenerator.TaskRowComparable object representing one task in the summary on report.
-
Field Summary
Fields Modifier and Type Field Description private HistoryChartchartprivate java.util.Vectordaysprivate java.io.Filefileprivate AbstractTaskFilterhighlightFilterprivate booleanincludeDurationprivate booleanincludeNotesprivate booleanincludeOccurrencesprivate booleanincludeProjectsTasksprivate static intOUTPUT_CSVprivate static intOUTPUT_TXTprivate java.lang.StringrowsRepresentprivate java.util.VectorselectFiltersprivate booleanshowChartprivate booleanshowFiltersprivate java.lang.StringsortByprivate java.lang.Stringtitle
-
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.VectorfilterTasks(java.util.Vector tasks)Filters given vector of tasks trough all used filters and returns vector of tasks satisfying all filters.voidgenerateReport()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 voidwriteChart(java.io.OutputStreamWriter writer)private voidwriteFilters(java.io.OutputStreamWriter writer)private voidwriteFooter(java.io.OutputStreamWriter writer)private voidwriteHeader(java.io.OutputStreamWriter writer)private voidwriteHTMLFilters(java.io.OutputStreamWriter writer)private voidwriteHTMLFooter(java.io.OutputStreamWriter writer)private voidwriteHTMLHeader(java.io.OutputStreamWriter writer)private voidwriteHTMLProjects(java.io.OutputStreamWriter writer)private voidwriteHTMLTasks(java.io.OutputStreamWriter writer)private voidwriteProjects(java.io.OutputStreamWriter writer)private voidwriteTasks(java.io.OutputStreamWriter writer)private voidwriteTXTCSVFilters(java.io.OutputStreamWriter writer, java.lang.String prefix, java.lang.String delimiter)private voidwriteTXTCSVFooter(java.io.OutputStreamWriter writer, java.lang.String prefix)private voidwriteTXTCSVHeader(java.io.OutputStreamWriter writer, java.lang.String prefix)private voidwriteTXTCSVProjects(java.io.OutputStreamWriter writer, int output)private voidwriteTXTCSVTasks(java.io.OutputStreamWriter writer, int output)
-
-
-
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
-
chart
private HistoryChart chart
-
highlightFilter
private AbstractTaskFilter highlightFilter
-
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.FileNotFoundExceptionjava.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.
-
-