taskjuggler 0.0.2 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (432) hide show
  1. data/Rakefile +1 -0
  2. data/benchmarks/depends.tjp +2 -1
  3. data/benchmarks/htmltaskreport.tjp +2 -1
  4. data/doc/classes/AppConfig.html +124 -120
  5. data/doc/classes/Arguments.html +10 -6
  6. data/doc/classes/Object.html +229 -0
  7. data/doc/classes/String.html +35 -31
  8. data/doc/classes/TaskJuggler/Account.html +18 -18
  9. data/doc/classes/TaskJuggler/AccountAttribute.html +261 -0
  10. data/doc/classes/TaskJuggler/AccountScenario.html +12 -12
  11. data/doc/classes/TaskJuggler/Allocation.html +34 -30
  12. data/doc/classes/TaskJuggler/AllocationAttribute.html +70 -70
  13. data/doc/classes/TaskJuggler/AttributeBase.html +131 -147
  14. data/doc/classes/TaskJuggler/AttributeDefinition.html +38 -21
  15. data/doc/classes/TaskJuggler/BatchProcessor.html +313 -0
  16. data/doc/classes/TaskJuggler/Booking.html +22 -18
  17. data/doc/classes/TaskJuggler/BookingListAttribute.html +42 -42
  18. data/doc/classes/TaskJuggler/BooleanAttribute.html +40 -40
  19. data/doc/classes/TaskJuggler/CSVFile.html +28 -24
  20. data/doc/classes/TaskJuggler/Charge.html +22 -18
  21. data/doc/classes/TaskJuggler/ChargeListAttribute.html +30 -30
  22. data/doc/classes/TaskJuggler/ChargeSet.html +41 -37
  23. data/doc/classes/TaskJuggler/ChargeSetListAttribute.html +46 -46
  24. data/doc/classes/TaskJuggler/ColumnListAttribute.html +231 -0
  25. data/doc/classes/TaskJuggler/ColumnTable.html +23 -21
  26. data/doc/classes/TaskJuggler/DateAttribute.html +20 -20
  27. data/doc/classes/TaskJuggler/DefinitionListAttribute.html +162 -0
  28. data/doc/classes/TaskJuggler/DependencyListAttribute.html +46 -46
  29. data/doc/classes/TaskJuggler/DurationAttribute.html +30 -30
  30. data/doc/classes/TaskJuggler/FixnumAttribute.html +20 -20
  31. data/doc/classes/TaskJuggler/FlagListAttribute.html +42 -42
  32. data/doc/classes/TaskJuggler/FloatAttribute.html +30 -30
  33. data/doc/classes/TaskJuggler/FormatListAttribute.html +197 -0
  34. data/doc/classes/TaskJuggler/GanttChart.html +236 -207
  35. data/doc/classes/TaskJuggler/GanttContainer.html +46 -42
  36. data/doc/classes/TaskJuggler/GanttHeader.html +16 -12
  37. data/doc/classes/TaskJuggler/GanttHeaderScaleItem.html +16 -12
  38. data/doc/classes/TaskJuggler/GanttLine.html +28 -24
  39. data/doc/classes/TaskJuggler/GanttLoadStack.html +22 -18
  40. data/doc/classes/TaskJuggler/GanttMilestone.html +46 -42
  41. data/doc/classes/TaskJuggler/GanttRouter.html +104 -98
  42. data/doc/classes/TaskJuggler/GanttTaskBar.html +46 -42
  43. data/doc/classes/TaskJuggler/HTMLDocument.html +12 -12
  44. data/doc/classes/TaskJuggler/HTMLGraphics.html +12 -12
  45. data/doc/classes/TaskJuggler/Interval.html +126 -120
  46. data/doc/classes/TaskJuggler/IntervalListAttribute.html +46 -46
  47. data/doc/classes/TaskJuggler/JobInfo.html +284 -0
  48. data/doc/classes/TaskJuggler/Journal.html +197 -0
  49. data/doc/classes/TaskJuggler/JournalEntry.html +218 -0
  50. data/doc/classes/TaskJuggler/KeywordArray.html +179 -0
  51. data/doc/classes/TaskJuggler/KeywordDocumentation.html +445 -396
  52. data/doc/classes/TaskJuggler/Limits/Limit.html +34 -30
  53. data/doc/classes/TaskJuggler/Limits.html +68 -62
  54. data/doc/classes/TaskJuggler/LimitsAttribute.html +40 -40
  55. data/doc/classes/TaskJuggler/ListAttributeBase.html +207 -0
  56. data/doc/classes/TaskJuggler/Log.html +72 -68
  57. data/doc/classes/TaskJuggler/LogicalAttribute.html +38 -34
  58. data/doc/classes/TaskJuggler/LogicalExpression.html +16 -12
  59. data/doc/classes/TaskJuggler/LogicalExpressionAttribute.html +194 -0
  60. data/doc/classes/TaskJuggler/LogicalFlag.html +32 -32
  61. data/doc/classes/TaskJuggler/LogicalFunction.html +28 -24
  62. data/doc/classes/TaskJuggler/LogicalOperation.html +17 -13
  63. data/doc/classes/TaskJuggler/Macro.html +10 -6
  64. data/doc/classes/TaskJuggler/MacroParser.html +36 -36
  65. data/doc/classes/TaskJuggler/MacroTable.html +40 -36
  66. data/doc/classes/TaskJuggler/Message.html +16 -12
  67. data/doc/classes/TaskJuggler/MessageHandler.html +16 -12
  68. data/doc/classes/TaskJuggler/Navigator.html +249 -0
  69. data/doc/classes/TaskJuggler/OnShiftCache.html +316 -0
  70. data/doc/classes/TaskJuggler/Project.html +1064 -678
  71. data/doc/classes/TaskJuggler/ProjectFileParser.html +90 -85
  72. data/doc/classes/TaskJuggler/PropertyAttribute.html +194 -0
  73. data/doc/classes/TaskJuggler/PropertyList.html +114 -113
  74. data/doc/classes/TaskJuggler/PropertySet.html +355 -312
  75. data/doc/classes/TaskJuggler/PropertyTreeNode.html +527 -474
  76. data/doc/classes/TaskJuggler/Query.html +90 -85
  77. data/doc/classes/TaskJuggler/RTPNavigator.html +292 -0
  78. data/doc/classes/TaskJuggler/RTPReport.html +301 -0
  79. data/doc/classes/TaskJuggler/RealFormat.html +114 -57
  80. data/doc/classes/TaskJuggler/RealFormatAttribute.html +162 -0
  81. data/doc/classes/TaskJuggler/ReferenceAttribute.html +87 -20
  82. data/doc/classes/TaskJuggler/Report.html +82 -291
  83. data/doc/classes/TaskJuggler/ReportBase.html +448 -0
  84. data/doc/classes/TaskJuggler/ReportContext.html +243 -0
  85. data/doc/classes/TaskJuggler/ReportTable.html +158 -129
  86. data/doc/classes/TaskJuggler/ReportTableCell.html +30 -26
  87. data/doc/classes/TaskJuggler/ReportTableColumn.html +29 -25
  88. data/doc/classes/TaskJuggler/ReportTableLegend.html +28 -24
  89. data/doc/classes/TaskJuggler/ReportTableLine.html +34 -30
  90. data/doc/classes/TaskJuggler/Resource.html +12 -12
  91. data/doc/classes/TaskJuggler/ResourceListAttribute.html +46 -46
  92. data/doc/classes/TaskJuggler/ResourceListRE.html +49 -57
  93. data/doc/classes/TaskJuggler/ResourceScenario.html +126 -126
  94. data/doc/classes/TaskJuggler/RichText.html +52 -48
  95. data/doc/classes/TaskJuggler/RichTextAttribute.html +30 -30
  96. data/doc/classes/TaskJuggler/RichTextDocument.html +41 -37
  97. data/doc/classes/TaskJuggler/RichTextElement.html +274 -264
  98. data/doc/classes/TaskJuggler/RichTextException.html +13 -13
  99. data/doc/classes/TaskJuggler/RichTextParser.html +48 -47
  100. data/doc/classes/TaskJuggler/RichTextProtocolExample.html +52 -55
  101. data/doc/classes/TaskJuggler/RichTextProtocolHandler.html +55 -10
  102. data/doc/classes/TaskJuggler/RichTextScanner.html +106 -245
  103. data/doc/classes/TaskJuggler/RichTextSnip.html +28 -24
  104. data/doc/classes/TaskJuggler/RichTextSyntaxRules.html +381 -301
  105. data/doc/classes/TaskJuggler/Scenario.html +6 -6
  106. data/doc/classes/TaskJuggler/ScenarioData.html +40 -36
  107. data/doc/classes/TaskJuggler/ScenarioListAttribute.html +229 -0
  108. data/doc/classes/TaskJuggler/Scoreboard.html +70 -66
  109. data/doc/classes/TaskJuggler/Shift.html +18 -18
  110. data/doc/classes/TaskJuggler/ShiftAssignment.html +58 -54
  111. data/doc/classes/TaskJuggler/ShiftAssignments.html +82 -78
  112. data/doc/classes/TaskJuggler/ShiftAssignmentsAttribute.html +40 -40
  113. data/doc/classes/TaskJuggler/ShiftScenario.html +24 -24
  114. data/doc/classes/TaskJuggler/SortListAttribute.html +196 -0
  115. data/doc/classes/TaskJuggler/SourceFileInfo.html +16 -12
  116. data/doc/classes/TaskJuggler/StringAttribute.html +30 -30
  117. data/doc/classes/TaskJuggler/SymbolAttribute.html +20 -20
  118. data/doc/classes/TaskJuggler/SyntaxReference.html +46 -42
  119. data/doc/classes/TaskJuggler/TOCEntry.html +16 -12
  120. data/doc/classes/TaskJuggler/TableColumnDefinition.html +48 -33
  121. data/doc/classes/TaskJuggler/TableOfContents.html +22 -18
  122. data/doc/classes/TaskJuggler/TableReport.html +1036 -0
  123. data/doc/classes/TaskJuggler/Task.html +12 -12
  124. data/doc/classes/TaskJuggler/TaskDependency.html +16 -12
  125. data/doc/classes/TaskJuggler/TaskListAttribute.html +46 -46
  126. data/doc/classes/TaskJuggler/TaskListRE.html +49 -58
  127. data/doc/classes/TaskJuggler/TaskScenario.html +1270 -1180
  128. data/doc/classes/TaskJuggler/TextParser/Pattern.html +100 -96
  129. data/doc/classes/TaskJuggler/TextParser/Rule.html +88 -84
  130. data/doc/classes/TaskJuggler/TextParser/StackElement.html +16 -12
  131. data/doc/classes/TaskJuggler/TextParser/TextParserResultArray.html +12 -12
  132. data/doc/classes/TaskJuggler/TextParser/TokenDoc.html +10 -6
  133. data/doc/classes/TaskJuggler/TextParser.html +203 -140
  134. data/doc/classes/TaskJuggler/TextReport.html +364 -0
  135. data/doc/classes/TaskJuggler/TextScanner/BufferStreamHandle.html +70 -70
  136. data/doc/classes/TaskJuggler/TextScanner/FileStreamHandle.html +50 -42
  137. data/doc/classes/TaskJuggler/TextScanner/StreamHandle.html +16 -12
  138. data/doc/classes/TaskJuggler/TextScanner.html +334 -240
  139. data/doc/classes/TaskJuggler/TjException.html +6 -6
  140. data/doc/classes/TaskJuggler/TjTime.html +547 -497
  141. data/doc/classes/TaskJuggler/TjpExample.html +29 -25
  142. data/doc/classes/TaskJuggler/TjpExportRE.html +77 -97
  143. data/doc/classes/TaskJuggler/TjpSyntaxRules.html +3911 -3886
  144. data/doc/classes/TaskJuggler/UserManual.html +54 -54
  145. data/doc/classes/TaskJuggler/WorkingHours.html +53 -49
  146. data/doc/classes/TaskJuggler/WorkingHoursAttribute.html +53 -85
  147. data/doc/classes/TaskJuggler/XMLBlob.html +21 -21
  148. data/doc/classes/TaskJuggler/XMLComment.html +21 -21
  149. data/doc/classes/TaskJuggler/XMLDocument.html +28 -24
  150. data/doc/classes/TaskJuggler/XMLElement.html +70 -58
  151. data/doc/classes/TaskJuggler/XMLNamedText.html +11 -11
  152. data/doc/classes/TaskJuggler/XMLText.html +36 -36
  153. data/doc/classes/TaskJuggler.html +266 -183
  154. data/doc/files/COPYING.html +1 -1
  155. data/doc/files/README.html +1 -1
  156. data/doc/files/lib/AccountScenario_rb.html +1 -1
  157. data/doc/files/lib/Account_rb.html +1 -1
  158. data/doc/files/lib/Allocation_rb.html +1 -1
  159. data/doc/files/lib/AppConfig_rb.html +1 -1
  160. data/doc/files/lib/AttributeBase_rb.html +11 -1
  161. data/doc/files/lib/AttributeDefinition_rb.html +1 -1
  162. data/doc/files/lib/Attributes_rb.html +1 -1
  163. data/doc/files/lib/{LogicalFlag_rb.html → BatchProcessor_rb.html} +8 -6
  164. data/doc/files/lib/Booking_rb.html +1 -1
  165. data/doc/files/lib/ChargeSet_rb.html +1 -1
  166. data/doc/files/lib/Charge_rb.html +1 -1
  167. data/doc/files/lib/HTMLDocument_rb.html +1 -1
  168. data/doc/files/lib/Interval_rb.html +1 -1
  169. data/doc/files/lib/Journal_rb.html +106 -0
  170. data/doc/files/lib/KeywordArray_rb.html +106 -0
  171. data/doc/files/lib/KeywordDocumentation_rb.html +1 -1
  172. data/doc/files/lib/Limits_rb.html +1 -1
  173. data/doc/files/lib/Log_rb.html +1 -1
  174. data/doc/files/lib/LogicalExpression_rb.html +1 -3
  175. data/doc/files/lib/LogicalFunction_rb.html +1 -1
  176. data/doc/files/lib/LogicalOperation_rb.html +1 -1
  177. data/doc/files/lib/MacroParser_rb.html +1 -1
  178. data/doc/files/lib/MacroTable_rb.html +1 -1
  179. data/doc/files/lib/MessageHandler_rb.html +1 -1
  180. data/doc/files/lib/Message_rb.html +1 -1
  181. data/doc/files/lib/ProjectFileParser_rb.html +5 -1
  182. data/doc/files/lib/Project_rb.html +5 -1
  183. data/doc/files/lib/PropertyList_rb.html +1 -1
  184. data/doc/files/lib/PropertySet_rb.html +1 -1
  185. data/doc/files/lib/PropertyTreeNode_rb.html +1 -1
  186. data/doc/files/lib/Query_rb.html +1 -1
  187. data/doc/files/lib/RTPNavigator_rb.html +120 -0
  188. data/doc/files/lib/RTPReport_rb.html +118 -0
  189. data/doc/files/lib/RealFormat_rb.html +1 -1
  190. data/doc/files/lib/ResourceScenario_rb.html +1 -1
  191. data/doc/files/lib/Resource_rb.html +1 -1
  192. data/doc/files/lib/RichTextDocument_rb.html +1 -1
  193. data/doc/files/lib/RichTextElement_rb.html +1 -1
  194. data/doc/files/lib/RichTextParser_rb.html +1 -1
  195. data/doc/files/lib/RichTextProtocolExample_rb.html +1 -1
  196. data/doc/files/lib/RichTextProtocolHandler_rb.html +1 -1
  197. data/doc/files/lib/RichTextScanner_rb.html +1 -1
  198. data/doc/files/lib/RichTextSnip_rb.html +1 -1
  199. data/doc/files/lib/RichTextSyntaxRules_rb.html +1 -1
  200. data/doc/files/lib/RichText_rb.html +1 -1
  201. data/doc/files/lib/ScenarioData_rb.html +1 -1
  202. data/doc/files/lib/Scenario_rb.html +1 -1
  203. data/doc/files/lib/Scoreboard_rb.html +1 -1
  204. data/doc/files/lib/ShiftAssignments_rb.html +1 -1
  205. data/doc/files/lib/ShiftScenario_rb.html +1 -1
  206. data/doc/files/lib/Shift_rb.html +1 -1
  207. data/doc/files/lib/SourceFileInfo_rb.html +1 -1
  208. data/doc/files/lib/SyntaxReference_rb.html +1 -1
  209. data/doc/files/lib/TOCEntry_rb.html +1 -1
  210. data/doc/files/lib/TableColumnDefinition_rb.html +1 -1
  211. data/doc/files/lib/TableOfContents_rb.html +1 -1
  212. data/doc/files/lib/TaskDependency_rb.html +1 -1
  213. data/doc/files/lib/TaskJuggler_rb.html +1 -1
  214. data/doc/files/lib/TaskScenario_rb.html +1 -1
  215. data/doc/files/lib/Task_rb.html +1 -1
  216. data/doc/files/lib/TextParser/Pattern_rb.html +1 -1
  217. data/doc/files/lib/TextParser/Rule_rb.html +1 -1
  218. data/doc/files/lib/TextParser/StackElement_rb.html +1 -1
  219. data/doc/files/lib/TextParser/TokenDoc_rb.html +1 -1
  220. data/doc/files/lib/TextParser_rb.html +1 -1
  221. data/doc/files/lib/TextScanner_rb.html +1 -1
  222. data/doc/files/lib/Tj3Config_rb.html +1 -1
  223. data/doc/files/lib/TjException_rb.html +1 -1
  224. data/doc/files/lib/TjTime_rb.html +1 -1
  225. data/doc/files/lib/TjpExample_rb.html +1 -1
  226. data/doc/files/lib/TjpSyntaxRules_rb.html +1 -1
  227. data/doc/files/lib/UTF8String_rb.html +1 -1
  228. data/doc/files/lib/UserManual_rb.html +1 -1
  229. data/doc/files/lib/WorkingHours_rb.html +1 -1
  230. data/doc/files/lib/XMLDocument_rb.html +1 -1
  231. data/doc/files/lib/XMLElement_rb.html +1 -1
  232. data/doc/files/lib/deep_copy_rb.html +106 -0
  233. data/doc/files/lib/ms_test_rb.html +90 -0
  234. data/doc/files/lib/reports/CSVFile_rb.html +1 -1
  235. data/doc/files/lib/reports/ColumnTable_rb.html +1 -1
  236. data/doc/files/lib/reports/GanttChart_rb.html +1 -1
  237. data/doc/files/lib/reports/GanttContainer_rb.html +1 -1
  238. data/doc/files/lib/reports/GanttHeaderScaleItem_rb.html +1 -1
  239. data/doc/files/lib/reports/GanttHeader_rb.html +1 -1
  240. data/doc/files/lib/reports/GanttLine_rb.html +1 -1
  241. data/doc/files/lib/reports/GanttLoadStack_rb.html +1 -1
  242. data/doc/files/lib/reports/GanttMilestone_rb.html +1 -1
  243. data/doc/files/lib/reports/GanttRouter_rb.html +1 -1
  244. data/doc/files/lib/reports/GanttTaskBar_rb.html +1 -1
  245. data/doc/files/lib/reports/HTMLGraphics_rb.html +1 -1
  246. data/doc/files/lib/reports/{ReportElement_rb.html → Navigator_rb.html} +6 -8
  247. data/doc/files/lib/reports/ReportBase_rb.html +106 -0
  248. data/doc/files/lib/reports/ReportContext_rb.html +106 -0
  249. data/doc/files/lib/reports/ReportTableCell_rb.html +1 -1
  250. data/doc/files/lib/reports/ReportTableColumn_rb.html +1 -1
  251. data/doc/files/lib/reports/ReportTableLegend_rb.html +1 -1
  252. data/doc/files/lib/reports/ReportTableLine_rb.html +1 -1
  253. data/doc/files/lib/reports/ReportTable_rb.html +1 -1
  254. data/doc/files/lib/reports/Report_rb.html +8 -2
  255. data/doc/files/lib/reports/ResourceListRE_rb.html +2 -2
  256. data/doc/files/lib/reports/{ReportTableElement_rb.html → TableReport_rb.html} +7 -5
  257. data/doc/files/lib/reports/TaskListRE_rb.html +2 -2
  258. data/doc/files/lib/reports/TextReport_rb.html +116 -0
  259. data/doc/files/lib/reports/TjpExportRE_rb.html +2 -2
  260. data/doc/files/lib/taskjuggler3_rb.html +61 -56
  261. data/doc/files/lib/tj3man_rb.html +1 -1
  262. data/doc/fr_class_index.html +41 -3
  263. data/doc/fr_file_index.html +21 -5
  264. data/doc/fr_method_index.html +1069 -959
  265. data/examples/ContactList.html +1467 -0
  266. data/examples/Deliveries.html +485 -0
  267. data/examples/Development.html +2525 -0
  268. data/examples/Overview.html +747 -0
  269. data/examples/Resource Graph.html +616 -0
  270. data/examples/tutorial.tjp +63 -67
  271. data/lib/AttributeBase.rb +27 -31
  272. data/lib/AttributeDefinition.rb +12 -7
  273. data/lib/Attributes.rb +134 -34
  274. data/lib/Interval.rb +2 -0
  275. data/lib/Journal.rb +44 -0
  276. data/lib/{LogicalFlag.rb → KeywordArray.rb} +5 -13
  277. data/lib/KeywordDocumentation.rb +84 -47
  278. data/lib/Limits.rb +7 -5
  279. data/lib/LogicalExpression.rb +1 -1
  280. data/lib/LogicalOperation.rb +33 -0
  281. data/lib/Project.rb +313 -99
  282. data/lib/ProjectFileParser.rb +88 -11
  283. data/lib/PropertyList.rb +2 -1
  284. data/lib/PropertySet.rb +13 -4
  285. data/lib/PropertyTreeNode.rb +34 -15
  286. data/lib/Query.rb +2 -1
  287. data/lib/RTPNavigator.rb +53 -0
  288. data/lib/RTPReport.rb +62 -0
  289. data/lib/RealFormat.rb +28 -10
  290. data/lib/RichTextElement.rb +18 -12
  291. data/lib/RichTextParser.rb +1 -0
  292. data/lib/RichTextProtocolExample.rb +8 -11
  293. data/lib/RichTextProtocolHandler.rb +11 -1
  294. data/lib/RichTextScanner.rb +308 -164
  295. data/lib/RichTextSyntaxRules.rb +24 -0
  296. data/lib/TableColumnDefinition.rb +5 -1
  297. data/lib/TaskJuggler.rb +3 -2
  298. data/lib/TaskScenario.rb +123 -31
  299. data/lib/TextParser.rb +14 -3
  300. data/lib/TextScanner.rb +210 -34
  301. data/lib/Tj3Config.rb +1 -1
  302. data/lib/TjTime.rb +15 -0
  303. data/lib/TjpExample.rb +1 -1
  304. data/lib/TjpSyntaxRules.rb +674 -473
  305. data/lib/WorkingHours.rb +1 -1
  306. data/lib/XMLElement.rb +11 -3
  307. data/lib/deep_copy.rb +72 -0
  308. data/lib/ms_test.rb +27 -0
  309. data/lib/reports/ColumnTable.rb +7 -5
  310. data/lib/reports/GanttChart.rb +60 -34
  311. data/lib/reports/GanttHeader.rb +1 -1
  312. data/lib/reports/GanttRouter.rb +7 -5
  313. data/lib/reports/Navigator.rb +72 -0
  314. data/lib/reports/Report.rb +58 -73
  315. data/lib/reports/ReportBase.rb +241 -0
  316. data/lib/reports/ReportContext.rb +41 -0
  317. data/lib/reports/ReportTable.rb +7 -2
  318. data/lib/reports/ReportTableCell.rb +3 -3
  319. data/lib/reports/ResourceListRE.rb +19 -26
  320. data/lib/reports/{ReportTableElement.rb → TableReport.rb} +297 -97
  321. data/lib/reports/TaskListRE.rb +16 -24
  322. data/lib/reports/TextReport.rb +87 -0
  323. data/lib/reports/TjpExportRE.rb +55 -50
  324. data/lib/taskjuggler3.rb +6 -1
  325. data/manual/Getting_Started +57 -6
  326. data/manual/How_To_Contribute +2 -4
  327. data/manual/Intro +2 -2
  328. data/manual/Reporting_Bugs +9 -2
  329. data/manual/Rich_Text_Attributes +41 -0
  330. data/manual/Tutorial +219 -173
  331. data/tasks/test.rake +3 -0
  332. data/test/TestSuite/CSV-Reports/celltext.tjp +2 -1
  333. data/test/TestSuite/CSV-Reports/resourcereport.tjp +2 -1
  334. data/test/TestSuite/CSV-Reports/resourcereport_with_tasks.tjp +2 -1
  335. data/test/TestSuite/CSV-Reports/sortByTree.tjp +2 -1
  336. data/test/TestSuite/CSV-Reports/sortBy_duration.down.tjp +2 -1
  337. data/test/TestSuite/CSV-Reports/sortBy_effort.up.tjp +2 -1
  338. data/test/TestSuite/CSV-Reports/sortBy_plan.start.down.tjp +2 -1
  339. data/test/TestSuite/CSV-Reports/taskreport.tjp +2 -1
  340. data/test/TestSuite/CSV-Reports/taskreport_with_resources.tjp +2 -1
  341. data/test/TestSuite/HTML-Reports/depArrows.tjp +72 -0
  342. data/test/TestSuite/HTML-Reports/reference-export.html +187 -0
  343. data/test/TestSuite/HTML-Reports/reference.tjp +21 -0
  344. data/test/TestSuite/Scheduler/Correct/Allocate.tjp +2 -1
  345. data/test/TestSuite/Scheduler/Correct/AutomaticMilestones.tjp +3 -3
  346. data/test/TestSuite/Scheduler/Correct/Booking.tjp +3 -3
  347. data/test/TestSuite/Scheduler/Correct/Container-2.tjp +37 -0
  348. data/test/TestSuite/Scheduler/Correct/Container.tjp +40 -0
  349. data/test/TestSuite/Scheduler/Correct/Depends.tjp +9 -14
  350. data/test/TestSuite/Scheduler/Correct/Duration.tjp +2 -1
  351. data/test/TestSuite/Scheduler/Correct/InheritStartEnd.tjp +20 -29
  352. data/test/TestSuite/Scheduler/Correct/Limits.tjp +11 -13
  353. data/test/TestSuite/Scheduler/Correct/Optimize-1.tjp +6 -5
  354. data/test/TestSuite/Scheduler/Correct/Optimize-2.tjp +10 -6
  355. data/test/TestSuite/Scheduler/Correct/Optimize-3.tjp +9 -6
  356. data/test/TestSuite/Scheduler/Correct/Optimize-4.tjp +9 -6
  357. data/test/TestSuite/Scheduler/Correct/Optimize-5.tjp +13 -10
  358. data/test/TestSuite/Scheduler/Correct/Precedes.tjp +9 -14
  359. data/test/TestSuite/Scheduler/Correct/Shift.tjp +9 -8
  360. data/test/TestSuite/Scheduler/Correct/checks.tji +4 -0
  361. data/test/TestSuite/Scheduler/Errors/weak_end_dep.tjp +16 -0
  362. data/test/TestSuite/Scheduler/Errors/weak_start_dep.tjp +16 -0
  363. data/test/TestSuite/Syntax/Correct/Account.tjp +1 -1
  364. data/test/TestSuite/Syntax/Correct/AutoID.tjp +21 -0
  365. data/test/TestSuite/Syntax/Correct/AutoMacros.tjp +2 -1
  366. data/test/TestSuite/Syntax/Correct/Caption.tjp +7 -6
  367. data/test/TestSuite/Syntax/Correct/Celltext.tjp +7 -4
  368. data/test/TestSuite/Syntax/Correct/Comments.tjp +1 -1
  369. data/test/TestSuite/Syntax/Correct/CompletedWork.tji +11 -19
  370. data/test/TestSuite/Syntax/Correct/CriticalPath.tjp +4 -3
  371. data/test/TestSuite/Syntax/Correct/Export.tjp +3 -1
  372. data/test/TestSuite/Syntax/Correct/Flags.tjp +2 -1
  373. data/test/TestSuite/Syntax/Correct/HtmlTaskReport.tjp +2 -1
  374. data/test/TestSuite/Syntax/Correct/Journal.tjp +18 -0
  375. data/test/TestSuite/Syntax/Correct/LoadUnits.tjp +2 -1
  376. data/test/TestSuite/Syntax/Correct/LogicalExpression.tjp +16 -0
  377. data/test/TestSuite/Syntax/Correct/Period.tjp +2 -1
  378. data/test/TestSuite/Syntax/Correct/RawHTML.tjp +4 -2
  379. data/test/TestSuite/Syntax/Correct/Reports.tjp +4 -2
  380. data/test/TestSuite/Syntax/Correct/ResourcePrefix.tji +2 -0
  381. data/test/TestSuite/Syntax/Correct/ResourcePrefix.tjp +23 -0
  382. data/test/TestSuite/Syntax/Correct/Responsible.tjp +1 -1
  383. data/test/TestSuite/Syntax/Correct/Simple.tjp +1 -1
  384. data/test/TestSuite/Syntax/Correct/String.tjp +1 -1
  385. data/test/TestSuite/Syntax/Correct/TaskRoot.tjp +2 -1
  386. data/test/TestSuite/Syntax/Correct/tutorial.tjp +92 -70
  387. data/test/TestSuite/Syntax/Errors/bad_comment.tjp +7 -0
  388. data/test/TestSuite/Syntax/Errors/bad_include.tjp +1 -1
  389. data/test/TestSuite/Syntax/Errors/bad_time_zone.tjp +6 -0
  390. data/test/TestSuite/Syntax/Errors/bad_timing_res.tjp +5 -0
  391. data/test/TestSuite/Syntax/Errors/chargeset_master.tjp +1 -1
  392. data/test/TestSuite/Syntax/Errors/container_attribute.tjp +1 -1
  393. data/test/TestSuite/Syntax/Errors/cost_acct_no_top.tjp +3 -2
  394. data/test/TestSuite/Syntax/Errors/cost_rev_same.tjp +1 -1
  395. data/test/TestSuite/Syntax/Errors/eof_in_istring1.tjp +5 -0
  396. data/test/TestSuite/Syntax/Errors/eof_in_istring2.tjp +5 -0
  397. data/test/TestSuite/Syntax/Errors/eof_in_istring3.tjp +6 -0
  398. data/test/TestSuite/Syntax/Errors/eof_in_istring4.tjp +6 -0
  399. data/test/TestSuite/Syntax/Errors/eof_in_istring5.tjp +6 -0
  400. data/test/TestSuite/Syntax/Errors/include_recursion.tji +1 -0
  401. data/test/TestSuite/Syntax/Errors/include_recursion.tjp +7 -0
  402. data/test/TestSuite/Syntax/Errors/junk_after_cut.tjp +6 -0
  403. data/test/TestSuite/Syntax/Errors/navigator_exists.tjp +10 -0
  404. data/test/TestSuite/Syntax/Errors/operand_unkn_flag.tjp +1 -1
  405. data/test/TestSuite/Syntax/Errors/report_end.tjp +1 -1
  406. data/test/TestSuite/Syntax/Errors/report_exists.tjp +10 -0
  407. data/test/TestSuite/Syntax/Errors/report_start.tjp +1 -1
  408. data/test/TestSuite/Syntax/Errors/rev_acct_no_top.tjp +1 -1
  409. data/test/TestSuite/Syntax/Errors/sort_direction.tjp +1 -1
  410. data/test/TestSuite/Syntax/Errors/sort_unknown_scen.tjp +1 -1
  411. data/test/TestSuite/Syntax/Errors/sorting_crit_exptd1.tjp +1 -1
  412. data/test/TestSuite/Syntax/Errors/sorting_crit_exptd2.tjp +1 -1
  413. data/test/TestSuite/Syntax/Errors/sorting_wbs.tjp +1 -1
  414. data/test/TestSuite/Syntax/Errors/too_large_timing_res.tjp +7 -0
  415. data/test/TestSuite/Syntax/Errors/unknown_scenario_idx.tjp +1 -1
  416. data/test/TestSuite/Syntax/Errors/unknown_task.tjp +1 -1
  417. data/test/all.rb +1 -16
  418. data/test/test_CSV-Reports.rb +8 -5
  419. data/test/test_Query.rb +2 -2
  420. data/test/test_RichText.rb +95 -0
  421. data/test/test_Scheduler.rb +8 -4
  422. data/test/test_Syntax.rb +8 -4
  423. data/test/test_deep_copy.rb +83 -0
  424. metadata +549 -487
  425. data/benchmarks/UTF-8-Strings.rb +0 -58
  426. data/doc/classes/TaskJuggler/ReportElement.html +0 -1070
  427. data/doc/classes/TaskJuggler/ReportTableElement.html +0 -644
  428. data/lib/reports/ReportElement.rb +0 -427
  429. data/test/TestSuite/Syntax/Correct/csvtest +0 -16
  430. data/test/TestSuite/Syntax/Errors/no_csv_suffix.tjp +0 -10
  431. data/test/TestSuite/Syntax/Errors/no_html_suffix.tjp +0 -10
  432. data/test/TestSuite/Syntax/Errors/report_redifinition.tjp +0 -10
@@ -1,644 +0,0 @@
1
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
2
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4
- <head>
5
- <title>Class: TaskJuggler::ReportTableElement [TaskJuggler III API documentation]</title>
6
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
7
- <meta http-equiv="Content-Script-Type" content="text/javascript" />
8
- <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
9
- <script type="text/javascript">
10
- // <![CDATA[
11
-
12
- function popupCode( url ) {
13
- window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
14
- }
15
-
16
- function toggleCode( id ) {
17
- if ( document.getElementById )
18
- elem = document.getElementById( id );
19
- else if ( document.all )
20
- elem = eval( "document.all." + id );
21
- else
22
- return false;
23
-
24
- elemStyle = elem.style;
25
-
26
- if ( elemStyle.display != "block" ) {
27
- elemStyle.display = "block"
28
- } else {
29
- elemStyle.display = "none"
30
- }
31
-
32
- return true;
33
- }
34
-
35
- // Make codeblocks hidden by default
36
- document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }<\/style>" )
37
-
38
- // ]]>
39
- </script>
40
-
41
- </head>
42
- <body>
43
-
44
-
45
- <div id="classHeader">
46
- <table class="header-table">
47
- <tr class="top-aligned-row">
48
- <td><strong>Class</strong></td>
49
- <td class="class-name-in-header">TaskJuggler::ReportTableElement</td>
50
- </tr>
51
- <tr class="top-aligned-row">
52
- <td><strong>In:</strong></td>
53
- <td>
54
-
55
-
56
- <a href="../../files/lib/reports/ReportTableElement_rb.html">
57
-
58
- lib/reports/ReportTableElement.rb
59
-
60
- </a>
61
-
62
-
63
- <br />
64
-
65
- </td>
66
- </tr>
67
-
68
-
69
- <tr class="top-aligned-row">
70
- <td><strong>Parent:</strong></td>
71
- <td>
72
-
73
- <a href="ReportElement.html">
74
-
75
- TaskJuggler::ReportElement
76
-
77
- </a>
78
-
79
- </td>
80
- </tr>
81
-
82
- </table>
83
- </div>
84
- <!-- banner header -->
85
-
86
- <div id="bodyContent">
87
-
88
- <div id="contextContent">
89
-
90
- <div id="description">
91
- <p>
92
- This is base class for all types of tabular report elements. All tabular
93
- report elements are converted to an abstract (output independent)
94
- intermediate form first, before the are turned into the requested output
95
- format.
96
- </p>
97
-
98
- </div>
99
-
100
- </div>
101
-
102
-
103
- <div id="method-list">
104
- <h3 class="section-bar">Methods</h3>
105
-
106
- <div class="name-list">
107
-
108
- <a href="#M000364">generateHeaderCell</a>&nbsp;&nbsp;
109
-
110
- <a href="#M000361">generateIntermediateFormat</a>&nbsp;&nbsp;
111
-
112
- <a href="#M000366">generateResourceList</a>&nbsp;&nbsp;
113
-
114
- <a href="#M000365">generateTaskList</a>&nbsp;&nbsp;
115
-
116
- <a href="#M000360">new</a>&nbsp;&nbsp;
117
-
118
- <a href="#M000363">to_csv</a>&nbsp;&nbsp;
119
-
120
- <a href="#M000362">to_html</a>&nbsp;&nbsp;
121
-
122
- </div>
123
- </div>
124
-
125
- </div>
126
-
127
- <!-- if includes -->
128
-
129
- <div id="section">
130
-
131
-
132
-
133
- <div id="attribute-list">
134
- <h3 class="section-bar">Attributes</h3>
135
-
136
- <div class="name-list">
137
- <table>
138
-
139
- <tr class="top-aligned-row context-row">
140
- <td class="context-item-name">legend</td>
141
-
142
- <td class="context-item-value">&nbsp;[R]&nbsp;</td>
143
-
144
- <td class="context-item-desc"></td>
145
- </tr>
146
-
147
- </table>
148
- </div>
149
- </div>
150
-
151
-
152
- <!-- if method_list -->
153
-
154
- <div id="methods">
155
-
156
- <h3 class="section-bar">Public Class methods</h3>
157
-
158
-
159
- <div id="method-M000360" class="method-detail">
160
- <a name="M000360"></a>
161
-
162
- <div class="method-heading">
163
-
164
- <a href="#M000360" class="method-signature">
165
-
166
- <span class="method-name">new</span><span class="method-args">(report)</span>
167
-
168
- </a>
169
-
170
- </div>
171
-
172
- <div class="method-description">
173
-
174
- <p>
175
- Generate a new <a href="ReportTableElement.html">ReportTableElement</a>
176
- object.
177
- </p>
178
-
179
- <p><a class="source-toggle" href="#"
180
- onclick="toggleCode('M000360-source');return false;">[Source]</a></p>
181
- <div class="method-source-code" id="M000360-source">
182
- <pre>
183
- <span class="ruby-comment cmt"># File lib/reports/ReportTableElement.rb, line 29</span>
184
- 29: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">report</span>)
185
- 30: <span class="ruby-keyword kw">super</span>
186
- 31:
187
- 32: <span class="ruby-comment cmt"># Reference to the intermediate representation.</span>
188
- 33: <span class="ruby-ivar">@table</span> = <span class="ruby-keyword kw">nil</span>
189
- 34:
190
- 35: <span class="ruby-ivar">@legend</span> = <span class="ruby-constant">ReportTableLegend</span>.<span class="ruby-identifier">new</span>
191
- 36: <span class="ruby-keyword kw">end</span>
192
- </pre>
193
- </div>
194
-
195
- </div>
196
- </div>
197
-
198
-
199
- <h3 class="section-bar">Public Instance methods</h3>
200
-
201
-
202
- <div id="method-M000361" class="method-detail">
203
- <a name="M000361"></a>
204
-
205
- <div class="method-heading">
206
-
207
- <a href="#M000361" class="method-signature">
208
-
209
- <span class="method-name">generateIntermediateFormat</span><span class="method-args">()</span>
210
-
211
- </a>
212
-
213
- </div>
214
-
215
- <div class="method-description">
216
-
217
- <p>
218
- This is an abstract member that all sub classes must re-implement. It may
219
- or may not do something though.
220
- </p>
221
-
222
- <p><a class="source-toggle" href="#"
223
- onclick="toggleCode('M000361-source');return false;">[Source]</a></p>
224
- <div class="method-source-code" id="M000361-source">
225
- <pre>
226
- <span class="ruby-comment cmt"># File lib/reports/ReportTableElement.rb, line 40</span>
227
- 40: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateIntermediateFormat</span>
228
- 41: <span class="ruby-identifier">raise</span> <span class="ruby-value str">'This function must be overriden by derived classes.'</span>
229
- 42: <span class="ruby-keyword kw">end</span>
230
- </pre>
231
- </div>
232
-
233
- </div>
234
- </div>
235
-
236
-
237
- <div id="method-M000363" class="method-detail">
238
- <a name="M000363"></a>
239
-
240
- <div class="method-heading">
241
-
242
- <a href="#M000363" class="method-signature">
243
-
244
- <span class="method-name">to_csv</span><span class="method-args">()</span>
245
-
246
- </a>
247
-
248
- </div>
249
-
250
- <div class="method-description">
251
-
252
- <p>
253
- Convert the <a href="ReportElement.html">ReportElement</a> into an Array of
254
- Arrays. It has one Array for each line. The nested Arrays have one <a
255
- href="../String.html">String</a> for each column.
256
- </p>
257
-
258
- <p><a class="source-toggle" href="#"
259
- onclick="toggleCode('M000363-source');return false;">[Source]</a></p>
260
- <div class="method-source-code" id="M000363-source">
261
- <pre>
262
- <span class="ruby-comment cmt"># File lib/reports/ReportTableElement.rb, line 123</span>
263
- 123: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_csv</span>
264
- 124: <span class="ruby-ivar">@table</span>.<span class="ruby-identifier">to_csv</span>
265
- 125: <span class="ruby-keyword kw">end</span>
266
- </pre>
267
- </div>
268
-
269
- </div>
270
- </div>
271
-
272
-
273
- <div id="method-M000362" class="method-detail">
274
- <a name="M000362"></a>
275
-
276
- <div class="method-heading">
277
-
278
- <a href="#M000362" class="method-signature">
279
-
280
- <span class="method-name">to_html</span><span class="method-args">()</span>
281
-
282
- </a>
283
-
284
- </div>
285
-
286
- <div class="method-description">
287
-
288
- <p>
289
- Turn the <a href="ReportTableElement.html">ReportTableElement</a> into an
290
- equivalent HTML element tree.
291
- </p>
292
-
293
- <p><a class="source-toggle" href="#"
294
- onclick="toggleCode('M000362-source');return false;">[Source]</a></p>
295
- <div class="method-source-code" id="M000362-source">
296
- <pre>
297
- <span class="ruby-comment cmt"># File lib/reports/ReportTableElement.rb, line 45</span>
298
- 45: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_html</span>
299
- 46: <span class="ruby-identifier">html</span> = []
300
- 47:
301
- 48: <span class="ruby-comment cmt"># Make sure we have some margins around the report.</span>
302
- 49: <span class="ruby-identifier">html</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">frame</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'div'</span>,
303
- 50: <span class="ruby-value str">'style'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'margin: 35px 5% 25px 5%; '</span>))
304
- 51:
305
- 52: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@prolog</span>
306
- 53: <span class="ruby-ivar">@prolog</span>.<span class="ruby-identifier">sectionNumbers</span> = <span class="ruby-keyword kw">false</span>
307
- 54: <span class="ruby-identifier">frame</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-ivar">@prolog</span>.<span class="ruby-identifier">to_html</span>
308
- 55: <span class="ruby-keyword kw">end</span>
309
- 56:
310
- 57: <span class="ruby-identifier">frame</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">table</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'table'</span>, <span class="ruby-value str">'summary'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'Report Table'</span>,
311
- 58: <span class="ruby-value str">'cellspacing'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'2'</span>, <span class="ruby-value str">'border'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'0'</span>,
312
- 59: <span class="ruby-value str">'cellpadding'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'0'</span>, <span class="ruby-value str">'align'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'center'</span>,
313
- 60: <span class="ruby-value str">'class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'tabback'</span>))
314
- 61:
315
- 62: <span class="ruby-comment cmt"># The headline is put in a sub-table to appear bigger.</span>
316
- 63: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@headline</span>
317
- 64: <span class="ruby-identifier">table</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">thead</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'thead'</span>))
318
- 65: <span class="ruby-identifier">thead</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">tr</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'tr'</span>))
319
- 66: <span class="ruby-identifier">tr</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">td</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'td'</span>))
320
- 67: <span class="ruby-identifier">td</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">table1</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'table'</span>, <span class="ruby-value str">'summary'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'headline'</span>,
321
- 68: <span class="ruby-value str">'cellspacing'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'1'</span>, <span class="ruby-value str">'border'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'0'</span>,
322
- 69: <span class="ruby-value str">'cellpadding'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'5'</span>,
323
- 70: <span class="ruby-value str">'align'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'center'</span>, <span class="ruby-value str">'width'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'100%'</span>))
324
- 71: <span class="ruby-identifier">table1</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">tr1</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'tr'</span>))
325
- 72: <span class="ruby-identifier">tr1</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">td1</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'td'</span>, <span class="ruby-value str">'align'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'center'</span>,
326
- 73: <span class="ruby-value str">'style'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'font-size:16px; '</span> <span class="ruby-operator">+</span>
327
- 74: <span class="ruby-value str">'font-weight:bold'</span>,
328
- 75: <span class="ruby-value str">'class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'tabfront'</span>))
329
- 76: <span class="ruby-identifier">td1</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">XMLNamedText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@headline</span>, <span class="ruby-value str">'p'</span>)
330
- 77: <span class="ruby-keyword kw">end</span>
331
- 78:
332
- 79: <span class="ruby-comment cmt"># Now generate the actual table with the data.</span>
333
- 80: <span class="ruby-identifier">table</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">tbody</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'tbody'</span>))
334
- 81: <span class="ruby-identifier">tbody</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">tr</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'tr'</span>))
335
- 82: <span class="ruby-identifier">tr</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">td</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'td'</span>))
336
- 83: <span class="ruby-identifier">td</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-ivar">@table</span>.<span class="ruby-identifier">to_html</span>
337
- 84:
338
- 85: <span class="ruby-comment cmt"># Embedd the caption as RichText into the table footer.</span>
339
- 86: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@caption</span>
340
- 87: <span class="ruby-identifier">tbody</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">tr</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'tr'</span>))
341
- 88: <span class="ruby-identifier">tr</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">td</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'td'</span>, <span class="ruby-value str">'class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'tabback'</span>))
342
- 89: <span class="ruby-identifier">td</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">div</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'div'</span>, <span class="ruby-value str">'class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'caption'</span>,
343
- 90: <span class="ruby-value str">'style'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'margin:1px'</span>))
344
- 91: <span class="ruby-ivar">@caption</span>.<span class="ruby-identifier">sectionNumbers</span> = <span class="ruby-keyword kw">false</span>
345
- 92: <span class="ruby-identifier">div</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-ivar">@caption</span>.<span class="ruby-identifier">to_html</span>
346
- 93: <span class="ruby-keyword kw">end</span>
347
- 94:
348
- 95: <span class="ruby-comment cmt"># A sub-table with the legend.</span>
349
- 96: <span class="ruby-identifier">tbody</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">tr</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'tr'</span>, <span class="ruby-value str">'style'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'font-size:10px;'</span>))
350
- 97: <span class="ruby-identifier">tr</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">td</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'td'</span>, <span class="ruby-value str">'style'</span> =<span class="ruby-operator">&gt;</span>
351
- 98: <span class="ruby-value str">'padding-left:1px; padding-right:1px;'</span>))
352
- 99: <span class="ruby-identifier">td</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-ivar">@legend</span>.<span class="ruby-identifier">to_html</span>
353
- 100:
354
- 101: <span class="ruby-comment cmt"># The footer with some administrative information.</span>
355
- 102: <span class="ruby-identifier">tbody</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">tr</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'tr'</span>, <span class="ruby-value str">'style'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'font-size:9px'</span>))
356
- 103: <span class="ruby-identifier">tr</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">td</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'td'</span>, <span class="ruby-value str">'class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'tabfooter'</span>))
357
- 104: <span class="ruby-identifier">td</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">XMLText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@project</span>[<span class="ruby-value str">'copyright'</span>] <span class="ruby-operator">+</span> <span class="ruby-value str">&quot; - &quot;</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'copyright'</span>]
358
- 105: <span class="ruby-identifier">td</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">XMLText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-node">&quot;Project: #{@project['name']} &quot;</span> <span class="ruby-operator">+</span>
359
- 106: <span class="ruby-node">&quot;Version: #{@project['version']} - &quot;</span> <span class="ruby-operator">+</span>
360
- 107: <span class="ruby-node">&quot;Created on #{TjTime.now.to_s(&quot;%Y-%m-%d %H:%M:%S&quot;)} &quot;</span> <span class="ruby-operator">+</span>
361
- 108: <span class="ruby-value str">&quot;with &quot;</span>)
362
- 109: <span class="ruby-identifier">td</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">XMLNamedText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-node">&quot;#{AppConfig.packageName}&quot;</span>, <span class="ruby-value str">'a'</span>,
363
- 110: <span class="ruby-value str">'href'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-node">&quot;#{AppConfig.contact}&quot;</span>)
364
- 111: <span class="ruby-identifier">td</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">XMLText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-node">&quot; v#{AppConfig.version}&quot;</span>)
365
- 112:
366
- 113: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@epilog</span>
367
- 114: <span class="ruby-ivar">@epilog</span>.<span class="ruby-identifier">sectionNumbers</span> = <span class="ruby-keyword kw">false</span>
368
- 115: <span class="ruby-identifier">frame</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-ivar">@epilog</span>.<span class="ruby-identifier">to_html</span>
369
- 116: <span class="ruby-keyword kw">end</span>
370
- 117:
371
- 118: <span class="ruby-identifier">html</span>
372
- 119: <span class="ruby-keyword kw">end</span>
373
- </pre>
374
- </div>
375
-
376
- </div>
377
- </div>
378
-
379
-
380
- <h3 class="section-bar">Protected Instance methods</h3>
381
-
382
-
383
- <div id="method-M000364" class="method-detail">
384
- <a name="M000364"></a>
385
-
386
- <div class="method-heading">
387
-
388
- <a href="#M000364" class="method-signature">
389
-
390
- <span class="method-name">generateHeaderCell</span><span class="method-args">(columnDef)</span>
391
-
392
- </a>
393
-
394
- </div>
395
-
396
- <div class="method-description">
397
-
398
- <p>
399
- Generates cells for the table header. <em>columnDef</em> is the <a
400
- href="TableColumnDefinition.html">TableColumnDefinition</a> object that
401
- describes the column. Based on the id of the column different actions need
402
- to be taken to generate the header text.
403
- </p>
404
-
405
- <p><a class="source-toggle" href="#"
406
- onclick="toggleCode('M000364-source');return false;">[Source]</a></p>
407
- <div class="method-source-code" id="M000364-source">
408
- <pre>
409
- <span class="ruby-comment cmt"># File lib/reports/ReportTableElement.rb, line 132</span>
410
- 132: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateHeaderCell</span>(<span class="ruby-identifier">columnDef</span>)
411
- 133: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">id</span>
412
- 134: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'chart'</span>
413
- 135: <span class="ruby-comment cmt"># For the 'chart' column we generate a GanttChart object. The sizes are</span>
414
- 136: <span class="ruby-comment cmt"># set so that the lines of the Gantt chart line up with the lines of the</span>
415
- 137: <span class="ruby-comment cmt"># table.</span>
416
- 138: <span class="ruby-identifier">gantt</span> = <span class="ruby-constant">GanttChart</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@now</span>, <span class="ruby-ivar">@weekStartsMonday</span>, <span class="ruby-keyword kw">self</span>)
417
- 139: <span class="ruby-identifier">gantt</span>.<span class="ruby-identifier">generateByScale</span>(<span class="ruby-ivar">@start</span>, <span class="ruby-ivar">@end</span>, <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">scale</span>)
418
- 140: <span class="ruby-comment cmt"># The header consists of 2 lines separated by a 1 pixel boundary.</span>
419
- 141: <span class="ruby-identifier">gantt</span>.<span class="ruby-identifier">header</span>.<span class="ruby-identifier">height</span> = <span class="ruby-ivar">@table</span>.<span class="ruby-identifier">headerLineHeight</span> <span class="ruby-operator">*</span> <span class="ruby-value">2</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>
420
- 142: <span class="ruby-comment cmt"># The maximum width of the chart. In case it needs more space, a</span>
421
- 143: <span class="ruby-comment cmt"># scrollbar is shown or the chart gets truncated depending on the output</span>
422
- 144: <span class="ruby-comment cmt"># format.</span>
423
- 145: <span class="ruby-identifier">gantt</span>.<span class="ruby-identifier">viewWidth</span> = <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">width</span>
424
- 146: <span class="ruby-identifier">column</span> = <span class="ruby-constant">ReportTableColumn</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@table</span>, <span class="ruby-identifier">columnDef</span>, <span class="ruby-value str">''</span>)
425
- 147: <span class="ruby-identifier">column</span>.<span class="ruby-identifier">cell1</span>.<span class="ruby-identifier">special</span> = <span class="ruby-identifier">gantt</span>
426
- 148: <span class="ruby-identifier">column</span>.<span class="ruby-identifier">cell2</span>.<span class="ruby-identifier">hidden</span> = <span class="ruby-keyword kw">true</span>
427
- 149: <span class="ruby-identifier">column</span>.<span class="ruby-identifier">scrollbar</span> = <span class="ruby-identifier">gantt</span>.<span class="ruby-identifier">hasScrollbar?</span>
428
- 150: <span class="ruby-ivar">@table</span>.<span class="ruby-identifier">equiLines</span> = <span class="ruby-keyword kw">true</span>
429
- 151: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'hourly'</span>
430
- 152: <span class="ruby-identifier">genCalChartHeader</span>(<span class="ruby-identifier">columnDef</span>, <span class="ruby-ivar">@start</span>.<span class="ruby-identifier">midnight</span>, <span class="ruby-identifier">:sameTimeNextHour</span>,
431
- 153: <span class="ruby-identifier">:weekdayAndDate</span>, <span class="ruby-identifier">:hour</span>)
432
- 154: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'daily'</span>
433
- 155: <span class="ruby-identifier">genCalChartHeader</span>(<span class="ruby-identifier">columnDef</span>, <span class="ruby-ivar">@start</span>.<span class="ruby-identifier">midnight</span>, <span class="ruby-identifier">:sameTimeNextDay</span>,
434
- 156: <span class="ruby-identifier">:shortMonthName</span>, <span class="ruby-identifier">:day</span>)
435
- 157: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'weekly'</span>
436
- 158: <span class="ruby-identifier">genCalChartHeader</span>(<span class="ruby-identifier">columnDef</span>, <span class="ruby-ivar">@start</span>.<span class="ruby-identifier">beginOfWeek</span>(<span class="ruby-ivar">@weekStartsMonday</span>),
437
- 159: <span class="ruby-identifier">:sameTimeNextWeek</span>, <span class="ruby-identifier">:shortMonthName</span>, <span class="ruby-identifier">:day</span>)
438
- 160: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'monthly'</span>
439
- 161: <span class="ruby-identifier">genCalChartHeader</span>(<span class="ruby-identifier">columnDef</span>, <span class="ruby-ivar">@start</span>.<span class="ruby-identifier">beginOfMonth</span>, <span class="ruby-identifier">:sameTimeNextMonth</span>,
440
- 162: <span class="ruby-identifier">:year</span>, <span class="ruby-identifier">:shortMonthName</span>)
441
- 163: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'quarterly'</span>
442
- 164: <span class="ruby-identifier">genCalChartHeader</span>(<span class="ruby-identifier">columnDef</span>, <span class="ruby-ivar">@start</span>.<span class="ruby-identifier">beginOfQuarter</span>,
443
- 165: <span class="ruby-identifier">:sameTimeNextQuarter</span>, <span class="ruby-identifier">:year</span>, <span class="ruby-identifier">:quarterName</span>)
444
- 166: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'yearly'</span>
445
- 167: <span class="ruby-identifier">genCalChartHeader</span>(<span class="ruby-identifier">columnDef</span>, <span class="ruby-ivar">@start</span>.<span class="ruby-identifier">beginOfYear</span>, <span class="ruby-identifier">:sameTimeNextYear</span>,
446
- 168: <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">:year</span>)
447
- 169: <span class="ruby-keyword kw">else</span>
448
- 170: <span class="ruby-comment cmt"># This is the most common case. It does not need any special treatment.</span>
449
- 171: <span class="ruby-comment cmt"># We just set the pre-defined or user-defined column title in the first</span>
450
- 172: <span class="ruby-comment cmt"># row of the header. The 2nd row is not visible.</span>
451
- 173: <span class="ruby-identifier">column</span> = <span class="ruby-constant">ReportTableColumn</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@table</span>, <span class="ruby-identifier">columnDef</span>, <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">title</span>)
452
- 174: <span class="ruby-identifier">column</span>.<span class="ruby-identifier">cell1</span>.<span class="ruby-identifier">rows</span> = <span class="ruby-value">2</span>
453
- 175: <span class="ruby-identifier">column</span>.<span class="ruby-identifier">cell2</span>.<span class="ruby-identifier">hidden</span> = <span class="ruby-keyword kw">true</span>
454
- 176: <span class="ruby-keyword kw">end</span>
455
- 177: <span class="ruby-keyword kw">end</span>
456
- </pre>
457
- </div>
458
-
459
- </div>
460
- </div>
461
-
462
-
463
- <div id="method-M000366" class="method-detail">
464
- <a name="M000366"></a>
465
-
466
- <div class="method-heading">
467
-
468
- <a href="#M000366" class="method-signature">
469
-
470
- <span class="method-name">generateResourceList</span><span class="method-args">(resourceList, taskList, scopeLine)</span>
471
-
472
- </a>
473
-
474
- </div>
475
-
476
- <div class="method-description">
477
-
478
- <p>
479
- Generate a <a href="ReportTableLine.html">ReportTableLine</a> for each of
480
- the resources in <em>resourceList</em>. In case <em>taskList</em> is not
481
- nil, it also generates the nested task lines for each task that the
482
- resource is assigned to. If <em>scopeLine</em> is defined, the generated
483
- resource lines will be within the scope this task line.
484
- </p>
485
-
486
- <p><a class="source-toggle" href="#"
487
- onclick="toggleCode('M000366-source');return false;">[Source]</a></p>
488
- <div class="method-source-code" id="M000366-source">
489
- <pre>
490
- <span class="ruby-comment cmt"># File lib/reports/ReportTableElement.rb, line 238</span>
491
- 238: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateResourceList</span>(<span class="ruby-identifier">resourceList</span>, <span class="ruby-identifier">taskList</span>, <span class="ruby-identifier">scopeLine</span>)
492
- 239: <span class="ruby-identifier">queryAttrs</span> = { <span class="ruby-value str">'scopeProperty'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">scopeLine</span> <span class="ruby-value">? </span><span class="ruby-identifier">scopeLine</span>.<span class="ruby-identifier">property</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">nil</span>,
493
- 240: <span class="ruby-value str">'loadUnit'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@loadUnit</span>,
494
- 241: <span class="ruby-value str">'numberFormat'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@numberFormat</span>,
495
- 242: <span class="ruby-value str">'currencyFormat'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@currencyFormat</span>,
496
- 243: <span class="ruby-value str">'start'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@start</span>, <span class="ruby-value str">'end'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@end</span>,
497
- 244: <span class="ruby-value str">'costAccount'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@costAccount</span>,
498
- 245: <span class="ruby-value str">'revenueAccount'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@revenueAccount</span> }
499
- 246: <span class="ruby-identifier">resourceList</span>.<span class="ruby-identifier">query</span> = <span class="ruby-constant">Query</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">queryAttrs</span>)
500
- 247: <span class="ruby-identifier">resourceList</span>.<span class="ruby-identifier">sort!</span>
501
- 248:
502
- 249: <span class="ruby-comment cmt"># The primary line counter. Is not used for enclosed lines.</span>
503
- 250: <span class="ruby-identifier">no</span> = <span class="ruby-value">0</span>
504
- 251: <span class="ruby-comment cmt"># The scope line counter. It's reset for each new scope.</span>
505
- 252: <span class="ruby-identifier">lineNo</span> = <span class="ruby-identifier">scopeLine</span> <span class="ruby-value">? </span><span class="ruby-identifier">scopeLine</span>.<span class="ruby-identifier">lineNo</span> <span class="ruby-operator">:</span> <span class="ruby-value">0</span>
506
- 253: <span class="ruby-comment cmt"># Init the variable to get a larger scope</span>
507
- 254: <span class="ruby-identifier">line</span> = <span class="ruby-keyword kw">nil</span>
508
- 255: <span class="ruby-identifier">resourceList</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">resource</span><span class="ruby-operator">|</span>
509
- 256: <span class="ruby-identifier">no</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
510
- 257: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">activity</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">lineNo</span> <span class="ruby-operator">%</span> <span class="ruby-value">10</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
511
- 258: <span class="ruby-identifier">lineNo</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
512
- 259: <span class="ruby-ivar">@scenarios</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">scenarioIdx</span><span class="ruby-operator">|</span>
513
- 260: <span class="ruby-comment cmt"># Generate line for each resource.</span>
514
- 261: <span class="ruby-identifier">line</span> = <span class="ruby-constant">ReportTableLine</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@table</span>, <span class="ruby-identifier">resource</span>, <span class="ruby-identifier">scopeLine</span>)
515
- 262:
516
- 263: <span class="ruby-identifier">line</span>.<span class="ruby-identifier">no</span> = <span class="ruby-identifier">no</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">scopeLine</span>
517
- 264: <span class="ruby-identifier">line</span>.<span class="ruby-identifier">lineNo</span> = <span class="ruby-identifier">lineNo</span>
518
- 265: <span class="ruby-identifier">line</span>.<span class="ruby-identifier">subLineNo</span> = <span class="ruby-ivar">@table</span>.<span class="ruby-identifier">lines</span>
519
- 266: <span class="ruby-identifier">setIndent</span>(<span class="ruby-identifier">line</span>, <span class="ruby-ivar">@resourceRoot</span>, <span class="ruby-identifier">resourceList</span>.<span class="ruby-identifier">treeMode?</span>)
520
- 267:
521
- 268: <span class="ruby-comment cmt"># Generate a cell for each column in this line.</span>
522
- 269: <span class="ruby-ivar">@columns</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">column</span><span class="ruby-operator">|</span>
523
- 270: <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">generateTableCell</span>(<span class="ruby-identifier">line</span>, <span class="ruby-identifier">resource</span>, <span class="ruby-identifier">column</span>, <span class="ruby-identifier">scenarioIdx</span>)
524
- 271: <span class="ruby-keyword kw">end</span>
525
- 272: <span class="ruby-keyword kw">end</span>
526
- 273:
527
- 274: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">taskList</span>
528
- 275: <span class="ruby-comment cmt"># If we have a taskList we generate nested lines for each of the</span>
529
- 276: <span class="ruby-comment cmt"># tasks that the resource is assigned to and pass the user-defined</span>
530
- 277: <span class="ruby-comment cmt"># filter.</span>
531
- 278: <span class="ruby-identifier">taskList</span>.<span class="ruby-identifier">setSorting</span>(<span class="ruby-ivar">@sortTasks</span>)
532
- 279: <span class="ruby-identifier">assignedTaskList</span> = <span class="ruby-identifier">filterTaskList</span>(<span class="ruby-identifier">taskList</span>, <span class="ruby-identifier">resource</span>,
533
- 280: <span class="ruby-ivar">@hideTask</span>, <span class="ruby-ivar">@rollupTask</span>)
534
- 281: <span class="ruby-identifier">assignedTaskList</span>.<span class="ruby-identifier">sort!</span>
535
- 282: <span class="ruby-identifier">lineNo</span> = <span class="ruby-identifier">generateTaskList</span>(<span class="ruby-identifier">assignedTaskList</span>, <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">line</span>)
536
- 283: <span class="ruby-keyword kw">end</span>
537
- 284: <span class="ruby-keyword kw">end</span>
538
- 285: <span class="ruby-identifier">lineNo</span>
539
- 286: <span class="ruby-keyword kw">end</span>
540
- </pre>
541
- </div>
542
-
543
- </div>
544
- </div>
545
-
546
-
547
- <div id="method-M000365" class="method-detail">
548
- <a name="M000365"></a>
549
-
550
- <div class="method-heading">
551
-
552
- <a href="#M000365" class="method-signature">
553
-
554
- <span class="method-name">generateTaskList</span><span class="method-args">(taskList, resourceList, scopeLine)</span>
555
-
556
- </a>
557
-
558
- </div>
559
-
560
- <div class="method-description">
561
-
562
- <p>
563
- Generate a <a href="ReportTableLine.html">ReportTableLine</a> for each of
564
- the tasks in <em>taskList</em>. In case <em>resourceList</em> is not nil,
565
- it also generates the nested resource lines for each resource that is
566
- assigned to the particular task. If <em>scopeLine</em> is defined, the
567
- generated task lines will be within the scope this resource line.
568
- </p>
569
-
570
- <p><a class="source-toggle" href="#"
571
- onclick="toggleCode('M000365-source');return false;">[Source]</a></p>
572
- <div class="method-source-code" id="M000365-source">
573
- <pre>
574
- <span class="ruby-comment cmt"># File lib/reports/ReportTableElement.rb, line 184</span>
575
- 184: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateTaskList</span>(<span class="ruby-identifier">taskList</span>, <span class="ruby-identifier">resourceList</span>, <span class="ruby-identifier">scopeLine</span>)
576
- 185: <span class="ruby-identifier">queryAttrs</span> = { <span class="ruby-value str">'scopeProperty'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">scopeLine</span> <span class="ruby-value">? </span><span class="ruby-identifier">scopeLine</span>.<span class="ruby-identifier">property</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">nil</span>,
577
- 186: <span class="ruby-value str">'loadUnit'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@loadUnit</span>,
578
- 187: <span class="ruby-value str">'numberFormat'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@numberFormat</span>,
579
- 188: <span class="ruby-value str">'currencyFormat'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@currencyFormat</span>,
580
- 189: <span class="ruby-value str">'start'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@start</span>, <span class="ruby-value str">'end'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@end</span>,
581
- 190: <span class="ruby-value str">'costAccount'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@costAccount</span>,
582
- 191: <span class="ruby-value str">'revenueAccount'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@revenueAccount</span> }
583
- 192: <span class="ruby-identifier">taskList</span>.<span class="ruby-identifier">query</span> = <span class="ruby-constant">Query</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">queryAttrs</span>)
584
- 193: <span class="ruby-identifier">taskList</span>.<span class="ruby-identifier">sort!</span>
585
- 194:
586
- 195: <span class="ruby-comment cmt"># The primary line counter. Is not used for enclosed lines.</span>
587
- 196: <span class="ruby-identifier">no</span> = <span class="ruby-value">0</span>
588
- 197: <span class="ruby-comment cmt"># The scope line counter. It's reset for each new scope.</span>
589
- 198: <span class="ruby-identifier">lineNo</span> = <span class="ruby-identifier">scopeLine</span> <span class="ruby-value">? </span><span class="ruby-identifier">scopeLine</span>.<span class="ruby-identifier">lineNo</span> <span class="ruby-operator">:</span> <span class="ruby-value">0</span>
590
- 199: <span class="ruby-comment cmt"># Init the variable to get a larger scope</span>
591
- 200: <span class="ruby-identifier">line</span> = <span class="ruby-keyword kw">nil</span>
592
- 201: <span class="ruby-identifier">taskList</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">task</span><span class="ruby-operator">|</span>
593
- 202: <span class="ruby-identifier">no</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
594
- 203: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">activity</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">lineNo</span> <span class="ruby-operator">%</span> <span class="ruby-value">10</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
595
- 204: <span class="ruby-identifier">lineNo</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
596
- 205: <span class="ruby-ivar">@scenarios</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">scenarioIdx</span><span class="ruby-operator">|</span>
597
- 206: <span class="ruby-comment cmt"># Generate line for each task.</span>
598
- 207: <span class="ruby-identifier">line</span> = <span class="ruby-constant">ReportTableLine</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@table</span>, <span class="ruby-identifier">task</span>, <span class="ruby-identifier">scopeLine</span>)
599
- 208:
600
- 209: <span class="ruby-identifier">line</span>.<span class="ruby-identifier">no</span> = <span class="ruby-identifier">no</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">scopeLine</span>
601
- 210: <span class="ruby-identifier">line</span>.<span class="ruby-identifier">lineNo</span> = <span class="ruby-identifier">lineNo</span>
602
- 211: <span class="ruby-identifier">line</span>.<span class="ruby-identifier">subLineNo</span> = <span class="ruby-ivar">@table</span>.<span class="ruby-identifier">lines</span>
603
- 212: <span class="ruby-identifier">setIndent</span>(<span class="ruby-identifier">line</span>, <span class="ruby-ivar">@taskRoot</span>, <span class="ruby-identifier">taskList</span>.<span class="ruby-identifier">treeMode?</span>)
604
- 213:
605
- 214: <span class="ruby-comment cmt"># Generate a cell for each column in this line.</span>
606
- 215: <span class="ruby-ivar">@columns</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">columnDef</span><span class="ruby-operator">|</span>
607
- 216: <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">generateTableCell</span>(<span class="ruby-identifier">line</span>, <span class="ruby-identifier">task</span>, <span class="ruby-identifier">columnDef</span>, <span class="ruby-identifier">scenarioIdx</span>)
608
- 217: <span class="ruby-keyword kw">end</span>
609
- 218: <span class="ruby-keyword kw">end</span>
610
- 219:
611
- 220: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">resourceList</span>
612
- 221: <span class="ruby-comment cmt"># If we have a resourceList we generate nested lines for each of the</span>
613
- 222: <span class="ruby-comment cmt"># resources that are assigned to this task and pass the user-defined</span>
614
- 223: <span class="ruby-comment cmt"># filter.</span>
615
- 224: <span class="ruby-identifier">resourceList</span>.<span class="ruby-identifier">setSorting</span>(<span class="ruby-ivar">@sortResources</span>)
616
- 225: <span class="ruby-identifier">assignedResourceList</span> = <span class="ruby-identifier">filterResourceList</span>(<span class="ruby-identifier">resourceList</span>, <span class="ruby-identifier">task</span>,
617
- 226: <span class="ruby-ivar">@hideResource</span>, <span class="ruby-ivar">@rollupResource</span>)
618
- 227: <span class="ruby-identifier">assignedResourceList</span>.<span class="ruby-identifier">sort!</span>
619
- 228: <span class="ruby-identifier">lineNo</span> = <span class="ruby-identifier">generateResourceList</span>(<span class="ruby-identifier">assignedResourceList</span>, <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">line</span>)
620
- 229: <span class="ruby-keyword kw">end</span>
621
- 230: <span class="ruby-keyword kw">end</span>
622
- 231: <span class="ruby-identifier">lineNo</span>
623
- 232: <span class="ruby-keyword kw">end</span>
624
- </pre>
625
- </div>
626
-
627
- </div>
628
- </div>
629
-
630
-
631
-
632
- </div>
633
-
634
-
635
-
636
-
637
- </div>
638
-
639
- <div id="validator-badges">
640
- <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
641
- </div>
642
-
643
- </body>
644
- </html>