2 * HTMLReportElement.h - TaskJuggler
4 * Copyright (c) 2001, 2002, 2003, 2004, 2005 by Chris Schlaeger <cs@kde.org>
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of version 2 of the GNU General Public License as
8 * published by the Free Software Foundation.
13 #ifndef _HTMLReportElement_h_
14 #define _HTMLReportElement_h_
16 #include "ReportElement.h"
17 #include "HTMLPrimitives.h"
30 * @short Models the basic component of an HTML report.
31 * @author Chris Schlaeger <cs@kde.org>
33 class HTMLReportElement : public ReportElement, public HTMLPrimitives
36 HTMLReportElement(Report* r, const QString& df, int dl);
37 virtual ~HTMLReportElement() { }
39 virtual void genHeadDefault(TableCellInfo* tcf);
40 virtual void genHeadCurrency(TableCellInfo* tcf);
41 virtual void genHeadDaily1(TableCellInfo* tcf);
42 virtual void genHeadDaily2(TableCellInfo* tcf);
43 virtual void genHeadWeekly1(TableCellInfo* tcf);
44 virtual void genHeadWeekly2(TableCellInfo* tcf);
45 virtual void genHeadMonthly1(TableCellInfo* tcf);
46 virtual void genHeadMonthly2(TableCellInfo* tcf);
47 virtual void genHeadQuarterly1(TableCellInfo* tcf);
48 virtual void genHeadQuarterly2(TableCellInfo* tcf);
49 virtual void genHeadYear(TableCellInfo* tcf);
51 virtual void genCellEmpty(TableCellInfo*);
52 virtual void genCellAccounts(TableCellInfo* tli);
53 virtual void genCellSequenceNo(TableCellInfo* tli);
54 virtual void genCellNo(TableCellInfo* tli);
55 virtual void genCellHierarchNo(TableCellInfo* tli);
56 virtual void genCellIndex(TableCellInfo* tli);
57 virtual void genCellHierarchIndex(TableCellInfo* tli);
58 virtual void genCellHierarchLevel(TableCellInfo* tli);
59 virtual void genCellId(TableCellInfo* tli);
60 virtual void genCellName(TableCellInfo* tli);
61 virtual void genCellStart(TableCellInfo* tli);
62 virtual void genCellEnd(TableCellInfo* tli);
63 virtual void genCellMinStart(TableCellInfo* tli);
64 virtual void genCellMaxStart(TableCellInfo* tli);
65 virtual void genCellMinEnd(TableCellInfo* tli);
66 virtual void genCellMaxEnd(TableCellInfo* tli);
67 virtual void genCellStartBuffer(TableCellInfo* tli);
68 virtual void genCellEndBuffer(TableCellInfo* tli);
69 virtual void genCellStartBufferEnd(TableCellInfo* tli);
70 virtual void genCellEndBufferStart(TableCellInfo* tli);
71 virtual void genCellDuration(TableCellInfo* tli);
72 virtual void genCellEffort(TableCellInfo* tli);
73 virtual void genCellFreeLoad(TableCellInfo* tli);
74 virtual void genCellUtilization(TableCellInfo* tli);
75 virtual void genCellCriticalness(TableCellInfo* tli);
76 virtual void genCellPathCriticalness(TableCellInfo* tli);
77 virtual void genCellProjectId(TableCellInfo* tli);
78 virtual void genCellProjectIDs(TableCellInfo* tli);
79 virtual void genCellResources(TableCellInfo* tli);
80 virtual void genCellResponsible(TableCellInfo* tli);
81 virtual void genCellText(TableCellInfo* tli);
82 virtual void genCellStatusNote(TableCellInfo* tli);
83 virtual void genCellCost(TableCellInfo* tli);
84 virtual void genCellRevenue(TableCellInfo* tli);
85 virtual void genCellProfit(TableCellInfo* tli);
86 virtual void genCellPriority(TableCellInfo* tli);
87 virtual void genCellFlags(TableCellInfo* tli);
88 virtual void genCellCompleted(TableCellInfo* tli);
89 virtual void genCellCompletedEffort(TableCellInfo* tli);
90 virtual void genCellRemainingEffort(TableCellInfo* tli);
91 virtual void genCellStatus(TableCellInfo* tli);
92 virtual void genCellReference(TableCellInfo* tli);
93 virtual void genCellScenario(TableCellInfo* tli);
94 virtual void genCellDepends(TableCellInfo* tli);
95 virtual void genCellFollows(TableCellInfo* tli);
96 virtual void genCellDailyTask(TableCellInfo* tli);
97 virtual void genCellDailyResource(TableCellInfo* tli);
98 virtual void genCellDailyAccount(TableCellInfo* tli);
99 virtual void genCellWeeklyTask(TableCellInfo* tli);
100 virtual void genCellWeeklyResource(TableCellInfo* tli);
101 virtual void genCellWeeklyAccount(TableCellInfo* tli);
102 virtual void genCellMonthlyTask(TableCellInfo* tli);
103 virtual void genCellMonthlyResource(TableCellInfo* tli);
104 virtual void genCellMonthlyAccount(TableCellInfo* tli);
105 virtual void genCellQuarterlyTask(TableCellInfo* tli);
106 virtual void genCellQuarterlyResource(TableCellInfo* tli);
107 virtual void genCellQuarterlyAccount(TableCellInfo* tli);
108 virtual void genCellYearlyTask(TableCellInfo* tli);
109 virtual void genCellYearlyResource(TableCellInfo* tli);
110 virtual void genCellYearlyAccount(TableCellInfo* tli);
111 virtual void genCellResponsibilities(TableCellInfo* tli);
112 virtual void genCellSchedule(TableCellInfo* tli);
113 virtual void genCellScheduling(TableCellInfo* tli);
114 virtual void genCellMinEffort(TableCellInfo* tli);
115 virtual void genCellMaxEffort(TableCellInfo* tli);
116 virtual void genCellEfficiency(TableCellInfo* tli);
117 virtual void genCellRate(TableCellInfo* tli);
118 virtual void genCellTotal(TableCellInfo* tli);
120 virtual void genCellSummary(TableCellInfo* tli);
122 void generateTableHeader();
124 void generateHeader();
125 void generateFooter();
127 void generateLine(TableLineInfo* tli, int funcSel);
129 void genCell(const QString& text, TableCellInfo* tli, bool multi,
132 void generateTitle(TableCellInfo* tci, const QString& str);
134 void generateSubTitle(TableCellInfo* tci, const QString& str);
136 void generateRightIndented(TableCellInfo* tci, const QString& str);
138 QColor selectTaskBgColor(TableCellInfo* tci, double load,
139 const Interval& period, bool daily);
140 QColor selectResourceBgColor(TableCellInfo* tci, double load,
141 const Interval& period, bool daily);
143 void reportTaskLoad(double load, TableCellInfo* tci,
144 const Interval& period);
145 void reportResourceLoad(double load, TableCellInfo* tci,
146 const Interval& period);
148 void reportCurrency(double value, TableCellInfo* tci, time_t iv_start);
150 void genCellTaskFunc(TableCellInfo* tci, bool daily,
151 time_t (*beginOfT)(time_t),
152 time_t (*sameTimeNextT)(time_t));
153 void genCellResourceFunc(TableCellInfo* tci, bool daily,
154 time_t (*beginOfT)(time_t),
155 time_t (*sameTimeNextT)(time_t));
156 void genCellAccountFunc(TableCellInfo* tci, time_t (*beginOfT)(time_t),
157 time_t (*sameTimeNextT)(time_t));