taskjuggler 0.0.3 → 0.0.4

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 (495) hide show
  1. data/benchmarks/UTF-8-Strings.rb +58 -0
  2. data/data/css/tjmanual.css +52 -0
  3. data/data/css/tjreport.css +195 -0
  4. data/data/icons/details.png +0 -0
  5. data/data/icons/flag-green.png +0 -0
  6. data/data/icons/flag-red.png +0 -0
  7. data/data/icons/flag-yellow.png +0 -0
  8. data/data/icons/resource.png +0 -0
  9. data/data/icons/resourcegroup.png +0 -0
  10. data/data/icons/task.png +0 -0
  11. data/data/icons/taskgroup.png +0 -0
  12. data/data/icons/trend-down.png +0 -0
  13. data/data/icons/trend-flat.png +0 -0
  14. data/data/icons/trend-up.png +0 -0
  15. data/data/scripts/wz_tooltip.js +1301 -0
  16. data/doc/classes/AppConfig.html +298 -230
  17. data/doc/classes/Arguments.html +8 -8
  18. data/doc/classes/Object.html +7 -7
  19. data/doc/classes/String.html +89 -89
  20. data/doc/classes/TaskJuggler.html +396 -264
  21. data/doc/classes/TaskJuggler/Account.html +18 -18
  22. data/doc/classes/TaskJuggler/AccountAttribute.html +26 -26
  23. data/doc/classes/TaskJuggler/AccountScenario.html +12 -12
  24. data/doc/classes/TaskJuggler/Allocation.html +30 -30
  25. data/doc/classes/TaskJuggler/AllocationAttribute.html +26 -26
  26. data/doc/classes/TaskJuggler/AttributeBase.html +227 -115
  27. data/doc/classes/TaskJuggler/AttributeDefinition.html +6 -6
  28. data/doc/classes/TaskJuggler/BatchProcessor.html +117 -83
  29. data/doc/classes/TaskJuggler/Booking.html +18 -18
  30. data/doc/classes/TaskJuggler/BookingListAttribute.html +26 -26
  31. data/doc/classes/TaskJuggler/BooleanAttribute.html +26 -26
  32. data/doc/classes/TaskJuggler/CSVFile.html +24 -24
  33. data/doc/classes/TaskJuggler/CellSettingPattern.html +201 -0
  34. data/doc/classes/TaskJuggler/CellSettingPatternList.html +253 -0
  35. data/doc/classes/TaskJuggler/Charge.html +18 -18
  36. data/doc/classes/TaskJuggler/ChargeListAttribute.html +20 -20
  37. data/doc/classes/TaskJuggler/ChargeSet.html +37 -37
  38. data/doc/classes/TaskJuggler/ChargeSetListAttribute.html +26 -26
  39. data/doc/classes/TaskJuggler/ColumnListAttribute.html +20 -20
  40. data/doc/classes/TaskJuggler/ColumnTable.html +40 -40
  41. data/doc/classes/TaskJuggler/DateAttribute.html +54 -15
  42. data/doc/classes/TaskJuggler/DefinitionListAttribute.html +10 -10
  43. data/doc/classes/TaskJuggler/DependencyListAttribute.html +47 -47
  44. data/doc/classes/TaskJuggler/DurationAttribute.html +30 -30
  45. data/doc/classes/TaskJuggler/FixnumAttribute.html +20 -20
  46. data/doc/classes/TaskJuggler/FlagListAttribute.html +43 -43
  47. data/doc/classes/TaskJuggler/FloatAttribute.html +30 -30
  48. data/doc/classes/TaskJuggler/FormatListAttribute.html +21 -21
  49. data/doc/classes/TaskJuggler/GanttChart.html +48 -48
  50. data/doc/classes/TaskJuggler/GanttContainer.html +42 -42
  51. data/doc/classes/TaskJuggler/GanttHeader.html +12 -12
  52. data/doc/classes/TaskJuggler/GanttHeaderScaleItem.html +12 -12
  53. data/doc/classes/TaskJuggler/GanttLine.html +24 -24
  54. data/doc/classes/TaskJuggler/GanttLoadStack.html +18 -18
  55. data/doc/classes/TaskJuggler/GanttMilestone.html +42 -42
  56. data/doc/classes/TaskJuggler/GanttRouter.html +24 -24
  57. data/doc/classes/TaskJuggler/GanttTaskBar.html +42 -42
  58. data/doc/classes/TaskJuggler/HTMLDocument.html +13 -13
  59. data/doc/classes/TaskJuggler/HTMLGraphics.html +12 -12
  60. data/doc/classes/TaskJuggler/Interval.html +57 -57
  61. data/doc/classes/TaskJuggler/IntervalListAttribute.html +47 -47
  62. data/doc/classes/TaskJuggler/JobInfo.html +68 -12
  63. data/doc/classes/TaskJuggler/Journal.html +266 -20
  64. data/doc/classes/TaskJuggler/JournalEntry.html +79 -23
  65. data/doc/classes/TaskJuggler/JournalEntryList.html +454 -0
  66. data/doc/classes/TaskJuggler/KeywordArray.html +10 -10
  67. data/doc/classes/TaskJuggler/KeywordDocumentation.html +171 -170
  68. data/doc/classes/TaskJuggler/Limits.html +36 -36
  69. data/doc/classes/TaskJuggler/Limits/Limit.html +30 -30
  70. data/doc/classes/TaskJuggler/LimitsAttribute.html +40 -40
  71. data/doc/classes/TaskJuggler/ListAttributeBase.html +20 -20
  72. data/doc/classes/TaskJuggler/Log.html +145 -107
  73. data/doc/classes/TaskJuggler/LogicalAttribute.html +65 -36
  74. data/doc/classes/TaskJuggler/LogicalExpression.html +61 -24
  75. data/doc/classes/TaskJuggler/LogicalExpressionAttribute.html +20 -20
  76. data/doc/classes/TaskJuggler/LogicalFlag.html +31 -51
  77. data/doc/classes/TaskJuggler/LogicalFunction.html +64 -53
  78. data/doc/classes/TaskJuggler/LogicalOperation.html +103 -55
  79. data/doc/classes/TaskJuggler/Macro.html +6 -6
  80. data/doc/classes/TaskJuggler/MacroParser.html +36 -36
  81. data/doc/classes/TaskJuggler/MacroTable.html +37 -37
  82. data/doc/classes/TaskJuggler/Message.html +12 -12
  83. data/doc/classes/TaskJuggler/MessageHandler.html +32 -20
  84. data/doc/classes/TaskJuggler/Navigator.html +110 -46
  85. data/doc/classes/TaskJuggler/NavigatorElement.html +449 -0
  86. data/doc/classes/TaskJuggler/OnShiftCache.html +24 -24
  87. data/doc/classes/TaskJuggler/Project.html +1158 -893
  88. data/doc/classes/TaskJuggler/ProjectFileParser.html +94 -91
  89. data/doc/classes/TaskJuggler/PropertyAttribute.html +20 -20
  90. data/doc/classes/TaskJuggler/PropertyList.html +225 -155
  91. data/doc/classes/TaskJuggler/PropertySet.html +375 -332
  92. data/doc/classes/TaskJuggler/PropertyTreeNode.html +750 -510
  93. data/doc/classes/TaskJuggler/Query.html +404 -139
  94. data/doc/classes/TaskJuggler/{RTPNavigator.html → RTFNavigator.html} +57 -56
  95. data/doc/classes/TaskJuggler/RTFQuery.html +343 -0
  96. data/doc/classes/TaskJuggler/{RTPReport.html → RTFReport.html} +70 -67
  97. data/doc/classes/TaskJuggler/RealFormat.html +18 -18
  98. data/doc/classes/TaskJuggler/RealFormatAttribute.html +10 -10
  99. data/doc/classes/TaskJuggler/ReferenceAttribute.html +107 -40
  100. data/doc/classes/TaskJuggler/RemoteServiceManager.html +335 -0
  101. data/doc/classes/TaskJuggler/Report.html +66 -64
  102. data/doc/classes/TaskJuggler/ReportBase.html +112 -123
  103. data/doc/classes/TaskJuggler/ReportContext.html +43 -38
  104. data/doc/classes/TaskJuggler/ReportServer.html +320 -0
  105. data/doc/classes/TaskJuggler/ReportTable.html +42 -42
  106. data/doc/classes/TaskJuggler/ReportTableCell.html +221 -129
  107. data/doc/classes/TaskJuggler/ReportTableColumn.html +27 -27
  108. data/doc/classes/TaskJuggler/ReportTableLegend.html +24 -24
  109. data/doc/classes/TaskJuggler/ReportTableLine.html +126 -80
  110. data/doc/classes/TaskJuggler/Resource.html +12 -12
  111. data/doc/classes/TaskJuggler/ResourceListAttribute.html +82 -47
  112. data/doc/classes/TaskJuggler/ResourceListRE.html +43 -39
  113. data/doc/classes/TaskJuggler/ResourceScenario.html +413 -321
  114. data/doc/classes/TaskJuggler/RichText.html +64 -248
  115. data/doc/classes/TaskJuggler/RichTextAttribute.html +94 -30
  116. data/doc/classes/TaskJuggler/RichTextDocument.html +87 -85
  117. data/doc/classes/TaskJuggler/RichTextElement.html +456 -363
  118. data/doc/classes/TaskJuggler/RichTextException.html +13 -13
  119. data/doc/classes/TaskJuggler/{RichTextProtocolExample.html → RichTextFunctionExample.html} +64 -63
  120. data/doc/classes/TaskJuggler/{RichTextProtocolHandler.html → RichTextFunctionHandler.html} +42 -36
  121. data/doc/classes/TaskJuggler/RichTextIntermediate.html +563 -0
  122. data/doc/classes/TaskJuggler/RichTextParser.html +54 -51
  123. data/doc/classes/TaskJuggler/RichTextScanner.html +94 -92
  124. data/doc/classes/TaskJuggler/RichTextSnip.html +96 -60
  125. data/doc/classes/TaskJuggler/RichTextSyntaxRules.html +369 -227
  126. data/doc/classes/TaskJuggler/Scenario.html +6 -6
  127. data/doc/classes/TaskJuggler/ScenarioData.html +37 -37
  128. data/doc/classes/TaskJuggler/ScenarioListAttribute.html +31 -31
  129. data/doc/classes/TaskJuggler/Scoreboard.html +66 -66
  130. data/doc/classes/TaskJuggler/Shift.html +18 -18
  131. data/doc/classes/TaskJuggler/ShiftAssignment.html +54 -54
  132. data/doc/classes/TaskJuggler/ShiftAssignments.html +78 -78
  133. data/doc/classes/TaskJuggler/ShiftAssignmentsAttribute.html +40 -40
  134. data/doc/classes/TaskJuggler/ShiftScenario.html +24 -24
  135. data/doc/classes/TaskJuggler/SortListAttribute.html +22 -22
  136. data/doc/classes/TaskJuggler/SourceFileInfo.html +12 -12
  137. data/doc/classes/TaskJuggler/StringAttribute.html +30 -30
  138. data/doc/classes/TaskJuggler/SymbolAttribute.html +20 -20
  139. data/doc/classes/TaskJuggler/SyntaxReference.html +42 -42
  140. data/doc/classes/TaskJuggler/TOCEntry.html +12 -12
  141. data/doc/classes/TaskJuggler/TSResourceRecord.html +197 -0
  142. data/doc/classes/TaskJuggler/TSTaskRecord.html +215 -0
  143. data/doc/classes/TaskJuggler/TableColumnDefinition.html +64 -43
  144. data/doc/classes/TaskJuggler/TableOfContents.html +18 -18
  145. data/doc/classes/TaskJuggler/TableReport.html +447 -468
  146. data/doc/classes/TaskJuggler/Task.html +12 -12
  147. data/doc/classes/TaskJuggler/TaskDependency.html +12 -12
  148. data/doc/classes/TaskJuggler/TaskListAttribute.html +47 -47
  149. data/doc/classes/TaskJuggler/TaskListRE.html +43 -39
  150. data/doc/classes/TaskJuggler/TaskScenario.html +529 -282
  151. data/doc/classes/TaskJuggler/TextParser.html +215 -194
  152. data/doc/classes/TaskJuggler/TextParser/Pattern.html +97 -97
  153. data/doc/classes/TaskJuggler/TextParser/Rule.html +84 -84
  154. data/doc/classes/TaskJuggler/TextParser/StackElement.html +16 -15
  155. data/doc/classes/TaskJuggler/TextParser/TextParserResultArray.html +12 -12
  156. data/doc/classes/TaskJuggler/TextParser/TokenDoc.html +6 -6
  157. data/doc/classes/TaskJuggler/TextReport.html +77 -74
  158. data/doc/classes/TaskJuggler/TextScanner.html +294 -281
  159. data/doc/classes/TaskJuggler/TextScanner/BufferStreamHandle.html +70 -70
  160. data/doc/classes/TaskJuggler/TextScanner/FileStreamHandle.html +59 -60
  161. data/doc/classes/TaskJuggler/TextScanner/StreamHandle.html +12 -12
  162. data/doc/classes/TaskJuggler/TimeSheetReport.html +406 -0
  163. data/doc/classes/TaskJuggler/TjException.html +6 -6
  164. data/doc/classes/TaskJuggler/TjTime.html +522 -513
  165. data/doc/classes/TaskJuggler/TjpExample.html +25 -25
  166. data/doc/classes/TaskJuggler/TjpExportRE.html +21 -24
  167. data/doc/classes/TaskJuggler/TjpSyntaxRules.html +6177 -4318
  168. data/doc/classes/TaskJuggler/UserManual.html +212 -213
  169. data/doc/classes/TaskJuggler/WorkingHours.html +49 -49
  170. data/doc/classes/TaskJuggler/WorkingHoursAttribute.html +53 -53
  171. data/doc/classes/TaskJuggler/XMLBlob.html +21 -21
  172. data/doc/classes/TaskJuggler/XMLComment.html +21 -21
  173. data/doc/classes/TaskJuggler/XMLDocument.html +27 -26
  174. data/doc/classes/TaskJuggler/XMLElement.html +86 -50
  175. data/doc/classes/TaskJuggler/XMLNamedText.html +11 -11
  176. data/doc/classes/TaskJuggler/XMLText.html +36 -36
  177. data/doc/files/COPYING.html +1 -1
  178. data/doc/files/README.html +1 -1
  179. data/doc/files/lib/AccountScenario_rb.html +3 -2
  180. data/doc/files/lib/Account_rb.html +3 -2
  181. data/doc/files/lib/Allocation_rb.html +3 -2
  182. data/doc/files/lib/AppConfig_rb.html +5 -2
  183. data/doc/files/lib/AttributeBase_rb.html +3 -2
  184. data/doc/files/lib/AttributeDefinition_rb.html +3 -2
  185. data/doc/files/lib/Attributes_rb.html +3 -2
  186. data/doc/files/lib/BatchProcessor_rb.html +4 -3
  187. data/doc/files/lib/Booking_rb.html +3 -2
  188. data/doc/files/lib/ChargeSet_rb.html +3 -2
  189. data/doc/files/lib/Charge_rb.html +3 -2
  190. data/doc/files/lib/HTMLDocument_rb.html +3 -2
  191. data/doc/files/lib/Interval_rb.html +3 -2
  192. data/doc/files/lib/Journal_rb.html +4 -3
  193. data/doc/files/lib/KeywordArray_rb.html +3 -2
  194. data/doc/files/lib/KeywordDocumentation_rb.html +3 -2
  195. data/doc/files/lib/Limits_rb.html +3 -2
  196. data/doc/files/lib/Log_rb.html +3 -2
  197. data/doc/files/lib/LogicalExpression_rb.html +3 -2
  198. data/doc/files/lib/LogicalFunction_rb.html +3 -2
  199. data/doc/files/lib/LogicalOperation_rb.html +3 -2
  200. data/doc/files/lib/MacroParser_rb.html +3 -2
  201. data/doc/files/lib/MacroTable_rb.html +3 -2
  202. data/doc/files/lib/MessageHandler_rb.html +3 -2
  203. data/doc/files/lib/Message_rb.html +3 -2
  204. data/doc/files/lib/ProjectFileParser_rb.html +7 -4
  205. data/doc/files/lib/Project_rb.html +3 -2
  206. data/doc/files/lib/PropertyList_rb.html +3 -2
  207. data/doc/files/lib/PropertySet_rb.html +3 -2
  208. data/doc/files/lib/PropertyTreeNode_rb.html +3 -2
  209. data/doc/files/lib/Query_rb.html +3 -2
  210. data/doc/files/lib/{RTPNavigator_rb.html → RTFNavigator_rb.html} +8 -7
  211. data/doc/files/lib/RTFQuery_rb.html +121 -0
  212. data/doc/files/lib/{RTPReport_rb.html → RTFReport_rb.html} +8 -7
  213. data/doc/files/lib/RealFormat_rb.html +3 -2
  214. data/doc/files/lib/RemoteServiceManager_rb.html +117 -0
  215. data/doc/files/lib/ReportServer_rb.html +107 -0
  216. data/doc/files/lib/ResourceScenario_rb.html +3 -2
  217. data/doc/files/lib/Resource_rb.html +3 -2
  218. data/doc/files/lib/RichTextDocument_rb.html +4 -3
  219. data/doc/files/lib/RichTextElement_rb.html +3 -2
  220. data/doc/files/lib/{RichTextProtocolExample_rb.html → RichTextFunctionExample_rb.html} +8 -7
  221. data/doc/files/lib/{RichTextProtocolHandler_rb.html → RichTextFunctionHandler_rb.html} +7 -6
  222. data/doc/files/lib/RichTextParser_rb.html +3 -2
  223. data/doc/files/lib/RichTextScanner_rb.html +3 -2
  224. data/doc/files/lib/RichTextSnip_rb.html +3 -2
  225. data/doc/files/lib/RichTextSyntaxRules_rb.html +3 -2
  226. data/doc/files/lib/RichText_rb.html +3 -2
  227. data/doc/files/lib/ScenarioData_rb.html +3 -2
  228. data/doc/files/lib/Scenario_rb.html +3 -2
  229. data/doc/files/lib/Scoreboard_rb.html +3 -2
  230. data/doc/files/lib/ShiftAssignments_rb.html +3 -2
  231. data/doc/files/lib/ShiftScenario_rb.html +3 -2
  232. data/doc/files/lib/Shift_rb.html +3 -2
  233. data/doc/files/lib/SourceFileInfo_rb.html +3 -2
  234. data/doc/files/lib/SyntaxReference_rb.html +3 -2
  235. data/doc/files/lib/TOCEntry_rb.html +3 -2
  236. data/doc/files/lib/TableColumnDefinition_rb.html +3 -2
  237. data/doc/files/lib/TableOfContents_rb.html +3 -2
  238. data/doc/files/lib/TaskDependency_rb.html +3 -2
  239. data/doc/files/lib/TaskJuggler_rb.html +7 -2
  240. data/doc/files/lib/TaskScenario_rb.html +3 -2
  241. data/doc/files/lib/Task_rb.html +3 -2
  242. data/doc/files/lib/TextParser/Pattern_rb.html +4 -3
  243. data/doc/files/lib/TextParser/Rule_rb.html +4 -3
  244. data/doc/files/lib/TextParser/StackElement_rb.html +4 -3
  245. data/doc/files/lib/TextParser/TokenDoc_rb.html +4 -3
  246. data/doc/files/lib/TextParser_rb.html +3 -2
  247. data/doc/files/lib/TextScanner_rb.html +3 -2
  248. data/doc/files/lib/Tj3Config_rb.html +3 -2
  249. data/doc/files/lib/TjException_rb.html +3 -2
  250. data/doc/files/lib/TjTime_rb.html +3 -2
  251. data/doc/files/lib/TjpExample_rb.html +3 -2
  252. data/doc/files/lib/TjpSyntaxRules_rb.html +3 -2
  253. data/doc/files/lib/UTF8String_rb.html +14 -6
  254. data/doc/files/lib/UserManual_rb.html +6 -3
  255. data/doc/files/lib/WorkingHours_rb.html +3 -2
  256. data/doc/files/lib/XMLDocument_rb.html +3 -2
  257. data/doc/files/lib/XMLElement_rb.html +3 -2
  258. data/doc/files/lib/deep_copy_rb.html +3 -2
  259. data/doc/files/lib/reports/CSVFile_rb.html +3 -2
  260. data/doc/files/lib/reports/ColumnTable_rb.html +3 -2
  261. data/doc/files/lib/reports/GanttChart_rb.html +3 -2
  262. data/doc/files/lib/reports/GanttContainer_rb.html +3 -2
  263. data/doc/files/lib/reports/GanttHeaderScaleItem_rb.html +3 -2
  264. data/doc/files/lib/reports/GanttHeader_rb.html +3 -2
  265. data/doc/files/lib/reports/GanttLine_rb.html +3 -2
  266. data/doc/files/lib/reports/GanttLoadStack_rb.html +3 -2
  267. data/doc/files/lib/reports/GanttMilestone_rb.html +3 -2
  268. data/doc/files/lib/reports/GanttRouter_rb.html +3 -2
  269. data/doc/files/lib/reports/GanttTaskBar_rb.html +3 -2
  270. data/doc/files/lib/reports/HTMLGraphics_rb.html +3 -2
  271. data/doc/files/lib/reports/Navigator_rb.html +3 -2
  272. data/doc/files/lib/reports/ReportBase_rb.html +3 -2
  273. data/doc/files/lib/reports/ReportContext_rb.html +3 -2
  274. data/doc/files/lib/reports/ReportTableCell_rb.html +3 -2
  275. data/doc/files/lib/reports/ReportTableColumn_rb.html +3 -2
  276. data/doc/files/lib/reports/ReportTableLegend_rb.html +3 -2
  277. data/doc/files/lib/reports/ReportTableLine_rb.html +3 -2
  278. data/doc/files/lib/reports/ReportTable_rb.html +3 -2
  279. data/doc/files/lib/reports/Report_rb.html +7 -2
  280. data/doc/files/lib/reports/ResourceListRE_rb.html +3 -2
  281. data/doc/files/lib/reports/TableReport_rb.html +3 -2
  282. data/doc/files/lib/reports/TaskListRE_rb.html +3 -2
  283. data/doc/files/lib/reports/TextReport_rb.html +4 -3
  284. data/doc/files/lib/reports/TimeSheetReport_rb.html +117 -0
  285. data/doc/files/lib/reports/TjpExportRE_rb.html +3 -2
  286. data/doc/files/lib/taskjuggler3_rb.html +94 -77
  287. data/doc/files/lib/tj3client_rb.html +280 -0
  288. data/doc/files/lib/tj3man_rb.html +10 -9
  289. data/doc/fr_class_index.html +27 -5
  290. data/doc/fr_file_index.html +15 -7
  291. data/doc/fr_method_index.html +1312 -1020
  292. data/examples/tutorial.tjp +113 -14
  293. data/gem_spec.rb +2 -1
  294. data/lib/Account.rb +1 -1
  295. data/lib/AccountScenario.rb +1 -1
  296. data/lib/Allocation.rb +1 -1
  297. data/lib/AppConfig.rb +23 -10
  298. data/lib/AttributeBase.rb +34 -6
  299. data/lib/AttributeDefinition.rb +1 -1
  300. data/lib/Attributes.rb +51 -16
  301. data/lib/BatchProcessor.rb +204 -77
  302. data/lib/Booking.rb +1 -1
  303. data/lib/Charge.rb +1 -1
  304. data/lib/ChargeSet.rb +1 -1
  305. data/lib/HTMLDocument.rb +2 -2
  306. data/lib/Interval.rb +1 -1
  307. data/lib/Journal.rb +231 -9
  308. data/lib/KeywordArray.rb +1 -1
  309. data/lib/KeywordDocumentation.rb +6 -4
  310. data/lib/Limits.rb +1 -1
  311. data/lib/Log.rb +8 -1
  312. data/lib/LogicalExpression.rb +14 -13
  313. data/lib/LogicalFunction.rb +88 -14
  314. data/lib/LogicalOperation.rb +124 -53
  315. data/lib/MacroParser.rb +1 -1
  316. data/lib/MacroTable.rb +2 -2
  317. data/lib/Message.rb +1 -1
  318. data/lib/MessageHandler.rb +7 -3
  319. data/lib/Project.rb +93 -14
  320. data/lib/ProjectFileParser.rb +30 -15
  321. data/lib/PropertyList.rb +103 -36
  322. data/lib/PropertySet.rb +22 -10
  323. data/lib/PropertyTreeNode.rb +120 -15
  324. data/lib/Query.rb +119 -48
  325. data/lib/{RTPNavigator.rb → RTFNavigator.rb} +11 -10
  326. data/lib/RTFQuery.rb +166 -0
  327. data/lib/{RTPReport.rb → RTFReport.rb} +11 -8
  328. data/lib/RealFormat.rb +1 -1
  329. data/lib/RemoteServiceManager.rb +80 -0
  330. data/lib/ReportServer.rb +66 -0
  331. data/lib/Resource.rb +1 -1
  332. data/lib/ResourceScenario.rb +48 -19
  333. data/lib/RichText.rb +98 -41
  334. data/lib/RichTextDocument.rb +10 -8
  335. data/lib/RichTextElement.rb +72 -28
  336. data/lib/{RichTextProtocolExample.rb → RichTextFunctionExample.rb} +8 -7
  337. data/lib/{RichTextProtocolHandler.rb → RichTextFunctionHandler.rb} +12 -14
  338. data/lib/RichTextParser.rb +6 -3
  339. data/lib/RichTextScanner.rb +91 -19
  340. data/lib/RichTextSnip.rb +8 -3
  341. data/lib/RichTextSyntaxRules.rb +103 -45
  342. data/lib/Scenario.rb +1 -1
  343. data/lib/ScenarioData.rb +2 -2
  344. data/lib/Scoreboard.rb +1 -1
  345. data/lib/Shift.rb +1 -1
  346. data/lib/ShiftAssignments.rb +1 -1
  347. data/lib/ShiftScenario.rb +1 -1
  348. data/lib/SourceFileInfo.rb +1 -1
  349. data/lib/SyntaxReference.rb +2 -2
  350. data/lib/TOCEntry.rb +1 -1
  351. data/lib/TableColumnDefinition.rb +59 -16
  352. data/lib/TableOfContents.rb +1 -1
  353. data/lib/Task.rb +1 -1
  354. data/lib/TaskDependency.rb +1 -1
  355. data/lib/TaskJuggler.rb +31 -8
  356. data/lib/TaskScenario.rb +165 -16
  357. data/lib/TextParser.rb +36 -22
  358. data/lib/TextParser/Pattern.rb +3 -3
  359. data/lib/TextParser/Rule.rb +2 -2
  360. data/lib/TextParser/StackElement.rb +4 -3
  361. data/lib/TextParser/TokenDoc.rb +2 -2
  362. data/lib/TextScanner.rb +52 -37
  363. data/lib/Tj3Config.rb +6 -5
  364. data/lib/TjException.rb +1 -1
  365. data/lib/TjTime.rb +12 -3
  366. data/lib/TjpExample.rb +1 -1
  367. data/lib/TjpSyntaxRules.rb +1044 -150
  368. data/lib/UTF8String.rb +2 -1
  369. data/lib/UserManual.rb +18 -70
  370. data/lib/WorkingHours.rb +3 -3
  371. data/lib/XMLDocument.rb +3 -2
  372. data/lib/XMLElement.rb +6 -1
  373. data/lib/deep_copy.rb +1 -1
  374. data/lib/reports/CSVFile.rb +1 -1
  375. data/lib/reports/ColumnTable.rb +9 -9
  376. data/lib/reports/GanttChart.rb +1 -1
  377. data/lib/reports/GanttContainer.rb +1 -1
  378. data/lib/reports/GanttHeader.rb +1 -1
  379. data/lib/reports/GanttHeaderScaleItem.rb +1 -1
  380. data/lib/reports/GanttLine.rb +40 -40
  381. data/lib/reports/GanttLoadStack.rb +1 -1
  382. data/lib/reports/GanttMilestone.rb +1 -1
  383. data/lib/reports/GanttRouter.rb +1 -1
  384. data/lib/reports/GanttTaskBar.rb +1 -1
  385. data/lib/reports/HTMLGraphics.rb +1 -1
  386. data/lib/reports/Navigator.rb +149 -22
  387. data/lib/reports/Report.rb +115 -172
  388. data/lib/reports/ReportBase.rb +22 -27
  389. data/lib/reports/ReportContext.rb +29 -15
  390. data/lib/reports/ReportTable.rb +1 -1
  391. data/lib/reports/ReportTableCell.rb +120 -27
  392. data/lib/reports/ReportTableColumn.rb +3 -3
  393. data/lib/reports/ReportTableLegend.rb +1 -1
  394. data/lib/reports/ReportTableLine.rb +10 -2
  395. data/lib/reports/ResourceListRE.rb +5 -1
  396. data/lib/reports/TableReport.rb +237 -287
  397. data/lib/reports/TaskListRE.rb +5 -1
  398. data/lib/reports/TextReport.rb +7 -4
  399. data/lib/reports/TimeSheetReport.rb +233 -0
  400. data/lib/reports/TjpExportRE.rb +2 -2
  401. data/lib/taskjuggler3.rb +27 -11
  402. data/lib/tj3client.rb +110 -0
  403. data/lib/tj3man.rb +4 -4
  404. data/manual/Getting_Started +0 -50
  405. data/manual/How_To_Contribute +6 -13
  406. data/manual/Installation +102 -28
  407. data/manual/Intro +11 -1
  408. data/manual/Reporting_Bugs +23 -7
  409. data/manual/Rich_Text_Attributes +59 -6
  410. data/manual/TaskJuggler_2x_Migration +27 -0
  411. data/manual/The_TaskJuggler_Syntax +104 -0
  412. data/manual/Tutorial +10 -9
  413. data/prj_cfg.rb +8 -2
  414. data/tasks/csts.rake +1 -1
  415. data/tasks/manual.rake +5 -3
  416. data/test/MessageChecker.rb +1 -1
  417. data/test/TestSuite/HTML-Reports/Alerts.html +172 -0
  418. data/test/TestSuite/HTML-Reports/Alerts.tjp +77 -0
  419. data/test/TestSuite/HTML-Reports/CellText.html +758 -0
  420. data/test/TestSuite/HTML-Reports/CellText.tjp +75 -0
  421. data/test/TestSuite/HTML-Reports/ColumnPeriods.html +156 -0
  422. data/test/TestSuite/HTML-Reports/ColumnPeriods.tjp +44 -0
  423. data/test/TestSuite/HTML-Reports/IsOngoing.html +172 -0
  424. data/test/TestSuite/HTML-Reports/IsOngoing.tjp +34 -0
  425. data/test/TestSuite/HTML-Reports/LogicalFunctions.html +80 -0
  426. data/test/TestSuite/HTML-Reports/LogicalFunctions.tjp +20 -0
  427. data/test/TestSuite/HTML-Reports/Query.html +31 -0
  428. data/test/TestSuite/HTML-Reports/Query.tjp +28 -0
  429. data/test/TestSuite/HTML-Reports/Sorting.tjp +68 -0
  430. data/test/TestSuite/HTML-Reports/TimeSheet.tjp +69 -0
  431. data/test/TestSuite/HTML-Reports/UDAQuery.tjp +27 -0
  432. data/test/TestSuite/HTML-Reports/css/tjmanual.css +52 -0
  433. data/test/TestSuite/HTML-Reports/css/tjreport.css +195 -0
  434. data/test/TestSuite/HTML-Reports/depArrows.html +842 -0
  435. data/test/TestSuite/HTML-Reports/icons/details.png +0 -0
  436. data/test/TestSuite/HTML-Reports/icons/flag-green.png +0 -0
  437. data/test/TestSuite/HTML-Reports/icons/flag-red.png +0 -0
  438. data/test/TestSuite/HTML-Reports/icons/flag-yellow.png +0 -0
  439. data/test/TestSuite/HTML-Reports/icons/resource.png +0 -0
  440. data/test/TestSuite/HTML-Reports/icons/resourcegroup.png +0 -0
  441. data/test/TestSuite/HTML-Reports/icons/task.png +0 -0
  442. data/test/TestSuite/HTML-Reports/icons/taskgroup.png +0 -0
  443. data/test/TestSuite/HTML-Reports/reference.tjp +7 -8
  444. data/test/TestSuite/HTML-Reports/scripts/scripts/wz_tooltip.js +1301 -0
  445. data/test/TestSuite/HTML-Reports/scripts/wz_tooltip.js +1301 -0
  446. data/test/TestSuite/Scheduler/Correct/Mandatory.tjp +34 -0
  447. data/test/TestSuite/Syntax/Correct/Celltext.tjp +2 -1
  448. data/test/TestSuite/Syntax/Correct/Journal.tjp +2 -2
  449. data/test/TestSuite/Syntax/Correct/LogicalExpression.tjp +2 -1
  450. data/test/TestSuite/Syntax/Correct/LogicalFunction.tjp +20 -0
  451. data/test/TestSuite/Syntax/Correct/Query.tjp +18 -0
  452. data/test/TestSuite/Syntax/Correct/StatusSheet.tjp +45 -0
  453. data/test/TestSuite/Syntax/Correct/TimeSheet.tjp +49 -0
  454. data/test/TestSuite/Syntax/Correct/icons/details.png +0 -0
  455. data/test/TestSuite/Syntax/Correct/icons/flag-green.png +0 -0
  456. data/test/TestSuite/Syntax/Correct/icons/flag-red.png +0 -0
  457. data/test/TestSuite/Syntax/Correct/icons/flag-yellow.png +0 -0
  458. data/test/TestSuite/Syntax/Correct/icons/resource.png +0 -0
  459. data/test/TestSuite/Syntax/Correct/icons/resourcegroup.png +0 -0
  460. data/test/TestSuite/Syntax/Correct/icons/task.png +0 -0
  461. data/test/TestSuite/Syntax/Correct/icons/taskgroup.png +0 -0
  462. data/test/TestSuite/Syntax/Correct/scripts/wz_tooltip.js +1301 -0
  463. data/test/TestSuite/Syntax/Correct/tutorial.tjp +113 -14
  464. data/test/TestSuite/Syntax/Errors/macro_stack_overflow.tjp +28 -0
  465. data/test/TestSuite/Syntax/Errors/unsupported_token.tjp +12 -0
  466. data/test/all.rb +2 -2
  467. data/test/test_BatchProcessor.rb +42 -13
  468. data/test/test_CSV-Reports.rb +1 -1
  469. data/test/test_Journal.rb +176 -0
  470. data/test/test_Limits.rb +1 -1
  471. data/test/test_LogicalExpression.rb +14 -5
  472. data/test/test_MacroTable.rb +1 -1
  473. data/test/test_Project.rb +1 -1
  474. data/test/test_PropertySet.rb +1 -1
  475. data/test/test_Query.rb +1 -1
  476. data/test/test_RealFormat.rb +1 -1
  477. data/test/test_RichText.rb +30 -20
  478. data/test/test_Scheduler.rb +1 -1
  479. data/test/test_ShiftAssignments.rb +2 -2
  480. data/test/test_Syntax.rb +1 -1
  481. data/test/test_TextScanner.rb +1 -1
  482. data/test/test_TjTime.rb +1 -1
  483. data/test/test_TjpExample.rb +1 -1
  484. data/test/test_UTF8String.rb +1 -1
  485. data/test/test_WorkingHours.rb +1 -1
  486. data/test/test_deep_copy.rb +2 -2
  487. metadata +610 -532
  488. data/doc/files/lib/ms_test_rb.html +0 -90
  489. data/examples/ContactList.html +0 -1467
  490. data/examples/Deliveries.html +0 -485
  491. data/examples/Development.html +0 -2525
  492. data/examples/Overview.html +0 -747
  493. data/examples/Resource Graph.html +0 -616
  494. data/lib/ms_test.rb +0 -27
  495. data/test/TestSuite/HTML-Reports/reference-export.html +0 -187
@@ -104,19 +104,19 @@ the to_* members.
104
104
 
105
105
  <div class="name-list">
106
106
 
107
- <a href="#M000564">a</a>&nbsp;&nbsp;
107
+ <a href="#M000360">a</a>&nbsp;&nbsp;
108
108
 
109
- <a href="#M000569">filterResourceList</a>&nbsp;&nbsp;
109
+ <a href="#M000365">filterResourceList</a>&nbsp;&nbsp;
110
110
 
111
- <a href="#M000568">filterTaskList</a>&nbsp;&nbsp;
111
+ <a href="#M000364">filterTaskList</a>&nbsp;&nbsp;
112
112
 
113
- <a href="#M000565">generateIntermediateFormat</a>&nbsp;&nbsp;
113
+ <a href="#M000361">generateIntermediateFormat</a>&nbsp;&nbsp;
114
114
 
115
- <a href="#M000563">new</a>&nbsp;&nbsp;
115
+ <a href="#M000359">new</a>&nbsp;&nbsp;
116
116
 
117
- <a href="#M000567">to_csv</a>&nbsp;&nbsp;
117
+ <a href="#M000363">to_csv</a>&nbsp;&nbsp;
118
118
 
119
- <a href="#M000566">to_html</a>&nbsp;&nbsp;
119
+ <a href="#M000362">to_html</a>&nbsp;&nbsp;
120
120
 
121
121
  </div>
122
122
  </div>
@@ -137,12 +137,12 @@ the to_* members.
137
137
  <h3 class="section-bar">Public Class methods</h3>
138
138
 
139
139
 
140
- <div id="method-M000563" class="method-detail">
141
- <a name="M000563"></a>
140
+ <div id="method-M000359" class="method-detail">
141
+ <a name="M000359"></a>
142
142
 
143
143
  <div class="method-heading">
144
144
 
145
- <a href="#M000563" class="method-signature">
145
+ <a href="#M000359" class="method-signature">
146
146
 
147
147
  <span class="method-name">new</span><span class="method-args">(report)</span>
148
148
 
@@ -153,8 +153,8 @@ the to_* members.
153
153
  <div class="method-description">
154
154
 
155
155
  <p><a class="source-toggle" href="#"
156
- onclick="toggleCode('M000563-source');return false;">[Source]</a></p>
157
- <div class="method-source-code" id="M000563-source">
156
+ onclick="toggleCode('M000359-source');return false;">[Source]</a></p>
157
+ <div class="method-source-code" id="M000359-source">
158
158
  <pre>
159
159
  <span class="ruby-comment cmt"># File lib/reports/ReportBase.rb, line 20</span>
160
160
  20: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">report</span>)
@@ -171,12 +171,12 @@ the to_* members.
171
171
  <h3 class="section-bar">Public Instance methods</h3>
172
172
 
173
173
 
174
- <div id="method-M000564" class="method-detail">
175
- <a name="M000564"></a>
174
+ <div id="method-M000360" class="method-detail">
175
+ <a name="M000360"></a>
176
176
 
177
177
  <div class="method-heading">
178
178
 
179
- <a href="#M000564" class="method-signature">
179
+ <a href="#M000360" class="method-signature">
180
180
 
181
181
  <span class="method-name">a</span><span class="method-args">(attribute)</span>
182
182
 
@@ -191,8 +191,8 @@ Convenience function to access a report attribute
191
191
  </p>
192
192
 
193
193
  <p><a class="source-toggle" href="#"
194
- onclick="toggleCode('M000564-source');return false;">[Source]</a></p>
195
- <div class="method-source-code" id="M000564-source">
194
+ onclick="toggleCode('M000360-source');return false;">[Source]</a></p>
195
+ <div class="method-source-code" id="M000360-source">
196
196
  <pre>
197
197
  <span class="ruby-comment cmt"># File lib/reports/ReportBase.rb, line 26</span>
198
198
  26: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">a</span>(<span class="ruby-identifier">attribute</span>)
@@ -205,12 +205,12 @@ Convenience function to access a report attribute
205
205
  </div>
206
206
 
207
207
 
208
- <div id="method-M000569" class="method-detail">
209
- <a name="M000569"></a>
208
+ <div id="method-M000365" class="method-detail">
209
+ <a name="M000365"></a>
210
210
 
211
211
  <div class="method-heading">
212
212
 
213
- <a href="#M000569" class="method-signature">
213
+ <a href="#M000365" class="method-signature">
214
214
 
215
215
  <span class="method-name">filterResourceList</span><span class="method-args">(list_, task, hideExpr, rollupExpr)</span>
216
216
 
@@ -228,35 +228,36 @@ assigned to the task in any of the reported scenarios.
228
228
  </p>
229
229
 
230
230
  <p><a class="source-toggle" href="#"
231
- onclick="toggleCode('M000569-source');return false;">[Source]</a></p>
232
- <div class="method-source-code" id="M000569-source">
231
+ onclick="toggleCode('M000365-source');return false;">[Source]</a></p>
232
+ <div class="method-source-code" id="M000365-source">
233
233
  <pre>
234
- <span class="ruby-comment cmt"># File lib/reports/ReportBase.rb, line 95</span>
235
- 95: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">filterResourceList</span>(<span class="ruby-identifier">list_</span>, <span class="ruby-identifier">task</span>, <span class="ruby-identifier">hideExpr</span>, <span class="ruby-identifier">rollupExpr</span>)
236
- 96: <span class="ruby-identifier">list</span> = <span class="ruby-constant">PropertyList</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">list_</span>)
237
- 97: <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">resourceRoot</span> = <span class="ruby-identifier">a</span>(<span class="ruby-value str">'resourceRoot'</span>))
238
- 98: <span class="ruby-comment cmt"># Remove all resources that are not descendents of the resourceRoot.</span>
239
- 99: <span class="ruby-identifier">list</span>.<span class="ruby-identifier">delete_if</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">resource</span><span class="ruby-operator">|</span> <span class="ruby-operator">!</span><span class="ruby-identifier">resource</span>.<span class="ruby-identifier">isChildOf?</span>(<span class="ruby-identifier">resourceRoot</span>) }
240
- 100: <span class="ruby-keyword kw">end</span>
241
- 101:
242
- 102: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">task</span>
243
- 103: <span class="ruby-comment cmt"># If we have a task we need to check that the resources are assigned</span>
244
- 104: <span class="ruby-comment cmt"># to the task in any of the reported scenarios.</span>
245
- 105: <span class="ruby-identifier">iv</span> = <span class="ruby-constant">Interval</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">a</span>(<span class="ruby-value str">'start'</span>), <span class="ruby-identifier">a</span>(<span class="ruby-value str">'end'</span>))
246
- 106: <span class="ruby-identifier">list</span>.<span class="ruby-identifier">delete_if</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">resource</span><span class="ruby-operator">|</span>
247
- 107: <span class="ruby-identifier">delete</span> = <span class="ruby-keyword kw">true</span>
248
- 108: <span class="ruby-identifier">a</span>(<span class="ruby-value str">'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>
249
- 109: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">resource</span>.<span class="ruby-identifier">allocated?</span>(<span class="ruby-identifier">scenarioIdx</span>, <span class="ruby-identifier">iv</span>, <span class="ruby-identifier">task</span>)
250
- 110: <span class="ruby-identifier">delete</span> = <span class="ruby-keyword kw">false</span>
251
- 111: <span class="ruby-keyword kw">break</span>;
252
- 112: <span class="ruby-keyword kw">end</span>
253
- 113: <span class="ruby-keyword kw">end</span>
254
- 114: <span class="ruby-identifier">delete</span>
255
- 115: <span class="ruby-keyword kw">end</span>
256
- 116: <span class="ruby-keyword kw">end</span>
257
- 117:
258
- 118: <span class="ruby-identifier">standardFilterOps</span>(<span class="ruby-identifier">list</span>, <span class="ruby-identifier">hideExpr</span>, <span class="ruby-identifier">rollupExpr</span>, <span class="ruby-identifier">task</span>, <span class="ruby-identifier">resourceRoot</span>)
259
- 119: <span class="ruby-keyword kw">end</span>
234
+ <span class="ruby-comment cmt"># File lib/reports/ReportBase.rb, line 83</span>
235
+ 83: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">filterResourceList</span>(<span class="ruby-identifier">list_</span>, <span class="ruby-identifier">task</span>, <span class="ruby-identifier">hideExpr</span>, <span class="ruby-identifier">rollupExpr</span>)
236
+ 84: <span class="ruby-identifier">list</span> = <span class="ruby-constant">PropertyList</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">list_</span>)
237
+ 85: <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">resourceRoot</span> = <span class="ruby-identifier">a</span>(<span class="ruby-value str">'resourceRoot'</span>))
238
+ 86: <span class="ruby-comment cmt"># Remove all resources that are not descendents of the resourceRoot.</span>
239
+ 87: <span class="ruby-identifier">list</span>.<span class="ruby-identifier">delete_if</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">resource</span><span class="ruby-operator">|</span> <span class="ruby-operator">!</span><span class="ruby-identifier">resource</span>.<span class="ruby-identifier">isChildOf?</span>(<span class="ruby-identifier">resourceRoot</span>) }
240
+ 88: <span class="ruby-keyword kw">end</span>
241
+ 89:
242
+ 90: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">task</span>
243
+ 91: <span class="ruby-comment cmt"># If we have a task we need to check that the resources are assigned</span>
244
+ 92: <span class="ruby-comment cmt"># to the task in any of the reported scenarios.</span>
245
+ 93: <span class="ruby-identifier">iv</span> = <span class="ruby-constant">Interval</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">a</span>(<span class="ruby-value str">'start'</span>), <span class="ruby-identifier">a</span>(<span class="ruby-value str">'end'</span>))
246
+ 94: <span class="ruby-identifier">list</span>.<span class="ruby-identifier">delete_if</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">resource</span><span class="ruby-operator">|</span>
247
+ 95: <span class="ruby-identifier">delete</span> = <span class="ruby-keyword kw">true</span>
248
+ 96: <span class="ruby-identifier">a</span>(<span class="ruby-value str">'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>
249
+ 97: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">task</span>.<span class="ruby-identifier">hasResourceAllocated?</span>(<span class="ruby-identifier">scenarioIdx</span>, <span class="ruby-identifier">iv</span>, <span class="ruby-identifier">resource</span>)
250
+ 98: <span class="ruby-comment cmt">#if resource.allocated?(scenarioIdx, iv, task)</span>
251
+ 99: <span class="ruby-identifier">delete</span> = <span class="ruby-keyword kw">false</span>
252
+ 100: <span class="ruby-keyword kw">break</span>;
253
+ 101: <span class="ruby-keyword kw">end</span>
254
+ 102: <span class="ruby-keyword kw">end</span>
255
+ 103: <span class="ruby-identifier">delete</span>
256
+ 104: <span class="ruby-keyword kw">end</span>
257
+ 105: <span class="ruby-keyword kw">end</span>
258
+ 106:
259
+ 107: <span class="ruby-identifier">standardFilterOps</span>(<span class="ruby-identifier">list</span>, <span class="ruby-identifier">hideExpr</span>, <span class="ruby-identifier">rollupExpr</span>, <span class="ruby-identifier">task</span>, <span class="ruby-identifier">resourceRoot</span>)
260
+ 108: <span class="ruby-keyword kw">end</span>
260
261
  </pre>
261
262
  </div>
262
263
 
@@ -264,12 +265,12 @@ assigned to the task in any of the reported scenarios.
264
265
  </div>
265
266
 
266
267
 
267
- <div id="method-M000568" class="method-detail">
268
- <a name="M000568"></a>
268
+ <div id="method-M000364" class="method-detail">
269
+ <a name="M000364"></a>
269
270
 
270
271
  <div class="method-heading">
271
272
 
272
- <a href="#M000568" class="method-signature">
273
+ <a href="#M000364" class="method-signature">
273
274
 
274
275
  <span class="method-name">filterTaskList</span><span class="method-args">(list_, resource, hideExpr, rollupExpr)</span>
275
276
 
@@ -287,54 +288,36 @@ allocated to it in any of the reported scenarios.
287
288
  </p>
288
289
 
289
290
  <p><a class="source-toggle" href="#"
290
- onclick="toggleCode('M000568-source');return false;">[Source]</a></p>
291
- <div class="method-source-code" id="M000568-source">
291
+ onclick="toggleCode('M000364-source');return false;">[Source]</a></p>
292
+ <div class="method-source-code" id="M000364-source">
292
293
  <pre>
293
- <span class="ruby-comment cmt"># File lib/reports/ReportBase.rb, line 46</span>
294
- 46: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">filterTaskList</span>(<span class="ruby-identifier">list_</span>, <span class="ruby-identifier">resource</span>, <span class="ruby-identifier">hideExpr</span>, <span class="ruby-identifier">rollupExpr</span>)
295
- 47: <span class="ruby-identifier">list</span> = <span class="ruby-constant">PropertyList</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">list_</span>)
296
- 48: <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">taskRoot</span> = <span class="ruby-identifier">a</span>(<span class="ruby-value str">'taskRoot'</span>))
297
- 49: <span class="ruby-comment cmt"># Remove all tasks that are not descendents of the taskRoot.</span>
298
- 50: <span class="ruby-identifier">list</span>.<span class="ruby-identifier">delete_if</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">task</span><span class="ruby-operator">|</span> <span class="ruby-operator">!</span><span class="ruby-identifier">task</span>.<span class="ruby-identifier">isChildOf?</span>(<span class="ruby-identifier">taskRoot</span>) }
299
- 51: <span class="ruby-keyword kw">end</span>
300
- 52:
301
- 53: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">resource</span>
302
- 54: <span class="ruby-comment cmt"># If we have a resource we need to check that the resource is allocated</span>
303
- 55: <span class="ruby-comment cmt"># to the tasks in any of the reported scenarios.</span>
304
- 56: <span class="ruby-identifier">list</span>.<span class="ruby-identifier">delete_if</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">task</span><span class="ruby-operator">|</span>
305
- 57: <span class="ruby-identifier">delete</span> = <span class="ruby-keyword kw">true</span>
306
- 58: <span class="ruby-identifier">a</span>(<span class="ruby-value str">'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>
307
- 59: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">task</span>[<span class="ruby-value str">'assignedresources'</span>, <span class="ruby-identifier">scenarioIdx</span>].<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">resource</span>)
308
- 60: <span class="ruby-identifier">delete</span> = <span class="ruby-keyword kw">false</span>
309
- 61: <span class="ruby-keyword kw">break</span>;
310
- 62: <span class="ruby-keyword kw">end</span>
311
- 63: <span class="ruby-keyword kw">end</span>
312
- 64: <span class="ruby-identifier">delete</span>
313
- 65: <span class="ruby-keyword kw">end</span>
314
- 66: <span class="ruby-keyword kw">end</span>
315
- 67:
316
- 68: <span class="ruby-comment cmt"># Remove all tasks that don't overlap with the reported interval.</span>
317
- 69: <span class="ruby-identifier">list</span>.<span class="ruby-identifier">delete_if</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">task</span><span class="ruby-operator">|</span>
318
- 70: <span class="ruby-identifier">delete</span> = <span class="ruby-keyword kw">true</span>
319
- 71: <span class="ruby-identifier">a</span>(<span class="ruby-value str">'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>
320
- 72: <span class="ruby-identifier">iv</span> = <span class="ruby-constant">Interval</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">task</span>[<span class="ruby-value str">'start'</span>, <span class="ruby-identifier">scenarioIdx</span>].<span class="ruby-identifier">nil?</span> <span class="ruby-value">?
321
- 73: </span> <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'start'</span>] <span class="ruby-operator">:</span> <span class="ruby-identifier">task</span>[<span class="ruby-value str">'start'</span>, <span class="ruby-identifier">scenarioIdx</span>],
322
- 74: <span class="ruby-identifier">task</span>[<span class="ruby-value str">'end'</span>, <span class="ruby-identifier">scenarioIdx</span>].<span class="ruby-identifier">nil?</span> <span class="ruby-value">?
323
- 75: </span> <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'end'</span>] <span class="ruby-operator">:</span> <span class="ruby-identifier">task</span>[<span class="ruby-value str">'end'</span>, <span class="ruby-identifier">scenarioIdx</span>])
324
- 76: <span class="ruby-comment cmt"># Special case to include milestones at the report end.</span>
325
- 77: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">iv</span>.<span class="ruby-identifier">start</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">iv</span>.<span class="ruby-identifier">end</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">iv</span>.<span class="ruby-identifier">end</span> <span class="ruby-operator">==</span> <span class="ruby-ivar">@end</span>
326
- 78: <span class="ruby-identifier">iv</span>.<span class="ruby-identifier">start</span> = <span class="ruby-identifier">iv</span>.<span class="ruby-identifier">end</span> = <span class="ruby-identifier">iv</span>.<span class="ruby-identifier">start</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>
327
- 79: <span class="ruby-keyword kw">end</span>
328
- 80: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">iv</span>.<span class="ruby-identifier">overlaps?</span>(<span class="ruby-constant">Interval</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">a</span>(<span class="ruby-value str">'start'</span>), <span class="ruby-identifier">a</span>(<span class="ruby-value str">'end'</span>)))
329
- 81: <span class="ruby-identifier">delete</span> = <span class="ruby-keyword kw">false</span>
330
- 82: <span class="ruby-keyword kw">break</span>;
331
- 83: <span class="ruby-keyword kw">end</span>
332
- 84: <span class="ruby-keyword kw">end</span>
333
- 85: <span class="ruby-identifier">delete</span>
334
- 86: <span class="ruby-keyword kw">end</span>
335
- 87:
336
- 88: <span class="ruby-identifier">standardFilterOps</span>(<span class="ruby-identifier">list</span>, <span class="ruby-identifier">hideExpr</span>, <span class="ruby-identifier">rollupExpr</span>, <span class="ruby-identifier">resource</span>, <span class="ruby-identifier">taskRoot</span>)
337
- 89: <span class="ruby-keyword kw">end</span>
294
+ <span class="ruby-comment cmt"># File lib/reports/ReportBase.rb, line 52</span>
295
+ 52: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">filterTaskList</span>(<span class="ruby-identifier">list_</span>, <span class="ruby-identifier">resource</span>, <span class="ruby-identifier">hideExpr</span>, <span class="ruby-identifier">rollupExpr</span>)
296
+ 53: <span class="ruby-identifier">list</span> = <span class="ruby-constant">PropertyList</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">list_</span>)
297
+ 54: <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">taskRoot</span> = <span class="ruby-identifier">a</span>(<span class="ruby-value str">'taskRoot'</span>))
298
+ 55: <span class="ruby-comment cmt"># Remove all tasks that are not descendents of the taskRoot.</span>
299
+ 56: <span class="ruby-identifier">list</span>.<span class="ruby-identifier">delete_if</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">task</span><span class="ruby-operator">|</span> <span class="ruby-operator">!</span><span class="ruby-identifier">task</span>.<span class="ruby-identifier">isChildOf?</span>(<span class="ruby-identifier">taskRoot</span>) }
300
+ 57: <span class="ruby-keyword kw">end</span>
301
+ 58:
302
+ 59: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">resource</span>
303
+ 60: <span class="ruby-comment cmt"># If we have a resource we need to check that the resource is allocated</span>
304
+ 61: <span class="ruby-comment cmt"># to the tasks in any of the reported scenarios within the report time</span>
305
+ 62: <span class="ruby-comment cmt"># frame.</span>
306
+ 63: <span class="ruby-identifier">list</span>.<span class="ruby-identifier">delete_if</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">task</span><span class="ruby-operator">|</span>
307
+ 64: <span class="ruby-identifier">delete</span> = <span class="ruby-keyword kw">true</span>
308
+ 65: <span class="ruby-identifier">a</span>(<span class="ruby-value str">'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>
309
+ 66: <span class="ruby-identifier">iv</span> = <span class="ruby-constant">Interval</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">a</span>(<span class="ruby-value str">'start'</span>), <span class="ruby-identifier">a</span>(<span class="ruby-value str">'end'</span>))
310
+ 67: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">task</span>.<span class="ruby-identifier">hasResourceAllocated?</span>(<span class="ruby-identifier">scenarioIdx</span>, <span class="ruby-identifier">iv</span>, <span class="ruby-identifier">resource</span>)
311
+ 68: <span class="ruby-identifier">delete</span> = <span class="ruby-keyword kw">false</span>
312
+ 69: <span class="ruby-keyword kw">break</span>;
313
+ 70: <span class="ruby-keyword kw">end</span>
314
+ 71: <span class="ruby-keyword kw">end</span>
315
+ 72: <span class="ruby-identifier">delete</span>
316
+ 73: <span class="ruby-keyword kw">end</span>
317
+ 74: <span class="ruby-keyword kw">end</span>
318
+ 75:
319
+ 76: <span class="ruby-identifier">standardFilterOps</span>(<span class="ruby-identifier">list</span>, <span class="ruby-identifier">hideExpr</span>, <span class="ruby-identifier">rollupExpr</span>, <span class="ruby-identifier">resource</span>, <span class="ruby-identifier">taskRoot</span>)
320
+ 77: <span class="ruby-keyword kw">end</span>
338
321
  </pre>
339
322
  </div>
340
323
 
@@ -342,12 +325,12 @@ allocated to it in any of the reported scenarios.
342
325
  </div>
343
326
 
344
327
 
345
- <div id="method-M000565" class="method-detail">
346
- <a name="M000565"></a>
328
+ <div id="method-M000361" class="method-detail">
329
+ <a name="M000361"></a>
347
330
 
348
331
  <div class="method-heading">
349
332
 
350
- <a href="#M000565" class="method-signature">
333
+ <a href="#M000361" class="method-signature">
351
334
 
352
335
  <span class="method-name">generateIntermediateFormat</span><span class="method-args">()</span>
353
336
 
@@ -358,13 +341,19 @@ allocated to it in any of the reported scenarios.
358
341
  <div class="method-description">
359
342
 
360
343
  <p><a class="source-toggle" href="#"
361
- onclick="toggleCode('M000565-source');return false;">[Source]</a></p>
362
- <div class="method-source-code" id="M000565-source">
344
+ onclick="toggleCode('M000361-source');return false;">[Source]</a></p>
345
+ <div class="method-source-code" id="M000361-source">
363
346
  <pre>
364
347
  <span class="ruby-comment cmt"># File lib/reports/ReportBase.rb, line 30</span>
365
348
  30: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateIntermediateFormat</span>
366
- 31: <span class="ruby-identifier">raise</span> <span class="ruby-value str">'This function must be overriden by derived classes.'</span>
367
- 32: <span class="ruby-keyword kw">end</span>
349
+ 31: <span class="ruby-identifier">query</span> = <span class="ruby-ivar">@report</span>.<span class="ruby-identifier">project</span>.<span class="ruby-identifier">reportContext</span>.<span class="ruby-identifier">query</span>
350
+ 32: <span class="ruby-node">%w( header left center right footer
351
+ 33: prolog headline caption epilog )</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">name</span><span class="ruby-operator">|</span>
352
+ 34: <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">text</span> = <span class="ruby-identifier">a</span>(<span class="ruby-identifier">name</span>)
353
+ 35:
354
+ 36: <span class="ruby-identifier">text</span>.<span class="ruby-identifier">functionHandler</span>(<span class="ruby-value str">'query'</span>).<span class="ruby-identifier">setQuery</span>(<span class="ruby-identifier">query</span>)
355
+ 37: <span class="ruby-keyword kw">end</span>
356
+ 38: <span class="ruby-keyword kw">end</span>
368
357
  </pre>
369
358
  </div>
370
359
 
@@ -372,12 +361,12 @@ allocated to it in any of the reported scenarios.
372
361
  </div>
373
362
 
374
363
 
375
- <div id="method-M000567" class="method-detail">
376
- <a name="M000567"></a>
364
+ <div id="method-M000363" class="method-detail">
365
+ <a name="M000363"></a>
377
366
 
378
367
  <div class="method-heading">
379
368
 
380
- <a href="#M000567" class="method-signature">
369
+ <a href="#M000363" class="method-signature">
381
370
 
382
371
  <span class="method-name">to_csv</span><span class="method-args">()</span>
383
372
 
@@ -388,13 +377,13 @@ allocated to it in any of the reported scenarios.
388
377
  <div class="method-description">
389
378
 
390
379
  <p><a class="source-toggle" href="#"
391
- onclick="toggleCode('M000567-source');return false;">[Source]</a></p>
392
- <div class="method-source-code" id="M000567-source">
380
+ onclick="toggleCode('M000363-source');return false;">[Source]</a></p>
381
+ <div class="method-source-code" id="M000363-source">
393
382
  <pre>
394
- <span class="ruby-comment cmt"># File lib/reports/ReportBase.rb, line 38</span>
395
- 38: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_csv</span>
396
- 39: <span class="ruby-identifier">raise</span> <span class="ruby-value str">'This function must be overriden by derived classes.'</span>
397
- 40: <span class="ruby-keyword kw">end</span>
383
+ <span class="ruby-comment cmt"># File lib/reports/ReportBase.rb, line 44</span>
384
+ 44: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_csv</span>
385
+ 45: <span class="ruby-identifier">raise</span> <span class="ruby-value str">'This function must be overriden by derived classes.'</span>
386
+ 46: <span class="ruby-keyword kw">end</span>
398
387
  </pre>
399
388
  </div>
400
389
 
@@ -402,12 +391,12 @@ allocated to it in any of the reported scenarios.
402
391
  </div>
403
392
 
404
393
 
405
- <div id="method-M000566" class="method-detail">
406
- <a name="M000566"></a>
394
+ <div id="method-M000362" class="method-detail">
395
+ <a name="M000362"></a>
407
396
 
408
397
  <div class="method-heading">
409
398
 
410
- <a href="#M000566" class="method-signature">
399
+ <a href="#M000362" class="method-signature">
411
400
 
412
401
  <span class="method-name">to_html</span><span class="method-args">()</span>
413
402
 
@@ -418,13 +407,13 @@ allocated to it in any of the reported scenarios.
418
407
  <div class="method-description">
419
408
 
420
409
  <p><a class="source-toggle" href="#"
421
- onclick="toggleCode('M000566-source');return false;">[Source]</a></p>
422
- <div class="method-source-code" id="M000566-source">
410
+ onclick="toggleCode('M000362-source');return false;">[Source]</a></p>
411
+ <div class="method-source-code" id="M000362-source">
423
412
  <pre>
424
- <span class="ruby-comment cmt"># File lib/reports/ReportBase.rb, line 34</span>
425
- 34: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_html</span>
426
- 35: <span class="ruby-identifier">raise</span> <span class="ruby-value str">'This function must be overriden by derived classes.'</span>
427
- 36: <span class="ruby-keyword kw">end</span>
413
+ <span class="ruby-comment cmt"># File lib/reports/ReportBase.rb, line 40</span>
414
+ 40: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_html</span>
415
+ 41: <span class="ruby-identifier">raise</span> <span class="ruby-value str">'This function must be overriden by derived classes.'</span>
416
+ 42: <span class="ruby-keyword kw">end</span>
428
417
  </pre>
429
418
  </div>
430
419
 
@@ -89,9 +89,11 @@
89
89
 
90
90
  <div id="description">
91
91
  <p>
92
- Each <a href="Project.html">Project</a> has a single <a
93
- href="ReportContext.html">ReportContext</a> object that is used during the
94
- report generation. It is a container for global state.
92
+ The <a href="ReportContext.html">ReportContext</a> objects provide some
93
+ settings that are used during the generation of a report. Reports can be
94
+ nested, so multiple objects can exist at a time. But there is only one
95
+ current <a href="ReportContext.html">ReportContext</a> that is always
96
+ accessable via Project.reportContext.
95
97
  </p>
96
98
 
97
99
  </div>
@@ -104,7 +106,7 @@ report generation. It is a container for global state.
104
106
 
105
107
  <div class="name-list">
106
108
 
107
- <a href="#M000644">new</a>&nbsp;&nbsp;
109
+ <a href="#M000338">new</a>&nbsp;&nbsp;
108
110
 
109
111
  </div>
110
112
  </div>
@@ -124,15 +126,15 @@ report generation. It is a container for global state.
124
126
  <table>
125
127
 
126
128
  <tr class="top-aligned-row context-row">
127
- <td class="context-item-name">end</td>
129
+ <td class="context-item-name">project</td>
128
130
 
129
- <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
131
+ <td class="context-item-value">&nbsp;[R]&nbsp;</td>
130
132
 
131
133
  <td class="context-item-desc"></td>
132
134
  </tr>
133
135
 
134
136
  <tr class="top-aligned-row context-row">
135
- <td class="context-item-name">project</td>
137
+ <td class="context-item-name">query</td>
136
138
 
137
139
  <td class="context-item-value">&nbsp;[R]&nbsp;</td>
138
140
 
@@ -155,14 +157,6 @@ report generation. It is a container for global state.
155
157
  <td class="context-item-desc"></td>
156
158
  </tr>
157
159
 
158
- <tr class="top-aligned-row context-row">
159
- <td class="context-item-name">start</td>
160
-
161
- <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
162
-
163
- <td class="context-item-desc"></td>
164
- </tr>
165
-
166
160
  <tr class="top-aligned-row context-row">
167
161
  <td class="context-item-name">tasks</td>
168
162
 
@@ -183,12 +177,12 @@ report generation. It is a container for global state.
183
177
  <h3 class="section-bar">Public Class methods</h3>
184
178
 
185
179
 
186
- <div id="method-M000644" class="method-detail">
187
- <a name="M000644"></a>
180
+ <div id="method-M000338" class="method-detail">
181
+ <a name="M000338"></a>
188
182
 
189
183
  <div class="method-heading">
190
184
 
191
- <a href="#M000644" class="method-signature">
185
+ <a href="#M000338" class="method-signature">
192
186
 
193
187
  <span class="method-name">new</span><span class="method-args">(project, report)</span>
194
188
 
@@ -199,27 +193,38 @@ report generation. It is a container for global state.
199
193
  <div class="method-description">
200
194
 
201
195
  <p><a class="source-toggle" href="#"
202
- onclick="toggleCode('M000644-source');return false;">[Source]</a></p>
203
- <div class="method-source-code" id="M000644-source">
196
+ onclick="toggleCode('M000338-source');return false;">[Source]</a></p>
197
+ <div class="method-source-code" id="M000338-source">
204
198
  <pre>
205
- <span class="ruby-comment cmt"># File lib/reports/ReportContext.rb, line 22</span>
206
- 22: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">project</span>, <span class="ruby-identifier">report</span>)
207
- 23: <span class="ruby-ivar">@project</span> = <span class="ruby-identifier">project</span>
208
- 24: <span class="ruby-ivar">@report</span> = <span class="ruby-identifier">report</span>
209
- 25:
210
- 26: <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">parent</span> = <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">reportContext</span>)
211
- 27: <span class="ruby-comment cmt"># If the new ReportContext is created from within an existing context,</span>
212
- 28: <span class="ruby-comment cmt"># this is used as parent context and all attribute values are copied</span>
213
- 29: <span class="ruby-comment cmt"># as default initial values.</span>
214
- 30: <span class="ruby-ivar">@start</span> = <span class="ruby-identifier">parent</span>.<span class="ruby-identifier">start</span>
215
- 31: <span class="ruby-ivar">@end</span> = <span class="ruby-identifier">parent</span>.<span class="ruby-identifier">end</span>
216
- 32: <span class="ruby-ivar">@tasks</span> = <span class="ruby-identifier">parent</span>.<span class="ruby-identifier">tasks</span>
217
- 33: <span class="ruby-ivar">@resources</span> = <span class="ruby-identifier">parent</span>.<span class="ruby-identifier">resources</span>
218
- 34: <span class="ruby-keyword kw">else</span>
219
- 35: <span class="ruby-ivar">@start</span> = <span class="ruby-ivar">@end</span> = <span class="ruby-keyword kw">nil</span>
220
- 36: <span class="ruby-ivar">@tasks</span> = <span class="ruby-ivar">@resources</span> = <span class="ruby-keyword kw">nil</span>
221
- 37: <span class="ruby-keyword kw">end</span>
222
- 38: <span class="ruby-keyword kw">end</span>
199
+ <span class="ruby-comment cmt"># File lib/reports/ReportContext.rb, line 24</span>
200
+ 24: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">project</span>, <span class="ruby-identifier">report</span>)
201
+ 25: <span class="ruby-ivar">@project</span> = <span class="ruby-identifier">project</span>
202
+ 26: <span class="ruby-ivar">@report</span> = <span class="ruby-identifier">report</span>
203
+ 27: <span class="ruby-identifier">queryAttrs</span> = {
204
+ 28: <span class="ruby-value str">'project'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@project</span>,
205
+ 29: <span class="ruby-value str">'loadUnit'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@report</span>.<span class="ruby-identifier">get</span>(<span class="ruby-value str">'loadUnit'</span>),
206
+ 30: <span class="ruby-value str">'numberFormat'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@report</span>.<span class="ruby-identifier">get</span>(<span class="ruby-value str">'numberFormat'</span>),
207
+ 31: <span class="ruby-value str">'timeFormat'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@report</span>.<span class="ruby-identifier">get</span>(<span class="ruby-value str">'timeFormat'</span>),
208
+ 32: <span class="ruby-value str">'currencyFormat'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@report</span>.<span class="ruby-identifier">get</span>(<span class="ruby-value str">'currencyFormat'</span>),
209
+ 33: <span class="ruby-value str">'start'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@report</span>.<span class="ruby-identifier">get</span>(<span class="ruby-value str">'start'</span>),
210
+ 34: <span class="ruby-value str">'end'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@report</span>.<span class="ruby-identifier">get</span>(<span class="ruby-value str">'end'</span>),
211
+ 35: <span class="ruby-value str">'costAccount'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@report</span>.<span class="ruby-identifier">get</span>(<span class="ruby-value str">'costAccount'</span>),
212
+ 36: <span class="ruby-value str">'revenueAccount'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@report</span>.<span class="ruby-identifier">get</span>(<span class="ruby-value str">'revenueAccount'</span>)
213
+ 37: }
214
+ 38: <span class="ruby-ivar">@query</span> = <span class="ruby-constant">Query</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">queryAttrs</span>)
215
+ 39: <span class="ruby-keyword kw">if</span> (<span class="ruby-ivar">@parent</span> = <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">reportContext</span>)
216
+ 40: <span class="ruby-comment cmt"># If the new ReportContext is created from within an existing context,</span>
217
+ 41: <span class="ruby-comment cmt"># this is used as parent context and the settings are copied as</span>
218
+ 42: <span class="ruby-comment cmt"># default initial values.</span>
219
+ 43: <span class="ruby-ivar">@tasks</span> = <span class="ruby-ivar">@parent</span>.<span class="ruby-identifier">tasks</span>.<span class="ruby-identifier">dup</span>
220
+ 44: <span class="ruby-ivar">@resources</span> = <span class="ruby-ivar">@parent</span>.<span class="ruby-identifier">resources</span>.<span class="ruby-identifier">dup</span>
221
+ 45: <span class="ruby-keyword kw">else</span>
222
+ 46: <span class="ruby-comment cmt"># There is no existing ReportContext yet, so we create one based on</span>
223
+ 47: <span class="ruby-comment cmt"># the settings of the report.</span>
224
+ 48: <span class="ruby-ivar">@tasks</span> = <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">tasks</span>.<span class="ruby-identifier">dup</span>
225
+ 49: <span class="ruby-ivar">@resources</span> = <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">resources</span>.<span class="ruby-identifier">dup</span>
226
+ 50: <span class="ruby-keyword kw">end</span>
227
+ 51: <span class="ruby-keyword kw">end</span>
223
228
  </pre>
224
229
  </div>
225
230