2 * HTMLTaskReportElement.h - TaskJuggler
4 * Copyright (c) 2001, 2002, 2003, 2004 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 #include "HTMLTaskReportElement.h"
14 #include "TableLineInfo.h"
15 #include "ExpressionTree.h"
16 #include "Operation.h"
20 HTMLTaskReportElement::HTMLTaskReportElement(Report* r, const QString& df,
22 HTMLReportElement(r, df, dl)
24 int sc = r->getProject()->getMaxScenarios();
25 columns.append(new TableColumnInfo(sc, "no"));
26 columns.append(new TableColumnInfo(sc, "name"));
27 columns.append(new TableColumnInfo(sc, "start"));
28 columns.append(new TableColumnInfo(sc, "end"));
31 setHideTask(new ExpressionTree(new Operation(0)));
33 setHideResource(new ExpressionTree(new Operation(1)));
35 taskSortCriteria[0] = CoreAttributesList::TreeMode;
36 taskSortCriteria[1] = CoreAttributesList::StartUp;
37 taskSortCriteria[2] = CoreAttributesList::EndUp;
38 resourceSortCriteria[0] = CoreAttributesList::TreeMode;
41 HTMLTaskReportElement::~HTMLTaskReportElement()
46 HTMLTaskReportElement::generate()
50 generateTableHeader();
52 s() << " <tbody>" << endl;
54 TaskList filteredTaskList;
55 if (!filterTaskList(filteredTaskList, 0, getHideTask(), getRollUpTask()))
57 sortTaskList(filteredTaskList);
58 maxDepthTaskList = filteredTaskList.maxDepth();
60 ResourceList filteredResourceList;
61 if (!filterResourceList(filteredResourceList, 0, getHideResource(),
64 maxDepthResourceList = filteredResourceList.maxDepth();
67 for (TaskListIterator tli(filteredTaskList); *tli != 0; ++tli, ++tNo)
72 for (uint sc = 0; sc < scenarios.count(); ++sc)
75 tli1.sc = scenarios[sc];
77 tli1.bgCol = colors.getColor("default").dark(100 + sc * 10);
78 generateLine(&tli1, sc == 0 ? 2 : 3);
81 if (!filterResourceList(filteredResourceList, *tli,
82 getHideResource(), getRollUpResource()))
84 sortResourceList(filteredResourceList);
86 for (ResourceListIterator rli(filteredResourceList); *rli != 0;
90 tli2.ca1 = tli2.resource = *rli;
91 tli2.ca2 = tli2.task = *tli;
92 for (uint sc = 0; sc < scenarios.count(); ++sc)
95 tli2.sc = scenarios[sc];
97 tli2.bgCol = colors.getColor("default").light(120).
99 generateLine(&tli2, sc == 0 ? 4 : 5);
103 s() << " </tbody>" << endl;
104 s() << "</table>" << endl;