taskjuggler 0.0.5 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (544) hide show
  1. data/CHANGELOG +2086 -0
  2. data/benchmarks/666tasks.tjp +3183 -0
  3. data/benchmarks/booking.tjp +14 -10
  4. data/doc/AppConfig.html +95 -73
  5. data/doc/Arguments.html +22 -2
  6. data/doc/CHANGELOG.html +2587 -0
  7. data/doc/COPYING.html +21 -1
  8. data/doc/Object.html +161 -122
  9. data/doc/README.html +21 -1
  10. data/doc/RuntimeConfig.html +26 -6
  11. data/doc/String.html +38 -18
  12. data/doc/StringIO.html +579 -0
  13. data/doc/TaskJuggler.html +251 -143
  14. data/doc/TaskJuggler/Account.html +26 -6
  15. data/doc/TaskJuggler/AccountAttribute.html +28 -8
  16. data/doc/TaskJuggler/AccountScenario.html +24 -4
  17. data/doc/TaskJuggler/Allocation.html +30 -10
  18. data/doc/TaskJuggler/AllocationAttribute.html +28 -8
  19. data/doc/TaskJuggler/AttributeBase.html +46 -26
  20. data/doc/TaskJuggler/AttributeDefinition.html +22 -2
  21. data/doc/TaskJuggler/BatchProcessor.html +40 -20
  22. data/doc/TaskJuggler/Booking.html +26 -6
  23. data/doc/TaskJuggler/BookingListAttribute.html +28 -8
  24. data/doc/TaskJuggler/BooleanAttribute.html +28 -8
  25. data/doc/TaskJuggler/CSVFile.html +308 -146
  26. data/doc/TaskJuggler/CellSettingPattern.html +22 -2
  27. data/doc/TaskJuggler/CellSettingPatternList.html +26 -6
  28. data/doc/TaskJuggler/Charge.html +26 -6
  29. data/doc/TaskJuggler/ChargeListAttribute.html +26 -6
  30. data/doc/TaskJuggler/ChargeSet.html +33 -13
  31. data/doc/TaskJuggler/ChargeSetListAttribute.html +28 -8
  32. data/doc/TaskJuggler/ColumnListAttribute.html +26 -6
  33. data/doc/TaskJuggler/ColumnTable.html +24 -4
  34. data/doc/TaskJuggler/Daemon.html +26 -6
  35. data/doc/TaskJuggler/DateAttribute.html +26 -6
  36. data/doc/TaskJuggler/DefinitionListAttribute.html +22 -2
  37. data/doc/TaskJuggler/DependencyListAttribute.html +28 -8
  38. data/doc/TaskJuggler/DurationAttribute.html +28 -8
  39. data/doc/TaskJuggler/FixnumAttribute.html +24 -4
  40. data/doc/TaskJuggler/FlagListAttribute.html +28 -8
  41. data/doc/TaskJuggler/FloatAttribute.html +26 -6
  42. data/doc/TaskJuggler/FormatListAttribute.html +24 -4
  43. data/doc/TaskJuggler/GanttChart.html +147 -126
  44. data/doc/TaskJuggler/GanttContainer.html +34 -14
  45. data/doc/TaskJuggler/GanttHeader.html +28 -8
  46. data/doc/TaskJuggler/GanttHeaderScaleItem.html +24 -4
  47. data/doc/TaskJuggler/GanttLine.html +38 -18
  48. data/doc/TaskJuggler/GanttLoadStack.html +26 -6
  49. data/doc/TaskJuggler/GanttMilestone.html +34 -14
  50. data/doc/TaskJuggler/GanttRouter.html +50 -30
  51. data/doc/TaskJuggler/GanttTaskBar.html +34 -14
  52. data/doc/TaskJuggler/HTMLDocument.html +26 -6
  53. data/doc/TaskJuggler/HTMLGraphics.html +30 -10
  54. data/doc/TaskJuggler/Interval.html +40 -22
  55. data/doc/TaskJuggler/IntervalListAttribute.html +28 -8
  56. data/doc/TaskJuggler/JobInfo.html +24 -4
  57. data/doc/TaskJuggler/Journal.html +226 -147
  58. data/doc/TaskJuggler/JournalEntry.html +22 -2
  59. data/doc/TaskJuggler/JournalEntryList.html +129 -112
  60. data/doc/TaskJuggler/KeywordArray.html +26 -6
  61. data/doc/TaskJuggler/KeywordDocumentation.html +46 -26
  62. data/doc/TaskJuggler/Limits.html +152 -123
  63. data/doc/TaskJuggler/Limits/Limit.html +149 -70
  64. data/doc/TaskJuggler/LimitsAttribute.html +36 -51
  65. data/doc/TaskJuggler/ListAttributeBase.html +24 -4
  66. data/doc/TaskJuggler/Log.html +50 -32
  67. data/doc/TaskJuggler/LogFile.html +37 -17
  68. data/doc/TaskJuggler/LogicalAttribute.html +53 -33
  69. data/doc/TaskJuggler/LogicalExpression.html +26 -6
  70. data/doc/TaskJuggler/LogicalExpressionAttribute.html +32 -12
  71. data/doc/TaskJuggler/LogicalFlag.html +42 -22
  72. data/doc/TaskJuggler/LogicalFunction.html +204 -140
  73. data/doc/TaskJuggler/LogicalOperation.html +135 -111
  74. data/doc/TaskJuggler/Macro.html +22 -2
  75. data/doc/TaskJuggler/MacroParser.html +32 -12
  76. data/doc/TaskJuggler/MacroTable.html +32 -12
  77. data/doc/TaskJuggler/ManagerResponsibilities.html +24 -4
  78. data/doc/TaskJuggler/ManagerStatusRecord.html +24 -4
  79. data/doc/TaskJuggler/Message.html +24 -4
  80. data/doc/TaskJuggler/MessageHandler.html +24 -4
  81. data/doc/TaskJuggler/Navigator.html +104 -71
  82. data/doc/TaskJuggler/NavigatorElement.html +32 -12
  83. data/doc/TaskJuggler/NikuProject.html +22 -2
  84. data/doc/TaskJuggler/NikuReport.html +310 -228
  85. data/doc/TaskJuggler/NikuResource.html +22 -2
  86. data/doc/TaskJuggler/NodeListAttribute.html +615 -0
  87. data/doc/TaskJuggler/OnShiftCache.html +32 -12
  88. data/doc/TaskJuggler/ProcessIntercom.html +205 -78
  89. data/doc/TaskJuggler/ProcessIntercomIface.html +26 -6
  90. data/doc/TaskJuggler/Project.html +708 -660
  91. data/doc/TaskJuggler/ProjectBroker.html +506 -304
  92. data/doc/TaskJuggler/ProjectBrokerIface.html +61 -41
  93. data/doc/TaskJuggler/ProjectFileParser.html +429 -373
  94. data/doc/TaskJuggler/ProjectFileScanner.html +1790 -0
  95. data/doc/TaskJuggler/ProjectRecord.html +80 -60
  96. data/doc/TaskJuggler/ProjectServer.html +312 -237
  97. data/doc/TaskJuggler/ProjectServerIface.html +101 -43
  98. data/doc/TaskJuggler/PropertyAttribute.html +32 -12
  99. data/doc/TaskJuggler/PropertyList.html +166 -145
  100. data/doc/TaskJuggler/PropertySet.html +254 -224
  101. data/doc/TaskJuggler/PropertyTreeNode.html +670 -536
  102. data/doc/TaskJuggler/Query.html +169 -148
  103. data/doc/TaskJuggler/RTFHandlers.html +622 -0
  104. data/doc/TaskJuggler/RTFNavigator.html +28 -8
  105. data/doc/TaskJuggler/RTFQuery.html +40 -20
  106. data/doc/TaskJuggler/RTFReport.html +62 -25
  107. data/doc/TaskJuggler/RTFReportLink.html +765 -0
  108. data/doc/TaskJuggler/RealFormat.html +26 -6
  109. data/doc/TaskJuggler/RealFormatAttribute.html +26 -6
  110. data/doc/TaskJuggler/ReferenceAttribute.html +59 -39
  111. data/doc/TaskJuggler/Report.html +402 -251
  112. data/doc/TaskJuggler/ReportBase.html +162 -137
  113. data/doc/TaskJuggler/ReportContext.html +112 -29
  114. data/doc/TaskJuggler/ReportServer.html +89 -64
  115. data/doc/TaskJuggler/ReportServerIface.html +75 -55
  116. data/doc/TaskJuggler/ReportServerRecord.html +54 -31
  117. data/doc/TaskJuggler/ReportServlet.html +980 -0
  118. data/doc/TaskJuggler/ReportTable.html +41 -21
  119. data/doc/TaskJuggler/ReportTableCell.html +214 -170
  120. data/doc/TaskJuggler/ReportTableColumn.html +30 -10
  121. data/doc/TaskJuggler/ReportTableLegend.html +36 -16
  122. data/doc/TaskJuggler/ReportTableLine.html +32 -12
  123. data/doc/TaskJuggler/Resource.html +99 -87
  124. data/doc/TaskJuggler/ResourceListAttribute.html +59 -39
  125. data/doc/TaskJuggler/ResourceListRE.html +47 -26
  126. data/doc/TaskJuggler/ResourceScenario.html +403 -437
  127. data/doc/TaskJuggler/RichText.html +26 -6
  128. data/doc/TaskJuggler/RichTextAttribute.html +50 -30
  129. data/doc/TaskJuggler/RichTextDocument.html +37 -17
  130. data/doc/TaskJuggler/RichTextElement.html +475 -413
  131. data/doc/TaskJuggler/RichTextException.html +22 -2
  132. data/doc/TaskJuggler/RichTextFunctionExample.html +28 -8
  133. data/doc/TaskJuggler/RichTextFunctionHandler.html +24 -4
  134. data/doc/TaskJuggler/RichTextImage.html +22 -2
  135. data/doc/TaskJuggler/RichTextIntermediate.html +38 -18
  136. data/doc/TaskJuggler/RichTextParser.html +56 -34
  137. data/doc/TaskJuggler/RichTextScanner.html +82 -61
  138. data/doc/TaskJuggler/RichTextSnip.html +34 -14
  139. data/doc/TaskJuggler/RichTextSyntaxRules.html +507 -353
  140. data/doc/TaskJuggler/Scenario.html +22 -2
  141. data/doc/TaskJuggler/ScenarioData.html +30 -46
  142. data/doc/TaskJuggler/ScenarioListAttribute.html +38 -18
  143. data/doc/TaskJuggler/Scoreboard.html +42 -22
  144. data/doc/TaskJuggler/SheetHandlerBase.html +40 -20
  145. data/doc/TaskJuggler/SheetReceiver.html +333 -295
  146. data/doc/TaskJuggler/SheetSender.html +253 -230
  147. data/doc/TaskJuggler/Shift.html +26 -6
  148. data/doc/TaskJuggler/ShiftAssignment.html +89 -73
  149. data/doc/TaskJuggler/ShiftAssignments.html +226 -234
  150. data/doc/TaskJuggler/ShiftAssignmentsAttribute.html +39 -54
  151. data/doc/TaskJuggler/ShiftScenario.html +28 -8
  152. data/doc/TaskJuggler/SortListAttribute.html +34 -14
  153. data/doc/TaskJuggler/SourceFileInfo.html +24 -4
  154. data/doc/TaskJuggler/StatusSheetReceiver.html +24 -3
  155. data/doc/TaskJuggler/StatusSheetReport.html +168 -153
  156. data/doc/TaskJuggler/StatusSheetSender.html +24 -3
  157. data/doc/TaskJuggler/StringAttribute.html +38 -18
  158. data/doc/TaskJuggler/SymbolAttribute.html +32 -12
  159. data/doc/TaskJuggler/SyntaxReference.html +40 -20
  160. data/doc/TaskJuggler/TOCEntry.html +26 -6
  161. data/doc/TaskJuggler/TSResourceRecord.html +22 -2
  162. data/doc/TaskJuggler/TSTaskRecord.html +22 -2
  163. data/doc/TaskJuggler/TableColumnDefinition.html +59 -22
  164. data/doc/TaskJuggler/TableOfContents.html +26 -6
  165. data/doc/TaskJuggler/TableReport.html +937 -904
  166. data/doc/TaskJuggler/Task.html +55 -36
  167. data/doc/TaskJuggler/TaskDependency.html +24 -4
  168. data/doc/TaskJuggler/TaskListAttribute.html +50 -30
  169. data/doc/TaskJuggler/TaskListRE.html +27 -7
  170. data/doc/TaskJuggler/TaskScenario.html +1273 -1153
  171. data/doc/TaskJuggler/TextFormatter.html +28 -8
  172. data/doc/TaskJuggler/TextParser.html +585 -338
  173. data/doc/TaskJuggler/TextParser/Pattern.html +54 -34
  174. data/doc/TaskJuggler/TextParser/Rule.html +95 -73
  175. data/doc/TaskJuggler/TextParser/StackElement.html +39 -17
  176. data/doc/TaskJuggler/TextParser/TextParserResultArray.html +24 -4
  177. data/doc/TaskJuggler/TextParser/TokenDoc.html +22 -2
  178. data/doc/TaskJuggler/TextReport.html +28 -8
  179. data/doc/TaskJuggler/TextScanner.html +400 -1404
  180. data/doc/TaskJuggler/TextScanner/BufferStreamHandle.html +28 -240
  181. data/doc/TaskJuggler/TextScanner/FileStreamHandle.html +37 -184
  182. data/doc/TaskJuggler/TextScanner/MacroStackEntry.html +682 -0
  183. data/doc/TaskJuggler/TextScanner/StreamHandle.html +342 -67
  184. data/doc/TaskJuggler/TimeSheet.html +48 -28
  185. data/doc/TaskJuggler/TimeSheetReceiver.html +24 -3
  186. data/doc/TaskJuggler/TimeSheetRecord.html +47 -27
  187. data/doc/TaskJuggler/TimeSheetReport.html +154 -133
  188. data/doc/TaskJuggler/TimeSheetSender.html +24 -3
  189. data/doc/TaskJuggler/TimeSheetSummary.html +137 -91
  190. data/doc/TaskJuggler/TimeSheets.html +26 -6
  191. data/doc/TaskJuggler/Tj3AppBase.html +85 -58
  192. data/doc/TaskJuggler/Tj3Client.html +292 -238
  193. data/doc/TaskJuggler/Tj3Daemon.html +159 -74
  194. data/doc/TaskJuggler/Tj3SheetAppBase.html +26 -6
  195. data/doc/TaskJuggler/Tj3SsReceiver.html +26 -6
  196. data/doc/TaskJuggler/Tj3SsSender.html +53 -26
  197. data/doc/TaskJuggler/Tj3TsReceiver.html +28 -7
  198. data/doc/TaskJuggler/Tj3TsSender.html +26 -6
  199. data/doc/TaskJuggler/Tj3TsSummary.html +26 -6
  200. data/doc/TaskJuggler/TjException.html +22 -2
  201. data/doc/TaskJuggler/TjTime.html +216 -160
  202. data/doc/TaskJuggler/TjpExample.html +34 -14
  203. data/doc/TaskJuggler/TjpExportRE.html +403 -407
  204. data/doc/TaskJuggler/TjpSyntaxRules.html +4805 -4408
  205. data/doc/TaskJuggler/URLParameter.html +649 -0
  206. data/doc/TaskJuggler/UserManual.html +42 -22
  207. data/doc/TaskJuggler/WebServer.html +702 -0
  208. data/doc/TaskJuggler/WorkingHours.html +38 -18
  209. data/doc/TaskJuggler/WorkingHoursAttribute.html +61 -41
  210. data/doc/TaskJuggler/XMLBlob.html +24 -4
  211. data/doc/TaskJuggler/XMLComment.html +24 -4
  212. data/doc/TaskJuggler/XMLDocument.html +30 -10
  213. data/doc/TaskJuggler/XMLElement.html +34 -14
  214. data/doc/TaskJuggler/XMLNamedText.html +22 -2
  215. data/doc/TaskJuggler/XMLText.html +24 -4
  216. data/doc/index.html +1841 -1666
  217. data/doc/lib/AccountScenario_rb.html +1 -1
  218. data/doc/lib/Account_rb.html +1 -1
  219. data/doc/lib/Allocation_rb.html +1 -1
  220. data/doc/lib/AppConfig_rb.html +2 -2
  221. data/doc/lib/AttributeBase_rb.html +1 -1
  222. data/doc/lib/AttributeDefinition_rb.html +1 -1
  223. data/doc/lib/Attributes_rb.html +2 -2
  224. data/doc/lib/BatchProcessor_rb.html +1 -1
  225. data/doc/lib/Booking_rb.html +1 -1
  226. data/doc/lib/ChargeSet_rb.html +1 -1
  227. data/doc/lib/Charge_rb.html +1 -1
  228. data/doc/lib/HTMLDocument_rb.html +1 -1
  229. data/doc/lib/Interval_rb.html +1 -1
  230. data/doc/lib/Journal_rb.html +2 -2
  231. data/doc/lib/KeywordArray_rb.html +1 -1
  232. data/doc/lib/KeywordDocumentation_rb.html +1 -1
  233. data/doc/lib/Limits_rb.html +2 -2
  234. data/doc/lib/LogFile_rb.html +2 -2
  235. data/doc/lib/Log_rb.html +1 -1
  236. data/doc/lib/LogicalExpression_rb.html +1 -1
  237. data/doc/lib/LogicalFunction_rb.html +2 -2
  238. data/doc/lib/LogicalOperation_rb.html +2 -2
  239. data/doc/lib/MacroParser_rb.html +1 -1
  240. data/doc/lib/MacroTable_rb.html +1 -1
  241. data/doc/lib/MessageHandler_rb.html +1 -1
  242. data/doc/lib/Message_rb.html +1 -1
  243. data/doc/lib/ProjectFileParser_rb.html +4 -8
  244. data/doc/lib/ProjectFileScanner_rb.html +67 -0
  245. data/doc/lib/Project_rb.html +2 -2
  246. data/doc/lib/PropertyList_rb.html +2 -2
  247. data/doc/lib/PropertySet_rb.html +2 -2
  248. data/doc/lib/PropertyTreeNode_rb.html +2 -2
  249. data/doc/lib/Query_rb.html +2 -2
  250. data/doc/lib/RTFHandlers_rb.html +73 -0
  251. data/doc/lib/RTFNavigator_rb.html +1 -1
  252. data/doc/lib/RTFQuery_rb.html +1 -1
  253. data/doc/lib/RTFReportLink_rb.html +71 -0
  254. data/doc/lib/RTFReport_rb.html +2 -2
  255. data/doc/lib/RealFormat_rb.html +1 -1
  256. data/doc/lib/ResourceScenario_rb.html +2 -2
  257. data/doc/lib/Resource_rb.html +2 -2
  258. data/doc/lib/RichTextDocument_rb.html +1 -1
  259. data/doc/lib/RichTextElement_rb.html +2 -2
  260. data/doc/lib/RichTextFunctionExample_rb.html +1 -1
  261. data/doc/lib/RichTextFunctionHandler_rb.html +1 -1
  262. data/doc/lib/RichTextParser_rb.html +2 -2
  263. data/doc/lib/RichTextScanner_rb.html +2 -2
  264. data/doc/lib/RichTextSnip_rb.html +1 -1
  265. data/doc/lib/RichTextSyntaxRules_rb.html +2 -2
  266. data/doc/lib/RichText_rb.html +1 -1
  267. data/doc/lib/RuntimeConfig_rb.html +1 -1
  268. data/doc/lib/ScenarioData_rb.html +2 -2
  269. data/doc/lib/Scenario_rb.html +1 -1
  270. data/doc/lib/Scoreboard_rb.html +1 -1
  271. data/doc/lib/SheetHandlerBase_rb.html +1 -1
  272. data/doc/lib/SheetReceiver_rb.html +2 -2
  273. data/doc/lib/SheetSender_rb.html +4 -2
  274. data/doc/lib/ShiftAssignments_rb.html +4 -2
  275. data/doc/lib/ShiftScenario_rb.html +1 -1
  276. data/doc/lib/Shift_rb.html +1 -1
  277. data/doc/lib/SourceFileInfo_rb.html +1 -1
  278. data/doc/lib/StatusSheetReceiver_rb.html +2 -2
  279. data/doc/lib/StatusSheetSender_rb.html +2 -2
  280. data/doc/lib/SyntaxReference_rb.html +1 -1
  281. data/doc/lib/TOCEntry_rb.html +1 -1
  282. data/doc/lib/TableColumnDefinition_rb.html +2 -2
  283. data/doc/lib/TableOfContents_rb.html +1 -1
  284. data/doc/lib/TaskDependency_rb.html +1 -1
  285. data/doc/lib/TaskJuggler_rb.html +2 -2
  286. data/doc/lib/TaskScenario_rb.html +2 -2
  287. data/doc/lib/Task_rb.html +2 -2
  288. data/doc/lib/TextFormatter_rb.html +1 -1
  289. data/doc/lib/TextParser/Pattern_rb.html +1 -1
  290. data/doc/lib/TextParser/Rule_rb.html +2 -2
  291. data/doc/lib/TextParser/StackElement_rb.html +2 -2
  292. data/doc/lib/TextParser/TokenDoc_rb.html +1 -1
  293. data/doc/lib/TextParser_rb.html +2 -2
  294. data/doc/lib/TextScanner_rb.html +6 -2
  295. data/doc/lib/TimeSheetReceiver_rb.html +2 -2
  296. data/doc/lib/TimeSheetSender_rb.html +2 -2
  297. data/doc/lib/TimeSheetSummary_rb.html +2 -2
  298. data/doc/lib/TimeSheets_rb.html +2 -2
  299. data/doc/lib/Tj3AppBase_rb.html +2 -2
  300. data/doc/lib/Tj3Config_rb.html +2 -2
  301. data/doc/lib/Tj3SheetAppBase_rb.html +2 -2
  302. data/doc/lib/TjException_rb.html +1 -1
  303. data/doc/lib/TjTime_rb.html +2 -2
  304. data/doc/lib/TjpExample_rb.html +1 -1
  305. data/doc/lib/TjpSyntaxRules_rb.html +2 -2
  306. data/doc/lib/URLParameter_rb.html +67 -0
  307. data/doc/lib/UTF8String_rb.html +1 -1
  308. data/doc/lib/UserManual_rb.html +1 -1
  309. data/doc/lib/WorkingHours_rb.html +1 -1
  310. data/doc/lib/XMLDocument_rb.html +2 -2
  311. data/doc/lib/XMLElement_rb.html +1 -1
  312. data/doc/lib/daemon/Daemon_rb.html +1 -1
  313. data/doc/lib/daemon/ProcessIntercom_rb.html +2 -2
  314. data/doc/lib/daemon/ProjectBroker_rb.html +4 -2
  315. data/doc/lib/daemon/ProjectServer_rb.html +2 -2
  316. data/doc/lib/daemon/ReportServer_rb.html +2 -2
  317. data/doc/lib/daemon/WebServer_rb.html +75 -0
  318. data/doc/lib/deep_copy_rb.html +2 -2
  319. data/doc/lib/reports/CSVFile_rb.html +2 -2
  320. data/doc/lib/reports/ColumnTable_rb.html +1 -1
  321. data/doc/lib/reports/GanttChart_rb.html +2 -2
  322. data/doc/lib/reports/GanttContainer_rb.html +1 -1
  323. data/doc/lib/reports/GanttHeaderScaleItem_rb.html +1 -1
  324. data/doc/lib/reports/GanttHeader_rb.html +1 -1
  325. data/doc/lib/reports/GanttLine_rb.html +1 -1
  326. data/doc/lib/reports/GanttLoadStack_rb.html +1 -1
  327. data/doc/lib/reports/GanttMilestone_rb.html +1 -1
  328. data/doc/lib/reports/GanttRouter_rb.html +1 -1
  329. data/doc/lib/reports/GanttTaskBar_rb.html +1 -1
  330. data/doc/lib/reports/HTMLGraphics_rb.html +1 -1
  331. data/doc/lib/reports/Navigator_rb.html +2 -2
  332. data/doc/lib/reports/NikuReport_rb.html +2 -2
  333. data/doc/lib/reports/ReportBase_rb.html +2 -2
  334. data/doc/lib/reports/ReportContext_rb.html +2 -2
  335. data/doc/lib/reports/ReportTableCell_rb.html +2 -2
  336. data/doc/lib/reports/ReportTableColumn_rb.html +1 -1
  337. data/doc/lib/reports/ReportTableLegend_rb.html +1 -1
  338. data/doc/lib/reports/ReportTableLine_rb.html +1 -1
  339. data/doc/lib/reports/ReportTable_rb.html +2 -2
  340. data/doc/lib/reports/Report_rb.html +2 -2
  341. data/doc/lib/reports/ResourceListRE_rb.html +2 -2
  342. data/doc/lib/reports/StatusSheetReport_rb.html +2 -2
  343. data/doc/lib/reports/TableReport_rb.html +2 -2
  344. data/doc/lib/reports/TaskListRE_rb.html +2 -2
  345. data/doc/lib/reports/TextReport_rb.html +1 -1
  346. data/doc/lib/reports/TimeSheetReport_rb.html +2 -2
  347. data/doc/lib/reports/TjpExportRE_rb.html +2 -2
  348. data/doc/lib/ruby-signal-bug_rb.html +1 -1
  349. data/doc/lib/taskjuggler3_rb.html +2 -2
  350. data/doc/lib/tj3client_rb.html +2 -2
  351. data/doc/lib/tj3d_rb.html +2 -2
  352. data/doc/lib/tj3man_rb.html +1 -1
  353. data/doc/lib/tj3ss_receiver_rb.html +1 -1
  354. data/doc/lib/tj3ss_sender_rb.html +2 -2
  355. data/doc/lib/tj3ts_receiver_rb.html +2 -2
  356. data/doc/lib/tj3ts_sender_rb.html +1 -1
  357. data/doc/lib/tj3ts_summary_rb.html +1 -1
  358. data/doc/rdoc.css +9 -4
  359. data/examples/tutorial.tjp +17 -15
  360. data/gem_spec.rb +3 -0
  361. data/lib/AppConfig.rb +3 -1
  362. data/lib/Attributes.rb +10 -8
  363. data/lib/Journal.rb +55 -20
  364. data/lib/Limits.rb +72 -46
  365. data/lib/LogFile.rb +3 -3
  366. data/lib/LogicalFunction.rb +19 -6
  367. data/lib/LogicalOperation.rb +5 -1
  368. data/lib/Project.rb +37 -9
  369. data/lib/ProjectFileParser.rb +25 -22
  370. data/lib/ProjectFileScanner.rb +365 -0
  371. data/lib/PropertyList.rb +2 -1
  372. data/lib/PropertySet.rb +14 -4
  373. data/lib/PropertyTreeNode.rb +42 -29
  374. data/lib/Query.rb +3 -1
  375. data/lib/RTFHandlers.rb +35 -0
  376. data/lib/RTFReport.rb +23 -6
  377. data/lib/RTFReportLink.rb +72 -0
  378. data/lib/Resource.rb +8 -16
  379. data/lib/ResourceScenario.rb +1 -22
  380. data/lib/RichTextElement.rb +42 -0
  381. data/lib/RichTextParser.rb +6 -4
  382. data/lib/RichTextScanner.rb +5 -5
  383. data/lib/RichTextSyntaxRules.rb +48 -10
  384. data/lib/ScenarioData.rb +5 -3
  385. data/lib/SheetReceiver.rb +24 -6
  386. data/lib/SheetSender.rb +17 -13
  387. data/lib/ShiftAssignments.rb +56 -52
  388. data/lib/StatusSheetReceiver.rb +1 -0
  389. data/lib/StatusSheetSender.rb +1 -0
  390. data/lib/TableColumnDefinition.rb +4 -2
  391. data/lib/Task.rb +8 -9
  392. data/lib/TaskJuggler.rb +21 -11
  393. data/lib/TaskScenario.rb +61 -26
  394. data/lib/TextParser.rb +268 -106
  395. data/lib/TextParser/Rule.rb +4 -2
  396. data/lib/TextParser/StackElement.rb +6 -4
  397. data/lib/TextScanner.rb +283 -700
  398. data/lib/TimeSheetReceiver.rb +1 -0
  399. data/lib/TimeSheetSender.rb +1 -0
  400. data/lib/TimeSheetSummary.rb +51 -26
  401. data/lib/TimeSheets.rb +1 -1
  402. data/lib/Tj3AppBase.rb +8 -1
  403. data/lib/Tj3Config.rb +1 -1
  404. data/lib/TjTime.rb +5 -0
  405. data/lib/TjpSyntaxRules.rb +360 -144
  406. data/lib/URLParameter.rb +30 -0
  407. data/lib/XMLDocument.rb +2 -2
  408. data/lib/daemon/ProcessIntercom.rb +50 -9
  409. data/lib/daemon/ProjectBroker.rb +63 -10
  410. data/lib/daemon/ProjectServer.rb +47 -16
  411. data/lib/daemon/ReportServer.rb +9 -4
  412. data/lib/daemon/WebServer.rb +204 -0
  413. data/lib/deep_copy.rb +4 -1
  414. data/lib/reports/CSVFile.rb +150 -66
  415. data/lib/reports/GanttChart.rb +2 -1
  416. data/lib/reports/Navigator.rb +18 -5
  417. data/lib/reports/NikuReport.rb +32 -2
  418. data/lib/reports/Report.rb +65 -37
  419. data/lib/reports/ReportBase.rb +14 -9
  420. data/lib/reports/ReportContext.rb +19 -4
  421. data/lib/reports/ReportTable.rb +2 -2
  422. data/lib/reports/ReportTableCell.rb +54 -30
  423. data/lib/reports/ResourceListRE.rb +4 -3
  424. data/lib/reports/StatusSheetReport.rb +8 -13
  425. data/lib/reports/TableReport.rb +47 -32
  426. data/lib/reports/TaskListRE.rb +3 -3
  427. data/lib/reports/TimeSheetReport.rb +14 -5
  428. data/lib/reports/TjpExportRE.rb +14 -19
  429. data/lib/taskjuggler3.rb +15 -0
  430. data/lib/tj3client.rb +9 -7
  431. data/lib/tj3d.rb +38 -10
  432. data/lib/tj3ss_sender.rb +7 -0
  433. data/lib/tj3ts_receiver.rb +1 -0
  434. data/manual/Day_To_Day_Juggling +1 -1
  435. data/manual/Rich_Text_Attributes +8 -0
  436. data/manual/TaskJuggler_2x_Migration +7 -0
  437. data/manual/The_TaskJuggler_Syntax +20 -6
  438. data/prj_cfg.rb +3 -2
  439. data/tasks/changelog.rake +36 -0
  440. data/tasks/csts.rake +2 -3
  441. data/tasks/gem.rake +10 -0
  442. data/tasks/missing.rake +0 -17
  443. data/test/TestSuite/ReportGenerator/Correct/Journal.html +63 -0
  444. data/test/TestSuite/ReportGenerator/Correct/Journal.tjp +14 -0
  445. data/test/TestSuite/{HTML-Reports/LogicalFunctions.tjp → ReportGenerator/Correct/LogicalFunctions1.tjp} +2 -2
  446. data/test/TestSuite/ReportGenerator/Correct/LogicalFunctions2.csv +3 -0
  447. data/test/TestSuite/ReportGenerator/Correct/LogicalFunctions2.tjp +19 -0
  448. data/test/TestSuite/ReportGenerator/Correct/css/tjmanual.css +66 -0
  449. data/test/TestSuite/ReportGenerator/Correct/css/tjreport.css +407 -0
  450. data/test/TestSuite/ReportGenerator/Correct/icons/details.png +0 -0
  451. data/test/TestSuite/ReportGenerator/Correct/icons/flag-green.png +0 -0
  452. data/test/TestSuite/ReportGenerator/Correct/icons/flag-red.png +0 -0
  453. data/test/TestSuite/ReportGenerator/Correct/icons/flag-yellow.png +0 -0
  454. data/test/TestSuite/ReportGenerator/Correct/icons/resource.png +0 -0
  455. data/test/TestSuite/ReportGenerator/Correct/icons/resourcegroup.png +0 -0
  456. data/test/TestSuite/ReportGenerator/Correct/icons/task.png +0 -0
  457. data/test/TestSuite/ReportGenerator/Correct/icons/taskgroup.png +0 -0
  458. data/test/TestSuite/ReportGenerator/Correct/icons/trend-down.png +0 -0
  459. data/test/TestSuite/ReportGenerator/Correct/icons/trend-flat.png +0 -0
  460. data/test/TestSuite/ReportGenerator/Correct/icons/trend-up.png +0 -0
  461. data/test/TestSuite/ReportGenerator/Correct/opennodes.csv +2 -0
  462. data/test/TestSuite/ReportGenerator/Correct/opennodes.tjp +26 -0
  463. data/test/TestSuite/ReportGenerator/Correct/refs/Journal-1.csv +6 -0
  464. data/test/TestSuite/ReportGenerator/Correct/refs/LogicalFunctions1-1.csv +7 -0
  465. data/test/TestSuite/ReportGenerator/Correct/refs/LogicalFunctions2-1.csv +2 -0
  466. data/test/TestSuite/ReportGenerator/Correct/refs/opennodes-1.csv +2 -0
  467. data/test/TestSuite/ReportGenerator/Correct/scripts/wz_tooltip.js +1301 -0
  468. data/test/TestSuite/ReportGenerator/Errors/rtp_report_recursion.tjp +20 -0
  469. data/test/TestSuite/Scheduler/Correct/Container.html +349 -0
  470. data/test/TestSuite/Scheduler/Correct/Limits.tjp +11 -4
  471. data/test/TestSuite/Scheduler/Correct/Shift2.html +464 -150
  472. data/test/TestSuite/Scheduler/Correct/TimeSheet2.html +108 -0
  473. data/test/TestSuite/Scheduler/Correct/TimeSheet2.tjp +7 -0
  474. data/test/TestSuite/Scheduler/Correct/css/tjmanual.css +14 -0
  475. data/test/TestSuite/Scheduler/Correct/css/tjreport.css +233 -21
  476. data/test/TestSuite/Scheduler/Correct/scripts/wz_tooltip.js +20 -20
  477. data/test/TestSuite/StatusSheetTemplates/project.tji +35 -0
  478. data/test/TestSuite/StatusSheetTemplates/project.tjp +56 -0
  479. data/test/TestSuite/StatusSheets/run +3 -2
  480. data/test/TestSuite/Syntax/Correct/Include.tjp +1 -1
  481. data/test/TestSuite/Syntax/Correct/Macro-1.tjp +1 -1
  482. data/test/TestSuite/Syntax/Correct/Macro-2.tjp +6 -0
  483. data/test/TestSuite/Syntax/Correct/Macro-3.tjp +14 -0
  484. data/test/TestSuite/Syntax/Correct/ResourcePrefix.html +32 -0
  485. data/test/TestSuite/Syntax/Correct/css/tjmanual.css +66 -0
  486. data/test/TestSuite/Syntax/Correct/css/tjreport.css +407 -0
  487. data/test/TestSuite/Syntax/Correct/icons/details.png +0 -0
  488. data/test/TestSuite/Syntax/Correct/icons/flag-green.png +0 -0
  489. data/test/TestSuite/Syntax/Correct/icons/flag-red.png +0 -0
  490. data/test/TestSuite/Syntax/Correct/icons/flag-yellow.png +0 -0
  491. data/test/TestSuite/Syntax/Correct/icons/resource.png +0 -0
  492. data/test/TestSuite/Syntax/Correct/icons/resourcegroup.png +0 -0
  493. data/test/TestSuite/Syntax/Correct/icons/task.png +0 -0
  494. data/test/TestSuite/Syntax/Correct/icons/taskgroup.png +0 -0
  495. data/test/TestSuite/Syntax/Correct/icons/trend-down.png +0 -0
  496. data/test/TestSuite/Syntax/Correct/icons/trend-flat.png +0 -0
  497. data/test/TestSuite/Syntax/Correct/icons/trend-up.png +0 -0
  498. data/test/TestSuite/Syntax/Correct/include/dir1/file2.tji +3 -0
  499. data/test/TestSuite/Syntax/Correct/include/dir1/file5.tji +2 -0
  500. data/test/TestSuite/Syntax/Correct/include/dir3/all.tji +3 -0
  501. data/test/TestSuite/Syntax/Correct/include/dir3/file1.tji +2 -0
  502. data/test/TestSuite/Syntax/Correct/include/dir3/file2.tji +1 -0
  503. data/test/TestSuite/Syntax/Correct/scripts/wz_tooltip.js +1301 -0
  504. data/test/TestSuite/Syntax/Correct/tutorial.tjp +13 -13
  505. data/test/TestSuite/Syntax/Errors/empty.tjp +1 -1
  506. data/test/TestSuite/Syntax/Errors/include_recursion.tjp +1 -0
  507. data/test/TestSuite/Syntax/Errors/macro_stack_overflow.tjp +2 -1
  508. data/test/TestSuite/Syntax/Errors/{eof_in_istring1.tjp → no_token_match1.tjp} +2 -2
  509. data/test/TestSuite/Syntax/Errors/{eof_in_istring2.tjp → no_token_match2.tjp} +2 -2
  510. data/test/TestSuite/Syntax/Errors/{eof_in_istring3.tjp → no_token_match3.tjp} +1 -1
  511. data/test/TestSuite/Syntax/Errors/{eof_in_istring4.tjp → no_token_match4.tjp} +1 -1
  512. data/test/TestSuite/Syntax/Errors/{eof_in_istring5.tjp → no_token_match5.tjp} +1 -1
  513. data/test/TestSuite/Syntax/Errors/not_scheduled.tjp +13 -0
  514. data/test/TestSuite/Syntax/Errors/unsupported_token.tjp +1 -1
  515. data/test/TestSuite/TimeSheets/run +5 -5
  516. data/test/test_CSVFile.rb +75 -0
  517. data/test/test_Limits.rb +63 -5
  518. data/test/test_ProjectFileScanner.rb +163 -0
  519. data/test/test_ReportGenerator.rb +81 -0
  520. data/test/test_RichText.rb +21 -3
  521. data/test/test_Scheduler.rb +1 -1
  522. data/test/test_ShiftAssignments.rb +4 -4
  523. data/test/test_Syntax.rb +1 -1
  524. data/test/test_URLParameter.rb +30 -0
  525. metadata +126 -32
  526. data/test/TestSuite/Scheduler/Errors/not_scheduled.tjp +0 -8
  527. data/test/TestSuite/Syntax/Errors/bad_comment.tjp +0 -7
  528. data/test/TestSuite/TimeSheets/TimeSheetTemplates/2002-03-01/boss_2002-03-01.tji +0 -36
  529. data/test/TestSuite/TimeSheets/TimeSheetTemplates/2002-03-01/dev1_2002-03-01.tji +0 -48
  530. data/test/TestSuite/TimeSheets/TimeSheetTemplates/2002-03-01/dev2_2002-03-01.tji +0 -67
  531. data/test/TestSuite/TimeSheets/TimeSheetTemplates/2002-03-01/dev3_2002-03-01.tji +0 -67
  532. data/test/TestSuite/TimeSheets/TimeSheetTemplates/2002-03-01/doc_2002-03-01.tji +0 -48
  533. data/test/TestSuite/TimeSheets/TimeSheetTemplates/2002-03-01/resources.yml +0 -31
  534. data/test/TestSuite/TimeSheets/TimeSheetTemplates/2002-03-01/test_2002-03-01.tji +0 -36
  535. data/test/TestSuite/TimeSheets/TimeSheetTemplates/acceptable_intervals +0 -1
  536. data/test/TestSuite/TimeSheets/TimeSheets/2002-03-01/all.tji +0 -1
  537. data/test/TestSuite/TimeSheets/TimeSheets/2002-03-01/dev2_2002-03-01.tji +0 -54
  538. data/test/TestSuite/TimeSheets/TimeSheets/all.tji +0 -2
  539. data/test/TestSuite/TimeSheets/receiver.log +0 -102
  540. data/test/TestSuite/TimeSheets/sender.log +0 -794
  541. data/test/TestSuite/TimeSheets/summary.log +0 -884
  542. data/test/TestSuite/TimeSheets/timesheets.log +0 -45
  543. data/test/TestSuite/TimeSheets/tj3d.log +0 -292
  544. data/test/test_TextScanner.rb +0 -95
@@ -69,11 +69,11 @@
69
69
  <h3 class="section-header">Methods</h3>
70
70
  <ul class="link-list">
71
71
 
72
- <li><a href="#M000097">::new</a></li>
72
+ <li><a href="#method-c-new">::new</a></li>
73
73
 
74
- <li><a href="#M000098">#addEntry</a></li>
74
+ <li><a href="#method-i-addEntry">#addEntry</a></li>
75
75
 
76
- <li><a href="#M000099">#to_html</a></li>
76
+ <li><a href="#method-i-to_html">#to_html</a></li>
77
77
 
78
78
  </ul>
79
79
  </div>
@@ -90,6 +90,8 @@
90
90
  <h3 class="section-header">Files</h3>
91
91
  <ul>
92
92
 
93
+ <li class="file"><a href="../CHANGELOG.html">CHANGELOG</a></li>
94
+
93
95
  <li class="file"><a href="../COPYING.html">COPYING</a></li>
94
96
 
95
97
  <li class="file"><a href="../README.html">README</a></li>
@@ -259,6 +261,8 @@
259
261
 
260
262
  <li><a href="../TaskJuggler/NikuResource.html">TaskJuggler::NikuResource</a></li>
261
263
 
264
+ <li><a href="../TaskJuggler/NodeListAttribute.html">TaskJuggler::NodeListAttribute</a></li>
265
+
262
266
  <li><a href="../TaskJuggler/OnShiftCache.html">TaskJuggler::OnShiftCache</a></li>
263
267
 
264
268
  <li><a href="../TaskJuggler/ProcessIntercom.html">TaskJuggler::ProcessIntercom</a></li>
@@ -273,6 +277,8 @@
273
277
 
274
278
  <li><a href="../TaskJuggler/ProjectFileParser.html">TaskJuggler::ProjectFileParser</a></li>
275
279
 
280
+ <li><a href="../TaskJuggler/ProjectFileScanner.html">TaskJuggler::ProjectFileScanner</a></li>
281
+
276
282
  <li><a href="../TaskJuggler/ProjectRecord.html">TaskJuggler::ProjectRecord</a></li>
277
283
 
278
284
  <li><a href="../TaskJuggler/ProjectServer.html">TaskJuggler::ProjectServer</a></li>
@@ -289,12 +295,16 @@
289
295
 
290
296
  <li><a href="../TaskJuggler/Query.html">TaskJuggler::Query</a></li>
291
297
 
298
+ <li><a href="../TaskJuggler/RTFHandlers.html">TaskJuggler::RTFHandlers</a></li>
299
+
292
300
  <li><a href="../TaskJuggler/RTFNavigator.html">TaskJuggler::RTFNavigator</a></li>
293
301
 
294
302
  <li><a href="../TaskJuggler/RTFQuery.html">TaskJuggler::RTFQuery</a></li>
295
303
 
296
304
  <li><a href="../TaskJuggler/RTFReport.html">TaskJuggler::RTFReport</a></li>
297
305
 
306
+ <li><a href="../TaskJuggler/RTFReportLink.html">TaskJuggler::RTFReportLink</a></li>
307
+
298
308
  <li><a href="../TaskJuggler/RealFormat.html">TaskJuggler::RealFormat</a></li>
299
309
 
300
310
  <li><a href="../TaskJuggler/RealFormatAttribute.html">TaskJuggler::RealFormatAttribute</a></li>
@@ -313,6 +323,8 @@
313
323
 
314
324
  <li><a href="../TaskJuggler/ReportServerRecord.html">TaskJuggler::ReportServerRecord</a></li>
315
325
 
326
+ <li><a href="../TaskJuggler/ReportServlet.html">TaskJuggler::ReportServlet</a></li>
327
+
316
328
  <li><a href="../TaskJuggler/ReportTable.html">TaskJuggler::ReportTable</a></li>
317
329
 
318
330
  <li><a href="../TaskJuggler/ReportTableCell.html">TaskJuggler::ReportTableCell</a></li>
@@ -441,6 +453,8 @@
441
453
 
442
454
  <li><a href="../TaskJuggler/TextScanner/FileStreamHandle.html">TaskJuggler::TextScanner::FileStreamHandle</a></li>
443
455
 
456
+ <li><a href="../TaskJuggler/TextScanner/MacroStackEntry.html">TaskJuggler::TextScanner::MacroStackEntry</a></li>
457
+
444
458
  <li><a href="../TaskJuggler/TextScanner/StreamHandle.html">TaskJuggler::TextScanner::StreamHandle</a></li>
445
459
 
446
460
  <li><a href="../TaskJuggler/TimeSheet.html">TaskJuggler::TimeSheet</a></li>
@@ -485,8 +499,12 @@
485
499
 
486
500
  <li><a href="../TaskJuggler/TjpSyntaxRules.html">TaskJuggler::TjpSyntaxRules</a></li>
487
501
 
502
+ <li><a href="../TaskJuggler/URLParameter.html">TaskJuggler::URLParameter</a></li>
503
+
488
504
  <li><a href="../TaskJuggler/UserManual.html">TaskJuggler::UserManual</a></li>
489
505
 
506
+ <li><a href="../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
507
+
490
508
  <li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
491
509
 
492
510
  <li><a href="../TaskJuggler/WorkingHoursAttribute.html">TaskJuggler::WorkingHoursAttribute</a></li>
@@ -513,6 +531,8 @@
513
531
 
514
532
  <li><a href="../String.html">String</a></li>
515
533
 
534
+ <li><a href="../StringIO.html">StringIO</a></li>
535
+
516
536
  </ul>
517
537
  <div id="no-class-search-results" style="display: none;">No matching classes.</div>
518
538
  </div>
@@ -547,7 +567,7 @@ section.
547
567
 
548
568
 
549
569
  <div id="new-method" class="method-detail ">
550
- <a name="M000097"></a>
570
+ <a name="method-c-new"></a>
551
571
 
552
572
  <div class="method-heading">
553
573
 
@@ -589,7 +609,7 @@ Create an empty <a href="TableOfContents.html">TableOfContents</a> object.
589
609
 
590
610
 
591
611
  <div id="add-ntry-method" class="method-detail ">
592
- <a name="M000098"></a>
612
+ <a name="method-i-addEntry"></a>
593
613
 
594
614
  <div class="method-heading">
595
615
 
@@ -628,7 +648,7 @@ reference.
628
648
 
629
649
 
630
650
  <div id="to-html-method" class="method-detail ">
631
- <a name="M000099"></a>
651
+ <a name="method-i-to_html"></a>
632
652
 
633
653
  <div class="method-heading">
634
654
 
@@ -69,59 +69,59 @@
69
69
  <h3 class="section-header">Methods</h3>
70
70
  <ul class="link-list">
71
71
 
72
- <li><a href="#M000850">::defaultColumnTitle</a></li>
72
+ <li><a href="#method-c-defaultColumnTitle">::defaultColumnTitle</a></li>
73
73
 
74
- <li><a href="#M000846">::new</a></li>
74
+ <li><a href="#method-c-new">::new</a></li>
75
75
 
76
- <li><a href="#M000857">#adjustReportPeriod</a></li>
76
+ <li><a href="#method-i-adjustReportPeriod">#adjustReportPeriod</a></li>
77
77
 
78
- <li><a href="#M000852">#alignment</a></li>
78
+ <li><a href="#method-i-alignment">#alignment</a></li>
79
79
 
80
- <li><a href="#M000853">#calculated?</a></li>
80
+ <li><a href="#method-i-calculated%3F">#calculated?</a></li>
81
81
 
82
- <li><a href="#M000871">#checkCellText</a></li>
82
+ <li><a href="#method-i-checkCellText">#checkCellText</a></li>
83
83
 
84
- <li><a href="#M000861">#genCalChartHeader</a></li>
84
+ <li><a href="#method-i-genCalChartHeader">#genCalChartHeader</a></li>
85
85
 
86
- <li><a href="#M000866">#genCalChartResourceCell</a></li>
86
+ <li><a href="#method-i-genCalChartResourceCell">#genCalChartResourceCell</a></li>
87
87
 
88
- <li><a href="#M000865">#genCalChartTaskCell</a></li>
88
+ <li><a href="#method-i-genCalChartTaskCell">#genCalChartTaskCell</a></li>
89
89
 
90
- <li><a href="#M000864">#genCalculatedCell</a></li>
90
+ <li><a href="#method-i-genCalculatedCell">#genCalculatedCell</a></li>
91
91
 
92
- <li><a href="#M000863">#genStandardCell</a></li>
92
+ <li><a href="#method-i-genStandardCell">#genStandardCell</a></li>
93
93
 
94
- <li><a href="#M000858">#generateHeaderCell</a></li>
94
+ <li><a href="#method-i-generateHeaderCell">#generateHeaderCell</a></li>
95
95
 
96
- <li><a href="#M000847">#generateIntermediateFormat</a></li>
96
+ <li><a href="#method-i-generateIntermediateFormat">#generateIntermediateFormat</a></li>
97
97
 
98
- <li><a href="#M000860">#generateResourceList</a></li>
98
+ <li><a href="#method-i-generateResourceList">#generateResourceList</a></li>
99
99
 
100
- <li><a href="#M000862">#generateTableCell</a></li>
100
+ <li><a href="#method-i-generateTableCell">#generateTableCell</a></li>
101
101
 
102
- <li><a href="#M000859">#generateTaskList</a></li>
102
+ <li><a href="#method-i-generateTaskList">#generateTaskList</a></li>
103
103
 
104
- <li><a href="#M000851">#indent</a></li>
104
+ <li><a href="#method-i-indent">#indent</a></li>
105
105
 
106
- <li><a href="#M000869">#newCell</a></li>
106
+ <li><a href="#method-i-newCell">#newCell</a></li>
107
107
 
108
- <li><a href="#M000854">#scenarioSpecific?</a></li>
108
+ <li><a href="#method-i-scenarioSpecific%3F">#scenarioSpecific?</a></li>
109
109
 
110
- <li><a href="#M000870">#setIndent</a></li>
110
+ <li><a href="#method-i-setIndent">#setIndent</a></li>
111
111
 
112
- <li><a href="#M000856">#setReportPeriod</a></li>
112
+ <li><a href="#method-i-setReportPeriod">#setReportPeriod</a></li>
113
113
 
114
- <li><a href="#M000868">#setScenarioSettings</a></li>
114
+ <li><a href="#method-i-setScenarioSettings">#setScenarioSettings</a></li>
115
115
 
116
- <li><a href="#M000867">#setStandardCellAttributes</a></li>
116
+ <li><a href="#method-i-setStandardCellAttributes">#setStandardCellAttributes</a></li>
117
117
 
118
- <li><a href="#M000855">#supportedColumns</a></li>
118
+ <li><a href="#method-i-supportedColumns">#supportedColumns</a></li>
119
119
 
120
- <li><a href="#M000849">#to_csv</a></li>
120
+ <li><a href="#method-i-to_csv">#to_csv</a></li>
121
121
 
122
- <li><a href="#M000848">#to_html</a></li>
122
+ <li><a href="#method-i-to_html">#to_html</a></li>
123
123
 
124
- <li><a href="#M000872">#tryCellMerging</a></li>
124
+ <li><a href="#method-i-tryCellMerging">#tryCellMerging</a></li>
125
125
 
126
126
  </ul>
127
127
  </div>
@@ -138,6 +138,8 @@
138
138
  <h3 class="section-header">Files</h3>
139
139
  <ul>
140
140
 
141
+ <li class="file"><a href="../CHANGELOG.html">CHANGELOG</a></li>
142
+
141
143
  <li class="file"><a href="../COPYING.html">COPYING</a></li>
142
144
 
143
145
  <li class="file"><a href="../README.html">README</a></li>
@@ -307,6 +309,8 @@
307
309
 
308
310
  <li><a href="../TaskJuggler/NikuResource.html">TaskJuggler::NikuResource</a></li>
309
311
 
312
+ <li><a href="../TaskJuggler/NodeListAttribute.html">TaskJuggler::NodeListAttribute</a></li>
313
+
310
314
  <li><a href="../TaskJuggler/OnShiftCache.html">TaskJuggler::OnShiftCache</a></li>
311
315
 
312
316
  <li><a href="../TaskJuggler/ProcessIntercom.html">TaskJuggler::ProcessIntercom</a></li>
@@ -321,6 +325,8 @@
321
325
 
322
326
  <li><a href="../TaskJuggler/ProjectFileParser.html">TaskJuggler::ProjectFileParser</a></li>
323
327
 
328
+ <li><a href="../TaskJuggler/ProjectFileScanner.html">TaskJuggler::ProjectFileScanner</a></li>
329
+
324
330
  <li><a href="../TaskJuggler/ProjectRecord.html">TaskJuggler::ProjectRecord</a></li>
325
331
 
326
332
  <li><a href="../TaskJuggler/ProjectServer.html">TaskJuggler::ProjectServer</a></li>
@@ -337,12 +343,16 @@
337
343
 
338
344
  <li><a href="../TaskJuggler/Query.html">TaskJuggler::Query</a></li>
339
345
 
346
+ <li><a href="../TaskJuggler/RTFHandlers.html">TaskJuggler::RTFHandlers</a></li>
347
+
340
348
  <li><a href="../TaskJuggler/RTFNavigator.html">TaskJuggler::RTFNavigator</a></li>
341
349
 
342
350
  <li><a href="../TaskJuggler/RTFQuery.html">TaskJuggler::RTFQuery</a></li>
343
351
 
344
352
  <li><a href="../TaskJuggler/RTFReport.html">TaskJuggler::RTFReport</a></li>
345
353
 
354
+ <li><a href="../TaskJuggler/RTFReportLink.html">TaskJuggler::RTFReportLink</a></li>
355
+
346
356
  <li><a href="../TaskJuggler/RealFormat.html">TaskJuggler::RealFormat</a></li>
347
357
 
348
358
  <li><a href="../TaskJuggler/RealFormatAttribute.html">TaskJuggler::RealFormatAttribute</a></li>
@@ -361,6 +371,8 @@
361
371
 
362
372
  <li><a href="../TaskJuggler/ReportServerRecord.html">TaskJuggler::ReportServerRecord</a></li>
363
373
 
374
+ <li><a href="../TaskJuggler/ReportServlet.html">TaskJuggler::ReportServlet</a></li>
375
+
364
376
  <li><a href="../TaskJuggler/ReportTable.html">TaskJuggler::ReportTable</a></li>
365
377
 
366
378
  <li><a href="../TaskJuggler/ReportTableCell.html">TaskJuggler::ReportTableCell</a></li>
@@ -489,6 +501,8 @@
489
501
 
490
502
  <li><a href="../TaskJuggler/TextScanner/FileStreamHandle.html">TaskJuggler::TextScanner::FileStreamHandle</a></li>
491
503
 
504
+ <li><a href="../TaskJuggler/TextScanner/MacroStackEntry.html">TaskJuggler::TextScanner::MacroStackEntry</a></li>
505
+
492
506
  <li><a href="../TaskJuggler/TextScanner/StreamHandle.html">TaskJuggler::TextScanner::StreamHandle</a></li>
493
507
 
494
508
  <li><a href="../TaskJuggler/TimeSheet.html">TaskJuggler::TimeSheet</a></li>
@@ -533,8 +547,12 @@
533
547
 
534
548
  <li><a href="../TaskJuggler/TjpSyntaxRules.html">TaskJuggler::TjpSyntaxRules</a></li>
535
549
 
550
+ <li><a href="../TaskJuggler/URLParameter.html">TaskJuggler::URLParameter</a></li>
551
+
536
552
  <li><a href="../TaskJuggler/UserManual.html">TaskJuggler::UserManual</a></li>
537
553
 
554
+ <li><a href="../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
555
+
538
556
  <li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
539
557
 
540
558
  <li><a href="../TaskJuggler/WorkingHoursAttribute.html">TaskJuggler::WorkingHoursAttribute</a></li>
@@ -561,6 +579,8 @@
561
579
 
562
580
  <li><a href="../String.html">String</a></li>
563
581
 
582
+ <li><a href="../StringIO.html">StringIO</a></li>
583
+
564
584
  </ul>
565
585
  <div id="no-class-search-results" style="display: none;">No matching classes.</div>
566
586
  </div>
@@ -615,7 +635,7 @@ before the are turned into the requested output format.
615
635
 
616
636
 
617
637
  <div id="default-olumn-itle-method" class="method-detail ">
618
- <a name="M000850"></a>
638
+ <a name="method-c-defaultColumnTitle"></a>
619
639
 
620
640
  <div class="method-heading">
621
641
 
@@ -636,16 +656,16 @@ Returns the default column title for the columns <em>id</em>.
636
656
  <div class="method-source-code"
637
657
  id="default-olumn-itle-source">
638
658
  <pre>
639
- <span class="ruby-comment cmt"># File lib/reports/TableReport.rb, line 126</span>
640
- 126: <span class="ruby-keyword kw">def</span> <span class="ruby-constant">TableReport</span><span class="ruby-operator">::</span><span class="ruby-identifier">defaultColumnTitle</span>(<span class="ruby-identifier">id</span>)
641
- 127: <span class="ruby-comment cmt"># Return an empty string for some special columns that don't have a fixed</span>
642
- 128: <span class="ruby-comment cmt"># title.</span>
643
- 129: <span class="ruby-identifier">specials</span> = <span class="ruby-node">%( chart hourly daily weekly monthly quarterly yearly)</span>
644
- 130: <span class="ruby-keyword kw">return</span> <span class="ruby-value str">''</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">specials</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">id</span>)
645
- 131:
646
- 132: <span class="ruby-comment cmt"># Return the title for build-in hardwired columns.</span>
647
- 133: <span class="ruby-identifier">@@propertiesById</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">id</span>) <span class="ruby-operator">?</span> <span class="ruby-identifier">@@propertiesById</span>[<span class="ruby-identifier">id</span>][<span class="ruby-value">0</span>] <span class="ruby-operator">:</span> <span class="ruby-keyword kw">nil</span>
648
- 134: <span class="ruby-keyword kw">end</span></pre>
659
+ <span class="ruby-comment cmt"># File lib/reports/TableReport.rb, line 131</span>
660
+ 131: <span class="ruby-keyword kw">def</span> <span class="ruby-constant">TableReport</span><span class="ruby-operator">::</span><span class="ruby-identifier">defaultColumnTitle</span>(<span class="ruby-identifier">id</span>)
661
+ 132: <span class="ruby-comment cmt"># Return an empty string for some special columns that don't have a fixed</span>
662
+ 133: <span class="ruby-comment cmt"># title.</span>
663
+ 134: <span class="ruby-identifier">specials</span> = <span class="ruby-node">%( chart hourly daily weekly monthly quarterly yearly)</span>
664
+ 135: <span class="ruby-keyword kw">return</span> <span class="ruby-value str">''</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">specials</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">id</span>)
665
+ 136:
666
+ 137: <span class="ruby-comment cmt"># Return the title for build-in hardwired columns.</span>
667
+ 138: <span class="ruby-identifier">@@propertiesById</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">id</span>) <span class="ruby-operator">?</span> <span class="ruby-identifier">@@propertiesById</span>[<span class="ruby-identifier">id</span>][<span class="ruby-value">0</span>] <span class="ruby-operator">:</span> <span class="ruby-keyword kw">nil</span>
668
+ 139: <span class="ruby-keyword kw">end</span></pre>
649
669
  </div>
650
670
 
651
671
  </div>
@@ -657,7 +677,7 @@ Returns the default column title for the columns <em>id</em>.
657
677
 
658
678
 
659
679
  <div id="new-method" class="method-detail ">
660
- <a name="M000846"></a>
680
+ <a name="method-c-new"></a>
661
681
 
662
682
  <div class="method-heading">
663
683
 
@@ -678,18 +698,18 @@ Generate a new <a href="TableReport.html">TableReport</a> object.
678
698
  <div class="method-source-code"
679
699
  id="new-source">
680
700
  <pre>
681
- <span class="ruby-comment cmt"># File lib/reports/TableReport.rb, line 67</span>
682
- 67: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">report</span>)
683
- 68: <span class="ruby-keyword kw">super</span>
684
- 69: <span class="ruby-ivar">@report</span>.<span class="ruby-identifier">content</span> = <span class="ruby-keyword kw">self</span>
685
- 70:
686
- 71: <span class="ruby-comment cmt"># Reference to the intermediate representation.</span>
687
- 72: <span class="ruby-ivar">@table</span> = <span class="ruby-keyword kw">nil</span>
688
- 73: <span class="ruby-ivar">@start</span> = <span class="ruby-ivar">@end</span> = <span class="ruby-keyword kw">nil</span>
689
- 74:
690
- 75: <span class="ruby-ivar">@legend</span> = <span class="ruby-constant">ReportTableLegend</span>.<span class="ruby-identifier">new</span>
701
+ <span class="ruby-comment cmt"># File lib/reports/TableReport.rb, line 69</span>
702
+ 69: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">report</span>)
703
+ 70: <span class="ruby-keyword kw">super</span>
704
+ 71: <span class="ruby-ivar">@report</span>.<span class="ruby-identifier">content</span> = <span class="ruby-keyword kw">self</span>
705
+ 72:
706
+ 73: <span class="ruby-comment cmt"># Reference to the intermediate representation.</span>
707
+ 74: <span class="ruby-ivar">@table</span> = <span class="ruby-keyword kw">nil</span>
708
+ 75: <span class="ruby-ivar">@start</span> = <span class="ruby-ivar">@end</span> = <span class="ruby-keyword kw">nil</span>
691
709
  76:
692
- 77: <span class="ruby-keyword kw">end</span></pre>
710
+ 77: <span class="ruby-ivar">@legend</span> = <span class="ruby-constant">ReportTableLegend</span>.<span class="ruby-identifier">new</span>
711
+ 78:
712
+ 79: <span class="ruby-keyword kw">end</span></pre>
693
713
  </div>
694
714
 
695
715
  </div>
@@ -707,7 +727,7 @@ Generate a new <a href="TableReport.html">TableReport</a> object.
707
727
 
708
728
 
709
729
  <div id="alignment-method" class="method-detail ">
710
- <a name="M000852"></a>
730
+ <a name="method-i-alignment"></a>
711
731
 
712
732
  <div class="method-heading">
713
733
 
@@ -729,16 +749,16 @@ Return the alignment of the column based on the <em>colId</em> or the
729
749
  <div class="method-source-code"
730
750
  id="alignment-source">
731
751
  <pre>
732
- <span class="ruby-comment cmt"># File lib/reports/TableReport.rb, line 150</span>
733
- 150: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">alignment</span>(<span class="ruby-identifier">colId</span>, <span class="ruby-identifier">propertyType</span>)
734
- 151: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">@@propertiesById</span>.<span class="ruby-identifier">has_key?</span>(<span class="ruby-identifier">colId</span>)
735
- 152: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">@@propertiesById</span>[<span class="ruby-identifier">colId</span>][<span class="ruby-value">2</span>]
736
- 153: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">@@propertiesByType</span>.<span class="ruby-identifier">has_key?</span>(<span class="ruby-identifier">propertyType</span>)
737
- 154: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">@@propertiesByType</span>[<span class="ruby-identifier">propertyType</span>][<span class="ruby-value">1</span>]
738
- 155: <span class="ruby-keyword kw">else</span>
739
- 156: <span class="ruby-value">:center</span>
740
- 157: <span class="ruby-keyword kw">end</span>
741
- 158: <span class="ruby-keyword kw">end</span></pre>
752
+ <span class="ruby-comment cmt"># File lib/reports/TableReport.rb, line 155</span>
753
+ 155: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">alignment</span>(<span class="ruby-identifier">colId</span>, <span class="ruby-identifier">propertyType</span>)
754
+ 156: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">@@propertiesById</span>.<span class="ruby-identifier">has_key?</span>(<span class="ruby-identifier">colId</span>)
755
+ 157: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">@@propertiesById</span>[<span class="ruby-identifier">colId</span>][<span class="ruby-value">2</span>]
756
+ 158: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">@@propertiesByType</span>.<span class="ruby-identifier">has_key?</span>(<span class="ruby-identifier">propertyType</span>)
757
+ 159: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">@@propertiesByType</span>[<span class="ruby-identifier">propertyType</span>][<span class="ruby-value">1</span>]
758
+ 160: <span class="ruby-keyword kw">else</span>
759
+ 161: <span class="ruby-value">:center</span>
760
+ 162: <span class="ruby-keyword kw">end</span>
761
+ 163: <span class="ruby-keyword kw">end</span></pre>
742
762
  </div>
743
763
 
744
764
  </div>
@@ -750,7 +770,7 @@ Return the alignment of the column based on the <em>colId</em> or the
750
770
 
751
771
 
752
772
  <div id="calculated--method" class="method-detail ">
753
- <a name="M000853"></a>
773
+ <a name="method-i-calculated%3F"></a>
754
774
 
755
775
  <div class="method-heading">
756
776
 
@@ -772,10 +792,10 @@ to be calculated.
772
792
  <div class="method-source-code"
773
793
  id="calculated--source">
774
794
  <pre>
775
- <span class="ruby-comment cmt"># File lib/reports/TableReport.rb, line 162</span>
776
- 162: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">calculated?</span>(<span class="ruby-identifier">colId</span>)
777
- 163: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">@@propertiesById</span>.<span class="ruby-identifier">has_key?</span>(<span class="ruby-identifier">colId</span>)
778
- 164: <span class="ruby-keyword kw">end</span></pre>
795
+ <span class="ruby-comment cmt"># File lib/reports/TableReport.rb, line 167</span>
796
+ 167: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">calculated?</span>(<span class="ruby-identifier">colId</span>)
797
+ 168: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">@@propertiesById</span>.<span class="ruby-identifier">has_key?</span>(<span class="ruby-identifier">colId</span>)
798
+ 169: <span class="ruby-keyword kw">end</span></pre>
779
799
  </div>
780
800
 
781
801
  </div>
@@ -787,7 +807,7 @@ to be calculated.
787
807
 
788
808
 
789
809
  <div id="generate-ntermediate-ormat-method" class="method-detail ">
790
- <a name="M000847"></a>
810
+ <a name="method-i-generateIntermediateFormat"></a>
791
811
 
792
812
  <div class="method-heading">
793
813
 
@@ -806,10 +826,10 @@ to be calculated.
806
826
  <div class="method-source-code"
807
827
  id="generate-ntermediate-ormat-source">
808
828
  <pre>
809
- <span class="ruby-comment cmt"># File lib/reports/TableReport.rb, line 79</span>
810
- 79: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateIntermediateFormat</span>
811
- 80: <span class="ruby-keyword kw">super</span>
812
- 81: <span class="ruby-keyword kw">end</span></pre>
829
+ <span class="ruby-comment cmt"># File lib/reports/TableReport.rb, line 81</span>
830
+ 81: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateIntermediateFormat</span>
831
+ 82: <span class="ruby-keyword kw">super</span>
832
+ 83: <span class="ruby-keyword kw">end</span></pre>
813
833
  </div>
814
834
 
815
835
  </div>
@@ -821,7 +841,7 @@ to be calculated.
821
841
 
822
842
 
823
843
  <div id="indent-method" class="method-detail ">
824
- <a name="M000851"></a>
844
+ <a name="method-i-indent"></a>
825
845
 
826
846
  <div class="method-heading">
827
847
 
@@ -843,16 +863,16 @@ or the <em>propertyType</em>.
843
863
  <div class="method-source-code"
844
864
  id="indent-source">
845
865
  <pre>
846
- <span class="ruby-comment cmt"># File lib/reports/TableReport.rb, line 138</span>
847
- 138: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">indent</span>(<span class="ruby-identifier">colId</span>, <span class="ruby-identifier">propertyType</span>)
848
- 139: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">@@propertiesById</span>.<span class="ruby-identifier">has_key?</span>(<span class="ruby-identifier">colId</span>)
849
- 140: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">@@propertiesById</span>[<span class="ruby-identifier">colId</span>][<span class="ruby-value">1</span>]
850
- 141: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">@@propertiesByType</span>.<span class="ruby-identifier">has_key?</span>(<span class="ruby-identifier">propertyType</span>)
851
- 142: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">@@propertiesByType</span>[<span class="ruby-identifier">propertyType</span>][<span class="ruby-value">0</span>]
852
- 143: <span class="ruby-keyword kw">else</span>
853
- 144: <span class="ruby-keyword kw">false</span>
854
- 145: <span class="ruby-keyword kw">end</span>
855
- 146: <span class="ruby-keyword kw">end</span></pre>
866
+ <span class="ruby-comment cmt"># File lib/reports/TableReport.rb, line 143</span>
867
+ 143: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">indent</span>(<span class="ruby-identifier">colId</span>, <span class="ruby-identifier">propertyType</span>)
868
+ 144: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">@@propertiesById</span>.<span class="ruby-identifier">has_key?</span>(<span class="ruby-identifier">colId</span>)
869
+ 145: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">@@propertiesById</span>[<span class="ruby-identifier">colId</span>][<span class="ruby-value">1</span>]
870
+ 146: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">@@propertiesByType</span>.<span class="ruby-identifier">has_key?</span>(<span class="ruby-identifier">propertyType</span>)
871
+ 147: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">@@propertiesByType</span>[<span class="ruby-identifier">propertyType</span>][<span class="ruby-value">0</span>]
872
+ 148: <span class="ruby-keyword kw">else</span>
873
+ 149: <span class="ruby-keyword kw">false</span>
874
+ 150: <span class="ruby-keyword kw">end</span>
875
+ 151: <span class="ruby-keyword kw">end</span></pre>
856
876
  </div>
857
877
 
858
878
  </div>
@@ -864,7 +884,7 @@ or the <em>propertyType</em>.
864
884
 
865
885
 
866
886
  <div id="scenario-pecific--method" class="method-detail ">
867
- <a name="M000854"></a>
887
+ <a name="method-i-scenarioSpecific%3F"></a>
868
888
 
869
889
  <div class="method-heading">
870
890
 
@@ -886,13 +906,13 @@ are scenario specific.
886
906
  <div class="method-source-code"
887
907
  id="scenario-pecific--source">
888
908
  <pre>
889
- <span class="ruby-comment cmt"># File lib/reports/TableReport.rb, line 168</span>
890
- 168: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">scenarioSpecific?</span>(<span class="ruby-identifier">colId</span>)
891
- 169: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">@@propertiesById</span>.<span class="ruby-identifier">has_key?</span>(<span class="ruby-identifier">colId</span>)
892
- 170: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">@@propertiesById</span>[<span class="ruby-identifier">colId</span>][<span class="ruby-value">3</span>]
893
- 171: <span class="ruby-keyword kw">end</span>
894
- 172: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
895
- 173: <span class="ruby-keyword kw">end</span></pre>
909
+ <span class="ruby-comment cmt"># File lib/reports/TableReport.rb, line 173</span>
910
+ 173: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">scenarioSpecific?</span>(<span class="ruby-identifier">colId</span>)
911
+ 174: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">@@propertiesById</span>.<span class="ruby-identifier">has_key?</span>(<span class="ruby-identifier">colId</span>)
912
+ 175: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">@@propertiesById</span>[<span class="ruby-identifier">colId</span>][<span class="ruby-value">3</span>]
913
+ 176: <span class="ruby-keyword kw">end</span>
914
+ 177: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
915
+ 178: <span class="ruby-keyword kw">end</span></pre>
896
916
  </div>
897
917
 
898
918
  </div>
@@ -904,7 +924,7 @@ are scenario specific.
904
924
 
905
925
 
906
926
  <div id="supported-olumns-method" class="method-detail ">
907
- <a name="M000855"></a>
927
+ <a name="method-i-supportedColumns"></a>
908
928
 
909
929
  <div class="method-heading">
910
930
 
@@ -923,10 +943,10 @@ are scenario specific.
923
943
  <div class="method-source-code"
924
944
  id="supported-olumns-source">
925
945
  <pre>
926
- <span class="ruby-comment cmt"># File lib/reports/TableReport.rb, line 175</span>
927
- 175: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">supportedColumns</span>
928
- 176: <span class="ruby-identifier">@@propertiesById</span>.<span class="ruby-identifier">keys</span>
929
- 177: <span class="ruby-keyword kw">end</span></pre>
946
+ <span class="ruby-comment cmt"># File lib/reports/TableReport.rb, line 180</span>
947
+ 180: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">supportedColumns</span>
948
+ 181: <span class="ruby-identifier">@@propertiesById</span>.<span class="ruby-identifier">keys</span>
949
+ 182: <span class="ruby-keyword kw">end</span></pre>
930
950
  </div>
931
951
 
932
952
  </div>
@@ -938,7 +958,7 @@ are scenario specific.
938
958
 
939
959
 
940
960
  <div id="to-csv-method" class="method-detail ">
941
- <a name="M000849"></a>
961
+ <a name="method-i-to_csv"></a>
942
962
 
943
963
  <div class="method-heading">
944
964
 
@@ -961,10 +981,10 @@ column.
961
981
  <div class="method-source-code"
962
982
  id="to-csv-source">
963
983
  <pre>
964
- <span class="ruby-comment cmt"># File lib/reports/TableReport.rb, line 121</span>
965
- 121: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_csv</span>
966
- 122: <span class="ruby-ivar">@table</span>.<span class="ruby-identifier">to_csv</span>
967
- 123: <span class="ruby-keyword kw">end</span></pre>
984
+ <span class="ruby-comment cmt"># File lib/reports/TableReport.rb, line 126</span>
985
+ 126: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_csv</span>
986
+ 127: <span class="ruby-ivar">@table</span>.<span class="ruby-identifier">to_csv</span>
987
+ 128: <span class="ruby-keyword kw">end</span></pre>
968
988
  </div>
969
989
 
970
990
  </div>
@@ -976,7 +996,7 @@ column.
976
996
 
977
997
 
978
998
  <div id="to-html-method" class="method-detail ">
979
- <a name="M000848"></a>
999
+ <a name="method-i-to_html"></a>
980
1000
 
981
1001
  <div class="method-heading">
982
1002
 
@@ -998,41 +1018,44 @@ element tree.
998
1018
  <div class="method-source-code"
999
1019
  id="to-html-source">
1000
1020
  <pre>
1001
- <span class="ruby-comment cmt"># File lib/reports/TableReport.rb, line 84</span>
1002
- 84: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_html</span>
1003
- 85: <span class="ruby-identifier">html</span> = []
1004
- 86:
1005
- 87: <span class="ruby-identifier">html</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">rt_to_html</span>(<span class="ruby-value str">'header'</span>)
1006
- 88: <span class="ruby-identifier">html</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">tableFrame</span> = <span class="ruby-identifier">generateHtmlTableFrame</span>)
1007
- 89:
1008
- 90: <span class="ruby-comment cmt"># Now generate the actual table with the data.</span>
1009
- 91: <span class="ruby-identifier">tableFrame</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">generateHtmlTableRow</span> <span class="ruby-keyword kw">do</span>
1010
- 92: <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>)
1011
- 93: <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>
1012
- 94: <span class="ruby-identifier">td</span>
1013
- 95: <span class="ruby-keyword kw">end</span>
1014
- 96:
1015
- 97: <span class="ruby-comment cmt"># Embedd the caption as RichText into the table footer.</span>
1016
- 98: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'caption'</span>)
1017
- 99: <span class="ruby-identifier">tableFrame</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">generateHtmlTableRow</span> <span class="ruby-keyword kw">do</span>
1018
- 100: <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>)
1019
- 101: <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">'tj_table_caption'</span>))
1020
- 102: <span class="ruby-identifier">a</span>(<span class="ruby-value str">'caption'</span>).<span class="ruby-identifier">sectionNumbers</span> = <span class="ruby-keyword kw">false</span>
1021
- 103: <span class="ruby-identifier">div</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'caption'</span>).<span class="ruby-identifier">to_html</span>
1022
- 104: <span class="ruby-identifier">td</span>
1023
- 105: <span class="ruby-keyword kw">end</span>
1024
- 106: <span class="ruby-keyword kw">end</span>
1025
- 107:
1026
- 108: <span class="ruby-comment cmt"># The legend.</span>
1027
- 109: <span class="ruby-identifier">tableFrame</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">generateHtmlTableRow</span> <span class="ruby-keyword kw">do</span>
1028
- 110: <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>)
1029
- 111: <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>
1030
- 112: <span class="ruby-identifier">td</span>
1031
- 113: <span class="ruby-keyword kw">end</span>
1032
- 114:
1033
- 115: <span class="ruby-identifier">html</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">rt_to_html</span>(<span class="ruby-value str">'footer'</span>)
1034
- 116: <span class="ruby-identifier">html</span>
1035
- 117: <span class="ruby-keyword kw">end</span></pre>
1021
+ <span class="ruby-comment cmt"># File lib/reports/TableReport.rb, line 86</span>
1022
+ 86: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_html</span>
1023
+ 87: <span class="ruby-identifier">html</span> = []
1024
+ 88:
1025
+ 89: <span class="ruby-identifier">html</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">XMLComment</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">&quot;Dynamic Report ID: &quot;</span> <span class="ruby-operator">+</span>
1026
+ 90: <span class="ruby-node">&quot;#{@report.project.reportContexts.last.
1027
+ 91: dynamicReportId}&quot;</span>)
1028
+ 92: <span class="ruby-identifier">html</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">rt_to_html</span>(<span class="ruby-value str">'header'</span>)
1029
+ 93: <span class="ruby-identifier">html</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">tableFrame</span> = <span class="ruby-identifier">generateHtmlTableFrame</span>)
1030
+ 94:
1031
+ 95: <span class="ruby-comment cmt"># Now generate the actual table with the data.</span>
1032
+ 96: <span class="ruby-identifier">tableFrame</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">generateHtmlTableRow</span> <span class="ruby-keyword kw">do</span>
1033
+ 97: <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>)
1034
+ 98: <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>
1035
+ 99: <span class="ruby-identifier">td</span>
1036
+ 100: <span class="ruby-keyword kw">end</span>
1037
+ 101:
1038
+ 102: <span class="ruby-comment cmt"># Embedd the caption as RichText into the table footer.</span>
1039
+ 103: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'caption'</span>)
1040
+ 104: <span class="ruby-identifier">tableFrame</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">generateHtmlTableRow</span> <span class="ruby-keyword kw">do</span>
1041
+ 105: <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>)
1042
+ 106: <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">'tj_table_caption'</span>))
1043
+ 107: <span class="ruby-identifier">a</span>(<span class="ruby-value str">'caption'</span>).<span class="ruby-identifier">sectionNumbers</span> = <span class="ruby-keyword kw">false</span>
1044
+ 108: <span class="ruby-identifier">div</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'caption'</span>).<span class="ruby-identifier">to_html</span>
1045
+ 109: <span class="ruby-identifier">td</span>
1046
+ 110: <span class="ruby-keyword kw">end</span>
1047
+ 111: <span class="ruby-keyword kw">end</span>
1048
+ 112:
1049
+ 113: <span class="ruby-comment cmt"># The legend.</span>
1050
+ 114: <span class="ruby-identifier">tableFrame</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">generateHtmlTableRow</span> <span class="ruby-keyword kw">do</span>
1051
+ 115: <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>)
1052
+ 116: <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>
1053
+ 117: <span class="ruby-identifier">td</span>
1054
+ 118: <span class="ruby-keyword kw">end</span>
1055
+ 119:
1056
+ 120: <span class="ruby-identifier">html</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">rt_to_html</span>(<span class="ruby-value str">'footer'</span>)
1057
+ 121: <span class="ruby-identifier">html</span>
1058
+ 122: <span class="ruby-keyword kw">end</span></pre>
1036
1059
  </div>
1037
1060
 
1038
1061
  </div>
@@ -1050,7 +1073,7 @@ element tree.
1050
1073
 
1051
1074
 
1052
1075
  <div id="adjust-eport-eriod-method" class="method-detail ">
1053
- <a name="M000857"></a>
1076
+ <a name="method-i-adjustReportPeriod"></a>
1054
1077
 
1055
1078
  <div class="method-heading">
1056
1079
 
@@ -1073,72 +1096,72 @@ is a list of scenario indexes.
1073
1096
  <div class="method-source-code"
1074
1097
  id="adjust-eport-eriod-source">
1075
1098
  <pre>
1076
- <span class="ruby-comment cmt"># File lib/reports/TableReport.rb, line 191</span>
1077
- 191: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">adjustReportPeriod</span>(<span class="ruby-identifier">tasks</span>, <span class="ruby-identifier">scenarios</span>, <span class="ruby-identifier">columns</span>)
1078
- 192: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">tasks</span>.<span class="ruby-identifier">empty?</span> <span class="ruby-operator">||</span>
1079
- 193: <span class="ruby-identifier">a</span>(<span class="ruby-value str">'start'</span>) <span class="ruby-operator">!=</span> <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'start'</span>] <span class="ruby-operator">||</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'end'</span>) <span class="ruby-operator">!=</span> <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'end'</span>]
1080
- 194:
1081
- 195: <span class="ruby-ivar">@start</span> = <span class="ruby-ivar">@end</span> = <span class="ruby-keyword kw">nil</span>
1082
- 196: <span class="ruby-identifier">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>
1083
- 197: <span class="ruby-identifier">tasks</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>
1084
- 198: <span class="ruby-identifier">date</span> = <span class="ruby-identifier">task</span>[<span class="ruby-value str">'start'</span>, <span class="ruby-identifier">scenarioIdx</span>] <span class="ruby-operator">||</span> <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'start'</span>]
1085
- 199: <span class="ruby-ivar">@start</span> = <span class="ruby-identifier">date</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@start</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">date</span> <span class="ruby-operator">&lt;</span> <span class="ruby-ivar">@start</span>
1086
- 200: <span class="ruby-identifier">date</span> = <span class="ruby-identifier">task</span>[<span class="ruby-value str">'end'</span>, <span class="ruby-identifier">scenarioIdx</span>] <span class="ruby-operator">||</span> <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'end'</span>]
1087
- 201: <span class="ruby-ivar">@end</span> = <span class="ruby-identifier">date</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@end</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">date</span> <span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@end</span>
1088
- 202: <span class="ruby-keyword kw">end</span>
1089
- 203: <span class="ruby-keyword kw">end</span>
1090
- 204: <span class="ruby-comment cmt"># We want to add at least 5% on both ends.</span>
1091
- 205: <span class="ruby-identifier">margin</span> = <span class="ruby-value">0</span>
1092
- 206: <span class="ruby-identifier">minWidth</span> = <span class="ruby-ivar">@end</span> <span class="ruby-operator">-</span> <span class="ruby-ivar">@start</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>
1093
- 207: <span class="ruby-identifier">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>
1094
- 208: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">column</span>.<span class="ruby-identifier">id</span>
1095
- 209: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'chart'</span>
1096
- 210: <span class="ruby-comment cmt"># In case we have a 'chart' column, we enforce certain minimum width</span>
1097
- 211: <span class="ruby-comment cmt"># The following table contains an entry for each scale. The entry</span>
1098
- 212: <span class="ruby-comment cmt"># consists of the triple 'seconds per unit', 'minimum width units'</span>
1099
- 213: <span class="ruby-comment cmt"># and 'margin units'. The minimum with does not include the margins</span>
1100
- 214: <span class="ruby-comment cmt"># since they are always added.</span>
1101
- 215: <span class="ruby-identifier">mwMap</span> = {
1102
- 216: <span class="ruby-value str">'hour'</span> =<span class="ruby-operator">&gt;</span> [ <span class="ruby-value">60</span> * <span class="ruby-value">60</span>, <span class="ruby-value">18</span>, <span class="ruby-value">2</span> ],
1103
- 217: <span class="ruby-value str">'day'</span> =<span class="ruby-operator">&gt;</span> [ <span class="ruby-value">60</span> * <span class="ruby-value">60</span> * <span class="ruby-value">24</span>, <span class="ruby-value">18</span>, <span class="ruby-value">2</span> ],
1104
- 218: <span class="ruby-value str">'week'</span> =<span class="ruby-operator">&gt;</span> [ <span class="ruby-value">60</span> * <span class="ruby-value">60</span> * <span class="ruby-value">24</span> * <span class="ruby-value">7</span>, <span class="ruby-value">6</span>, <span class="ruby-value">1</span> ],
1105
- 219: <span class="ruby-value str">'month'</span> =<span class="ruby-operator">&gt;</span> [ <span class="ruby-value">60</span> * <span class="ruby-value">60</span> * <span class="ruby-value">24</span> * <span class="ruby-value">31</span>, <span class="ruby-value">10</span>, <span class="ruby-value">1</span> ],
1106
- 220: <span class="ruby-value str">'quarter'</span> =<span class="ruby-operator">&gt;</span> [ <span class="ruby-value">60</span> * <span class="ruby-value">60</span> * <span class="ruby-value">24</span> * <span class="ruby-value">90</span>, <span class="ruby-value">6</span>, <span class="ruby-value">1</span> ],
1107
- 221: <span class="ruby-value str">'year'</span> =<span class="ruby-operator">&gt;</span> [ <span class="ruby-value">60</span> * <span class="ruby-value">60</span> * <span class="ruby-value">24</span> * <span class="ruby-value">365</span>, <span class="ruby-value">4</span>, <span class="ruby-value">1</span> ]
1108
- 222: }
1109
- 223: <span class="ruby-identifier">entry</span> = <span class="ruby-identifier">mwMap</span>[<span class="ruby-identifier">column</span>.<span class="ruby-identifier">scale</span>]
1110
- 224: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Unknown scale #{column.scale}&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">entry</span>
1111
- 225: <span class="ruby-identifier">margin</span> = <span class="ruby-identifier">entry</span>[<span class="ruby-value">0</span>] * <span class="ruby-identifier">entry</span>[<span class="ruby-value">2</span>]
1112
- 226: <span class="ruby-comment cmt"># If the with determined by start and end dates of the task is below</span>
1113
- 227: <span class="ruby-comment cmt"># the minimum width, we increase the width to the value provided by</span>
1114
- 228: <span class="ruby-comment cmt"># the table.</span>
1115
- 229: <span class="ruby-identifier">minWidth</span> = <span class="ruby-identifier">entry</span>[<span class="ruby-value">0</span>] * <span class="ruby-identifier">entry</span>[<span class="ruby-value">1</span>] <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">minWidth</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">entry</span>[<span class="ruby-value">0</span>] * <span class="ruby-identifier">entry</span>[<span class="ruby-value">1</span>]
1116
- 230: <span class="ruby-keyword kw">break</span>
1117
- 231: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'hourly'</span>, <span class="ruby-value str">'daily'</span>, <span class="ruby-value str">'weekly'</span>, <span class="ruby-value str">'monthly'</span>, <span class="ruby-value str">'quarterly'</span>, <span class="ruby-value str">'yearly'</span>
1118
- 232: <span class="ruby-comment cmt"># For the calendar columns we use a similar approach as we use for</span>
1119
- 233: <span class="ruby-comment cmt"># the 'chart' column.</span>
1120
- 234: <span class="ruby-identifier">mwMap</span> = {
1121
- 235: <span class="ruby-value str">'hourly'</span> =<span class="ruby-operator">&gt;</span> [ <span class="ruby-value">60</span> * <span class="ruby-value">60</span>, <span class="ruby-value">18</span>, <span class="ruby-value">2</span> ],
1122
- 236: <span class="ruby-value str">'daily'</span> =<span class="ruby-operator">&gt;</span> [ <span class="ruby-value">60</span> * <span class="ruby-value">60</span> * <span class="ruby-value">24</span>, <span class="ruby-value">18</span>, <span class="ruby-value">2</span> ],
1123
- 237: <span class="ruby-value str">'weekly'</span> =<span class="ruby-operator">&gt;</span> [ <span class="ruby-value">60</span> * <span class="ruby-value">60</span> * <span class="ruby-value">24</span> * <span class="ruby-value">7</span>, <span class="ruby-value">6</span>, <span class="ruby-value">1</span> ],
1124
- 238: <span class="ruby-value str">'monthly'</span> =<span class="ruby-operator">&gt;</span> [ <span class="ruby-value">60</span> * <span class="ruby-value">60</span> * <span class="ruby-value">24</span> * <span class="ruby-value">31</span>, <span class="ruby-value">10</span>, <span class="ruby-value">1</span> ],
1125
- 239: <span class="ruby-value str">'quarterly'</span> =<span class="ruby-operator">&gt;</span> [ <span class="ruby-value">60</span> * <span class="ruby-value">60</span> * <span class="ruby-value">24</span> * <span class="ruby-value">90</span>, <span class="ruby-value">6</span>, <span class="ruby-value">1</span> ],
1126
- 240: <span class="ruby-value str">'yearly'</span> =<span class="ruby-operator">&gt;</span> [ <span class="ruby-value">60</span> * <span class="ruby-value">60</span> * <span class="ruby-value">24</span> * <span class="ruby-value">365</span>, <span class="ruby-value">4</span>, <span class="ruby-value">1</span> ]
1127
- 241: }
1128
- 242: <span class="ruby-identifier">entry</span> = <span class="ruby-identifier">mwMap</span>[<span class="ruby-identifier">column</span>.<span class="ruby-identifier">id</span>]
1129
- 243: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Unknown scale #{column.id}&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">entry</span>
1130
- 244: <span class="ruby-identifier">margin</span> = <span class="ruby-identifier">entry</span>[<span class="ruby-value">0</span>] * <span class="ruby-identifier">entry</span>[<span class="ruby-value">2</span>]
1131
- 245: <span class="ruby-identifier">minWidth</span> = <span class="ruby-identifier">entry</span>[<span class="ruby-value">0</span>] * <span class="ruby-identifier">entry</span>[<span class="ruby-value">1</span>] <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">minWidth</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">entry</span>[<span class="ruby-value">0</span>] * <span class="ruby-identifier">entry</span>[<span class="ruby-value">1</span>]
1132
- 246: <span class="ruby-keyword kw">break</span>
1133
- 247: <span class="ruby-keyword kw">end</span>
1134
- 248: <span class="ruby-keyword kw">end</span>
1135
- 249:
1136
- 250: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">minWidth</span> <span class="ruby-operator">&gt;</span> (<span class="ruby-ivar">@end</span> <span class="ruby-operator">-</span> <span class="ruby-ivar">@start</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>)
1137
- 251: <span class="ruby-identifier">margin</span> <span class="ruby-operator">+=</span> (<span class="ruby-identifier">minWidth</span> <span class="ruby-operator">-</span> (<span class="ruby-ivar">@end</span> <span class="ruby-operator">-</span> <span class="ruby-ivar">@start</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>)) <span class="ruby-operator">/</span> <span class="ruby-value">2</span>
1138
- 252: <span class="ruby-keyword kw">end</span>
1139
- 253: <span class="ruby-ivar">@start</span> <span class="ruby-operator">-=</span> <span class="ruby-identifier">margin</span>
1140
- 254: <span class="ruby-ivar">@end</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">margin</span>
1141
- 255: <span class="ruby-keyword kw">end</span></pre>
1099
+ <span class="ruby-comment cmt"># File lib/reports/TableReport.rb, line 196</span>
1100
+ 196: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">adjustReportPeriod</span>(<span class="ruby-identifier">tasks</span>, <span class="ruby-identifier">scenarios</span>, <span class="ruby-identifier">columns</span>)
1101
+ 197: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">tasks</span>.<span class="ruby-identifier">empty?</span> <span class="ruby-operator">||</span>
1102
+ 198: <span class="ruby-identifier">a</span>(<span class="ruby-value str">'start'</span>) <span class="ruby-operator">!=</span> <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'start'</span>] <span class="ruby-operator">||</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'end'</span>) <span class="ruby-operator">!=</span> <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'end'</span>]
1103
+ 199:
1104
+ 200: <span class="ruby-ivar">@start</span> = <span class="ruby-ivar">@end</span> = <span class="ruby-keyword kw">nil</span>
1105
+ 201: <span class="ruby-identifier">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>
1106
+ 202: <span class="ruby-identifier">tasks</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>
1107
+ 203: <span class="ruby-identifier">date</span> = <span class="ruby-identifier">task</span>[<span class="ruby-value str">'start'</span>, <span class="ruby-identifier">scenarioIdx</span>] <span class="ruby-operator">||</span> <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'start'</span>]
1108
+ 204: <span class="ruby-ivar">@start</span> = <span class="ruby-identifier">date</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@start</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">date</span> <span class="ruby-operator">&lt;</span> <span class="ruby-ivar">@start</span>
1109
+ 205: <span class="ruby-identifier">date</span> = <span class="ruby-identifier">task</span>[<span class="ruby-value str">'end'</span>, <span class="ruby-identifier">scenarioIdx</span>] <span class="ruby-operator">||</span> <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'end'</span>]
1110
+ 206: <span class="ruby-ivar">@end</span> = <span class="ruby-identifier">date</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@end</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">date</span> <span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@end</span>
1111
+ 207: <span class="ruby-keyword kw">end</span>
1112
+ 208: <span class="ruby-keyword kw">end</span>
1113
+ 209: <span class="ruby-comment cmt"># We want to add at least 5% on both ends.</span>
1114
+ 210: <span class="ruby-identifier">margin</span> = <span class="ruby-value">0</span>
1115
+ 211: <span class="ruby-identifier">minWidth</span> = <span class="ruby-ivar">@end</span> <span class="ruby-operator">-</span> <span class="ruby-ivar">@start</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>
1116
+ 212: <span class="ruby-identifier">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>
1117
+ 213: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">column</span>.<span class="ruby-identifier">id</span>
1118
+ 214: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'chart'</span>
1119
+ 215: <span class="ruby-comment cmt"># In case we have a 'chart' column, we enforce certain minimum width</span>
1120
+ 216: <span class="ruby-comment cmt"># The following table contains an entry for each scale. The entry</span>
1121
+ 217: <span class="ruby-comment cmt"># consists of the triple 'seconds per unit', 'minimum width units'</span>
1122
+ 218: <span class="ruby-comment cmt"># and 'margin units'. The minimum with does not include the margins</span>
1123
+ 219: <span class="ruby-comment cmt"># since they are always added.</span>
1124
+ 220: <span class="ruby-identifier">mwMap</span> = {
1125
+ 221: <span class="ruby-value str">'hour'</span> =<span class="ruby-operator">&gt;</span> [ <span class="ruby-value">60</span> * <span class="ruby-value">60</span>, <span class="ruby-value">18</span>, <span class="ruby-value">2</span> ],
1126
+ 222: <span class="ruby-value str">'day'</span> =<span class="ruby-operator">&gt;</span> [ <span class="ruby-value">60</span> * <span class="ruby-value">60</span> * <span class="ruby-value">24</span>, <span class="ruby-value">18</span>, <span class="ruby-value">2</span> ],
1127
+ 223: <span class="ruby-value str">'week'</span> =<span class="ruby-operator">&gt;</span> [ <span class="ruby-value">60</span> * <span class="ruby-value">60</span> * <span class="ruby-value">24</span> * <span class="ruby-value">7</span>, <span class="ruby-value">6</span>, <span class="ruby-value">1</span> ],
1128
+ 224: <span class="ruby-value str">'month'</span> =<span class="ruby-operator">&gt;</span> [ <span class="ruby-value">60</span> * <span class="ruby-value">60</span> * <span class="ruby-value">24</span> * <span class="ruby-value">31</span>, <span class="ruby-value">10</span>, <span class="ruby-value">1</span> ],
1129
+ 225: <span class="ruby-value str">'quarter'</span> =<span class="ruby-operator">&gt;</span> [ <span class="ruby-value">60</span> * <span class="ruby-value">60</span> * <span class="ruby-value">24</span> * <span class="ruby-value">90</span>, <span class="ruby-value">6</span>, <span class="ruby-value">1</span> ],
1130
+ 226: <span class="ruby-value str">'year'</span> =<span class="ruby-operator">&gt;</span> [ <span class="ruby-value">60</span> * <span class="ruby-value">60</span> * <span class="ruby-value">24</span> * <span class="ruby-value">365</span>, <span class="ruby-value">4</span>, <span class="ruby-value">1</span> ]
1131
+ 227: }
1132
+ 228: <span class="ruby-identifier">entry</span> = <span class="ruby-identifier">mwMap</span>[<span class="ruby-identifier">column</span>.<span class="ruby-identifier">scale</span>]
1133
+ 229: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Unknown scale #{column.scale}&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">entry</span>
1134
+ 230: <span class="ruby-identifier">margin</span> = <span class="ruby-identifier">entry</span>[<span class="ruby-value">0</span>] * <span class="ruby-identifier">entry</span>[<span class="ruby-value">2</span>]
1135
+ 231: <span class="ruby-comment cmt"># If the with determined by start and end dates of the task is below</span>
1136
+ 232: <span class="ruby-comment cmt"># the minimum width, we increase the width to the value provided by</span>
1137
+ 233: <span class="ruby-comment cmt"># the table.</span>
1138
+ 234: <span class="ruby-identifier">minWidth</span> = <span class="ruby-identifier">entry</span>[<span class="ruby-value">0</span>] * <span class="ruby-identifier">entry</span>[<span class="ruby-value">1</span>] <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">minWidth</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">entry</span>[<span class="ruby-value">0</span>] * <span class="ruby-identifier">entry</span>[<span class="ruby-value">1</span>]
1139
+ 235: <span class="ruby-keyword kw">break</span>
1140
+ 236: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'hourly'</span>, <span class="ruby-value str">'daily'</span>, <span class="ruby-value str">'weekly'</span>, <span class="ruby-value str">'monthly'</span>, <span class="ruby-value str">'quarterly'</span>, <span class="ruby-value str">'yearly'</span>
1141
+ 237: <span class="ruby-comment cmt"># For the calendar columns we use a similar approach as we use for</span>
1142
+ 238: <span class="ruby-comment cmt"># the 'chart' column.</span>
1143
+ 239: <span class="ruby-identifier">mwMap</span> = {
1144
+ 240: <span class="ruby-value str">'hourly'</span> =<span class="ruby-operator">&gt;</span> [ <span class="ruby-value">60</span> * <span class="ruby-value">60</span>, <span class="ruby-value">18</span>, <span class="ruby-value">2</span> ],
1145
+ 241: <span class="ruby-value str">'daily'</span> =<span class="ruby-operator">&gt;</span> [ <span class="ruby-value">60</span> * <span class="ruby-value">60</span> * <span class="ruby-value">24</span>, <span class="ruby-value">18</span>, <span class="ruby-value">2</span> ],
1146
+ 242: <span class="ruby-value str">'weekly'</span> =<span class="ruby-operator">&gt;</span> [ <span class="ruby-value">60</span> * <span class="ruby-value">60</span> * <span class="ruby-value">24</span> * <span class="ruby-value">7</span>, <span class="ruby-value">6</span>, <span class="ruby-value">1</span> ],
1147
+ 243: <span class="ruby-value str">'monthly'</span> =<span class="ruby-operator">&gt;</span> [ <span class="ruby-value">60</span> * <span class="ruby-value">60</span> * <span class="ruby-value">24</span> * <span class="ruby-value">31</span>, <span class="ruby-value">10</span>, <span class="ruby-value">1</span> ],
1148
+ 244: <span class="ruby-value str">'quarterly'</span> =<span class="ruby-operator">&gt;</span> [ <span class="ruby-value">60</span> * <span class="ruby-value">60</span> * <span class="ruby-value">24</span> * <span class="ruby-value">90</span>, <span class="ruby-value">6</span>, <span class="ruby-value">1</span> ],
1149
+ 245: <span class="ruby-value str">'yearly'</span> =<span class="ruby-operator">&gt;</span> [ <span class="ruby-value">60</span> * <span class="ruby-value">60</span> * <span class="ruby-value">24</span> * <span class="ruby-value">365</span>, <span class="ruby-value">4</span>, <span class="ruby-value">1</span> ]
1150
+ 246: }
1151
+ 247: <span class="ruby-identifier">entry</span> = <span class="ruby-identifier">mwMap</span>[<span class="ruby-identifier">column</span>.<span class="ruby-identifier">id</span>]
1152
+ 248: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Unknown scale #{column.id}&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">entry</span>
1153
+ 249: <span class="ruby-identifier">margin</span> = <span class="ruby-identifier">entry</span>[<span class="ruby-value">0</span>] * <span class="ruby-identifier">entry</span>[<span class="ruby-value">2</span>]
1154
+ 250: <span class="ruby-identifier">minWidth</span> = <span class="ruby-identifier">entry</span>[<span class="ruby-value">0</span>] * <span class="ruby-identifier">entry</span>[<span class="ruby-value">1</span>] <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">minWidth</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">entry</span>[<span class="ruby-value">0</span>] * <span class="ruby-identifier">entry</span>[<span class="ruby-value">1</span>]
1155
+ 251: <span class="ruby-keyword kw">break</span>
1156
+ 252: <span class="ruby-keyword kw">end</span>
1157
+ 253: <span class="ruby-keyword kw">end</span>
1158
+ 254:
1159
+ 255: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">minWidth</span> <span class="ruby-operator">&gt;</span> (<span class="ruby-ivar">@end</span> <span class="ruby-operator">-</span> <span class="ruby-ivar">@start</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>)
1160
+ 256: <span class="ruby-identifier">margin</span> <span class="ruby-operator">+=</span> (<span class="ruby-identifier">minWidth</span> <span class="ruby-operator">-</span> (<span class="ruby-ivar">@end</span> <span class="ruby-operator">-</span> <span class="ruby-ivar">@start</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>)) <span class="ruby-operator">/</span> <span class="ruby-value">2</span>
1161
+ 257: <span class="ruby-keyword kw">end</span>
1162
+ 258: <span class="ruby-ivar">@start</span> <span class="ruby-operator">-=</span> <span class="ruby-identifier">margin</span>
1163
+ 259: <span class="ruby-ivar">@end</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">margin</span>
1164
+ 260: <span class="ruby-keyword kw">end</span></pre>
1142
1165
  </div>
1143
1166
 
1144
1167
  </div>
@@ -1150,7 +1173,7 @@ is a list of scenario indexes.
1150
1173
 
1151
1174
 
1152
1175
  <div id="generate-eader-ell-method" class="method-detail ">
1153
- <a name="M000858"></a>
1176
+ <a name="method-i-generateHeaderCell"></a>
1154
1177
 
1155
1178
  <div class="method-heading">
1156
1179
 
@@ -1174,55 +1197,55 @@ to be taken to generate the header text.
1174
1197
  <div class="method-source-code"
1175
1198
  id="generate-eader-ell-source">
1176
1199
  <pre>
1177
- <span class="ruby-comment cmt"># File lib/reports/TableReport.rb, line 260</span>
1178
- 260: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateHeaderCell</span>(<span class="ruby-identifier">columnDef</span>)
1179
- 261: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">id</span>
1180
- 262: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'chart'</span>
1181
- 263: <span class="ruby-comment cmt"># For the 'chart' column we generate a GanttChart object. The sizes are</span>
1182
- 264: <span class="ruby-comment cmt"># set so that the lines of the Gantt chart line up with the lines of the</span>
1183
- 265: <span class="ruby-comment cmt"># table.</span>
1184
- 266: <span class="ruby-identifier">gantt</span> = <span class="ruby-constant">GanttChart</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">a</span>(<span class="ruby-value str">'now'</span>),
1185
- 267: <span class="ruby-identifier">a</span>(<span class="ruby-value str">'weekStartsMonday'</span>), <span class="ruby-keyword kw">self</span>)
1186
- 268: <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>)
1187
- 269: <span class="ruby-comment cmt"># The header consists of 2 lines separated by a 1 pixel boundary.</span>
1188
- 270: <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-value">2</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>
1189
- 271: <span class="ruby-comment cmt"># The maximum width of the chart. In case it needs more space, a</span>
1190
- 272: <span class="ruby-comment cmt"># scrollbar is shown or the chart gets truncated depending on the output</span>
1191
- 273: <span class="ruby-comment cmt"># format.</span>
1192
- 274: <span class="ruby-identifier">gantt</span>.<span class="ruby-identifier">viewWidth</span> = <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">width</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">width</span> <span class="ruby-operator">:</span> <span class="ruby-value">450</span>
1193
- 275: <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>)
1194
- 276: <span class="ruby-identifier">column</span>.<span class="ruby-identifier">cell1</span>.<span class="ruby-identifier">special</span> = <span class="ruby-identifier">gantt</span>
1195
- 277: <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>
1196
- 278: <span class="ruby-identifier">column</span>.<span class="ruby-identifier">scrollbar</span> = <span class="ruby-identifier">gantt</span>.<span class="ruby-identifier">hasScrollbar?</span>
1197
- 279: <span class="ruby-ivar">@table</span>.<span class="ruby-identifier">equiLines</span> = <span class="ruby-keyword kw">true</span>
1198
- 280: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'hourly'</span>
1199
- 281: <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-value">:sameTimeNextHour</span>,
1200
- 282: <span class="ruby-value">:weekdayAndDate</span>, <span class="ruby-value">:hour</span>)
1201
- 283: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'daily'</span>
1202
- 284: <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-value">:sameTimeNextDay</span>,
1203
- 285: <span class="ruby-value">:monthAndYear</span>, <span class="ruby-value">:day</span>)
1204
- 286: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'weekly'</span>
1205
- 287: <span class="ruby-identifier">genCalChartHeader</span>(<span class="ruby-identifier">columnDef</span>,
1206
- 288: <span class="ruby-ivar">@start</span>.<span class="ruby-identifier">beginOfWeek</span>(<span class="ruby-identifier">a</span>(<span class="ruby-value str">'weekStartsMonday'</span>)),
1207
- 289: <span class="ruby-value">:sameTimeNextWeek</span>, <span class="ruby-value">:monthAndYear</span>, <span class="ruby-value">:day</span>)
1208
- 290: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'monthly'</span>
1209
- 291: <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-value">:sameTimeNextMonth</span>,
1210
- 292: <span class="ruby-value">:year</span>, <span class="ruby-value">:shortMonthName</span>)
1211
- 293: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'quarterly'</span>
1212
- 294: <span class="ruby-identifier">genCalChartHeader</span>(<span class="ruby-identifier">columnDef</span>, <span class="ruby-ivar">@start</span>.<span class="ruby-identifier">beginOfQuarter</span>,
1213
- 295: <span class="ruby-value">:sameTimeNextQuarter</span>, <span class="ruby-value">:year</span>, <span class="ruby-value">:quarterName</span>)
1214
- 296: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'yearly'</span>
1215
- 297: <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-value">:sameTimeNextYear</span>,
1216
- 298: <span class="ruby-keyword kw">nil</span>, <span class="ruby-value">:year</span>)
1217
- 299: <span class="ruby-keyword kw">else</span>
1218
- 300: <span class="ruby-comment cmt"># This is the most common case. It does not need any special treatment.</span>
1219
- 301: <span class="ruby-comment cmt"># We just set the pre-defined or user-defined column title in the first</span>
1220
- 302: <span class="ruby-comment cmt"># row of the header. The 2nd row is not visible.</span>
1221
- 303: <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>)
1222
- 304: <span class="ruby-identifier">column</span>.<span class="ruby-identifier">cell1</span>.<span class="ruby-identifier">rows</span> = <span class="ruby-value">2</span>
1223
- 305: <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>
1224
- 306: <span class="ruby-keyword kw">end</span>
1225
- 307: <span class="ruby-keyword kw">end</span></pre>
1200
+ <span class="ruby-comment cmt"># File lib/reports/TableReport.rb, line 265</span>
1201
+ 265: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateHeaderCell</span>(<span class="ruby-identifier">columnDef</span>)
1202
+ 266: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">id</span>
1203
+ 267: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'chart'</span>
1204
+ 268: <span class="ruby-comment cmt"># For the 'chart' column we generate a GanttChart object. The sizes are</span>
1205
+ 269: <span class="ruby-comment cmt"># set so that the lines of the Gantt chart line up with the lines of the</span>
1206
+ 270: <span class="ruby-comment cmt"># table.</span>
1207
+ 271: <span class="ruby-identifier">gantt</span> = <span class="ruby-constant">GanttChart</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">a</span>(<span class="ruby-value str">'now'</span>),
1208
+ 272: <span class="ruby-identifier">a</span>(<span class="ruby-value str">'weekStartsMonday'</span>), <span class="ruby-keyword kw">self</span>)
1209
+ 273: <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>)
1210
+ 274: <span class="ruby-comment cmt"># The header consists of 2 lines separated by a 1 pixel boundary.</span>
1211
+ 275: <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-value">2</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>
1212
+ 276: <span class="ruby-comment cmt"># The maximum width of the chart. In case it needs more space, a</span>
1213
+ 277: <span class="ruby-comment cmt"># scrollbar is shown or the chart gets truncated depending on the output</span>
1214
+ 278: <span class="ruby-comment cmt"># format.</span>
1215
+ 279: <span class="ruby-identifier">gantt</span>.<span class="ruby-identifier">viewWidth</span> = <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">width</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">width</span> <span class="ruby-operator">:</span> <span class="ruby-value">450</span>
1216
+ 280: <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>)
1217
+ 281: <span class="ruby-identifier">column</span>.<span class="ruby-identifier">cell1</span>.<span class="ruby-identifier">special</span> = <span class="ruby-identifier">gantt</span>
1218
+ 282: <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>
1219
+ 283: <span class="ruby-identifier">column</span>.<span class="ruby-identifier">scrollbar</span> = <span class="ruby-identifier">gantt</span>.<span class="ruby-identifier">hasScrollbar?</span>
1220
+ 284: <span class="ruby-ivar">@table</span>.<span class="ruby-identifier">equiLines</span> = <span class="ruby-keyword kw">true</span>
1221
+ 285: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'hourly'</span>
1222
+ 286: <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-value">:sameTimeNextHour</span>,
1223
+ 287: <span class="ruby-value">:weekdayAndDate</span>, <span class="ruby-value">:hour</span>)
1224
+ 288: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'daily'</span>
1225
+ 289: <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-value">:sameTimeNextDay</span>,
1226
+ 290: <span class="ruby-value">:monthAndYear</span>, <span class="ruby-value">:day</span>)
1227
+ 291: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'weekly'</span>
1228
+ 292: <span class="ruby-identifier">genCalChartHeader</span>(<span class="ruby-identifier">columnDef</span>,
1229
+ 293: <span class="ruby-ivar">@start</span>.<span class="ruby-identifier">beginOfWeek</span>(<span class="ruby-identifier">a</span>(<span class="ruby-value str">'weekStartsMonday'</span>)),
1230
+ 294: <span class="ruby-value">:sameTimeNextWeek</span>, <span class="ruby-value">:monthAndYear</span>, <span class="ruby-value">:day</span>)
1231
+ 295: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'monthly'</span>
1232
+ 296: <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-value">:sameTimeNextMonth</span>,
1233
+ 297: <span class="ruby-value">:year</span>, <span class="ruby-value">:shortMonthName</span>)
1234
+ 298: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'quarterly'</span>
1235
+ 299: <span class="ruby-identifier">genCalChartHeader</span>(<span class="ruby-identifier">columnDef</span>, <span class="ruby-ivar">@start</span>.<span class="ruby-identifier">beginOfQuarter</span>,
1236
+ 300: <span class="ruby-value">:sameTimeNextQuarter</span>, <span class="ruby-value">:year</span>, <span class="ruby-value">:quarterName</span>)
1237
+ 301: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'yearly'</span>
1238
+ 302: <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-value">:sameTimeNextYear</span>,
1239
+ 303: <span class="ruby-keyword kw">nil</span>, <span class="ruby-value">:year</span>)
1240
+ 304: <span class="ruby-keyword kw">else</span>
1241
+ 305: <span class="ruby-comment cmt"># This is the most common case. It does not need any special treatment.</span>
1242
+ 306: <span class="ruby-comment cmt"># We just set the pre-defined or user-defined column title in the first</span>
1243
+ 307: <span class="ruby-comment cmt"># row of the header. The 2nd row is not visible.</span>
1244
+ 308: <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>)
1245
+ 309: <span class="ruby-identifier">column</span>.<span class="ruby-identifier">cell1</span>.<span class="ruby-identifier">rows</span> = <span class="ruby-value">2</span>
1246
+ 310: <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>
1247
+ 311: <span class="ruby-keyword kw">end</span>
1248
+ 312: <span class="ruby-keyword kw">end</span></pre>
1226
1249
  </div>
1227
1250
 
1228
1251
  </div>
@@ -1234,7 +1257,7 @@ to be taken to generate the header text.
1234
1257
 
1235
1258
 
1236
1259
  <div id="generate-esource-ist-method" class="method-detail ">
1237
- <a name="M000860"></a>
1260
+ <a name="method-i-generateResourceList"></a>
1238
1261
 
1239
1262
  <div class="method-heading">
1240
1263
 
@@ -1259,67 +1282,67 @@ resource lines will be within the scope this task line.
1259
1282
  <div class="method-source-code"
1260
1283
  id="generate-esource-ist-source">
1261
1284
  <pre>
1262
- <span class="ruby-comment cmt"># File lib/reports/TableReport.rb, line 378</span>
1263
- 378: <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>)
1264
- 379: <span class="ruby-identifier">queryAttrs</span> = { <span class="ruby-value str">'project'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@project</span>,
1265
- 380: <span class="ruby-value str">'scopeProperty'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">scopeLine</span> <span class="ruby-operator">?</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>,
1266
- 381: <span class="ruby-value str">'loadUnit'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'loadUnit'</span>),
1267
- 382: <span class="ruby-value str">'numberFormat'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'numberFormat'</span>),
1268
- 383: <span class="ruby-value str">'timeFormat'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'timeFormat'</span>),
1269
- 384: <span class="ruby-value str">'currencyFormat'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'currencyFormat'</span>),
1270
- 385: <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>,
1271
- 386: <span class="ruby-value str">'costAccount'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'costAccount'</span>),
1272
- 387: <span class="ruby-value str">'revenueAccount'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'revenueAccount'</span>) }
1273
- 388: <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>)
1274
- 389: <span class="ruby-identifier">resourceList</span>.<span class="ruby-identifier">sort!</span>
1275
- 390:
1276
- 391: <span class="ruby-comment cmt"># The primary line counter. Is not used for enclosed lines.</span>
1277
- 392: <span class="ruby-identifier">no</span> = <span class="ruby-value">0</span>
1278
- 393: <span class="ruby-comment cmt"># The scope line counter. It's reset for each new scope.</span>
1279
- 394: <span class="ruby-identifier">lineNo</span> = <span class="ruby-identifier">scopeLine</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">scopeLine</span>.<span class="ruby-identifier">lineNo</span> <span class="ruby-operator">:</span> <span class="ruby-value">0</span>
1280
- 395: <span class="ruby-comment cmt"># Init the variable to get a larger scope</span>
1281
- 396: <span class="ruby-identifier">line</span> = <span class="ruby-keyword kw">nil</span>
1282
- 397: <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>
1283
- 398: <span class="ruby-comment cmt"># Get the current Query from the report context and create a copy. We</span>
1284
- 399: <span class="ruby-comment cmt"># are going to modify it.</span>
1285
- 400: <span class="ruby-identifier">query</span> = <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">reportContext</span>.<span class="ruby-identifier">query</span>.<span class="ruby-identifier">dup</span>
1286
- 401: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">property</span> = <span class="ruby-identifier">resource</span>
1287
- 402: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">scopeProperty</span> = <span class="ruby-identifier">scopeLine</span> <span class="ruby-operator">?</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>
1288
- 403:
1289
- 404: <span class="ruby-identifier">no</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
1290
- 405: <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>
1291
- 406: <span class="ruby-identifier">lineNo</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
1292
- 407: <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>
1293
- 408: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">scenarioIdx</span> = <span class="ruby-identifier">scenarioIdx</span>
1294
- 409: <span class="ruby-comment cmt"># Generate line for each resource.</span>
1295
- 410: <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>)
1296
- 411:
1297
- 412: <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>
1298
- 413: <span class="ruby-identifier">line</span>.<span class="ruby-identifier">lineNo</span> = <span class="ruby-identifier">lineNo</span>
1299
- 414: <span class="ruby-identifier">line</span>.<span class="ruby-identifier">subLineNo</span> = <span class="ruby-ivar">@table</span>.<span class="ruby-identifier">lines</span>
1300
- 415: <span class="ruby-identifier">setIndent</span>(<span class="ruby-identifier">line</span>, <span class="ruby-identifier">a</span>(<span class="ruby-value str">'resourceRoot'</span>), <span class="ruby-identifier">resourceList</span>.<span class="ruby-identifier">treeMode?</span>)
1285
+ <span class="ruby-comment cmt"># File lib/reports/TableReport.rb, line 383</span>
1286
+ 383: <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>)
1287
+ 384: <span class="ruby-identifier">queryAttrs</span> = { <span class="ruby-value str">'project'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@project</span>,
1288
+ 385: <span class="ruby-value str">'scopeProperty'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">scopeLine</span> <span class="ruby-operator">?</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>,
1289
+ 386: <span class="ruby-value str">'loadUnit'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'loadUnit'</span>),
1290
+ 387: <span class="ruby-value str">'numberFormat'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'numberFormat'</span>),
1291
+ 388: <span class="ruby-value str">'timeFormat'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'timeFormat'</span>),
1292
+ 389: <span class="ruby-value str">'currencyFormat'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'currencyFormat'</span>),
1293
+ 390: <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>,
1294
+ 391: <span class="ruby-value str">'costAccount'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'costAccount'</span>),
1295
+ 392: <span class="ruby-value str">'revenueAccount'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'revenueAccount'</span>) }
1296
+ 393: <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>)
1297
+ 394: <span class="ruby-identifier">resourceList</span>.<span class="ruby-identifier">sort!</span>
1298
+ 395:
1299
+ 396: <span class="ruby-comment cmt"># The primary line counter. Is not used for enclosed lines.</span>
1300
+ 397: <span class="ruby-identifier">no</span> = <span class="ruby-value">0</span>
1301
+ 398: <span class="ruby-comment cmt"># The scope line counter. It's reset for each new scope.</span>
1302
+ 399: <span class="ruby-identifier">lineNo</span> = <span class="ruby-identifier">scopeLine</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">scopeLine</span>.<span class="ruby-identifier">lineNo</span> <span class="ruby-operator">:</span> <span class="ruby-value">0</span>
1303
+ 400: <span class="ruby-comment cmt"># Init the variable to get a larger scope</span>
1304
+ 401: <span class="ruby-identifier">line</span> = <span class="ruby-keyword kw">nil</span>
1305
+ 402: <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>
1306
+ 403: <span class="ruby-comment cmt"># Get the current Query from the report context and create a copy. We</span>
1307
+ 404: <span class="ruby-comment cmt"># are going to modify it.</span>
1308
+ 405: <span class="ruby-identifier">query</span> = <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">reportContexts</span>.<span class="ruby-identifier">last</span>.<span class="ruby-identifier">query</span>.<span class="ruby-identifier">dup</span>
1309
+ 406: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">property</span> = <span class="ruby-identifier">resource</span>
1310
+ 407: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">scopeProperty</span> = <span class="ruby-identifier">scopeLine</span> <span class="ruby-operator">?</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>
1311
+ 408:
1312
+ 409: <span class="ruby-identifier">no</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
1313
+ 410: <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>
1314
+ 411: <span class="ruby-identifier">lineNo</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
1315
+ 412: <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>
1316
+ 413: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">scenarioIdx</span> = <span class="ruby-identifier">scenarioIdx</span>
1317
+ 414: <span class="ruby-comment cmt"># Generate line for each resource.</span>
1318
+ 415: <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>)
1301
1319
  416:
1302
- 417: <span class="ruby-comment cmt"># Generate a cell for each column in this line.</span>
1303
- 418: <span class="ruby-identifier">a</span>(<span class="ruby-value str">'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>
1304
- 419: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">attributeId</span> = <span class="ruby-identifier">column</span>.<span class="ruby-identifier">id</span>
1305
- 420: <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">query</span>)
1306
- 421: <span class="ruby-keyword kw">end</span>
1307
- 422: <span class="ruby-keyword kw">end</span>
1308
- 423:
1309
- 424: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">taskList</span>
1310
- 425: <span class="ruby-comment cmt"># If we have a taskList we generate nested lines for each of the</span>
1311
- 426: <span class="ruby-comment cmt"># tasks that the resource is assigned to and pass the user-defined</span>
1312
- 427: <span class="ruby-comment cmt"># filter.</span>
1313
- 428: <span class="ruby-identifier">taskList</span>.<span class="ruby-identifier">setSorting</span>(<span class="ruby-identifier">a</span>(<span class="ruby-value str">'sortTasks'</span>))
1314
- 429: <span class="ruby-identifier">assignedTaskList</span> = <span class="ruby-identifier">filterTaskList</span>(<span class="ruby-identifier">taskList</span>, <span class="ruby-identifier">resource</span>,
1315
- 430: <span class="ruby-identifier">a</span>(<span class="ruby-value str">'hideTask'</span>),
1316
- 431: <span class="ruby-identifier">a</span>(<span class="ruby-value str">'rollupTask'</span>))
1317
- 432: <span class="ruby-identifier">assignedTaskList</span>.<span class="ruby-identifier">sort!</span>
1318
- 433: <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>)
1319
- 434: <span class="ruby-keyword kw">end</span>
1320
- 435: <span class="ruby-keyword kw">end</span>
1321
- 436: <span class="ruby-identifier">lineNo</span>
1322
- 437: <span class="ruby-keyword kw">end</span></pre>
1320
+ 417: <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>
1321
+ 418: <span class="ruby-identifier">line</span>.<span class="ruby-identifier">lineNo</span> = <span class="ruby-identifier">lineNo</span>
1322
+ 419: <span class="ruby-identifier">line</span>.<span class="ruby-identifier">subLineNo</span> = <span class="ruby-ivar">@table</span>.<span class="ruby-identifier">lines</span>
1323
+ 420: <span class="ruby-identifier">setIndent</span>(<span class="ruby-identifier">line</span>, <span class="ruby-identifier">a</span>(<span class="ruby-value str">'resourceRoot'</span>), <span class="ruby-identifier">resourceList</span>.<span class="ruby-identifier">treeMode?</span>)
1324
+ 421:
1325
+ 422: <span class="ruby-comment cmt"># Generate a cell for each column in this line.</span>
1326
+ 423: <span class="ruby-identifier">a</span>(<span class="ruby-value str">'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>
1327
+ 424: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">attributeId</span> = <span class="ruby-identifier">column</span>.<span class="ruby-identifier">id</span>
1328
+ 425: <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">query</span>)
1329
+ 426: <span class="ruby-keyword kw">end</span>
1330
+ 427: <span class="ruby-keyword kw">end</span>
1331
+ 428:
1332
+ 429: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">taskList</span>
1333
+ 430: <span class="ruby-comment cmt"># If we have a taskList we generate nested lines for each of the</span>
1334
+ 431: <span class="ruby-comment cmt"># tasks that the resource is assigned to and pass the user-defined</span>
1335
+ 432: <span class="ruby-comment cmt"># filter.</span>
1336
+ 433: <span class="ruby-identifier">taskList</span>.<span class="ruby-identifier">setSorting</span>(<span class="ruby-identifier">a</span>(<span class="ruby-value str">'sortTasks'</span>))
1337
+ 434: <span class="ruby-identifier">assignedTaskList</span> = <span class="ruby-identifier">filterTaskList</span>(<span class="ruby-identifier">taskList</span>, <span class="ruby-identifier">resource</span>,
1338
+ 435: <span class="ruby-identifier">a</span>(<span class="ruby-value str">'hideTask'</span>), <span class="ruby-identifier">a</span>(<span class="ruby-value str">'rollupTask'</span>),
1339
+ 436: <span class="ruby-identifier">a</span>(<span class="ruby-value str">'openNodes'</span>))
1340
+ 437: <span class="ruby-identifier">assignedTaskList</span>.<span class="ruby-identifier">sort!</span>
1341
+ 438: <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>)
1342
+ 439: <span class="ruby-keyword kw">end</span>
1343
+ 440: <span class="ruby-keyword kw">end</span>
1344
+ 441: <span class="ruby-identifier">lineNo</span>
1345
+ 442: <span class="ruby-keyword kw">end</span></pre>
1323
1346
  </div>
1324
1347
 
1325
1348
  </div>
@@ -1331,7 +1354,7 @@ resource lines will be within the scope this task line.
1331
1354
 
1332
1355
 
1333
1356
  <div id="generate-ask-ist-method" class="method-detail ">
1334
- <a name="M000859"></a>
1357
+ <a name="method-i-generateTaskList"></a>
1335
1358
 
1336
1359
  <div class="method-heading">
1337
1360
 
@@ -1356,66 +1379,66 @@ generated task lines will be within the scope this resource line.
1356
1379
  <div class="method-source-code"
1357
1380
  id="generate-ask-ist-source">
1358
1381
  <pre>
1359
- <span class="ruby-comment cmt"># File lib/reports/TableReport.rb, line 314</span>
1360
- 314: <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>)
1361
- 315: <span class="ruby-identifier">queryAttrs</span> = { <span class="ruby-value str">'project'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@project</span>,
1362
- 316: <span class="ruby-value str">'scopeProperty'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">scopeLine</span> <span class="ruby-operator">?</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>,
1363
- 317: <span class="ruby-value str">'loadUnit'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'loadUnit'</span>),
1364
- 318: <span class="ruby-value str">'numberFormat'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'numberFormat'</span>),
1365
- 319: <span class="ruby-value str">'timeFormat'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'timeFormat'</span>),
1366
- 320: <span class="ruby-value str">'currencyFormat'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'currencyFormat'</span>),
1367
- 321: <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>,
1368
- 322: <span class="ruby-value str">'costAccount'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'costAccount'</span>),
1369
- 323: <span class="ruby-value str">'revenueAccount'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'revenueAccount'</span>) }
1370
- 324: <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>)
1371
- 325: <span class="ruby-identifier">taskList</span>.<span class="ruby-identifier">sort!</span>
1372
- 326:
1373
- 327: <span class="ruby-comment cmt"># The primary line counter. Is not used for enclosed lines.</span>
1374
- 328: <span class="ruby-identifier">no</span> = <span class="ruby-value">0</span>
1375
- 329: <span class="ruby-comment cmt"># The scope line counter. It's reset for each new scope.</span>
1376
- 330: <span class="ruby-identifier">lineNo</span> = <span class="ruby-identifier">scopeLine</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">scopeLine</span>.<span class="ruby-identifier">lineNo</span> <span class="ruby-operator">:</span> <span class="ruby-value">0</span>
1377
- 331: <span class="ruby-comment cmt"># Init the variable to get a larger scope</span>
1378
- 332: <span class="ruby-identifier">line</span> = <span class="ruby-keyword kw">nil</span>
1379
- 333: <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>
1380
- 334: <span class="ruby-comment cmt"># Get the current Query from the report context and create a copy. We</span>
1381
- 335: <span class="ruby-comment cmt"># are going to modify it.</span>
1382
- 336: <span class="ruby-identifier">query</span> = <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">reportContext</span>.<span class="ruby-identifier">query</span>.<span class="ruby-identifier">dup</span>
1383
- 337: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">property</span> = <span class="ruby-identifier">task</span>
1384
- 338: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">scopeProperty</span> = <span class="ruby-identifier">scopeLine</span> <span class="ruby-operator">?</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>
1385
- 339:
1386
- 340: <span class="ruby-identifier">no</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
1387
- 341: <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>
1388
- 342: <span class="ruby-identifier">lineNo</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
1389
- 343: <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>
1390
- 344: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">scenarioIdx</span> = <span class="ruby-identifier">scenarioIdx</span>
1391
- 345: <span class="ruby-comment cmt"># Generate line for each task.</span>
1392
- 346: <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>)
1393
- 347:
1394
- 348: <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>
1395
- 349: <span class="ruby-identifier">line</span>.<span class="ruby-identifier">lineNo</span> = <span class="ruby-identifier">lineNo</span>
1396
- 350: <span class="ruby-identifier">line</span>.<span class="ruby-identifier">subLineNo</span> = <span class="ruby-ivar">@table</span>.<span class="ruby-identifier">lines</span>
1397
- 351: <span class="ruby-identifier">setIndent</span>(<span class="ruby-identifier">line</span>, <span class="ruby-identifier">a</span>(<span class="ruby-value str">'taskRoot'</span>), <span class="ruby-identifier">taskList</span>.<span class="ruby-identifier">treeMode?</span>)
1382
+ <span class="ruby-comment cmt"># File lib/reports/TableReport.rb, line 319</span>
1383
+ 319: <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>)
1384
+ 320: <span class="ruby-identifier">queryAttrs</span> = { <span class="ruby-value str">'project'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@project</span>,
1385
+ 321: <span class="ruby-value str">'scopeProperty'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">scopeLine</span> <span class="ruby-operator">?</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>,
1386
+ 322: <span class="ruby-value str">'loadUnit'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'loadUnit'</span>),
1387
+ 323: <span class="ruby-value str">'numberFormat'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'numberFormat'</span>),
1388
+ 324: <span class="ruby-value str">'timeFormat'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'timeFormat'</span>),
1389
+ 325: <span class="ruby-value str">'currencyFormat'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'currencyFormat'</span>),
1390
+ 326: <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>,
1391
+ 327: <span class="ruby-value str">'costAccount'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'costAccount'</span>),
1392
+ 328: <span class="ruby-value str">'revenueAccount'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'revenueAccount'</span>) }
1393
+ 329: <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>)
1394
+ 330: <span class="ruby-identifier">taskList</span>.<span class="ruby-identifier">sort!</span>
1395
+ 331:
1396
+ 332: <span class="ruby-comment cmt"># The primary line counter. Is not used for enclosed lines.</span>
1397
+ 333: <span class="ruby-identifier">no</span> = <span class="ruby-value">0</span>
1398
+ 334: <span class="ruby-comment cmt"># The scope line counter. It's reset for each new scope.</span>
1399
+ 335: <span class="ruby-identifier">lineNo</span> = <span class="ruby-identifier">scopeLine</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">scopeLine</span>.<span class="ruby-identifier">lineNo</span> <span class="ruby-operator">:</span> <span class="ruby-value">0</span>
1400
+ 336: <span class="ruby-comment cmt"># Init the variable to get a larger scope</span>
1401
+ 337: <span class="ruby-identifier">line</span> = <span class="ruby-keyword kw">nil</span>
1402
+ 338: <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>
1403
+ 339: <span class="ruby-comment cmt"># Get the current Query from the report context and create a copy. We</span>
1404
+ 340: <span class="ruby-comment cmt"># are going to modify it.</span>
1405
+ 341: <span class="ruby-identifier">query</span> = <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">reportContexts</span>.<span class="ruby-identifier">last</span>.<span class="ruby-identifier">query</span>.<span class="ruby-identifier">dup</span>
1406
+ 342: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">property</span> = <span class="ruby-identifier">task</span>
1407
+ 343: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">scopeProperty</span> = <span class="ruby-identifier">scopeLine</span> <span class="ruby-operator">?</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>
1408
+ 344:
1409
+ 345: <span class="ruby-identifier">no</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
1410
+ 346: <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>
1411
+ 347: <span class="ruby-identifier">lineNo</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
1412
+ 348: <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>
1413
+ 349: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">scenarioIdx</span> = <span class="ruby-identifier">scenarioIdx</span>
1414
+ 350: <span class="ruby-comment cmt"># Generate line for each task.</span>
1415
+ 351: <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>)
1398
1416
  352:
1399
- 353: <span class="ruby-comment cmt"># Generate a cell for each column in this line.</span>
1400
- 354: <span class="ruby-identifier">a</span>(<span class="ruby-value str">'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>
1401
- 355: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">attributeId</span> = <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">id</span>
1402
- 356: <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">query</span>)
1403
- 357: <span class="ruby-keyword kw">end</span>
1404
- 358: <span class="ruby-keyword kw">end</span>
1405
- 359:
1406
- 360: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">resourceList</span>
1407
- 361: <span class="ruby-comment cmt"># If we have a resourceList we generate nested lines for each of the</span>
1408
- 362: <span class="ruby-comment cmt"># resources that are assigned to this task and pass the user-defined</span>
1409
- 363: <span class="ruby-comment cmt"># filter.</span>
1410
- 364: <span class="ruby-identifier">resourceList</span>.<span class="ruby-identifier">setSorting</span>(<span class="ruby-identifier">a</span>(<span class="ruby-value str">'sortResources'</span>))
1411
- 365: <span class="ruby-identifier">assignedResourceList</span> = <span class="ruby-identifier">filterResourceList</span>(<span class="ruby-identifier">resourceList</span>, <span class="ruby-identifier">task</span>,
1412
- 366: <span class="ruby-identifier">a</span>(<span class="ruby-value str">'hideResource'</span>), <span class="ruby-identifier">a</span>(<span class="ruby-value str">'rollupResource'</span>))
1413
- 367: <span class="ruby-identifier">assignedResourceList</span>.<span class="ruby-identifier">sort!</span>
1414
- 368: <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>)
1415
- 369: <span class="ruby-keyword kw">end</span>
1416
- 370: <span class="ruby-keyword kw">end</span>
1417
- 371: <span class="ruby-identifier">lineNo</span>
1418
- 372: <span class="ruby-keyword kw">end</span></pre>
1417
+ 353: <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>
1418
+ 354: <span class="ruby-identifier">line</span>.<span class="ruby-identifier">lineNo</span> = <span class="ruby-identifier">lineNo</span>
1419
+ 355: <span class="ruby-identifier">line</span>.<span class="ruby-identifier">subLineNo</span> = <span class="ruby-ivar">@table</span>.<span class="ruby-identifier">lines</span>
1420
+ 356: <span class="ruby-identifier">setIndent</span>(<span class="ruby-identifier">line</span>, <span class="ruby-identifier">a</span>(<span class="ruby-value str">'taskRoot'</span>), <span class="ruby-identifier">taskList</span>.<span class="ruby-identifier">treeMode?</span>)
1421
+ 357:
1422
+ 358: <span class="ruby-comment cmt"># Generate a cell for each column in this line.</span>
1423
+ 359: <span class="ruby-identifier">a</span>(<span class="ruby-value str">'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>
1424
+ 360: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">attributeId</span> = <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">id</span>
1425
+ 361: <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">query</span>)
1426
+ 362: <span class="ruby-keyword kw">end</span>
1427
+ 363: <span class="ruby-keyword kw">end</span>
1428
+ 364:
1429
+ 365: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">resourceList</span>
1430
+ 366: <span class="ruby-comment cmt"># If we have a resourceList we generate nested lines for each of the</span>
1431
+ 367: <span class="ruby-comment cmt"># resources that are assigned to this task and pass the user-defined</span>
1432
+ 368: <span class="ruby-comment cmt"># filter.</span>
1433
+ 369: <span class="ruby-identifier">resourceList</span>.<span class="ruby-identifier">setSorting</span>(<span class="ruby-identifier">a</span>(<span class="ruby-value str">'sortResources'</span>))
1434
+ 370: <span class="ruby-identifier">assignedResourceList</span> = <span class="ruby-identifier">filterResourceList</span>(<span class="ruby-identifier">resourceList</span>, <span class="ruby-identifier">task</span>,
1435
+ 371: <span class="ruby-identifier">a</span>(<span class="ruby-value str">'hideResource'</span>), <span class="ruby-identifier">a</span>(<span class="ruby-value str">'rollupResource'</span>), <span class="ruby-identifier">a</span>(<span class="ruby-value str">'openNodes'</span>))
1436
+ 372: <span class="ruby-identifier">assignedResourceList</span>.<span class="ruby-identifier">sort!</span>
1437
+ 373: <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>)
1438
+ 374: <span class="ruby-keyword kw">end</span>
1439
+ 375: <span class="ruby-keyword kw">end</span>
1440
+ 376: <span class="ruby-identifier">lineNo</span>
1441
+ 377: <span class="ruby-keyword kw">end</span></pre>
1419
1442
  </div>
1420
1443
 
1421
1444
  </div>
@@ -1427,7 +1450,7 @@ generated task lines will be within the scope this resource line.
1427
1450
 
1428
1451
 
1429
1452
  <div id="set-eport-eriod-method" class="method-detail ">
1430
- <a name="M000856"></a>
1453
+ <a name="method-i-setReportPeriod"></a>
1431
1454
 
1432
1455
  <div class="method-heading">
1433
1456
 
@@ -1449,11 +1472,11 @@ been changed afterwards.
1449
1472
  <div class="method-source-code"
1450
1473
  id="set-eport-eriod-source">
1451
1474
  <pre>
1452
- <span class="ruby-comment cmt"># File lib/reports/TableReport.rb, line 183</span>
1453
- 183: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">setReportPeriod</span>
1454
- 184: <span class="ruby-ivar">@start</span> = <span class="ruby-identifier">a</span>(<span class="ruby-value str">'start'</span>)
1455
- 185: <span class="ruby-ivar">@end</span> = <span class="ruby-identifier">a</span>(<span class="ruby-value str">'end'</span>)
1456
- 186: <span class="ruby-keyword kw">end</span></pre>
1475
+ <span class="ruby-comment cmt"># File lib/reports/TableReport.rb, line 188</span>
1476
+ 188: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">setReportPeriod</span>
1477
+ 189: <span class="ruby-ivar">@start</span> = <span class="ruby-identifier">a</span>(<span class="ruby-value str">'start'</span>)
1478
+ 190: <span class="ruby-ivar">@end</span> = <span class="ruby-identifier">a</span>(<span class="ruby-value str">'end'</span>)
1479
+ 191: <span class="ruby-keyword kw">end</span></pre>
1457
1480
  </div>
1458
1481
 
1459
1482
  </div>
@@ -1471,7 +1494,7 @@ been changed afterwards.
1471
1494
 
1472
1495
 
1473
1496
  <div id="check-ell-ext-method" class="method-detail ">
1474
- <a name="M000871"></a>
1497
+ <a name="method-i-checkCellText"></a>
1475
1498
 
1476
1499
  <div class="method-heading">
1477
1500
 
@@ -1493,13 +1516,13 @@ error. This could happen after scheduling errors.
1493
1516
  <div class="method-source-code"
1494
1517
  id="check-ell-ext-source">
1495
1518
  <pre>
1496
- <span class="ruby-comment cmt"># File lib/reports/TableReport.rb, line 994</span>
1497
- 994: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">checkCellText</span>(<span class="ruby-identifier">cell</span>)
1498
- 995: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">text</span>
1499
- 996: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">text</span> = <span class="ruby-value str">'&lt;Error&gt;'</span>
1500
- 997: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">fontColor</span> = <span class="ruby-value str">'#FF0000'</span>
1501
- 998: <span class="ruby-keyword kw">end</span>
1502
- 999: <span class="ruby-keyword kw">end</span></pre>
1519
+ <span class="ruby-comment cmt"># File lib/reports/TableReport.rb, line 1009</span>
1520
+ 1009: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">checkCellText</span>(<span class="ruby-identifier">cell</span>)
1521
+ 1010: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">text</span>
1522
+ 1011: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">text</span> = <span class="ruby-value str">'&lt;Error&gt;'</span>
1523
+ 1012: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">fontColor</span> = <span class="ruby-value str">'#FF0000'</span>
1524
+ 1013: <span class="ruby-keyword kw">end</span>
1525
+ 1014: <span class="ruby-keyword kw">end</span></pre>
1503
1526
  </div>
1504
1527
 
1505
1528
  </div>
@@ -1511,7 +1534,7 @@ error. This could happen after scheduling errors.
1511
1534
 
1512
1535
 
1513
1536
  <div id="gen-al-hart-eader-method" class="method-detail ">
1514
- <a name="M000861"></a>
1537
+ <a name="method-i-genCalChartHeader"></a>
1515
1538
 
1516
1539
  <div class="method-heading">
1517
1540
 
@@ -1538,67 +1561,67 @@ the particular column.
1538
1561
  <div class="method-source-code"
1539
1562
  id="gen-al-hart-eader-source">
1540
1563
  <pre>
1541
- <span class="ruby-comment cmt"># File lib/reports/TableReport.rb, line 447</span>
1542
- 447: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">genCalChartHeader</span>(<span class="ruby-identifier">columnDef</span>, <span class="ruby-identifier">t</span>, <span class="ruby-identifier">sameTimeNextFunc</span>, <span class="ruby-identifier">name1Func</span>, <span class="ruby-identifier">name2Func</span>)
1543
- 448: <span class="ruby-identifier">tableColumn</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>)
1544
- 449:
1545
- 450: <span class="ruby-comment cmt"># Calendar chars only work when all lines have same height.</span>
1546
- 451: <span class="ruby-ivar">@table</span>.<span class="ruby-identifier">equiLines</span> = <span class="ruby-keyword kw">true</span>
1547
- 452:
1548
- 453: <span class="ruby-comment cmt"># Embedded tables have unpredictable width. So we always need to make room</span>
1549
- 454: <span class="ruby-comment cmt"># for a potential scrollbar.</span>
1550
- 455: <span class="ruby-identifier">tableColumn</span>.<span class="ruby-identifier">scrollbar</span> = <span class="ruby-keyword kw">true</span>
1551
- 456:
1552
- 457: <span class="ruby-comment cmt"># Create the table that is embedded in this column.</span>
1553
- 458: <span class="ruby-identifier">tableColumn</span>.<span class="ruby-identifier">cell1</span>.<span class="ruby-identifier">special</span> = <span class="ruby-identifier">table</span> = <span class="ruby-constant">ColumnTable</span>.<span class="ruby-identifier">new</span>
1554
- 459: <span class="ruby-identifier">table</span>.<span class="ruby-identifier">equiLines</span> = <span class="ruby-keyword kw">true</span>
1555
- 460: <span class="ruby-identifier">tableColumn</span>.<span class="ruby-identifier">cell2</span>.<span class="ruby-identifier">hidden</span> = <span class="ruby-keyword kw">true</span>
1556
- 461: <span class="ruby-identifier">table</span>.<span class="ruby-identifier">viewWidth</span> = <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">width</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">width</span> <span class="ruby-operator">:</span> <span class="ruby-value">450</span>
1557
- 462:
1558
- 463: <span class="ruby-comment cmt"># Iterate over the report interval until we hit the end date. The</span>
1559
- 464: <span class="ruby-comment cmt"># iteration is done with 2 nested loops. The outer loops generates the</span>
1560
- 465: <span class="ruby-comment cmt"># intervals for the upper (larger) scale. The inner loop generates the</span>
1561
- 466: <span class="ruby-comment cmt"># lower (smaller) scale.</span>
1562
- 467: <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">t</span> <span class="ruby-operator">&lt;</span> <span class="ruby-ivar">@end</span>
1563
- 468: <span class="ruby-identifier">cellsInInterval</span> = <span class="ruby-value">0</span>
1564
- 469: <span class="ruby-comment cmt"># Label for upper scale. The yearly calendar only has a lower scale.</span>
1565
- 470: <span class="ruby-identifier">currentInterval</span> = <span class="ruby-identifier">t</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">name1Func</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">name1Func</span>
1566
- 471: <span class="ruby-identifier">firstColumn</span> = <span class="ruby-keyword kw">nil</span>
1567
- 472: <span class="ruby-comment cmt"># The innter loops terminates when the label for the upper scale has</span>
1568
- 473: <span class="ruby-comment cmt"># changed to the next scale cell.</span>
1569
- 474: <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">t</span> <span class="ruby-operator">&lt;</span> <span class="ruby-ivar">@end</span> <span class="ruby-operator">&amp;&amp;</span> (<span class="ruby-identifier">name1Func</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span>
1570
- 475: <span class="ruby-identifier">t</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">name1Func</span>) <span class="ruby-operator">==</span> <span class="ruby-identifier">currentInterval</span>)
1571
- 476: <span class="ruby-comment cmt"># call TjTime::sameTimeNext... function to get the end of the column.</span>
1572
- 477: <span class="ruby-identifier">nextT</span> = <span class="ruby-identifier">t</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">sameTimeNextFunc</span>)
1573
- 478: <span class="ruby-identifier">iv</span> = <span class="ruby-constant">Interval</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">t</span>, <span class="ruby-identifier">nextT</span>)
1574
- 479: <span class="ruby-comment cmt"># Create the new column object.</span>
1575
- 480: <span class="ruby-identifier">column</span> = <span class="ruby-constant">ReportTableColumn</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">table</span>, <span class="ruby-keyword kw">nil</span>, <span class="ruby-value str">''</span>)
1576
- 481: <span class="ruby-comment cmt"># Store the date of the column in the original form.</span>
1577
- 482: <span class="ruby-identifier">column</span>.<span class="ruby-identifier">cell1</span>.<span class="ruby-identifier">data</span> = <span class="ruby-identifier">t</span>.<span class="ruby-identifier">to_s</span>(<span class="ruby-identifier">a</span>(<span class="ruby-value str">'timeFormat'</span>))
1578
- 483: <span class="ruby-comment cmt"># The upper scale cells will be merged into one large cell that spans</span>
1579
- 484: <span class="ruby-comment cmt"># all lower scale cells that belong to this upper cell.</span>
1580
- 485: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">firstColumn</span>.<span class="ruby-identifier">nil?</span>
1581
- 486: <span class="ruby-identifier">firstColumn</span> = <span class="ruby-identifier">column</span>
1582
- 487: <span class="ruby-identifier">column</span>.<span class="ruby-identifier">cell1</span>.<span class="ruby-identifier">text</span> = <span class="ruby-identifier">currentInterval</span>.<span class="ruby-identifier">to_s</span>
1583
- 488: <span class="ruby-keyword kw">else</span>
1584
- 489: <span class="ruby-identifier">column</span>.<span class="ruby-identifier">cell1</span>.<span class="ruby-identifier">hidden</span> = <span class="ruby-keyword kw">true</span>
1585
- 490: <span class="ruby-keyword kw">end</span>
1586
- 491: <span class="ruby-identifier">column</span>.<span class="ruby-identifier">cell2</span>.<span class="ruby-identifier">text</span> = <span class="ruby-identifier">t</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">name2Func</span>).<span class="ruby-identifier">to_s</span>
1587
- 492: <span class="ruby-comment cmt"># TODO: The width should be taken from some data structure.</span>
1588
- 493: <span class="ruby-identifier">column</span>.<span class="ruby-identifier">cell2</span>.<span class="ruby-identifier">width</span> = <span class="ruby-value">20</span>
1589
- 494: <span class="ruby-comment cmt"># Off-duty cells will have a different color than working time cells.</span>
1590
- 495: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">isWorkingTime</span>(<span class="ruby-identifier">iv</span>)
1591
- 496: <span class="ruby-identifier">column</span>.<span class="ruby-identifier">cell2</span>.<span class="ruby-identifier">category</span> = <span class="ruby-value str">'tabhead_offduty'</span>
1592
- 497: <span class="ruby-keyword kw">end</span>
1593
- 498: <span class="ruby-identifier">cellsInInterval</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
1594
- 499:
1595
- 500: <span class="ruby-identifier">t</span> = <span class="ruby-identifier">nextT</span>
1596
- 501: <span class="ruby-keyword kw">end</span>
1597
- 502: <span class="ruby-comment cmt"># The the first upper scale cell how many trailing hidden cells are</span>
1598
- 503: <span class="ruby-comment cmt"># following.</span>
1599
- 504: <span class="ruby-identifier">firstColumn</span>.<span class="ruby-identifier">cell1</span>.<span class="ruby-identifier">columns</span> = <span class="ruby-identifier">cellsInInterval</span>
1600
- 505: <span class="ruby-keyword kw">end</span>
1601
- 506: <span class="ruby-keyword kw">end</span></pre>
1564
+ <span class="ruby-comment cmt"># File lib/reports/TableReport.rb, line 452</span>
1565
+ 452: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">genCalChartHeader</span>(<span class="ruby-identifier">columnDef</span>, <span class="ruby-identifier">t</span>, <span class="ruby-identifier">sameTimeNextFunc</span>, <span class="ruby-identifier">name1Func</span>, <span class="ruby-identifier">name2Func</span>)
1566
+ 453: <span class="ruby-identifier">tableColumn</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>)
1567
+ 454:
1568
+ 455: <span class="ruby-comment cmt"># Calendar chars only work when all lines have same height.</span>
1569
+ 456: <span class="ruby-ivar">@table</span>.<span class="ruby-identifier">equiLines</span> = <span class="ruby-keyword kw">true</span>
1570
+ 457:
1571
+ 458: <span class="ruby-comment cmt"># Embedded tables have unpredictable width. So we always need to make room</span>
1572
+ 459: <span class="ruby-comment cmt"># for a potential scrollbar.</span>
1573
+ 460: <span class="ruby-identifier">tableColumn</span>.<span class="ruby-identifier">scrollbar</span> = <span class="ruby-keyword kw">true</span>
1574
+ 461:
1575
+ 462: <span class="ruby-comment cmt"># Create the table that is embedded in this column.</span>
1576
+ 463: <span class="ruby-identifier">tableColumn</span>.<span class="ruby-identifier">cell1</span>.<span class="ruby-identifier">special</span> = <span class="ruby-identifier">table</span> = <span class="ruby-constant">ColumnTable</span>.<span class="ruby-identifier">new</span>
1577
+ 464: <span class="ruby-identifier">table</span>.<span class="ruby-identifier">equiLines</span> = <span class="ruby-keyword kw">true</span>
1578
+ 465: <span class="ruby-identifier">tableColumn</span>.<span class="ruby-identifier">cell2</span>.<span class="ruby-identifier">hidden</span> = <span class="ruby-keyword kw">true</span>
1579
+ 466: <span class="ruby-identifier">table</span>.<span class="ruby-identifier">viewWidth</span> = <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">width</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">width</span> <span class="ruby-operator">:</span> <span class="ruby-value">450</span>
1580
+ 467:
1581
+ 468: <span class="ruby-comment cmt"># Iterate over the report interval until we hit the end date. The</span>
1582
+ 469: <span class="ruby-comment cmt"># iteration is done with 2 nested loops. The outer loops generates the</span>
1583
+ 470: <span class="ruby-comment cmt"># intervals for the upper (larger) scale. The inner loop generates the</span>
1584
+ 471: <span class="ruby-comment cmt"># lower (smaller) scale.</span>
1585
+ 472: <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">t</span> <span class="ruby-operator">&lt;</span> <span class="ruby-ivar">@end</span>
1586
+ 473: <span class="ruby-identifier">cellsInInterval</span> = <span class="ruby-value">0</span>
1587
+ 474: <span class="ruby-comment cmt"># Label for upper scale. The yearly calendar only has a lower scale.</span>
1588
+ 475: <span class="ruby-identifier">currentInterval</span> = <span class="ruby-identifier">t</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">name1Func</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">name1Func</span>
1589
+ 476: <span class="ruby-identifier">firstColumn</span> = <span class="ruby-keyword kw">nil</span>
1590
+ 477: <span class="ruby-comment cmt"># The innter loops terminates when the label for the upper scale has</span>
1591
+ 478: <span class="ruby-comment cmt"># changed to the next scale cell.</span>
1592
+ 479: <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">t</span> <span class="ruby-operator">&lt;</span> <span class="ruby-ivar">@end</span> <span class="ruby-operator">&amp;&amp;</span> (<span class="ruby-identifier">name1Func</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span>
1593
+ 480: <span class="ruby-identifier">t</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">name1Func</span>) <span class="ruby-operator">==</span> <span class="ruby-identifier">currentInterval</span>)
1594
+ 481: <span class="ruby-comment cmt"># call TjTime::sameTimeNext... function to get the end of the column.</span>
1595
+ 482: <span class="ruby-identifier">nextT</span> = <span class="ruby-identifier">t</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">sameTimeNextFunc</span>)
1596
+ 483: <span class="ruby-identifier">iv</span> = <span class="ruby-constant">Interval</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">t</span>, <span class="ruby-identifier">nextT</span>)
1597
+ 484: <span class="ruby-comment cmt"># Create the new column object.</span>
1598
+ 485: <span class="ruby-identifier">column</span> = <span class="ruby-constant">ReportTableColumn</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">table</span>, <span class="ruby-keyword kw">nil</span>, <span class="ruby-value str">''</span>)
1599
+ 486: <span class="ruby-comment cmt"># Store the date of the column in the original form.</span>
1600
+ 487: <span class="ruby-identifier">column</span>.<span class="ruby-identifier">cell1</span>.<span class="ruby-identifier">data</span> = <span class="ruby-identifier">t</span>.<span class="ruby-identifier">to_s</span>(<span class="ruby-identifier">a</span>(<span class="ruby-value str">'timeFormat'</span>))
1601
+ 488: <span class="ruby-comment cmt"># The upper scale cells will be merged into one large cell that spans</span>
1602
+ 489: <span class="ruby-comment cmt"># all lower scale cells that belong to this upper cell.</span>
1603
+ 490: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">firstColumn</span>.<span class="ruby-identifier">nil?</span>
1604
+ 491: <span class="ruby-identifier">firstColumn</span> = <span class="ruby-identifier">column</span>
1605
+ 492: <span class="ruby-identifier">column</span>.<span class="ruby-identifier">cell1</span>.<span class="ruby-identifier">text</span> = <span class="ruby-identifier">currentInterval</span>.<span class="ruby-identifier">to_s</span>
1606
+ 493: <span class="ruby-keyword kw">else</span>
1607
+ 494: <span class="ruby-identifier">column</span>.<span class="ruby-identifier">cell1</span>.<span class="ruby-identifier">hidden</span> = <span class="ruby-keyword kw">true</span>
1608
+ 495: <span class="ruby-keyword kw">end</span>
1609
+ 496: <span class="ruby-identifier">column</span>.<span class="ruby-identifier">cell2</span>.<span class="ruby-identifier">text</span> = <span class="ruby-identifier">t</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">name2Func</span>).<span class="ruby-identifier">to_s</span>
1610
+ 497: <span class="ruby-comment cmt"># TODO: The width should be taken from some data structure.</span>
1611
+ 498: <span class="ruby-identifier">column</span>.<span class="ruby-identifier">cell2</span>.<span class="ruby-identifier">width</span> = <span class="ruby-value">20</span>
1612
+ 499: <span class="ruby-comment cmt"># Off-duty cells will have a different color than working time cells.</span>
1613
+ 500: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">isWorkingTime</span>(<span class="ruby-identifier">iv</span>)
1614
+ 501: <span class="ruby-identifier">column</span>.<span class="ruby-identifier">cell2</span>.<span class="ruby-identifier">category</span> = <span class="ruby-value str">'tabhead_offduty'</span>
1615
+ 502: <span class="ruby-keyword kw">end</span>
1616
+ 503: <span class="ruby-identifier">cellsInInterval</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
1617
+ 504:
1618
+ 505: <span class="ruby-identifier">t</span> = <span class="ruby-identifier">nextT</span>
1619
+ 506: <span class="ruby-keyword kw">end</span>
1620
+ 507: <span class="ruby-comment cmt"># The the first upper scale cell how many trailing hidden cells are</span>
1621
+ 508: <span class="ruby-comment cmt"># following.</span>
1622
+ 509: <span class="ruby-identifier">firstColumn</span>.<span class="ruby-identifier">cell1</span>.<span class="ruby-identifier">columns</span> = <span class="ruby-identifier">cellsInInterval</span>
1623
+ 510: <span class="ruby-keyword kw">end</span>
1624
+ 511: <span class="ruby-keyword kw">end</span></pre>
1602
1625
  </div>
1603
1626
 
1604
1627
  </div>
@@ -1610,7 +1633,7 @@ the particular column.
1610
1633
 
1611
1634
 
1612
1635
  <div id="gen-al-hart-esource-ell-method" class="method-detail ">
1613
- <a name="M000866"></a>
1636
+ <a name="method-i-genCalChartResourceCell"></a>
1614
1637
 
1615
1638
  <div class="method-heading">
1616
1639
 
@@ -1638,122 +1661,122 @@ next cell.
1638
1661
  <div class="method-source-code"
1639
1662
  id="gen-al-hart-esource-ell-source">
1640
1663
  <pre>
1641
- <span class="ruby-comment cmt"># File lib/reports/TableReport.rb, line 808</span>
1642
- 808: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">genCalChartResourceCell</span>(<span class="ruby-identifier">origQuery</span>, <span class="ruby-identifier">line</span>, <span class="ruby-identifier">columnDef</span>, <span class="ruby-identifier">t</span>,
1643
- 809: <span class="ruby-identifier">sameTimeNextFunc</span>)
1644
- 810: <span class="ruby-identifier">resource</span> = <span class="ruby-identifier">line</span>.<span class="ruby-identifier">property</span>
1645
- 811: <span class="ruby-comment cmt"># Find out if we have an enclosing task scope.</span>
1646
- 812: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">line</span>.<span class="ruby-identifier">scopeLine</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">line</span>.<span class="ruby-identifier">scopeLine</span>.<span class="ruby-identifier">property</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Task</span>)
1647
- 813: <span class="ruby-identifier">task</span> = <span class="ruby-identifier">line</span>.<span class="ruby-identifier">scopeLine</span>.<span class="ruby-identifier">property</span>
1648
- 814: <span class="ruby-comment cmt"># Get the interval of the task. In case a date is invalid due to a</span>
1649
- 815: <span class="ruby-comment cmt"># scheduling problem, we use the full project interval.</span>
1650
- 816: <span class="ruby-identifier">taskStart</span> = <span class="ruby-identifier">task</span>[<span class="ruby-value str">'start'</span>, <span class="ruby-identifier">origQuery</span>.<span class="ruby-identifier">scenarioIdx</span>]
1651
- 817: <span class="ruby-identifier">taskEnd</span> = <span class="ruby-identifier">task</span>[<span class="ruby-value str">'end'</span>, <span class="ruby-identifier">origQuery</span>.<span class="ruby-identifier">scenarioIdx</span>]
1652
- 818: <span class="ruby-identifier">taskIv</span> = <span class="ruby-constant">Interval</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">taskStart</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">?</span> <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'start'</span>] <span class="ruby-operator">:</span> <span class="ruby-identifier">taskStart</span>,
1653
- 819: <span class="ruby-identifier">taskEnd</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">?</span> <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'end'</span>] <span class="ruby-operator">:</span> <span class="ruby-identifier">taskEnd</span>)
1654
- 820: <span class="ruby-keyword kw">else</span>
1655
- 821: <span class="ruby-identifier">task</span> = <span class="ruby-keyword kw">nil</span>
1656
- 822: <span class="ruby-keyword kw">end</span>
1657
- 823:
1658
- 824: <span class="ruby-identifier">firstCell</span> = <span class="ruby-keyword kw">nil</span>
1659
- 825: <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">t</span> <span class="ruby-operator">&lt;</span> <span class="ruby-ivar">@end</span>
1660
- 826: <span class="ruby-comment cmt"># We modify the start and end dates to match the cell boundaries. So</span>
1661
- 827: <span class="ruby-comment cmt"># we need to make sure we don't modify the original Query but our own</span>
1662
- 828: <span class="ruby-comment cmt"># copies.</span>
1663
- 829: <span class="ruby-identifier">query</span> = <span class="ruby-identifier">origQuery</span>.<span class="ruby-identifier">dup</span>
1664
- 830:
1665
- 831: <span class="ruby-comment cmt"># Create a new cell</span>
1666
- 832: <span class="ruby-identifier">cell</span> = <span class="ruby-identifier">newCell</span>(<span class="ruby-identifier">query</span>, <span class="ruby-identifier">line</span>)
1667
- 833:
1668
- 834: <span class="ruby-comment cmt"># call TjTime::sameTimeNext... function</span>
1669
- 835: <span class="ruby-identifier">nextT</span> = <span class="ruby-identifier">t</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">sameTimeNextFunc</span>)
1670
- 836: <span class="ruby-identifier">cellIv</span> = <span class="ruby-constant">Interval</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">t</span>, <span class="ruby-identifier">nextT</span>)
1671
- 837: <span class="ruby-comment cmt"># Get work load for all tasks.</span>
1672
- 838: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">scopeProperty</span> = <span class="ruby-keyword kw">nil</span>
1673
- 839: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">attributeId</span> = <span class="ruby-value str">'effort'</span>
1674
- 840: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">startIdx</span> = <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">dateToIdx</span>(<span class="ruby-identifier">t</span>, <span class="ruby-keyword kw">true</span>)
1675
- 841: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">endIdx</span> = <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">dateToIdx</span>(<span class="ruby-identifier">nextT</span>, <span class="ruby-keyword kw">true</span>) <span class="ruby-operator">-</span> <span class="ruby-value">1</span>
1676
- 842: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">process</span>
1677
- 843: <span class="ruby-identifier">workLoad</span> = <span class="ruby-identifier">query</span>.<span class="ruby-identifier">to_num</span>
1678
- 844: <span class="ruby-identifier">scaledWorkLoad</span> = <span class="ruby-identifier">query</span>.<span class="ruby-identifier">to_s</span>
1679
- 845: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">task</span>
1680
- 846: <span class="ruby-comment cmt"># Get work load for the particular task.</span>
1681
- 847: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">scopeProperty</span> = <span class="ruby-identifier">task</span>
1682
- 848: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">process</span>
1683
- 849: <span class="ruby-identifier">workLoadTask</span> = <span class="ruby-identifier">query</span>.<span class="ruby-identifier">to_num</span>
1684
- 850: <span class="ruby-identifier">scaledWorkLoad</span> = <span class="ruby-identifier">query</span>.<span class="ruby-identifier">to_s</span>
1685
- 851: <span class="ruby-keyword kw">else</span>
1686
- 852: <span class="ruby-identifier">workLoadTask</span> = <span class="ruby-value">0.0</span>
1687
- 853: <span class="ruby-keyword kw">end</span>
1688
- 854: <span class="ruby-comment cmt"># Get unassigned work load.</span>
1689
- 855: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">attributeId</span> = <span class="ruby-value str">'freework'</span>
1690
- 856: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">process</span>
1691
- 857: <span class="ruby-identifier">freeLoad</span> = <span class="ruby-identifier">query</span>.<span class="ruby-identifier">to_num</span>
1692
- 858: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">content</span>
1693
- 859: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'empty'</span>
1694
- 860: <span class="ruby-comment cmt"># We only generate cells will different background colors.</span>
1695
- 861: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'load'</span>
1696
- 862: <span class="ruby-comment cmt"># Report the workload of the resource in this time interval.</span>
1697
- 863: <span class="ruby-comment cmt"># To increase readability, we don't show 0.0 values.</span>
1698
- 864: <span class="ruby-identifier">wLoad</span> = <span class="ruby-identifier">task</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">workLoadTask</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">workLoad</span>
1699
- 865: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">wLoad</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0.0</span>
1700
- 866: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">text</span> = <span class="ruby-identifier">scaledWorkLoad</span>
1701
- 867: <span class="ruby-keyword kw">end</span>
1702
- 868: <span class="ruby-keyword kw">else</span>
1703
- 869: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Unknown column content #{column.content}&quot;</span>
1704
- 870: <span class="ruby-keyword kw">end</span>
1705
- 871:
1706
- 872: <span class="ruby-comment cmt"># Set the tooltip for the cell. We might delete it again.</span>
1707
- 873: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">tooltip</span> = <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">tooltip</span>.<span class="ruby-identifier">getPattern</span>(<span class="ruby-identifier">query</span>) <span class="ruby-operator">||</span> <span class="ruby-keyword kw">nil</span>
1708
- 874: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">showTooltipHint</span> = <span class="ruby-keyword kw">false</span>
1709
- 875:
1710
- 876: <span class="ruby-comment cmt"># Determine cell category (mostly the background color)</span>
1711
- 877: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">category</span> = <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">task</span>
1712
- 878: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">cellIv</span>.<span class="ruby-identifier">overlaps?</span>(<span class="ruby-identifier">taskIv</span>)
1713
- 879: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">workLoadTask</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0.0</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">freeLoad</span> <span class="ruby-operator">==</span> <span class="ruby-value">0.0</span>
1714
- 880: <span class="ruby-value str">'busy'</span>
1715
- 881: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">workLoad</span> <span class="ruby-operator">==</span> <span class="ruby-value">0.0</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">freeLoad</span> <span class="ruby-operator">==</span> <span class="ruby-value">0.0</span>
1716
- 882: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">tooltip</span> = <span class="ruby-keyword kw">nil</span>
1717
- 883: <span class="ruby-value str">'offduty'</span>
1718
- 884: <span class="ruby-keyword kw">else</span>
1719
- 885: <span class="ruby-value str">'loaded'</span>
1720
- 886: <span class="ruby-keyword kw">end</span>
1721
- 887: <span class="ruby-keyword kw">else</span>
1722
- 888: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">freeLoad</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0.0</span>
1723
- 889: <span class="ruby-value str">'free'</span>
1724
- 890: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">workLoad</span> <span class="ruby-operator">==</span> <span class="ruby-value">0.0</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">freeLoad</span> <span class="ruby-operator">==</span> <span class="ruby-value">0.0</span>
1725
- 891: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">tooltip</span> = <span class="ruby-keyword kw">nil</span>
1726
- 892: <span class="ruby-value str">'offduty'</span>
1727
- 893: <span class="ruby-keyword kw">else</span>
1728
- 894: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">tooltip</span> = <span class="ruby-keyword kw">nil</span>
1729
- 895: <span class="ruby-value str">'resourcecell'</span>
1730
- 896: <span class="ruby-keyword kw">end</span>
1731
- 897: <span class="ruby-keyword kw">end</span>
1732
- 898: <span class="ruby-keyword kw">else</span>
1733
- 899: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">workLoad</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0.0</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">freeLoad</span> <span class="ruby-operator">==</span> <span class="ruby-value">0.0</span>
1734
- 900: <span class="ruby-value str">'busy'</span>
1735
- 901: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">workLoad</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0.0</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">freeLoad</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0.0</span>
1736
- 902: <span class="ruby-value str">'loaded'</span>
1737
- 903: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">workLoad</span> <span class="ruby-operator">==</span> <span class="ruby-value">0.0</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">freeLoad</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0.0</span>
1738
- 904: <span class="ruby-value str">'free'</span>
1739
- 905: <span class="ruby-keyword kw">else</span>
1740
- 906: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">tooltip</span> = <span class="ruby-keyword kw">nil</span>
1741
- 907: <span class="ruby-value str">'offduty'</span>
1742
- 908: <span class="ruby-keyword kw">end</span>
1743
- 909: <span class="ruby-keyword kw">end</span>
1744
- 910: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">category</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">line</span>.<span class="ruby-identifier">property</span>.<span class="ruby-identifier">get</span>(<span class="ruby-value str">'index'</span>) <span class="ruby-operator">%</span> <span class="ruby-value">2</span> <span class="ruby-operator">==</span> <span class="ruby-value">1</span> <span class="ruby-operator">?</span> <span class="ruby-value str">'1'</span> <span class="ruby-operator">:</span> <span class="ruby-value str">'2'</span>
1745
- 911:
1746
- 912: <span class="ruby-identifier">tryCellMerging</span>(<span class="ruby-identifier">cell</span>, <span class="ruby-identifier">line</span>, <span class="ruby-identifier">firstCell</span>)
1747
- 913:
1748
- 914: <span class="ruby-identifier">t</span> = <span class="ruby-identifier">nextT</span>
1749
- 915: <span class="ruby-identifier">firstCell</span> = <span class="ruby-identifier">cell</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">firstCell</span>
1750
- 916: <span class="ruby-keyword kw">end</span>
1751
- 917:
1752
- 918: <span class="ruby-identifier">legend</span>.<span class="ruby-identifier">addCalendarItem</span>(<span class="ruby-value str">'Resource is fully loaded'</span>, <span class="ruby-value str">'busy1'</span>)
1753
- 919: <span class="ruby-identifier">legend</span>.<span class="ruby-identifier">addCalendarItem</span>(<span class="ruby-value str">'Resource is partially loaded'</span>, <span class="ruby-value str">'loaded1'</span>)
1754
- 920: <span class="ruby-identifier">legend</span>.<span class="ruby-identifier">addCalendarItem</span>(<span class="ruby-value str">'Resource is available'</span>, <span class="ruby-value str">'free'</span>)
1755
- 921: <span class="ruby-identifier">legend</span>.<span class="ruby-identifier">addCalendarItem</span>(<span class="ruby-value str">'Off duty time'</span>, <span class="ruby-value str">'offduty'</span>)
1756
- 922: <span class="ruby-keyword kw">end</span></pre>
1664
+ <span class="ruby-comment cmt"># File lib/reports/TableReport.rb, line 823</span>
1665
+ 823: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">genCalChartResourceCell</span>(<span class="ruby-identifier">origQuery</span>, <span class="ruby-identifier">line</span>, <span class="ruby-identifier">columnDef</span>, <span class="ruby-identifier">t</span>,
1666
+ 824: <span class="ruby-identifier">sameTimeNextFunc</span>)
1667
+ 825: <span class="ruby-identifier">resource</span> = <span class="ruby-identifier">line</span>.<span class="ruby-identifier">property</span>
1668
+ 826: <span class="ruby-comment cmt"># Find out if we have an enclosing task scope.</span>
1669
+ 827: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">line</span>.<span class="ruby-identifier">scopeLine</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">line</span>.<span class="ruby-identifier">scopeLine</span>.<span class="ruby-identifier">property</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Task</span>)
1670
+ 828: <span class="ruby-identifier">task</span> = <span class="ruby-identifier">line</span>.<span class="ruby-identifier">scopeLine</span>.<span class="ruby-identifier">property</span>
1671
+ 829: <span class="ruby-comment cmt"># Get the interval of the task. In case a date is invalid due to a</span>
1672
+ 830: <span class="ruby-comment cmt"># scheduling problem, we use the full project interval.</span>
1673
+ 831: <span class="ruby-identifier">taskStart</span> = <span class="ruby-identifier">task</span>[<span class="ruby-value str">'start'</span>, <span class="ruby-identifier">origQuery</span>.<span class="ruby-identifier">scenarioIdx</span>]
1674
+ 832: <span class="ruby-identifier">taskEnd</span> = <span class="ruby-identifier">task</span>[<span class="ruby-value str">'end'</span>, <span class="ruby-identifier">origQuery</span>.<span class="ruby-identifier">scenarioIdx</span>]
1675
+ 833: <span class="ruby-identifier">taskIv</span> = <span class="ruby-constant">Interval</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">taskStart</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">?</span> <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'start'</span>] <span class="ruby-operator">:</span> <span class="ruby-identifier">taskStart</span>,
1676
+ 834: <span class="ruby-identifier">taskEnd</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">?</span> <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'end'</span>] <span class="ruby-operator">:</span> <span class="ruby-identifier">taskEnd</span>)
1677
+ 835: <span class="ruby-keyword kw">else</span>
1678
+ 836: <span class="ruby-identifier">task</span> = <span class="ruby-keyword kw">nil</span>
1679
+ 837: <span class="ruby-keyword kw">end</span>
1680
+ 838:
1681
+ 839: <span class="ruby-identifier">firstCell</span> = <span class="ruby-keyword kw">nil</span>
1682
+ 840: <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">t</span> <span class="ruby-operator">&lt;</span> <span class="ruby-ivar">@end</span>
1683
+ 841: <span class="ruby-comment cmt"># We modify the start and end dates to match the cell boundaries. So</span>
1684
+ 842: <span class="ruby-comment cmt"># we need to make sure we don't modify the original Query but our own</span>
1685
+ 843: <span class="ruby-comment cmt"># copies.</span>
1686
+ 844: <span class="ruby-identifier">query</span> = <span class="ruby-identifier">origQuery</span>.<span class="ruby-identifier">dup</span>
1687
+ 845:
1688
+ 846: <span class="ruby-comment cmt"># Create a new cell</span>
1689
+ 847: <span class="ruby-identifier">cell</span> = <span class="ruby-identifier">newCell</span>(<span class="ruby-identifier">query</span>, <span class="ruby-identifier">line</span>)
1690
+ 848:
1691
+ 849: <span class="ruby-comment cmt"># call TjTime::sameTimeNext... function</span>
1692
+ 850: <span class="ruby-identifier">nextT</span> = <span class="ruby-identifier">t</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">sameTimeNextFunc</span>)
1693
+ 851: <span class="ruby-identifier">cellIv</span> = <span class="ruby-constant">Interval</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">t</span>, <span class="ruby-identifier">nextT</span>)
1694
+ 852: <span class="ruby-comment cmt"># Get work load for all tasks.</span>
1695
+ 853: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">scopeProperty</span> = <span class="ruby-keyword kw">nil</span>
1696
+ 854: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">attributeId</span> = <span class="ruby-value str">'effort'</span>
1697
+ 855: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">startIdx</span> = <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">dateToIdx</span>(<span class="ruby-identifier">t</span>, <span class="ruby-keyword kw">true</span>)
1698
+ 856: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">endIdx</span> = <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">dateToIdx</span>(<span class="ruby-identifier">nextT</span>, <span class="ruby-keyword kw">true</span>) <span class="ruby-operator">-</span> <span class="ruby-value">1</span>
1699
+ 857: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">process</span>
1700
+ 858: <span class="ruby-identifier">workLoad</span> = <span class="ruby-identifier">query</span>.<span class="ruby-identifier">to_num</span>
1701
+ 859: <span class="ruby-identifier">scaledWorkLoad</span> = <span class="ruby-identifier">query</span>.<span class="ruby-identifier">to_s</span>
1702
+ 860: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">task</span>
1703
+ 861: <span class="ruby-comment cmt"># Get work load for the particular task.</span>
1704
+ 862: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">scopeProperty</span> = <span class="ruby-identifier">task</span>
1705
+ 863: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">process</span>
1706
+ 864: <span class="ruby-identifier">workLoadTask</span> = <span class="ruby-identifier">query</span>.<span class="ruby-identifier">to_num</span>
1707
+ 865: <span class="ruby-identifier">scaledWorkLoad</span> = <span class="ruby-identifier">query</span>.<span class="ruby-identifier">to_s</span>
1708
+ 866: <span class="ruby-keyword kw">else</span>
1709
+ 867: <span class="ruby-identifier">workLoadTask</span> = <span class="ruby-value">0.0</span>
1710
+ 868: <span class="ruby-keyword kw">end</span>
1711
+ 869: <span class="ruby-comment cmt"># Get unassigned work load.</span>
1712
+ 870: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">attributeId</span> = <span class="ruby-value str">'freework'</span>
1713
+ 871: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">process</span>
1714
+ 872: <span class="ruby-identifier">freeLoad</span> = <span class="ruby-identifier">query</span>.<span class="ruby-identifier">to_num</span>
1715
+ 873: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">content</span>
1716
+ 874: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'empty'</span>
1717
+ 875: <span class="ruby-comment cmt"># We only generate cells will different background colors.</span>
1718
+ 876: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'load'</span>
1719
+ 877: <span class="ruby-comment cmt"># Report the workload of the resource in this time interval.</span>
1720
+ 878: <span class="ruby-comment cmt"># To increase readability, we don't show 0.0 values.</span>
1721
+ 879: <span class="ruby-identifier">wLoad</span> = <span class="ruby-identifier">task</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">workLoadTask</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">workLoad</span>
1722
+ 880: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">wLoad</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0.0</span>
1723
+ 881: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">text</span> = <span class="ruby-identifier">scaledWorkLoad</span>
1724
+ 882: <span class="ruby-keyword kw">end</span>
1725
+ 883: <span class="ruby-keyword kw">else</span>
1726
+ 884: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Unknown column content #{column.content}&quot;</span>
1727
+ 885: <span class="ruby-keyword kw">end</span>
1728
+ 886:
1729
+ 887: <span class="ruby-comment cmt"># Set the tooltip for the cell. We might delete it again.</span>
1730
+ 888: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">tooltip</span> = <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">tooltip</span>.<span class="ruby-identifier">getPattern</span>(<span class="ruby-identifier">query</span>) <span class="ruby-operator">||</span> <span class="ruby-keyword kw">nil</span>
1731
+ 889: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">showTooltipHint</span> = <span class="ruby-keyword kw">false</span>
1732
+ 890:
1733
+ 891: <span class="ruby-comment cmt"># Determine cell category (mostly the background color)</span>
1734
+ 892: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">category</span> = <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">task</span>
1735
+ 893: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">cellIv</span>.<span class="ruby-identifier">overlaps?</span>(<span class="ruby-identifier">taskIv</span>)
1736
+ 894: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">workLoadTask</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0.0</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">freeLoad</span> <span class="ruby-operator">==</span> <span class="ruby-value">0.0</span>
1737
+ 895: <span class="ruby-value str">'busy'</span>
1738
+ 896: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">workLoad</span> <span class="ruby-operator">==</span> <span class="ruby-value">0.0</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">freeLoad</span> <span class="ruby-operator">==</span> <span class="ruby-value">0.0</span>
1739
+ 897: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">tooltip</span> = <span class="ruby-keyword kw">nil</span>
1740
+ 898: <span class="ruby-value str">'offduty'</span>
1741
+ 899: <span class="ruby-keyword kw">else</span>
1742
+ 900: <span class="ruby-value str">'loaded'</span>
1743
+ 901: <span class="ruby-keyword kw">end</span>
1744
+ 902: <span class="ruby-keyword kw">else</span>
1745
+ 903: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">freeLoad</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0.0</span>
1746
+ 904: <span class="ruby-value str">'free'</span>
1747
+ 905: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">workLoad</span> <span class="ruby-operator">==</span> <span class="ruby-value">0.0</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">freeLoad</span> <span class="ruby-operator">==</span> <span class="ruby-value">0.0</span>
1748
+ 906: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">tooltip</span> = <span class="ruby-keyword kw">nil</span>
1749
+ 907: <span class="ruby-value str">'offduty'</span>
1750
+ 908: <span class="ruby-keyword kw">else</span>
1751
+ 909: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">tooltip</span> = <span class="ruby-keyword kw">nil</span>
1752
+ 910: <span class="ruby-value str">'resourcecell'</span>
1753
+ 911: <span class="ruby-keyword kw">end</span>
1754
+ 912: <span class="ruby-keyword kw">end</span>
1755
+ 913: <span class="ruby-keyword kw">else</span>
1756
+ 914: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">workLoad</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0.0</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">freeLoad</span> <span class="ruby-operator">==</span> <span class="ruby-value">0.0</span>
1757
+ 915: <span class="ruby-value str">'busy'</span>
1758
+ 916: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">workLoad</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0.0</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">freeLoad</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0.0</span>
1759
+ 917: <span class="ruby-value str">'loaded'</span>
1760
+ 918: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">workLoad</span> <span class="ruby-operator">==</span> <span class="ruby-value">0.0</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">freeLoad</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0.0</span>
1761
+ 919: <span class="ruby-value str">'free'</span>
1762
+ 920: <span class="ruby-keyword kw">else</span>
1763
+ 921: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">tooltip</span> = <span class="ruby-keyword kw">nil</span>
1764
+ 922: <span class="ruby-value str">'offduty'</span>
1765
+ 923: <span class="ruby-keyword kw">end</span>
1766
+ 924: <span class="ruby-keyword kw">end</span>
1767
+ 925: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">category</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">line</span>.<span class="ruby-identifier">property</span>.<span class="ruby-identifier">get</span>(<span class="ruby-value str">'index'</span>) <span class="ruby-operator">%</span> <span class="ruby-value">2</span> <span class="ruby-operator">==</span> <span class="ruby-value">1</span> <span class="ruby-operator">?</span> <span class="ruby-value str">'1'</span> <span class="ruby-operator">:</span> <span class="ruby-value str">'2'</span>
1768
+ 926:
1769
+ 927: <span class="ruby-identifier">tryCellMerging</span>(<span class="ruby-identifier">cell</span>, <span class="ruby-identifier">line</span>, <span class="ruby-identifier">firstCell</span>)
1770
+ 928:
1771
+ 929: <span class="ruby-identifier">t</span> = <span class="ruby-identifier">nextT</span>
1772
+ 930: <span class="ruby-identifier">firstCell</span> = <span class="ruby-identifier">cell</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">firstCell</span>
1773
+ 931: <span class="ruby-keyword kw">end</span>
1774
+ 932:
1775
+ 933: <span class="ruby-identifier">legend</span>.<span class="ruby-identifier">addCalendarItem</span>(<span class="ruby-value str">'Resource is fully loaded'</span>, <span class="ruby-value str">'busy1'</span>)
1776
+ 934: <span class="ruby-identifier">legend</span>.<span class="ruby-identifier">addCalendarItem</span>(<span class="ruby-value str">'Resource is partially loaded'</span>, <span class="ruby-value str">'loaded1'</span>)
1777
+ 935: <span class="ruby-identifier">legend</span>.<span class="ruby-identifier">addCalendarItem</span>(<span class="ruby-value str">'Resource is available'</span>, <span class="ruby-value str">'free'</span>)
1778
+ 936: <span class="ruby-identifier">legend</span>.<span class="ruby-identifier">addCalendarItem</span>(<span class="ruby-value str">'Off duty time'</span>, <span class="ruby-value str">'offduty'</span>)
1779
+ 937: <span class="ruby-keyword kw">end</span></pre>
1757
1780
  </div>
1758
1781
 
1759
1782
  </div>
@@ -1765,7 +1788,7 @@ next cell.
1765
1788
 
1766
1789
 
1767
1790
  <div id="gen-al-hart-ask-ell-method" class="method-detail ">
1768
- <a name="M000865"></a>
1791
+ <a name="method-i-genCalChartTaskCell"></a>
1769
1792
 
1770
1793
  <div class="method-heading">
1771
1794
 
@@ -1793,78 +1816,78 @@ next cell.
1793
1816
  <div class="method-source-code"
1794
1817
  id="gen-al-hart-ask-ell-source">
1795
1818
  <pre>
1796
- <span class="ruby-comment cmt"># File lib/reports/TableReport.rb, line 729</span>
1797
- 729: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">genCalChartTaskCell</span>(<span class="ruby-identifier">origQuery</span>, <span class="ruby-identifier">line</span>, <span class="ruby-identifier">columnDef</span>, <span class="ruby-identifier">t</span>, <span class="ruby-identifier">sameTimeNextFunc</span>)
1798
- 730: <span class="ruby-identifier">task</span> = <span class="ruby-identifier">line</span>.<span class="ruby-identifier">property</span>
1799
- 731: <span class="ruby-comment cmt"># Find out if we have an enclosing resource scope.</span>
1800
- 732: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">line</span>.<span class="ruby-identifier">scopeLine</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">line</span>.<span class="ruby-identifier">scopeLine</span>.<span class="ruby-identifier">property</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Resource</span>)
1801
- 733: <span class="ruby-identifier">resource</span> = <span class="ruby-identifier">line</span>.<span class="ruby-identifier">scopeLine</span>.<span class="ruby-identifier">property</span>
1802
- 734: <span class="ruby-keyword kw">else</span>
1803
- 735: <span class="ruby-identifier">resource</span> = <span class="ruby-keyword kw">nil</span>
1804
- 736: <span class="ruby-keyword kw">end</span>
1805
- 737:
1806
- 738: <span class="ruby-comment cmt"># Get the interval of the task. In case a date is invalid due to a</span>
1807
- 739: <span class="ruby-comment cmt"># scheduling problem, we use the full project interval.</span>
1808
- 740: <span class="ruby-identifier">taskStart</span> = <span class="ruby-identifier">task</span>[<span class="ruby-value str">'start'</span>, <span class="ruby-identifier">origQuery</span>.<span class="ruby-identifier">scenarioIdx</span>]
1809
- 741: <span class="ruby-identifier">taskEnd</span> = <span class="ruby-identifier">task</span>[<span class="ruby-value str">'end'</span>, <span class="ruby-identifier">origQuery</span>.<span class="ruby-identifier">scenarioIdx</span>]
1810
- 742: <span class="ruby-identifier">taskIv</span> = <span class="ruby-constant">Interval</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">taskStart</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">?</span> <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'start'</span>] <span class="ruby-operator">:</span> <span class="ruby-identifier">taskStart</span>,
1811
- 743: <span class="ruby-identifier">taskEnd</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">?</span> <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'end'</span>] <span class="ruby-operator">:</span> <span class="ruby-identifier">taskEnd</span>)
1812
- 744:
1813
- 745: <span class="ruby-identifier">firstCell</span> = <span class="ruby-keyword kw">nil</span>
1814
- 746: <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">t</span> <span class="ruby-operator">&lt;</span> <span class="ruby-ivar">@end</span>
1815
- 747: <span class="ruby-comment cmt"># We modify the start and end dates to match the cell boundaries. So</span>
1816
- 748: <span class="ruby-comment cmt"># we need to make sure we don't modify the original Query but our own</span>
1817
- 749: <span class="ruby-comment cmt"># copies.</span>
1818
- 750: <span class="ruby-identifier">query</span> = <span class="ruby-identifier">origQuery</span>.<span class="ruby-identifier">dup</span>
1819
- 751: <span class="ruby-comment cmt"># call TjTime::sameTimeNext... function</span>
1820
- 752: <span class="ruby-identifier">nextT</span> = <span class="ruby-identifier">t</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">sameTimeNextFunc</span>)
1821
- 753: <span class="ruby-identifier">cellIv</span> = <span class="ruby-constant">Interval</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">t</span>, <span class="ruby-identifier">nextT</span>)
1822
- 754: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">content</span>
1823
- 755: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'empty'</span>
1824
- 756: <span class="ruby-comment cmt"># Create a new cell</span>
1825
- 757: <span class="ruby-identifier">cell</span> = <span class="ruby-identifier">newCell</span>(<span class="ruby-identifier">query</span>, <span class="ruby-identifier">line</span>)
1826
- 758: <span class="ruby-comment cmt"># We only generate cells will different background colors.</span>
1827
- 759: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'load'</span>
1828
- 760: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">attributeId</span> = <span class="ruby-value str">'effort'</span>
1829
- 761: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">start</span> = <span class="ruby-identifier">t</span>
1830
- 762: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">end</span> = <span class="ruby-identifier">nextT</span>
1831
- 763: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">process</span>
1832
- 764:
1833
- 765: <span class="ruby-comment cmt"># Create a new cell</span>
1834
- 766: <span class="ruby-identifier">cell</span> = <span class="ruby-identifier">newCell</span>(<span class="ruby-identifier">query</span>, <span class="ruby-identifier">line</span>)
1835
- 767:
1836
- 768: <span class="ruby-comment cmt"># To increase readability, we don't show 0.0 values.</span>
1837
- 769: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">text</span> = <span class="ruby-identifier">query</span>.<span class="ruby-identifier">to_s</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">query</span>.<span class="ruby-identifier">to_num</span> <span class="ruby-operator">!=</span> <span class="ruby-value">0.0</span>
1838
- 770: <span class="ruby-keyword kw">else</span>
1839
- 771: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Unknown column content #{column.content}&quot;</span>
1840
- 772: <span class="ruby-keyword kw">end</span>
1841
- 773:
1842
- 774: <span class="ruby-comment cmt"># Determine cell category (mostly the background color)</span>
1843
- 775: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">cellIv</span>.<span class="ruby-identifier">overlaps?</span>(<span class="ruby-identifier">taskIv</span>)
1844
- 776: <span class="ruby-comment cmt"># The cell is either a container or leaf task</span>
1845
- 777: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">category</span> = <span class="ruby-identifier">task</span>.<span class="ruby-identifier">container?</span> <span class="ruby-operator">?</span> <span class="ruby-value str">'calconttask'</span> <span class="ruby-operator">:</span> <span class="ruby-value str">'caltask'</span>
1846
- 778: <span class="ruby-comment cmt"># If the user has requested a custom tooltip, add it to each task cell.</span>
1847
- 779: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">tooltip</span> = <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">tooltip</span>.<span class="ruby-identifier">getPattern</span>(<span class="ruby-identifier">query</span>) <span class="ruby-operator">||</span> <span class="ruby-keyword kw">nil</span>
1848
- 780: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">showTooltipHint</span> = <span class="ruby-keyword kw">false</span>
1849
- 781: <span class="ruby-keyword kw">elsif</span> <span class="ruby-operator">!</span><span class="ruby-ivar">@project</span>.<span class="ruby-identifier">isWorkingTime</span>(<span class="ruby-identifier">cellIv</span>)
1850
- 782: <span class="ruby-comment cmt"># The cell is a vacation cell.</span>
1851
- 783: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">category</span> = <span class="ruby-value str">'offduty'</span>
1852
- 784: <span class="ruby-keyword kw">else</span>
1853
- 785: <span class="ruby-comment cmt"># The cell is just filled with the background color.</span>
1854
- 786: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">category</span> = <span class="ruby-value str">'taskcell'</span>
1819
+ <span class="ruby-comment cmt"># File lib/reports/TableReport.rb, line 744</span>
1820
+ 744: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">genCalChartTaskCell</span>(<span class="ruby-identifier">origQuery</span>, <span class="ruby-identifier">line</span>, <span class="ruby-identifier">columnDef</span>, <span class="ruby-identifier">t</span>, <span class="ruby-identifier">sameTimeNextFunc</span>)
1821
+ 745: <span class="ruby-identifier">task</span> = <span class="ruby-identifier">line</span>.<span class="ruby-identifier">property</span>
1822
+ 746: <span class="ruby-comment cmt"># Find out if we have an enclosing resource scope.</span>
1823
+ 747: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">line</span>.<span class="ruby-identifier">scopeLine</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">line</span>.<span class="ruby-identifier">scopeLine</span>.<span class="ruby-identifier">property</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Resource</span>)
1824
+ 748: <span class="ruby-identifier">resource</span> = <span class="ruby-identifier">line</span>.<span class="ruby-identifier">scopeLine</span>.<span class="ruby-identifier">property</span>
1825
+ 749: <span class="ruby-keyword kw">else</span>
1826
+ 750: <span class="ruby-identifier">resource</span> = <span class="ruby-keyword kw">nil</span>
1827
+ 751: <span class="ruby-keyword kw">end</span>
1828
+ 752:
1829
+ 753: <span class="ruby-comment cmt"># Get the interval of the task. In case a date is invalid due to a</span>
1830
+ 754: <span class="ruby-comment cmt"># scheduling problem, we use the full project interval.</span>
1831
+ 755: <span class="ruby-identifier">taskStart</span> = <span class="ruby-identifier">task</span>[<span class="ruby-value str">'start'</span>, <span class="ruby-identifier">origQuery</span>.<span class="ruby-identifier">scenarioIdx</span>]
1832
+ 756: <span class="ruby-identifier">taskEnd</span> = <span class="ruby-identifier">task</span>[<span class="ruby-value str">'end'</span>, <span class="ruby-identifier">origQuery</span>.<span class="ruby-identifier">scenarioIdx</span>]
1833
+ 757: <span class="ruby-identifier">taskIv</span> = <span class="ruby-constant">Interval</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">taskStart</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">?</span> <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'start'</span>] <span class="ruby-operator">:</span> <span class="ruby-identifier">taskStart</span>,
1834
+ 758: <span class="ruby-identifier">taskEnd</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">?</span> <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'end'</span>] <span class="ruby-operator">:</span> <span class="ruby-identifier">taskEnd</span>)
1835
+ 759:
1836
+ 760: <span class="ruby-identifier">firstCell</span> = <span class="ruby-keyword kw">nil</span>
1837
+ 761: <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">t</span> <span class="ruby-operator">&lt;</span> <span class="ruby-ivar">@end</span>
1838
+ 762: <span class="ruby-comment cmt"># We modify the start and end dates to match the cell boundaries. So</span>
1839
+ 763: <span class="ruby-comment cmt"># we need to make sure we don't modify the original Query but our own</span>
1840
+ 764: <span class="ruby-comment cmt"># copies.</span>
1841
+ 765: <span class="ruby-identifier">query</span> = <span class="ruby-identifier">origQuery</span>.<span class="ruby-identifier">dup</span>
1842
+ 766: <span class="ruby-comment cmt"># call TjTime::sameTimeNext... function</span>
1843
+ 767: <span class="ruby-identifier">nextT</span> = <span class="ruby-identifier">t</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">sameTimeNextFunc</span>)
1844
+ 768: <span class="ruby-identifier">cellIv</span> = <span class="ruby-constant">Interval</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">t</span>, <span class="ruby-identifier">nextT</span>)
1845
+ 769: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">content</span>
1846
+ 770: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'empty'</span>
1847
+ 771: <span class="ruby-comment cmt"># Create a new cell</span>
1848
+ 772: <span class="ruby-identifier">cell</span> = <span class="ruby-identifier">newCell</span>(<span class="ruby-identifier">query</span>, <span class="ruby-identifier">line</span>)
1849
+ 773: <span class="ruby-comment cmt"># We only generate cells will different background colors.</span>
1850
+ 774: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'load'</span>
1851
+ 775: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">attributeId</span> = <span class="ruby-value str">'effort'</span>
1852
+ 776: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">start</span> = <span class="ruby-identifier">t</span>
1853
+ 777: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">end</span> = <span class="ruby-identifier">nextT</span>
1854
+ 778: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">process</span>
1855
+ 779:
1856
+ 780: <span class="ruby-comment cmt"># Create a new cell</span>
1857
+ 781: <span class="ruby-identifier">cell</span> = <span class="ruby-identifier">newCell</span>(<span class="ruby-identifier">query</span>, <span class="ruby-identifier">line</span>)
1858
+ 782:
1859
+ 783: <span class="ruby-comment cmt"># To increase readability, we don't show 0.0 values.</span>
1860
+ 784: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">text</span> = <span class="ruby-identifier">query</span>.<span class="ruby-identifier">to_s</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">query</span>.<span class="ruby-identifier">to_num</span> <span class="ruby-operator">!=</span> <span class="ruby-value">0.0</span>
1861
+ 785: <span class="ruby-keyword kw">else</span>
1862
+ 786: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Unknown column content #{column.content}&quot;</span>
1855
1863
  787: <span class="ruby-keyword kw">end</span>
1856
- 788: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">category</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">line</span>.<span class="ruby-identifier">property</span>.<span class="ruby-identifier">get</span>(<span class="ruby-value str">'index'</span>) <span class="ruby-operator">%</span> <span class="ruby-value">2</span> <span class="ruby-operator">==</span> <span class="ruby-value">1</span> <span class="ruby-operator">?</span> <span class="ruby-value str">'1'</span> <span class="ruby-operator">:</span> <span class="ruby-value str">'2'</span>
1857
- 789:
1858
- 790: <span class="ruby-identifier">tryCellMerging</span>(<span class="ruby-identifier">cell</span>, <span class="ruby-identifier">line</span>, <span class="ruby-identifier">firstCell</span>)
1859
- 791:
1860
- 792: <span class="ruby-identifier">t</span> = <span class="ruby-identifier">nextT</span>
1861
- 793: <span class="ruby-identifier">firstCell</span> = <span class="ruby-identifier">cell</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">firstCell</span>
1862
- 794: <span class="ruby-keyword kw">end</span>
1863
- 795:
1864
- 796: <span class="ruby-identifier">legend</span>.<span class="ruby-identifier">addCalendarItem</span>(<span class="ruby-value str">'Container Task'</span>, <span class="ruby-value str">'calconttask1'</span>)
1865
- 797: <span class="ruby-identifier">legend</span>.<span class="ruby-identifier">addCalendarItem</span>(<span class="ruby-value str">'Task'</span>, <span class="ruby-value str">'caltask1'</span>)
1866
- 798: <span class="ruby-identifier">legend</span>.<span class="ruby-identifier">addCalendarItem</span>(<span class="ruby-value str">'Off duty time'</span>, <span class="ruby-value str">'offduty'</span>)
1867
- 799: <span class="ruby-keyword kw">end</span></pre>
1864
+ 788:
1865
+ 789: <span class="ruby-comment cmt"># Determine cell category (mostly the background color)</span>
1866
+ 790: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">cellIv</span>.<span class="ruby-identifier">overlaps?</span>(<span class="ruby-identifier">taskIv</span>)
1867
+ 791: <span class="ruby-comment cmt"># The cell is either a container or leaf task</span>
1868
+ 792: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">category</span> = <span class="ruby-identifier">task</span>.<span class="ruby-identifier">container?</span> <span class="ruby-operator">?</span> <span class="ruby-value str">'calconttask'</span> <span class="ruby-operator">:</span> <span class="ruby-value str">'caltask'</span>
1869
+ 793: <span class="ruby-comment cmt"># If the user has requested a custom tooltip, add it to each task cell.</span>
1870
+ 794: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">tooltip</span> = <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">tooltip</span>.<span class="ruby-identifier">getPattern</span>(<span class="ruby-identifier">query</span>) <span class="ruby-operator">||</span> <span class="ruby-keyword kw">nil</span>
1871
+ 795: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">showTooltipHint</span> = <span class="ruby-keyword kw">false</span>
1872
+ 796: <span class="ruby-keyword kw">elsif</span> <span class="ruby-operator">!</span><span class="ruby-ivar">@project</span>.<span class="ruby-identifier">isWorkingTime</span>(<span class="ruby-identifier">cellIv</span>)
1873
+ 797: <span class="ruby-comment cmt"># The cell is a vacation cell.</span>
1874
+ 798: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">category</span> = <span class="ruby-value str">'offduty'</span>
1875
+ 799: <span class="ruby-keyword kw">else</span>
1876
+ 800: <span class="ruby-comment cmt"># The cell is just filled with the background color.</span>
1877
+ 801: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">category</span> = <span class="ruby-value str">'taskcell'</span>
1878
+ 802: <span class="ruby-keyword kw">end</span>
1879
+ 803: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">category</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">line</span>.<span class="ruby-identifier">property</span>.<span class="ruby-identifier">get</span>(<span class="ruby-value str">'index'</span>) <span class="ruby-operator">%</span> <span class="ruby-value">2</span> <span class="ruby-operator">==</span> <span class="ruby-value">1</span> <span class="ruby-operator">?</span> <span class="ruby-value str">'1'</span> <span class="ruby-operator">:</span> <span class="ruby-value str">'2'</span>
1880
+ 804:
1881
+ 805: <span class="ruby-identifier">tryCellMerging</span>(<span class="ruby-identifier">cell</span>, <span class="ruby-identifier">line</span>, <span class="ruby-identifier">firstCell</span>)
1882
+ 806:
1883
+ 807: <span class="ruby-identifier">t</span> = <span class="ruby-identifier">nextT</span>
1884
+ 808: <span class="ruby-identifier">firstCell</span> = <span class="ruby-identifier">cell</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">firstCell</span>
1885
+ 809: <span class="ruby-keyword kw">end</span>
1886
+ 810:
1887
+ 811: <span class="ruby-identifier">legend</span>.<span class="ruby-identifier">addCalendarItem</span>(<span class="ruby-value str">'Container Task'</span>, <span class="ruby-value str">'calconttask1'</span>)
1888
+ 812: <span class="ruby-identifier">legend</span>.<span class="ruby-identifier">addCalendarItem</span>(<span class="ruby-value str">'Task'</span>, <span class="ruby-value str">'caltask1'</span>)
1889
+ 813: <span class="ruby-identifier">legend</span>.<span class="ruby-identifier">addCalendarItem</span>(<span class="ruby-value str">'Off duty time'</span>, <span class="ruby-value str">'offduty'</span>)
1890
+ 814: <span class="ruby-keyword kw">end</span></pre>
1868
1891
  </div>
1869
1892
 
1870
1893
  </div>
@@ -1876,7 +1899,7 @@ next cell.
1876
1899
 
1877
1900
 
1878
1901
  <div id="gen-alculated-ell-method" class="method-detail ">
1879
- <a name="M000864"></a>
1902
+ <a name="method-i-genCalculatedCell"></a>
1880
1903
 
1881
1904
  <div class="method-heading">
1882
1905
 
@@ -1906,82 +1929,87 @@ cell.
1906
1929
  <div class="method-source-code"
1907
1930
  id="gen-alculated-ell-source">
1908
1931
  <pre>
1909
- <span class="ruby-comment cmt"># File lib/reports/TableReport.rb, line 646</span>
1910
- 646: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">genCalculatedCell</span>(<span class="ruby-identifier">query</span>, <span class="ruby-identifier">line</span>, <span class="ruby-identifier">columnDef</span>, <span class="ruby-identifier">property</span>)
1911
- 647: <span class="ruby-comment cmt"># Create a new cell</span>
1912
- 648: <span class="ruby-identifier">cell</span> = <span class="ruby-identifier">newCell</span>(<span class="ruby-identifier">query</span>, <span class="ruby-identifier">line</span>)
1913
- 649:
1914
- 650: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">setScenarioSettings</span>(<span class="ruby-identifier">cell</span>, <span class="ruby-identifier">query</span>.<span class="ruby-identifier">scenarioIdx</span>,
1915
- 651: <span class="ruby-identifier">scenarioSpecific?</span>(<span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">id</span>))
1916
- 652: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
1917
- 653: <span class="ruby-keyword kw">end</span>
1918
- 654:
1919
- 655: <span class="ruby-identifier">setStandardCellAttributes</span>(<span class="ruby-identifier">cell</span>, <span class="ruby-identifier">columnDef</span>, <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">line</span>)
1920
- 656:
1921
- 657: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">query</span>.<span class="ruby-identifier">process</span>
1922
- 658: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">text</span> = (<span class="ruby-identifier">rti</span> = <span class="ruby-identifier">query</span>.<span class="ruby-identifier">to_rti</span>) <span class="ruby-operator">?</span> <span class="ruby-identifier">rti</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">query</span>.<span class="ruby-identifier">to_s</span>
1923
- 659: <span class="ruby-keyword kw">end</span>
1924
- 660:
1925
- 661: <span class="ruby-comment cmt"># Some columns need some extra care.</span>
1926
- 662: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">id</span>
1927
- 663: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'alert'</span>
1928
- 664: <span class="ruby-identifier">id</span> = <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">alertLevelId</span>(<span class="ruby-identifier">query</span>.<span class="ruby-identifier">to_num</span>)
1929
- 665: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">icon</span> = <span class="ruby-node">&quot;flag-#{id}&quot;</span>
1930
- 666: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">fontColor</span> = <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">alertLevelColor</span>(<span class="ruby-identifier">query</span>.<span class="ruby-identifier">to_sort</span>)
1931
- 667: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'alerttrend'</span>
1932
- 668: <span class="ruby-identifier">icons</span> = <span class="ruby-node">%( up flat down )</span>
1933
- 669: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">icon</span> = <span class="ruby-node">&quot;trend-#{icons[query.to_sort]}&quot;</span>
1934
- 670: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'line'</span>
1935
- 671: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">text</span> = <span class="ruby-identifier">line</span>.<span class="ruby-identifier">lineNo</span>.<span class="ruby-identifier">to_s</span>
1936
- 672: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'name'</span>
1937
- 673: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">icon</span> =
1938
- 674: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">property</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Task</span>)
1939
- 675: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">property</span>.<span class="ruby-identifier">container?</span>
1940
- 676: <span class="ruby-value str">'taskgroup'</span>
1941
- 677: <span class="ruby-keyword kw">else</span>
1942
- 678: <span class="ruby-value str">'task'</span>
1943
- 679: <span class="ruby-keyword kw">end</span>
1944
- 680: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">property</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Resource</span>)
1945
- 681: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">property</span>.<span class="ruby-identifier">container?</span>
1946
- 682: <span class="ruby-value str">'resourcegroup'</span>
1947
- 683: <span class="ruby-keyword kw">else</span>
1948
- 684: <span class="ruby-value str">'resource'</span>
1949
- 685: <span class="ruby-keyword kw">end</span>
1950
- 686: <span class="ruby-keyword kw">else</span>
1951
- 687: <span class="ruby-keyword kw">nil</span>
1952
- 688: <span class="ruby-keyword kw">end</span>
1953
- 689: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">iconTooltip</span> = <span class="ruby-constant">RichText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-node">&quot;'''ID:''' #{property.fullId}&quot;</span>).
1954
- 690: <span class="ruby-identifier">generateIntermediateFormat</span>
1955
- 691: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'no'</span>
1956
- 692: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">text</span> = <span class="ruby-identifier">line</span>.<span class="ruby-identifier">no</span>.<span class="ruby-identifier">to_s</span>
1957
- 693: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'wbs'</span>
1958
- 694: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">indent</span> = <span class="ruby-value">2</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">line</span>.<span class="ruby-identifier">scopeLine</span>
1959
- 695: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'scenario'</span>
1960
- 696: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">text</span> = <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">scenario</span>(<span class="ruby-identifier">query</span>.<span class="ruby-identifier">scenarioIdx</span>).<span class="ruby-identifier">name</span>
1961
- 697: <span class="ruby-keyword kw">end</span>
1962
- 698:
1963
- 699: <span class="ruby-comment cmt"># Replace the cell text if the user has requested a custom cell text.</span>
1964
- 700: <span class="ruby-identifier">cdText</span> = <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">cellText</span>.<span class="ruby-identifier">getPattern</span>(<span class="ruby-identifier">query</span>)
1965
- 701: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">text</span> = <span class="ruby-identifier">cdText</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">cdText</span>
1966
- 702:
1967
- 703: <span class="ruby-comment cmt"># Replace the cell background color if the user has requested a custom</span>
1968
- 704: <span class="ruby-comment cmt"># color.</span>
1969
- 705: <span class="ruby-identifier">cellColor</span> = <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">cellColor</span>.<span class="ruby-identifier">getPattern</span>(<span class="ruby-identifier">query</span>)
1970
- 706: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">cellColor</span> = <span class="ruby-identifier">cellColor</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">cellColor</span>
1971
- 707:
1972
- 708: <span class="ruby-comment cmt"># Replace the font color setting if the user has requested a custom</span>
1973
- 709: <span class="ruby-comment cmt"># color.</span>
1974
- 710: <span class="ruby-identifier">fontColor</span> = <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">fontColor</span>.<span class="ruby-identifier">getPattern</span>(<span class="ruby-identifier">query</span>)
1975
- 711: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">fontColor</span> = <span class="ruby-identifier">fontColor</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">fontColor</span>
1932
+ <span class="ruby-comment cmt"># File lib/reports/TableReport.rb, line 656</span>
1933
+ 656: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">genCalculatedCell</span>(<span class="ruby-identifier">query</span>, <span class="ruby-identifier">line</span>, <span class="ruby-identifier">columnDef</span>, <span class="ruby-identifier">property</span>)
1934
+ 657: <span class="ruby-comment cmt"># Create a new cell</span>
1935
+ 658: <span class="ruby-identifier">cell</span> = <span class="ruby-identifier">newCell</span>(<span class="ruby-identifier">query</span>, <span class="ruby-identifier">line</span>)
1936
+ 659:
1937
+ 660: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">setScenarioSettings</span>(<span class="ruby-identifier">cell</span>, <span class="ruby-identifier">query</span>.<span class="ruby-identifier">scenarioIdx</span>,
1938
+ 661: <span class="ruby-identifier">scenarioSpecific?</span>(<span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">id</span>))
1939
+ 662: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
1940
+ 663: <span class="ruby-keyword kw">end</span>
1941
+ 664:
1942
+ 665: <span class="ruby-identifier">setStandardCellAttributes</span>(<span class="ruby-identifier">cell</span>, <span class="ruby-identifier">columnDef</span>, <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">line</span>)
1943
+ 666:
1944
+ 667: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">query</span>.<span class="ruby-identifier">process</span>
1945
+ 668: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">text</span> = (<span class="ruby-identifier">rti</span> = <span class="ruby-identifier">query</span>.<span class="ruby-identifier">to_rti</span>) <span class="ruby-operator">?</span> <span class="ruby-identifier">rti</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">query</span>.<span class="ruby-identifier">to_s</span>
1946
+ 669: <span class="ruby-keyword kw">end</span>
1947
+ 670:
1948
+ 671: <span class="ruby-comment cmt"># Some columns need some extra care.</span>
1949
+ 672: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">id</span>
1950
+ 673: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'alert'</span>
1951
+ 674: <span class="ruby-identifier">id</span> = <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">alertLevelId</span>(<span class="ruby-identifier">query</span>.<span class="ruby-identifier">to_num</span>)
1952
+ 675: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">icon</span> = <span class="ruby-node">&quot;flag-#{id}&quot;</span>
1953
+ 676: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">fontColor</span> = <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">alertLevelColor</span>(<span class="ruby-identifier">query</span>.<span class="ruby-identifier">to_sort</span>)
1954
+ 677: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'alerttrend'</span>
1955
+ 678: <span class="ruby-identifier">icons</span> = <span class="ruby-node">%( up flat down )</span>
1956
+ 679: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">icon</span> = <span class="ruby-node">&quot;trend-#{icons[query.to_sort]}&quot;</span>
1957
+ 680: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'line'</span>
1958
+ 681: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">text</span> = <span class="ruby-identifier">line</span>.<span class="ruby-identifier">lineNo</span>.<span class="ruby-identifier">to_s</span>
1959
+ 682: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'name'</span>
1960
+ 683: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">icon</span> =
1961
+ 684: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">property</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Task</span>)
1962
+ 685: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">property</span>.<span class="ruby-identifier">container?</span>
1963
+ 686: <span class="ruby-value str">'taskgroup'</span>
1964
+ 687: <span class="ruby-keyword kw">else</span>
1965
+ 688: <span class="ruby-value str">'task'</span>
1966
+ 689: <span class="ruby-keyword kw">end</span>
1967
+ 690: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">property</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Resource</span>)
1968
+ 691: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">property</span>.<span class="ruby-identifier">container?</span>
1969
+ 692: <span class="ruby-value str">'resourcegroup'</span>
1970
+ 693: <span class="ruby-keyword kw">else</span>
1971
+ 694: <span class="ruby-value str">'resource'</span>
1972
+ 695: <span class="ruby-keyword kw">end</span>
1973
+ 696: <span class="ruby-keyword kw">else</span>
1974
+ 697: <span class="ruby-keyword kw">nil</span>
1975
+ 698: <span class="ruby-keyword kw">end</span>
1976
+ 699: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">iconTooltip</span> = <span class="ruby-constant">RichText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-node">&quot;'''ID:''' #{property.fullId}&quot;</span>).
1977
+ 700: <span class="ruby-identifier">generateIntermediateFormat</span>
1978
+ 701: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'no'</span>
1979
+ 702: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">text</span> = <span class="ruby-identifier">line</span>.<span class="ruby-identifier">no</span>.<span class="ruby-identifier">to_s</span>
1980
+ 703: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'wbs'</span>
1981
+ 704: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">indent</span> = <span class="ruby-value">2</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">line</span>.<span class="ruby-identifier">scopeLine</span>
1982
+ 705: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'scenario'</span>
1983
+ 706: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">text</span> = <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">scenario</span>(<span class="ruby-identifier">query</span>.<span class="ruby-identifier">scenarioIdx</span>).<span class="ruby-identifier">name</span>
1984
+ 707: <span class="ruby-keyword kw">end</span>
1985
+ 708:
1986
+ 709: <span class="ruby-comment cmt"># Replace the cell text if the user has requested a custom cell text.</span>
1987
+ 710: <span class="ruby-identifier">cdText</span> = <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">cellText</span>.<span class="ruby-identifier">getPattern</span>(<span class="ruby-identifier">query</span>)
1988
+ 711: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">text</span> = <span class="ruby-identifier">cdText</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">cdText</span>
1976
1989
  712:
1977
- 713: <span class="ruby-comment cmt"># Register the custom tooltip if the user has requested one.</span>
1978
- 714: <span class="ruby-identifier">cdTooltip</span> = <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">tooltip</span>.<span class="ruby-identifier">getPattern</span>(<span class="ruby-identifier">query</span>)
1979
- 715: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">tooltip</span> = <span class="ruby-identifier">cdTooltip</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">cdTooltip</span>
1980
- 716:
1981
- 717: <span class="ruby-identifier">checkCellText</span>(<span class="ruby-identifier">cell</span>)
1982
- 718:
1983
- 719: <span class="ruby-keyword kw">true</span>
1984
- 720: <span class="ruby-keyword kw">end</span></pre>
1990
+ 713: <span class="ruby-comment cmt"># Replace the cell background color if the user has requested a custom</span>
1991
+ 714: <span class="ruby-comment cmt"># color.</span>
1992
+ 715: <span class="ruby-identifier">cellColor</span> = <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">cellColor</span>.<span class="ruby-identifier">getPattern</span>(<span class="ruby-identifier">query</span>)
1993
+ 716: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">cellColor</span> = <span class="ruby-identifier">cellColor</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">cellColor</span>
1994
+ 717:
1995
+ 718: <span class="ruby-comment cmt"># Replace the font color setting if the user has requested a custom</span>
1996
+ 719: <span class="ruby-comment cmt"># color.</span>
1997
+ 720: <span class="ruby-identifier">fontColor</span> = <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">fontColor</span>.<span class="ruby-identifier">getPattern</span>(<span class="ruby-identifier">query</span>)
1998
+ 721: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">fontColor</span> = <span class="ruby-identifier">fontColor</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">fontColor</span>
1999
+ 722:
2000
+ 723: <span class="ruby-comment cmt"># Replace the default cell alignment if the user has requested a custom</span>
2001
+ 724: <span class="ruby-comment cmt"># alignment.</span>
2002
+ 725: <span class="ruby-identifier">hAlign</span> = <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">hAlign</span>.<span class="ruby-identifier">getPattern</span>(<span class="ruby-identifier">query</span>)
2003
+ 726: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">alignment</span> = <span class="ruby-identifier">hAlign</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">hAlign</span>
2004
+ 727:
2005
+ 728: <span class="ruby-comment cmt"># Register the custom tooltip if the user has requested one.</span>
2006
+ 729: <span class="ruby-identifier">cdTooltip</span> = <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">tooltip</span>.<span class="ruby-identifier">getPattern</span>(<span class="ruby-identifier">query</span>)
2007
+ 730: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">tooltip</span> = <span class="ruby-identifier">cdTooltip</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">cdTooltip</span>
2008
+ 731:
2009
+ 732: <span class="ruby-identifier">checkCellText</span>(<span class="ruby-identifier">cell</span>)
2010
+ 733:
2011
+ 734: <span class="ruby-keyword kw">true</span>
2012
+ 735: <span class="ruby-keyword kw">end</span></pre>
1985
2013
  </div>
1986
2014
 
1987
2015
  </div>
@@ -1993,7 +2021,7 @@ cell.
1993
2021
 
1994
2022
 
1995
2023
  <div id="gen-tandard-ell-method" class="method-detail ">
1996
- <a name="M000863"></a>
2024
+ <a name="method-i-genStandardCell"></a>
1997
2025
 
1998
2026
  <div class="method-heading">
1999
2027
 
@@ -2016,54 +2044,59 @@ the cell exists, false for a hidden cell.
2016
2044
  <div class="method-source-code"
2017
2045
  id="gen-tandard-ell-source">
2018
2046
  <pre>
2019
- <span class="ruby-comment cmt"># File lib/reports/TableReport.rb, line 592</span>
2020
- 592: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">genStandardCell</span>(<span class="ruby-identifier">query</span>, <span class="ruby-identifier">line</span>, <span class="ruby-identifier">columnDef</span>)
2021
- 593: <span class="ruby-comment cmt"># Find out, what type of PropertyTreeNode we are dealing with.</span>
2022
- 594: <span class="ruby-identifier">property</span> = <span class="ruby-identifier">line</span>.<span class="ruby-identifier">property</span>
2023
- 595: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">property</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Task</span>)
2024
- 596: <span class="ruby-identifier">propertyList</span> = <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">tasks</span>
2025
- 597: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">property</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Resource</span>)
2026
- 598: <span class="ruby-identifier">propertyList</span> = <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">resources</span>
2027
- 599: <span class="ruby-keyword kw">else</span>
2028
- 600: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Unknown property type #{property.class}&quot;</span>
2029
- 601: <span class="ruby-keyword kw">end</span>
2030
- 602:
2031
- 603: <span class="ruby-comment cmt"># Create a new cell</span>
2032
- 604: <span class="ruby-identifier">cell</span> = <span class="ruby-identifier">newCell</span>(<span class="ruby-identifier">query</span>, <span class="ruby-identifier">line</span>)
2033
- 605:
2034
- 606: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">setScenarioSettings</span>(<span class="ruby-identifier">cell</span>, <span class="ruby-identifier">query</span>.<span class="ruby-identifier">scenarioIdx</span>,
2035
- 607: <span class="ruby-identifier">propertyList</span>.<span class="ruby-identifier">scenarioSpecific?</span>(<span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">id</span>))
2036
- 608: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
2037
- 609: <span class="ruby-keyword kw">end</span>
2047
+ <span class="ruby-comment cmt"># File lib/reports/TableReport.rb, line 597</span>
2048
+ 597: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">genStandardCell</span>(<span class="ruby-identifier">query</span>, <span class="ruby-identifier">line</span>, <span class="ruby-identifier">columnDef</span>)
2049
+ 598: <span class="ruby-comment cmt"># Find out, what type of PropertyTreeNode we are dealing with.</span>
2050
+ 599: <span class="ruby-identifier">property</span> = <span class="ruby-identifier">line</span>.<span class="ruby-identifier">property</span>
2051
+ 600: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">property</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Task</span>)
2052
+ 601: <span class="ruby-identifier">propertyList</span> = <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">tasks</span>
2053
+ 602: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">property</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Resource</span>)
2054
+ 603: <span class="ruby-identifier">propertyList</span> = <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">resources</span>
2055
+ 604: <span class="ruby-keyword kw">else</span>
2056
+ 605: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Unknown property type #{property.class}&quot;</span>
2057
+ 606: <span class="ruby-keyword kw">end</span>
2058
+ 607:
2059
+ 608: <span class="ruby-comment cmt"># Create a new cell</span>
2060
+ 609: <span class="ruby-identifier">cell</span> = <span class="ruby-identifier">newCell</span>(<span class="ruby-identifier">query</span>, <span class="ruby-identifier">line</span>)
2038
2061
  610:
2039
- 611: <span class="ruby-identifier">setStandardCellAttributes</span>(<span class="ruby-identifier">cell</span>, <span class="ruby-identifier">columnDef</span>,
2040
- 612: <span class="ruby-identifier">propertyList</span>.<span class="ruby-identifier">attributeType</span>(<span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">id</span>), <span class="ruby-identifier">line</span>)
2041
- 613:
2042
- 614: <span class="ruby-comment cmt"># If the user has requested a custom cell text, this will be used</span>
2043
- 615: <span class="ruby-comment cmt"># instead of the queried one.</span>
2044
- 616: <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">cdText</span> = <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">cellText</span>.<span class="ruby-identifier">getPattern</span>(<span class="ruby-identifier">query</span>))
2045
- 617: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">text</span> = <span class="ruby-identifier">cdText</span>
2046
- 618: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">query</span>.<span class="ruby-identifier">process</span>
2047
- 619: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">text</span> = (<span class="ruby-identifier">rti</span> = <span class="ruby-identifier">query</span>.<span class="ruby-identifier">to_rti</span>) <span class="ruby-operator">?</span> <span class="ruby-identifier">rti</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">query</span>.<span class="ruby-identifier">to_s</span>
2048
- 620: <span class="ruby-keyword kw">end</span>
2049
- 621:
2050
- 622: <span class="ruby-comment cmt"># Replace the font color setting if the user has requested a custom</span>
2051
- 623: <span class="ruby-comment cmt"># color.</span>
2052
- 624: <span class="ruby-identifier">fontColor</span> = <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">fontColor</span>.<span class="ruby-identifier">getPattern</span>(<span class="ruby-identifier">query</span>)
2053
- 625: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">fontColor</span> = <span class="ruby-identifier">fontColor</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">fontColor</span>
2062
+ 611: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">setScenarioSettings</span>(<span class="ruby-identifier">cell</span>, <span class="ruby-identifier">query</span>.<span class="ruby-identifier">scenarioIdx</span>,
2063
+ 612: <span class="ruby-identifier">propertyList</span>.<span class="ruby-identifier">scenarioSpecific?</span>(<span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">id</span>))
2064
+ 613: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
2065
+ 614: <span class="ruby-keyword kw">end</span>
2066
+ 615:
2067
+ 616: <span class="ruby-identifier">setStandardCellAttributes</span>(<span class="ruby-identifier">cell</span>, <span class="ruby-identifier">columnDef</span>,
2068
+ 617: <span class="ruby-identifier">propertyList</span>.<span class="ruby-identifier">attributeType</span>(<span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">id</span>), <span class="ruby-identifier">line</span>)
2069
+ 618:
2070
+ 619: <span class="ruby-comment cmt"># If the user has requested a custom cell text, this will be used</span>
2071
+ 620: <span class="ruby-comment cmt"># instead of the queried one.</span>
2072
+ 621: <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">cdText</span> = <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">cellText</span>.<span class="ruby-identifier">getPattern</span>(<span class="ruby-identifier">query</span>))
2073
+ 622: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">text</span> = <span class="ruby-identifier">cdText</span>
2074
+ 623: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">query</span>.<span class="ruby-identifier">process</span>
2075
+ 624: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">text</span> = (<span class="ruby-identifier">rti</span> = <span class="ruby-identifier">query</span>.<span class="ruby-identifier">to_rti</span>) <span class="ruby-operator">?</span> <span class="ruby-identifier">rti</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">query</span>.<span class="ruby-identifier">to_s</span>
2076
+ 625: <span class="ruby-keyword kw">end</span>
2054
2077
  626:
2055
- 627: <span class="ruby-comment cmt"># Replace the cell background color if the user has requested a custom</span>
2078
+ 627: <span class="ruby-comment cmt"># Replace the font color setting if the user has requested a custom</span>
2056
2079
  628: <span class="ruby-comment cmt"># color.</span>
2057
- 629: <span class="ruby-identifier">cellColor</span> = <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">cellColor</span>.<span class="ruby-identifier">getPattern</span>(<span class="ruby-identifier">query</span>)
2058
- 630: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">cellColor</span> = <span class="ruby-identifier">cellColor</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">cellColor</span>
2080
+ 629: <span class="ruby-identifier">fontColor</span> = <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">fontColor</span>.<span class="ruby-identifier">getPattern</span>(<span class="ruby-identifier">query</span>)
2081
+ 630: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">fontColor</span> = <span class="ruby-identifier">fontColor</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">fontColor</span>
2059
2082
  631:
2060
- 632: <span class="ruby-comment cmt"># If the user has requested a custom tooltip, add it to the cell.</span>
2061
- 633: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">tooltip</span> = <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">tooltip</span>.<span class="ruby-identifier">getPattern</span>(<span class="ruby-identifier">query</span>) <span class="ruby-operator">||</span> <span class="ruby-keyword kw">nil</span>
2062
- 634:
2063
- 635: <span class="ruby-identifier">checkCellText</span>(<span class="ruby-identifier">cell</span>)
2083
+ 632: <span class="ruby-comment cmt"># Replace the cell background color if the user has requested a custom</span>
2084
+ 633: <span class="ruby-comment cmt"># color.</span>
2085
+ 634: <span class="ruby-identifier">cellColor</span> = <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">cellColor</span>.<span class="ruby-identifier">getPattern</span>(<span class="ruby-identifier">query</span>)
2086
+ 635: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">cellColor</span> = <span class="ruby-identifier">cellColor</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">cellColor</span>
2064
2087
  636:
2065
- 637: <span class="ruby-keyword kw">true</span>
2066
- 638: <span class="ruby-keyword kw">end</span></pre>
2088
+ 637: <span class="ruby-comment cmt"># Replace the default cell alignment if the user has requested a custom</span>
2089
+ 638: <span class="ruby-comment cmt"># alignment.</span>
2090
+ 639: <span class="ruby-identifier">hAlign</span> = <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">hAlign</span>.<span class="ruby-identifier">getPattern</span>(<span class="ruby-identifier">query</span>)
2091
+ 640: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">alignment</span> = <span class="ruby-identifier">hAlign</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">hAlign</span>
2092
+ 641:
2093
+ 642: <span class="ruby-comment cmt"># If the user has requested a custom tooltip, add it to the cell.</span>
2094
+ 643: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">tooltip</span> = <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">tooltip</span>.<span class="ruby-identifier">getPattern</span>(<span class="ruby-identifier">query</span>) <span class="ruby-operator">||</span> <span class="ruby-keyword kw">nil</span>
2095
+ 644:
2096
+ 645: <span class="ruby-identifier">checkCellText</span>(<span class="ruby-identifier">cell</span>)
2097
+ 646:
2098
+ 647: <span class="ruby-keyword kw">true</span>
2099
+ 648: <span class="ruby-keyword kw">end</span></pre>
2067
2100
  </div>
2068
2101
 
2069
2102
  </div>
@@ -2075,7 +2108,7 @@ the cell exists, false for a hidden cell.
2075
2108
 
2076
2109
 
2077
2110
  <div id="generate-able-ell-method" class="method-detail ">
2078
- <a name="M000862"></a>
2111
+ <a name="method-i-generateTableCell"></a>
2079
2112
 
2080
2113
  <div class="method-heading">
2081
2114
 
@@ -2112,74 +2145,74 @@ objects that belong to the property in this line.
2112
2145
  <div class="method-source-code"
2113
2146
  id="generate-able-ell-source">
2114
2147
  <pre>
2115
- <span class="ruby-comment cmt"># File lib/reports/TableReport.rb, line 521</span>
2116
- 521: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateTableCell</span>(<span class="ruby-identifier">line</span>, <span class="ruby-identifier">property</span>, <span class="ruby-identifier">columnDef</span>, <span class="ruby-identifier">query</span>)
2117
- 522: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">start</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">end</span>
2118
- 523: <span class="ruby-comment cmt"># If the user has specified a new start or end time for this column,</span>
2119
- 524: <span class="ruby-comment cmt"># we have to duplicate the query before we modify it.</span>
2120
- 525: <span class="ruby-identifier">query</span> = <span class="ruby-identifier">query</span>.<span class="ruby-identifier">dup</span>
2121
- 526: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">start</span> = <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">start</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">start</span>
2122
- 527: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">end</span> = <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">end</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">end</span>
2123
- 528: <span class="ruby-keyword kw">end</span>
2124
- 529:
2125
- 530: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">id</span>
2126
- 531: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'chart'</span>
2127
- 532: <span class="ruby-comment cmt"># Generate a hidden cell. The real meat is in the actual chart object,</span>
2128
- 533: <span class="ruby-comment cmt"># not in this cell.</span>
2129
- 534: <span class="ruby-identifier">cell</span> = <span class="ruby-constant">ReportTableCell</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">line</span>, <span class="ruby-identifier">query</span>, <span class="ruby-value str">''</span>)
2130
- 535: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">hidden</span> = <span class="ruby-keyword kw">true</span>
2131
- 536: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">text</span> = <span class="ruby-keyword kw">nil</span>
2132
- 537: <span class="ruby-comment cmt"># The GanttChart can be reached via the special variable of the column</span>
2133
- 538: <span class="ruby-comment cmt"># header.</span>
2134
- 539: <span class="ruby-identifier">chart</span> = <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">column</span>.<span class="ruby-identifier">cell1</span>.<span class="ruby-identifier">special</span>
2135
- 540: <span class="ruby-constant">GanttLine</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">chart</span>, <span class="ruby-identifier">query</span>, (<span class="ruby-identifier">line</span>.<span class="ruby-identifier">subLineNo</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>) * (<span class="ruby-identifier">line</span>.<span class="ruby-identifier">height</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>),
2136
- 541: <span class="ruby-identifier">line</span>.<span class="ruby-identifier">height</span>, <span class="ruby-identifier">a</span>(<span class="ruby-value str">'selfcontained'</span>) <span class="ruby-operator">?</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">tooltip</span>)
2137
- 542: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">true</span>
2138
- 543: <span class="ruby-comment cmt"># The calendar cells can be all generated by the same function. But we</span>
2139
- 544: <span class="ruby-comment cmt"># need to use different parameters.</span>
2140
- 545: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'hourly'</span>
2141
- 546: <span class="ruby-identifier">start</span> = <span class="ruby-ivar">@start</span>.<span class="ruby-identifier">midnight</span>
2142
- 547: <span class="ruby-identifier">sameTimeNextFunc</span> = <span class="ruby-value">:sameTimeNextHour</span>
2143
- 548: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'daily'</span>
2144
- 549: <span class="ruby-identifier">start</span> = <span class="ruby-ivar">@start</span>.<span class="ruby-identifier">midnight</span>
2145
- 550: <span class="ruby-identifier">sameTimeNextFunc</span> = <span class="ruby-value">:sameTimeNextDay</span>
2146
- 551: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'weekly'</span>
2147
- 552: <span class="ruby-identifier">start</span> = <span class="ruby-ivar">@start</span>.<span class="ruby-identifier">beginOfWeek</span>(<span class="ruby-identifier">a</span>(<span class="ruby-value str">'weekStartsMonday'</span>))
2148
- 553: <span class="ruby-identifier">sameTimeNextFunc</span> = <span class="ruby-value">:sameTimeNextWeek</span>
2149
- 554: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'monthly'</span>
2150
- 555: <span class="ruby-identifier">start</span> = <span class="ruby-ivar">@start</span>.<span class="ruby-identifier">beginOfMonth</span>
2151
- 556: <span class="ruby-identifier">sameTimeNextFunc</span> = <span class="ruby-value">:sameTimeNextMonth</span>
2152
- 557: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'quarterly'</span>
2153
- 558: <span class="ruby-identifier">start</span> = <span class="ruby-ivar">@start</span>.<span class="ruby-identifier">beginOfQuarter</span>
2154
- 559: <span class="ruby-identifier">sameTimeNextFunc</span> = <span class="ruby-value">:sameTimeNextQuarter</span>
2155
- 560: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'yearly'</span>
2156
- 561: <span class="ruby-identifier">start</span> = <span class="ruby-ivar">@start</span>.<span class="ruby-identifier">beginOfYear</span>
2157
- 562: <span class="ruby-identifier">sameTimeNextFunc</span> = <span class="ruby-value">:sameTimeNextYear</span>
2158
- 563: <span class="ruby-keyword kw">else</span>
2159
- 564: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">calculated?</span>(<span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">id</span>)
2160
- 565: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">genCalculatedCell</span>(<span class="ruby-identifier">query</span>, <span class="ruby-identifier">line</span>, <span class="ruby-identifier">columnDef</span>, <span class="ruby-identifier">property</span>)
2161
- 566: <span class="ruby-keyword kw">else</span>
2162
- 567: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">genStandardCell</span>(<span class="ruby-identifier">query</span>, <span class="ruby-identifier">line</span>, <span class="ruby-identifier">columnDef</span>)
2163
- 568: <span class="ruby-keyword kw">end</span>
2164
- 569: <span class="ruby-keyword kw">end</span>
2165
- 570:
2166
- 571: <span class="ruby-comment cmt"># The calendar cells don't live in this ReportTable but in an embedded</span>
2167
- 572: <span class="ruby-comment cmt"># ReportTable that can be reached via the column header special variable.</span>
2168
- 573: <span class="ruby-comment cmt"># For embedded column tables we need to create a new line.</span>
2169
- 574: <span class="ruby-identifier">tcLine</span> = <span class="ruby-constant">ReportTableLine</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">column</span>.<span class="ruby-identifier">cell1</span>.<span class="ruby-identifier">special</span>,
2170
- 575: <span class="ruby-identifier">line</span>.<span class="ruby-identifier">property</span>, <span class="ruby-identifier">line</span>.<span class="ruby-identifier">scopeLine</span>)
2171
- 576:
2172
- 577: <span class="ruby-comment cmt"># Depending on the property type we use different generator functions.</span>
2173
- 578: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">property</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Task</span>)
2174
- 579: <span class="ruby-identifier">genCalChartTaskCell</span>(<span class="ruby-identifier">query</span>, <span class="ruby-identifier">tcLine</span>, <span class="ruby-identifier">columnDef</span>, <span class="ruby-identifier">start</span>, <span class="ruby-identifier">sameTimeNextFunc</span>)
2175
- 580: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">property</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Resource</span>)
2176
- 581: <span class="ruby-identifier">genCalChartResourceCell</span>(<span class="ruby-identifier">query</span>, <span class="ruby-identifier">tcLine</span>, <span class="ruby-identifier">columnDef</span>, <span class="ruby-identifier">start</span>,
2177
- 582: <span class="ruby-identifier">sameTimeNextFunc</span>)
2178
- 583: <span class="ruby-keyword kw">else</span>
2179
- 584: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Unknown property type #{property.class}&quot;</span>
2180
- 585: <span class="ruby-keyword kw">end</span>
2181
- 586: <span class="ruby-keyword kw">true</span>
2182
- 587: <span class="ruby-keyword kw">end</span></pre>
2148
+ <span class="ruby-comment cmt"># File lib/reports/TableReport.rb, line 526</span>
2149
+ 526: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateTableCell</span>(<span class="ruby-identifier">line</span>, <span class="ruby-identifier">property</span>, <span class="ruby-identifier">columnDef</span>, <span class="ruby-identifier">query</span>)
2150
+ 527: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">start</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">end</span>
2151
+ 528: <span class="ruby-comment cmt"># If the user has specified a new start or end time for this column,</span>
2152
+ 529: <span class="ruby-comment cmt"># we have to duplicate the query before we modify it.</span>
2153
+ 530: <span class="ruby-identifier">query</span> = <span class="ruby-identifier">query</span>.<span class="ruby-identifier">dup</span>
2154
+ 531: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">start</span> = <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">start</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">start</span>
2155
+ 532: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">end</span> = <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">end</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">end</span>
2156
+ 533: <span class="ruby-keyword kw">end</span>
2157
+ 534:
2158
+ 535: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">id</span>
2159
+ 536: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'chart'</span>
2160
+ 537: <span class="ruby-comment cmt"># Generate a hidden cell. The real meat is in the actual chart object,</span>
2161
+ 538: <span class="ruby-comment cmt"># not in this cell.</span>
2162
+ 539: <span class="ruby-identifier">cell</span> = <span class="ruby-constant">ReportTableCell</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">line</span>, <span class="ruby-identifier">query</span>, <span class="ruby-value str">''</span>)
2163
+ 540: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">hidden</span> = <span class="ruby-keyword kw">true</span>
2164
+ 541: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">text</span> = <span class="ruby-keyword kw">nil</span>
2165
+ 542: <span class="ruby-comment cmt"># The GanttChart can be reached via the special variable of the column</span>
2166
+ 543: <span class="ruby-comment cmt"># header.</span>
2167
+ 544: <span class="ruby-identifier">chart</span> = <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">column</span>.<span class="ruby-identifier">cell1</span>.<span class="ruby-identifier">special</span>
2168
+ 545: <span class="ruby-constant">GanttLine</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">chart</span>, <span class="ruby-identifier">query</span>, (<span class="ruby-identifier">line</span>.<span class="ruby-identifier">subLineNo</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>) * (<span class="ruby-identifier">line</span>.<span class="ruby-identifier">height</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>),
2169
+ 546: <span class="ruby-identifier">line</span>.<span class="ruby-identifier">height</span>, <span class="ruby-identifier">a</span>(<span class="ruby-value str">'selfcontained'</span>) <span class="ruby-operator">?</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">tooltip</span>)
2170
+ 547: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">true</span>
2171
+ 548: <span class="ruby-comment cmt"># The calendar cells can be all generated by the same function. But we</span>
2172
+ 549: <span class="ruby-comment cmt"># need to use different parameters.</span>
2173
+ 550: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'hourly'</span>
2174
+ 551: <span class="ruby-identifier">start</span> = <span class="ruby-ivar">@start</span>.<span class="ruby-identifier">midnight</span>
2175
+ 552: <span class="ruby-identifier">sameTimeNextFunc</span> = <span class="ruby-value">:sameTimeNextHour</span>
2176
+ 553: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'daily'</span>
2177
+ 554: <span class="ruby-identifier">start</span> = <span class="ruby-ivar">@start</span>.<span class="ruby-identifier">midnight</span>
2178
+ 555: <span class="ruby-identifier">sameTimeNextFunc</span> = <span class="ruby-value">:sameTimeNextDay</span>
2179
+ 556: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'weekly'</span>
2180
+ 557: <span class="ruby-identifier">start</span> = <span class="ruby-ivar">@start</span>.<span class="ruby-identifier">beginOfWeek</span>(<span class="ruby-identifier">a</span>(<span class="ruby-value str">'weekStartsMonday'</span>))
2181
+ 558: <span class="ruby-identifier">sameTimeNextFunc</span> = <span class="ruby-value">:sameTimeNextWeek</span>
2182
+ 559: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'monthly'</span>
2183
+ 560: <span class="ruby-identifier">start</span> = <span class="ruby-ivar">@start</span>.<span class="ruby-identifier">beginOfMonth</span>
2184
+ 561: <span class="ruby-identifier">sameTimeNextFunc</span> = <span class="ruby-value">:sameTimeNextMonth</span>
2185
+ 562: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'quarterly'</span>
2186
+ 563: <span class="ruby-identifier">start</span> = <span class="ruby-ivar">@start</span>.<span class="ruby-identifier">beginOfQuarter</span>
2187
+ 564: <span class="ruby-identifier">sameTimeNextFunc</span> = <span class="ruby-value">:sameTimeNextQuarter</span>
2188
+ 565: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'yearly'</span>
2189
+ 566: <span class="ruby-identifier">start</span> = <span class="ruby-ivar">@start</span>.<span class="ruby-identifier">beginOfYear</span>
2190
+ 567: <span class="ruby-identifier">sameTimeNextFunc</span> = <span class="ruby-value">:sameTimeNextYear</span>
2191
+ 568: <span class="ruby-keyword kw">else</span>
2192
+ 569: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">calculated?</span>(<span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">id</span>)
2193
+ 570: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">genCalculatedCell</span>(<span class="ruby-identifier">query</span>, <span class="ruby-identifier">line</span>, <span class="ruby-identifier">columnDef</span>, <span class="ruby-identifier">property</span>)
2194
+ 571: <span class="ruby-keyword kw">else</span>
2195
+ 572: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">genStandardCell</span>(<span class="ruby-identifier">query</span>, <span class="ruby-identifier">line</span>, <span class="ruby-identifier">columnDef</span>)
2196
+ 573: <span class="ruby-keyword kw">end</span>
2197
+ 574: <span class="ruby-keyword kw">end</span>
2198
+ 575:
2199
+ 576: <span class="ruby-comment cmt"># The calendar cells don't live in this ReportTable but in an embedded</span>
2200
+ 577: <span class="ruby-comment cmt"># ReportTable that can be reached via the column header special variable.</span>
2201
+ 578: <span class="ruby-comment cmt"># For embedded column tables we need to create a new line.</span>
2202
+ 579: <span class="ruby-identifier">tcLine</span> = <span class="ruby-constant">ReportTableLine</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">column</span>.<span class="ruby-identifier">cell1</span>.<span class="ruby-identifier">special</span>,
2203
+ 580: <span class="ruby-identifier">line</span>.<span class="ruby-identifier">property</span>, <span class="ruby-identifier">line</span>.<span class="ruby-identifier">scopeLine</span>)
2204
+ 581:
2205
+ 582: <span class="ruby-comment cmt"># Depending on the property type we use different generator functions.</span>
2206
+ 583: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">property</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Task</span>)
2207
+ 584: <span class="ruby-identifier">genCalChartTaskCell</span>(<span class="ruby-identifier">query</span>, <span class="ruby-identifier">tcLine</span>, <span class="ruby-identifier">columnDef</span>, <span class="ruby-identifier">start</span>, <span class="ruby-identifier">sameTimeNextFunc</span>)
2208
+ 585: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">property</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Resource</span>)
2209
+ 586: <span class="ruby-identifier">genCalChartResourceCell</span>(<span class="ruby-identifier">query</span>, <span class="ruby-identifier">tcLine</span>, <span class="ruby-identifier">columnDef</span>, <span class="ruby-identifier">start</span>,
2210
+ 587: <span class="ruby-identifier">sameTimeNextFunc</span>)
2211
+ 588: <span class="ruby-keyword kw">else</span>
2212
+ 589: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Unknown property type #{property.class}&quot;</span>
2213
+ 590: <span class="ruby-keyword kw">end</span>
2214
+ 591: <span class="ruby-keyword kw">true</span>
2215
+ 592: <span class="ruby-keyword kw">end</span></pre>
2183
2216
  </div>
2184
2217
 
2185
2218
  </div>
@@ -2191,7 +2224,7 @@ objects that belong to the property in this line.
2191
2224
 
2192
2225
 
2193
2226
  <div id="new-ell-method" class="method-detail ">
2194
- <a name="M000869"></a>
2227
+ <a name="method-i-newCell"></a>
2195
2228
 
2196
2229
  <div class="method-heading">
2197
2230
 
@@ -2213,16 +2246,16 @@ initialize some common values.
2213
2246
  <div class="method-source-code"
2214
2247
  id="new-ell-source">
2215
2248
  <pre>
2216
- <span class="ruby-comment cmt"># File lib/reports/TableReport.rb, line 968</span>
2217
- 968: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">newCell</span>(<span class="ruby-identifier">query</span>, <span class="ruby-identifier">line</span>)
2218
- 969: <span class="ruby-identifier">property</span> = <span class="ruby-identifier">line</span>.<span class="ruby-identifier">property</span>
2219
- 970: <span class="ruby-identifier">cell</span> = <span class="ruby-constant">ReportTableCell</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">line</span>, <span class="ruby-identifier">query</span>)
2220
- 971:
2221
- 972: <span class="ruby-comment cmt"># Cells for containers should be using bold font face.</span>
2222
- 973: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">bold</span> = <span class="ruby-keyword kw">true</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">property</span>.<span class="ruby-identifier">container?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">line</span>.<span class="ruby-identifier">bold</span>
2223
- 974: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">selfcontained</span> = <span class="ruby-identifier">a</span>(<span class="ruby-value str">'selfcontained'</span>)
2224
- 975: <span class="ruby-identifier">cell</span>
2225
- 976: <span class="ruby-keyword kw">end</span></pre>
2249
+ <span class="ruby-comment cmt"># File lib/reports/TableReport.rb, line 983</span>
2250
+ 983: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">newCell</span>(<span class="ruby-identifier">query</span>, <span class="ruby-identifier">line</span>)
2251
+ 984: <span class="ruby-identifier">property</span> = <span class="ruby-identifier">line</span>.<span class="ruby-identifier">property</span>
2252
+ 985: <span class="ruby-identifier">cell</span> = <span class="ruby-constant">ReportTableCell</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">line</span>, <span class="ruby-identifier">query</span>)
2253
+ 986:
2254
+ 987: <span class="ruby-comment cmt"># Cells for containers should be using bold font face.</span>
2255
+ 988: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">bold</span> = <span class="ruby-keyword kw">true</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">property</span>.<span class="ruby-identifier">container?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">line</span>.<span class="ruby-identifier">bold</span>
2256
+ 989: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">selfcontained</span> = <span class="ruby-identifier">a</span>(<span class="ruby-value str">'selfcontained'</span>)
2257
+ 990: <span class="ruby-identifier">cell</span>
2258
+ 991: <span class="ruby-keyword kw">end</span></pre>
2226
2259
  </div>
2227
2260
 
2228
2261
  </div>
@@ -2234,7 +2267,7 @@ initialize some common values.
2234
2267
 
2235
2268
 
2236
2269
  <div id="set-ndent-method" class="method-detail ">
2237
- <a name="M000870"></a>
2270
+ <a name="method-i-setIndent"></a>
2238
2271
 
2239
2272
  <div class="method-heading">
2240
2273
 
@@ -2255,19 +2288,19 @@ Determine the indentation for this line.
2255
2288
  <div class="method-source-code"
2256
2289
  id="set-ndent-source">
2257
2290
  <pre>
2258
- <span class="ruby-comment cmt"># File lib/reports/TableReport.rb, line 979</span>
2259
- 979: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">setIndent</span>(<span class="ruby-identifier">line</span>, <span class="ruby-identifier">propertyRoot</span>, <span class="ruby-identifier">treeMode</span>)
2260
- 980: <span class="ruby-identifier">property</span> = <span class="ruby-identifier">line</span>.<span class="ruby-identifier">property</span>
2261
- 981: <span class="ruby-identifier">scopeLine</span> = <span class="ruby-identifier">line</span>.<span class="ruby-identifier">scopeLine</span>
2262
- 982: <span class="ruby-identifier">level</span> = <span class="ruby-identifier">property</span>.<span class="ruby-identifier">level</span> <span class="ruby-operator">-</span> (<span class="ruby-identifier">propertyRoot</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">propertyRoot</span>.<span class="ruby-identifier">level</span> <span class="ruby-operator">:</span> <span class="ruby-value">0</span>)
2263
- 983: <span class="ruby-comment cmt"># We indent at least as much as the scopeline + 1, if we have a scope.</span>
2264
- 984: <span class="ruby-identifier">line</span>.<span class="ruby-identifier">indentation</span> = <span class="ruby-identifier">scopeLine</span>.<span class="ruby-identifier">indentation</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">scopeLine</span>
2265
- 985: <span class="ruby-comment cmt"># In tree mode we indent according to the level.</span>
2266
- 986: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">treeMode</span>
2267
- 987: <span class="ruby-identifier">line</span>.<span class="ruby-identifier">indentation</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">level</span>
2268
- 988: <span class="ruby-identifier">line</span>.<span class="ruby-identifier">bold</span> = <span class="ruby-keyword kw">true</span>
2269
- 989: <span class="ruby-keyword kw">end</span>
2270
- 990: <span class="ruby-keyword kw">end</span></pre>
2291
+ <span class="ruby-comment cmt"># File lib/reports/TableReport.rb, line 994</span>
2292
+ 994: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">setIndent</span>(<span class="ruby-identifier">line</span>, <span class="ruby-identifier">propertyRoot</span>, <span class="ruby-identifier">treeMode</span>)
2293
+ 995: <span class="ruby-identifier">property</span> = <span class="ruby-identifier">line</span>.<span class="ruby-identifier">property</span>
2294
+ 996: <span class="ruby-identifier">scopeLine</span> = <span class="ruby-identifier">line</span>.<span class="ruby-identifier">scopeLine</span>
2295
+ 997: <span class="ruby-identifier">level</span> = <span class="ruby-identifier">property</span>.<span class="ruby-identifier">level</span> <span class="ruby-operator">-</span> (<span class="ruby-identifier">propertyRoot</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">propertyRoot</span>.<span class="ruby-identifier">level</span> <span class="ruby-operator">:</span> <span class="ruby-value">0</span>)
2296
+ 998: <span class="ruby-comment cmt"># We indent at least as much as the scopeline + 1, if we have a scope.</span>
2297
+ 999: <span class="ruby-identifier">line</span>.<span class="ruby-identifier">indentation</span> = <span class="ruby-identifier">scopeLine</span>.<span class="ruby-identifier">indentation</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">scopeLine</span>
2298
+ 1000: <span class="ruby-comment cmt"># In tree mode we indent according to the level.</span>
2299
+ 1001: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">treeMode</span>
2300
+ 1002: <span class="ruby-identifier">line</span>.<span class="ruby-identifier">indentation</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">level</span>
2301
+ 1003: <span class="ruby-identifier">line</span>.<span class="ruby-identifier">bold</span> = <span class="ruby-keyword kw">true</span>
2302
+ 1004: <span class="ruby-keyword kw">end</span>
2303
+ 1005: <span class="ruby-keyword kw">end</span></pre>
2271
2304
  </div>
2272
2305
 
2273
2306
  </div>
@@ -2279,7 +2312,7 @@ Determine the indentation for this line.
2279
2312
 
2280
2313
 
2281
2314
  <div id="set-cenario-ettings-method" class="method-detail ">
2282
- <a name="M000868"></a>
2315
+ <a name="method-i-setScenarioSettings"></a>
2283
2316
 
2284
2317
  <div class="method-heading">
2285
2318
 
@@ -2298,25 +2331,25 @@ Determine the indentation for this line.
2298
2331
  <div class="method-source-code"
2299
2332
  id="set-cenario-ettings-source">
2300
2333
  <pre>
2301
- <span class="ruby-comment cmt"># File lib/reports/TableReport.rb, line 948</span>
2302
- 948: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">setScenarioSettings</span>(<span class="ruby-identifier">cell</span>, <span class="ruby-identifier">scenarioIdx</span>, <span class="ruby-identifier">scenarioSpecific</span>)
2303
- 949: <span class="ruby-comment cmt"># Check if we are dealing with multiple scenarios.</span>
2304
- 950: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'scenarios'</span>).<span class="ruby-identifier">length</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">1</span>
2305
- 951: <span class="ruby-comment cmt"># Check if the attribute is not scenario specific</span>
2306
- 952: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">scenarioSpecific</span>
2307
- 953: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">scenarioIdx</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'scenarios'</span>).<span class="ruby-identifier">first</span>
2308
- 954: <span class="ruby-comment cmt"># Use a somewhat bigger font.</span>
2309
- 955: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">fontSize</span> = <span class="ruby-value">15</span>
2310
- 956: <span class="ruby-keyword kw">else</span>
2311
- 957: <span class="ruby-comment cmt"># And hide the cells for all but the first scenario.</span>
2312
- 958: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">hidden</span> = <span class="ruby-keyword kw">true</span>
2313
- 959: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
2314
- 960: <span class="ruby-keyword kw">end</span>
2315
- 961: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">rows</span> = <span class="ruby-identifier">a</span>(<span class="ruby-value str">'scenarios'</span>).<span class="ruby-identifier">length</span>
2316
- 962: <span class="ruby-keyword kw">end</span>
2317
- 963: <span class="ruby-keyword kw">end</span>
2318
- 964: <span class="ruby-keyword kw">true</span>
2319
- 965: <span class="ruby-keyword kw">end</span></pre>
2334
+ <span class="ruby-comment cmt"># File lib/reports/TableReport.rb, line 963</span>
2335
+ 963: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">setScenarioSettings</span>(<span class="ruby-identifier">cell</span>, <span class="ruby-identifier">scenarioIdx</span>, <span class="ruby-identifier">scenarioSpecific</span>)
2336
+ 964: <span class="ruby-comment cmt"># Check if we are dealing with multiple scenarios.</span>
2337
+ 965: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'scenarios'</span>).<span class="ruby-identifier">length</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">1</span>
2338
+ 966: <span class="ruby-comment cmt"># Check if the attribute is not scenario specific</span>
2339
+ 967: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">scenarioSpecific</span>
2340
+ 968: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">scenarioIdx</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'scenarios'</span>).<span class="ruby-identifier">first</span>
2341
+ 969: <span class="ruby-comment cmt"># Use a somewhat bigger font.</span>
2342
+ 970: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">fontSize</span> = <span class="ruby-value">15</span>
2343
+ 971: <span class="ruby-keyword kw">else</span>
2344
+ 972: <span class="ruby-comment cmt"># And hide the cells for all but the first scenario.</span>
2345
+ 973: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">hidden</span> = <span class="ruby-keyword kw">true</span>
2346
+ 974: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
2347
+ 975: <span class="ruby-keyword kw">end</span>
2348
+ 976: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">rows</span> = <span class="ruby-identifier">a</span>(<span class="ruby-value str">'scenarios'</span>).<span class="ruby-identifier">length</span>
2349
+ 977: <span class="ruby-keyword kw">end</span>
2350
+ 978: <span class="ruby-keyword kw">end</span>
2351
+ 979: <span class="ruby-keyword kw">true</span>
2352
+ 980: <span class="ruby-keyword kw">end</span></pre>
2320
2353
  </div>
2321
2354
 
2322
2355
  </div>
@@ -2328,7 +2361,7 @@ Determine the indentation for this line.
2328
2361
 
2329
2362
 
2330
2363
  <div id="set-tandard-ell-ttributes-method" class="method-detail ">
2331
- <a name="M000867"></a>
2364
+ <a name="method-i-setStandardCellAttributes"></a>
2332
2365
 
2333
2366
  <div class="method-heading">
2334
2367
 
@@ -2350,28 +2383,28 @@ alignment and background color.
2350
2383
  <div class="method-source-code"
2351
2384
  id="set-tandard-ell-ttributes-source">
2352
2385
  <pre>
2353
- <span class="ruby-comment cmt"># File lib/reports/TableReport.rb, line 926</span>
2354
- 926: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">setStandardCellAttributes</span>(<span class="ruby-identifier">cell</span>, <span class="ruby-identifier">columnDef</span>, <span class="ruby-identifier">attributeType</span>, <span class="ruby-identifier">line</span>)
2355
- 927: <span class="ruby-comment cmt"># Determine whether it should be indented</span>
2356
- 928: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">indent</span>(<span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">id</span>, <span class="ruby-identifier">attributeType</span>)
2357
- 929: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">indent</span> = <span class="ruby-identifier">line</span>.<span class="ruby-identifier">indentation</span>
2358
- 930: <span class="ruby-keyword kw">end</span>
2359
- 931:
2360
- 932: <span class="ruby-comment cmt"># Determine the cell alignment</span>
2361
- 933: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">alignment</span> = <span class="ruby-identifier">alignment</span>(<span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">id</span>, <span class="ruby-identifier">attributeType</span>)
2362
- 934:
2363
- 935: <span class="ruby-comment cmt"># Set background color</span>
2364
- 936: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">line</span>.<span class="ruby-identifier">property</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Task</span>)
2365
- 937: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">category</span> = <span class="ruby-identifier">line</span>.<span class="ruby-identifier">property</span>.<span class="ruby-identifier">get</span>(<span class="ruby-value str">'index'</span>) <span class="ruby-operator">%</span> <span class="ruby-value">2</span> <span class="ruby-operator">==</span> <span class="ruby-value">1</span> <span class="ruby-operator">?</span>
2366
- 938: <span class="ruby-value str">'taskcell1'</span> <span class="ruby-operator">:</span> <span class="ruby-value str">'taskcell2'</span>
2367
- 939: <span class="ruby-keyword kw">else</span>
2368
- 940: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">category</span> = <span class="ruby-identifier">line</span>.<span class="ruby-identifier">property</span>.<span class="ruby-identifier">get</span>(<span class="ruby-value str">'index'</span>) <span class="ruby-operator">%</span> <span class="ruby-value">2</span> <span class="ruby-operator">==</span> <span class="ruby-value">1</span> <span class="ruby-operator">?</span>
2369
- 941: <span class="ruby-value str">'resourcecell1'</span> <span class="ruby-operator">:</span> <span class="ruby-value str">'resourcecell2'</span>
2370
- 942: <span class="ruby-keyword kw">end</span>
2371
- 943:
2372
- 944: <span class="ruby-comment cmt"># Set column width</span>
2373
- 945: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">width</span> = <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">width</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">width</span>
2374
- 946: <span class="ruby-keyword kw">end</span></pre>
2386
+ <span class="ruby-comment cmt"># File lib/reports/TableReport.rb, line 941</span>
2387
+ 941: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">setStandardCellAttributes</span>(<span class="ruby-identifier">cell</span>, <span class="ruby-identifier">columnDef</span>, <span class="ruby-identifier">attributeType</span>, <span class="ruby-identifier">line</span>)
2388
+ 942: <span class="ruby-comment cmt"># Determine whether it should be indented</span>
2389
+ 943: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">indent</span>(<span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">id</span>, <span class="ruby-identifier">attributeType</span>)
2390
+ 944: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">indent</span> = <span class="ruby-identifier">line</span>.<span class="ruby-identifier">indentation</span>
2391
+ 945: <span class="ruby-keyword kw">end</span>
2392
+ 946:
2393
+ 947: <span class="ruby-comment cmt"># Determine the cell alignment</span>
2394
+ 948: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">alignment</span> = <span class="ruby-identifier">alignment</span>(<span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">id</span>, <span class="ruby-identifier">attributeType</span>)
2395
+ 949:
2396
+ 950: <span class="ruby-comment cmt"># Set background color</span>
2397
+ 951: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">line</span>.<span class="ruby-identifier">property</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Task</span>)
2398
+ 952: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">category</span> = <span class="ruby-identifier">line</span>.<span class="ruby-identifier">property</span>.<span class="ruby-identifier">get</span>(<span class="ruby-value str">'index'</span>) <span class="ruby-operator">%</span> <span class="ruby-value">2</span> <span class="ruby-operator">==</span> <span class="ruby-value">1</span> <span class="ruby-operator">?</span>
2399
+ 953: <span class="ruby-value str">'taskcell1'</span> <span class="ruby-operator">:</span> <span class="ruby-value str">'taskcell2'</span>
2400
+ 954: <span class="ruby-keyword kw">else</span>
2401
+ 955: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">category</span> = <span class="ruby-identifier">line</span>.<span class="ruby-identifier">property</span>.<span class="ruby-identifier">get</span>(<span class="ruby-value str">'index'</span>) <span class="ruby-operator">%</span> <span class="ruby-value">2</span> <span class="ruby-operator">==</span> <span class="ruby-value">1</span> <span class="ruby-operator">?</span>
2402
+ 956: <span class="ruby-value str">'resourcecell1'</span> <span class="ruby-operator">:</span> <span class="ruby-value str">'resourcecell2'</span>
2403
+ 957: <span class="ruby-keyword kw">end</span>
2404
+ 958:
2405
+ 959: <span class="ruby-comment cmt"># Set column width</span>
2406
+ 960: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">width</span> = <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">width</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">width</span>
2407
+ 961: <span class="ruby-keyword kw">end</span></pre>
2375
2408
  </div>
2376
2409
 
2377
2410
  </div>
@@ -2383,7 +2416,7 @@ alignment and background color.
2383
2416
 
2384
2417
 
2385
2418
  <div id="try-ell-erging-method" class="method-detail ">
2386
- <a name="M000872"></a>
2419
+ <a name="method-i-tryCellMerging"></a>
2387
2420
 
2388
2421
  <div class="method-heading">
2389
2422
 
@@ -2404,13 +2437,13 @@ Try to merge equal cells without text to multi-column cells.
2404
2437
  <div class="method-source-code"
2405
2438
  id="try-ell-erging-source">
2406
2439
  <pre>
2407
- <span class="ruby-comment cmt"># File lib/reports/TableReport.rb, line 1002</span>
2408
- 1002: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">tryCellMerging</span>(<span class="ruby-identifier">cell</span>, <span class="ruby-identifier">line</span>, <span class="ruby-identifier">firstCell</span>)
2409
- 1003: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">text</span> <span class="ruby-operator">==</span> <span class="ruby-value str">''</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">firstCell</span> <span class="ruby-operator">&amp;&amp;</span> (<span class="ruby-identifier">c</span> = <span class="ruby-identifier">line</span>.<span class="ruby-identifier">last</span>(<span class="ruby-value">1</span>)) <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">c</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">cell</span>
2410
- 1004: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">hidden</span> = <span class="ruby-keyword kw">true</span>
2411
- 1005: <span class="ruby-identifier">c</span>.<span class="ruby-identifier">columns</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
2412
- 1006: <span class="ruby-keyword kw">end</span>
2413
- 1007: <span class="ruby-keyword kw">end</span></pre>
2440
+ <span class="ruby-comment cmt"># File lib/reports/TableReport.rb, line 1017</span>
2441
+ 1017: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">tryCellMerging</span>(<span class="ruby-identifier">cell</span>, <span class="ruby-identifier">line</span>, <span class="ruby-identifier">firstCell</span>)
2442
+ 1018: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">text</span> <span class="ruby-operator">==</span> <span class="ruby-value str">''</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">firstCell</span> <span class="ruby-operator">&amp;&amp;</span> (<span class="ruby-identifier">c</span> = <span class="ruby-identifier">line</span>.<span class="ruby-identifier">last</span>(<span class="ruby-value">1</span>)) <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">c</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">cell</span>
2443
+ 1019: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">hidden</span> = <span class="ruby-keyword kw">true</span>
2444
+ 1020: <span class="ruby-identifier">c</span>.<span class="ruby-identifier">columns</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
2445
+ 1021: <span class="ruby-keyword kw">end</span>
2446
+ 1022: <span class="ruby-keyword kw">end</span></pre>
2414
2447
  </div>
2415
2448
 
2416
2449
  </div>