taskjuggler 0.0.7 → 0.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (415) hide show
  1. data/CHANGELOG +119 -0
  2. data/benchmarks/allocatedSlots.tjp +1602 -0
  3. data/benchmarks/booking.tjp +40 -30
  4. data/{test/TestSuite/ReportGenerator/Errors → benchmarks}/css/tjmanual.css +0 -0
  5. data/{test/TestSuite/Scheduler/Correct → benchmarks}/css/tjreport.css +1 -0
  6. data/benchmarks/gantt.tjp +57 -0
  7. data/benchmarks/htmltaskreport.tjp +26 -1
  8. data/{test/TestSuite/ReportGenerator/Errors → benchmarks}/icons/details.png +0 -0
  9. data/{test/TestSuite/ReportGenerator/Errors → benchmarks}/icons/flag-green.png +0 -0
  10. data/{test/TestSuite/ReportGenerator/Errors → benchmarks}/icons/flag-red.png +0 -0
  11. data/{test/TestSuite/ReportGenerator/Errors → benchmarks}/icons/flag-yellow.png +0 -0
  12. data/{test/TestSuite/ReportGenerator/Errors → benchmarks}/icons/resource.png +0 -0
  13. data/{test/TestSuite/ReportGenerator/Errors → benchmarks}/icons/resourcegroup.png +0 -0
  14. data/{test/TestSuite/ReportGenerator/Errors → benchmarks}/icons/task.png +0 -0
  15. data/{test/TestSuite/ReportGenerator/Errors → benchmarks}/icons/taskgroup.png +0 -0
  16. data/{test/TestSuite/ReportGenerator/Errors → benchmarks}/icons/trend-down.png +0 -0
  17. data/{test/TestSuite/ReportGenerator/Errors → benchmarks}/icons/trend-flat.png +0 -0
  18. data/{test/TestSuite/ReportGenerator/Errors → benchmarks}/icons/trend-up.png +0 -0
  19. data/benchmarks/profile.clt +36082 -0
  20. data/benchmarks/profile.html +58182 -0
  21. data/benchmarks/runbench.rb +6 -0
  22. data/{test/TestSuite/ReportGenerator/Errors → benchmarks}/scripts/wz_tooltip.js +0 -0
  23. data/doc/AppConfig.html +85 -37
  24. data/doc/Arguments.html +11 -1
  25. data/doc/CHANGELOG.html +131 -2
  26. data/doc/COPYING.html +11 -1
  27. data/doc/Object.html +12 -3
  28. data/doc/README.html +11 -1
  29. data/doc/RuntimeConfig.html +11 -1
  30. data/doc/String.html +11 -1
  31. data/doc/StringIO.html +11 -1
  32. data/doc/TaskJuggler.html +250 -219
  33. data/doc/TaskJuggler/Account.html +11 -1
  34. data/doc/TaskJuggler/AccountAttribute.html +11 -1
  35. data/doc/TaskJuggler/AccountScenario.html +11 -1
  36. data/doc/TaskJuggler/Allocation.html +11 -1
  37. data/doc/TaskJuggler/AllocationAttribute.html +11 -1
  38. data/doc/TaskJuggler/AttributeBase.html +11 -1
  39. data/doc/TaskJuggler/AttributeDefinition.html +11 -1
  40. data/doc/TaskJuggler/BatchProcessor.html +11 -1
  41. data/doc/TaskJuggler/Booking.html +11 -1
  42. data/doc/TaskJuggler/BookingListAttribute.html +11 -1
  43. data/doc/TaskJuggler/BooleanAttribute.html +11 -1
  44. data/doc/TaskJuggler/CSVFile.html +12 -2
  45. data/doc/TaskJuggler/CellSettingPattern.html +11 -1
  46. data/doc/TaskJuggler/CellSettingPatternList.html +11 -1
  47. data/doc/TaskJuggler/Charge.html +11 -1
  48. data/doc/TaskJuggler/ChargeListAttribute.html +11 -1
  49. data/doc/TaskJuggler/ChargeSet.html +11 -1
  50. data/doc/TaskJuggler/ChargeSetListAttribute.html +11 -1
  51. data/doc/TaskJuggler/CollisionDetector.html +1063 -0
  52. data/doc/TaskJuggler/ColumnListAttribute.html +11 -1
  53. data/doc/TaskJuggler/ColumnTable.html +11 -1
  54. data/doc/TaskJuggler/Daemon.html +11 -1
  55. data/doc/TaskJuggler/{OnShiftCache.html → DataCache.html} +127 -139
  56. data/doc/TaskJuggler/DataCacheEntry.html +711 -0
  57. data/doc/TaskJuggler/DateAttribute.html +11 -1
  58. data/doc/TaskJuggler/DefinitionListAttribute.html +11 -1
  59. data/doc/TaskJuggler/DependencyListAttribute.html +11 -1
  60. data/doc/TaskJuggler/DurationAttribute.html +16 -5
  61. data/doc/TaskJuggler/FileList.html +11 -1
  62. data/doc/TaskJuggler/FileRecord.html +11 -1
  63. data/doc/TaskJuggler/FixnumAttribute.html +19 -9
  64. data/doc/TaskJuggler/FlagListAttribute.html +29 -19
  65. data/doc/TaskJuggler/FloatAttribute.html +23 -13
  66. data/doc/TaskJuggler/FormatListAttribute.html +19 -9
  67. data/doc/TaskJuggler/GanttChart.html +94 -133
  68. data/doc/TaskJuggler/GanttContainer.html +11 -1
  69. data/doc/TaskJuggler/GanttHeader.html +11 -1
  70. data/doc/TaskJuggler/GanttHeaderScaleItem.html +11 -1
  71. data/doc/TaskJuggler/GanttLine.html +11 -1
  72. data/doc/TaskJuggler/GanttLoadStack.html +11 -1
  73. data/doc/TaskJuggler/GanttMilestone.html +11 -1
  74. data/doc/TaskJuggler/GanttRouter.html +247 -596
  75. data/doc/TaskJuggler/GanttTaskBar.html +11 -1
  76. data/doc/TaskJuggler/HTMLDocument.html +11 -1
  77. data/doc/TaskJuggler/HTMLGraphics.html +11 -1
  78. data/doc/TaskJuggler/Interval.html +11 -1
  79. data/doc/TaskJuggler/IntervalListAttribute.html +33 -23
  80. data/doc/TaskJuggler/JobInfo.html +11 -1
  81. data/doc/TaskJuggler/Journal.html +11 -1
  82. data/doc/TaskJuggler/JournalEntry.html +11 -1
  83. data/doc/TaskJuggler/JournalEntryList.html +11 -1
  84. data/doc/TaskJuggler/KeywordArray.html +11 -1
  85. data/doc/TaskJuggler/KeywordDocumentation.html +16 -6
  86. data/doc/TaskJuggler/Limits.html +11 -1
  87. data/doc/TaskJuggler/Limits/Limit.html +11 -1
  88. data/doc/TaskJuggler/LimitsAttribute.html +24 -14
  89. data/doc/TaskJuggler/ListAttributeBase.html +11 -1
  90. data/doc/TaskJuggler/Log.html +11 -1
  91. data/doc/TaskJuggler/LogFile.html +11 -1
  92. data/doc/TaskJuggler/LogicalAttribute.html +11 -1
  93. data/doc/TaskJuggler/LogicalExpression.html +11 -1
  94. data/doc/TaskJuggler/LogicalExpressionAttribute.html +19 -9
  95. data/doc/TaskJuggler/LogicalFlag.html +11 -1
  96. data/doc/TaskJuggler/LogicalFunction.html +11 -1
  97. data/doc/TaskJuggler/LogicalOperation.html +11 -1
  98. data/doc/TaskJuggler/Macro.html +11 -1
  99. data/doc/TaskJuggler/MacroTable.html +11 -1
  100. data/doc/TaskJuggler/ManagerResponsibilities.html +11 -1
  101. data/doc/TaskJuggler/ManagerStatusRecord.html +11 -1
  102. data/doc/TaskJuggler/Message.html +11 -1
  103. data/doc/TaskJuggler/MessageHandler.html +11 -1
  104. data/doc/TaskJuggler/Navigator.html +12 -2
  105. data/doc/TaskJuggler/NavigatorElement.html +11 -1
  106. data/doc/TaskJuggler/NikuProject.html +11 -1
  107. data/doc/TaskJuggler/NikuReport.html +11 -1
  108. data/doc/TaskJuggler/NikuResource.html +11 -1
  109. data/doc/TaskJuggler/NodeListAttribute.html +17 -7
  110. data/doc/TaskJuggler/PlaceHolderCell.html +722 -0
  111. data/doc/TaskJuggler/ProcessIntercom.html +11 -1
  112. data/doc/TaskJuggler/ProcessIntercomIface.html +11 -1
  113. data/doc/TaskJuggler/Project.html +587 -500
  114. data/doc/TaskJuggler/ProjectBroker.html +11 -1
  115. data/doc/TaskJuggler/ProjectBrokerIface.html +11 -1
  116. data/doc/TaskJuggler/ProjectFileParser.html +205 -192
  117. data/doc/TaskJuggler/ProjectFileScanner.html +230 -207
  118. data/doc/TaskJuggler/ProjectRecord.html +11 -1
  119. data/doc/TaskJuggler/ProjectServer.html +11 -1
  120. data/doc/TaskJuggler/ProjectServerIface.html +11 -1
  121. data/doc/TaskJuggler/PropertyAttribute.html +19 -9
  122. data/doc/TaskJuggler/PropertyList.html +95 -83
  123. data/doc/TaskJuggler/PropertySet.html +11 -1
  124. data/doc/TaskJuggler/PropertyTreeNode.html +11 -1
  125. data/doc/TaskJuggler/Query.html +234 -232
  126. data/doc/TaskJuggler/RTFHandlers.html +11 -1
  127. data/doc/TaskJuggler/RTFNavigator.html +11 -1
  128. data/doc/TaskJuggler/RTFQuery.html +11 -1
  129. data/doc/TaskJuggler/RTFReport.html +11 -1
  130. data/doc/TaskJuggler/RTFReportLink.html +11 -1
  131. data/doc/TaskJuggler/RTFWithQuerySupport.html +11 -1
  132. data/doc/TaskJuggler/RealFormat.html +12 -2
  133. data/doc/TaskJuggler/RealFormatAttribute.html +15 -5
  134. data/doc/TaskJuggler/ReferenceAttribute.html +38 -28
  135. data/doc/TaskJuggler/Report.html +96 -113
  136. data/doc/TaskJuggler/ReportBase.html +161 -152
  137. data/doc/TaskJuggler/ReportContext.html +11 -1
  138. data/doc/TaskJuggler/ReportServer.html +59 -48
  139. data/doc/TaskJuggler/ReportServerIface.html +51 -41
  140. data/doc/TaskJuggler/ReportServerRecord.html +11 -1
  141. data/doc/TaskJuggler/ReportServlet.html +11 -1
  142. data/doc/TaskJuggler/ReportTable.html +46 -25
  143. data/doc/TaskJuggler/ReportTableCell.html +296 -275
  144. data/doc/TaskJuggler/ReportTableColumn.html +14 -4
  145. data/doc/TaskJuggler/ReportTableLegend.html +11 -1
  146. data/doc/TaskJuggler/ReportTableLine.html +19 -7
  147. data/doc/TaskJuggler/Resource.html +12 -2
  148. data/doc/TaskJuggler/ResourceListAttribute.html +40 -30
  149. data/doc/TaskJuggler/ResourceListRE.html +11 -1
  150. data/doc/TaskJuggler/ResourceScenario.html +708 -565
  151. data/doc/TaskJuggler/RichText.html +54 -36
  152. data/doc/TaskJuggler/RichTextAttribute.html +31 -21
  153. data/doc/TaskJuggler/RichTextDocument.html +11 -1
  154. data/doc/TaskJuggler/RichTextElement.html +11 -1
  155. data/doc/TaskJuggler/RichTextFunctionExample.html +11 -1
  156. data/doc/TaskJuggler/RichTextFunctionHandler.html +11 -1
  157. data/doc/TaskJuggler/RichTextImage.html +11 -1
  158. data/doc/TaskJuggler/RichTextIntermediate.html +81 -71
  159. data/doc/TaskJuggler/RichTextParser.html +88 -33
  160. data/doc/TaskJuggler/RichTextScanner.html +45 -35
  161. data/doc/TaskJuggler/RichTextSnip.html +11 -1
  162. data/doc/TaskJuggler/RichTextSyntaxRules.html +436 -389
  163. data/doc/TaskJuggler/Scenario.html +11 -1
  164. data/doc/TaskJuggler/ScenarioData.html +11 -1
  165. data/doc/TaskJuggler/ScenarioListAttribute.html +23 -13
  166. data/doc/TaskJuggler/Scoreboard.html +92 -73
  167. data/doc/TaskJuggler/SheetHandlerBase.html +11 -1
  168. data/doc/TaskJuggler/SheetReceiver.html +11 -1
  169. data/doc/TaskJuggler/SheetSender.html +11 -1
  170. data/doc/TaskJuggler/Shift.html +11 -1
  171. data/doc/TaskJuggler/ShiftAssignment.html +11 -1
  172. data/doc/TaskJuggler/ShiftAssignments.html +11 -1
  173. data/doc/TaskJuggler/ShiftAssignmentsAttribute.html +24 -14
  174. data/doc/TaskJuggler/ShiftScenario.html +11 -1
  175. data/doc/TaskJuggler/SimpleQueryExpander.html +11 -1
  176. data/doc/TaskJuggler/SortListAttribute.html +21 -11
  177. data/doc/TaskJuggler/SourceFileInfo.html +11 -1
  178. data/doc/TaskJuggler/StatusSheetReceiver.html +11 -1
  179. data/doc/TaskJuggler/StatusSheetReport.html +11 -1
  180. data/doc/TaskJuggler/StatusSheetSender.html +112 -11
  181. data/doc/TaskJuggler/StringAttribute.html +23 -13
  182. data/doc/TaskJuggler/SymbolAttribute.html +19 -9
  183. data/doc/TaskJuggler/SyntaxReference.html +80 -71
  184. data/doc/TaskJuggler/TOCEntry.html +11 -1
  185. data/doc/TaskJuggler/TSResourceRecord.html +11 -1
  186. data/doc/TaskJuggler/TSTaskRecord.html +11 -1
  187. data/doc/TaskJuggler/TableColumnDefinition.html +11 -1
  188. data/doc/TaskJuggler/TableOfContents.html +11 -1
  189. data/doc/TaskJuggler/TableReport.html +422 -411
  190. data/doc/TaskJuggler/Task.html +11 -1
  191. data/doc/TaskJuggler/TaskDependency.html +11 -1
  192. data/doc/TaskJuggler/TaskListAttribute.html +33 -23
  193. data/doc/TaskJuggler/TaskListRE.html +11 -1
  194. data/doc/TaskJuggler/TaskScenario.html +2007 -1919
  195. data/doc/TaskJuggler/TextFormatter.html +11 -1
  196. data/doc/TaskJuggler/TextParser.html +421 -612
  197. data/doc/TaskJuggler/TextParser/Pattern.html +410 -211
  198. data/doc/TaskJuggler/TextParser/Rule.html +224 -152
  199. data/doc/TaskJuggler/TextParser/StackElement.html +190 -28
  200. data/doc/TaskJuggler/TextParser/State.html +989 -0
  201. data/doc/TaskJuggler/TextParser/StateTransition.html +782 -0
  202. data/doc/TaskJuggler/TextParser/TextParserResultArray.html +25 -14
  203. data/doc/TaskJuggler/TextParser/TokenDoc.html +11 -1
  204. data/doc/TaskJuggler/TextReport.html +11 -1
  205. data/doc/TaskJuggler/TextScanner.html +285 -273
  206. data/doc/TaskJuggler/TextScanner/BufferStreamHandle.html +17 -7
  207. data/doc/TaskJuggler/TextScanner/FileStreamHandle.html +24 -14
  208. data/doc/TaskJuggler/TextScanner/MacroStackEntry.html +11 -1
  209. data/doc/TaskJuggler/TextScanner/StreamHandle.html +64 -52
  210. data/doc/TaskJuggler/TimeSheet.html +11 -1
  211. data/doc/TaskJuggler/TimeSheetReceiver.html +11 -1
  212. data/doc/TaskJuggler/TimeSheetRecord.html +11 -1
  213. data/doc/TaskJuggler/TimeSheetReport.html +11 -1
  214. data/doc/TaskJuggler/TimeSheetSender.html +11 -1
  215. data/doc/TaskJuggler/TimeSheetSummary.html +11 -1
  216. data/doc/TaskJuggler/TimeSheets.html +11 -1
  217. data/doc/TaskJuggler/Tj3AppBase.html +11 -1
  218. data/doc/TaskJuggler/Tj3Client.html +11 -1
  219. data/doc/TaskJuggler/Tj3Daemon.html +11 -1
  220. data/doc/TaskJuggler/Tj3SheetAppBase.html +11 -1
  221. data/doc/TaskJuggler/Tj3SsReceiver.html +11 -1
  222. data/doc/TaskJuggler/Tj3SsSender.html +11 -1
  223. data/doc/TaskJuggler/Tj3TsReceiver.html +11 -1
  224. data/doc/TaskJuggler/Tj3TsSender.html +11 -1
  225. data/doc/TaskJuggler/Tj3TsSummary.html +11 -1
  226. data/doc/TaskJuggler/TjException.html +11 -1
  227. data/doc/TaskJuggler/TjTime.html +474 -324
  228. data/doc/TaskJuggler/TjpExample.html +11 -1
  229. data/doc/TaskJuggler/TjpExportRE.html +11 -1
  230. data/doc/TaskJuggler/TjpSyntaxRules.html +3731 -3662
  231. data/doc/TaskJuggler/URLParameter.html +11 -1
  232. data/doc/TaskJuggler/UserManual.html +11 -1
  233. data/doc/TaskJuggler/VimSyntax.html +11 -1
  234. data/doc/TaskJuggler/WebServer.html +11 -1
  235. data/doc/TaskJuggler/WorkingHours.html +295 -221
  236. data/doc/TaskJuggler/WorkingHoursAttribute.html +11 -1
  237. data/doc/TaskJuggler/XMLBlob.html +11 -1
  238. data/doc/TaskJuggler/XMLComment.html +11 -1
  239. data/doc/TaskJuggler/XMLDocument.html +11 -1
  240. data/doc/TaskJuggler/XMLElement.html +11 -1
  241. data/doc/TaskJuggler/XMLNamedText.html +11 -1
  242. data/doc/TaskJuggler/XMLText.html +11 -1
  243. data/doc/index.html +694 -624
  244. data/doc/lib/AppConfig_rb.html +1 -1
  245. data/doc/lib/Attributes_rb.html +1 -1
  246. data/doc/lib/Booking_rb.html +1 -1
  247. data/doc/lib/DataCache_rb.html +69 -0
  248. data/doc/lib/KeywordDocumentation_rb.html +1 -1
  249. data/doc/lib/ProjectFileParser_rb.html +1 -1
  250. data/doc/lib/ProjectFileScanner_rb.html +1 -1
  251. data/doc/lib/Project_rb.html +1 -1
  252. data/doc/lib/PropertyList_rb.html +1 -1
  253. data/doc/lib/Query_rb.html +1 -1
  254. data/doc/lib/RealFormat_rb.html +1 -1
  255. data/doc/lib/ResourceScenario_rb.html +1 -1
  256. data/doc/lib/Resource_rb.html +1 -1
  257. data/doc/lib/RichTextParser_rb.html +1 -1
  258. data/doc/lib/RichTextScanner_rb.html +1 -1
  259. data/doc/lib/RichTextSyntaxRules_rb.html +1 -1
  260. data/doc/lib/RichText_rb.html +1 -1
  261. data/doc/lib/Scoreboard_rb.html +1 -1
  262. data/doc/lib/StatusSheetSender_rb.html +1 -1
  263. data/doc/lib/SyntaxReference_rb.html +1 -1
  264. data/doc/lib/TaskJuggler_rb.html +1 -1
  265. data/doc/lib/TaskScenario_rb.html +3 -1
  266. data/doc/lib/TextParser/Pattern_rb.html +3 -1
  267. data/doc/lib/TextParser/Rule_rb.html +3 -1
  268. data/doc/lib/TextParser/StackElement_rb.html +3 -1
  269. data/doc/lib/TextParser/State_rb.html +65 -0
  270. data/doc/lib/TextParser_rb.html +1 -1
  271. data/doc/lib/TextScanner_rb.html +1 -1
  272. data/doc/lib/Tj3Config_rb.html +1 -1
  273. data/doc/lib/TjTime_rb.html +1 -1
  274. data/doc/lib/TjpSyntaxRules_rb.html +1 -1
  275. data/doc/lib/WorkingHours_rb.html +3 -1
  276. data/doc/lib/daemon/ReportServer_rb.html +1 -1
  277. data/doc/lib/reports/CSVFile_rb.html +1 -1
  278. data/doc/lib/reports/CollisionDetector_rb.html +67 -0
  279. data/doc/lib/reports/GanttChart_rb.html +1 -1
  280. data/doc/lib/reports/GanttRouter_rb.html +3 -1
  281. data/doc/lib/reports/Navigator_rb.html +1 -1
  282. data/doc/lib/reports/ReportBase_rb.html +1 -1
  283. data/doc/lib/reports/ReportTableCell_rb.html +1 -1
  284. data/doc/lib/reports/ReportTableColumn_rb.html +1 -1
  285. data/doc/lib/reports/ReportTableLine_rb.html +1 -1
  286. data/doc/lib/reports/ReportTable_rb.html +1 -1
  287. data/doc/lib/reports/Report_rb.html +1 -1
  288. data/doc/lib/reports/TableReport_rb.html +1 -1
  289. data/doc/lib/taskjuggler3_rb.html +1 -1
  290. data/examples/tutorial.tjp +1 -2
  291. data/lib/AppConfig.rb +10 -4
  292. data/lib/Attributes.rb +4 -4
  293. data/lib/DataCache.rb +124 -0
  294. data/lib/KeywordDocumentation.rb +5 -5
  295. data/lib/Project.rb +54 -10
  296. data/lib/ProjectFileParser.rb +10 -9
  297. data/lib/ProjectFileScanner.rb +38 -25
  298. data/lib/PropertyList.rb +6 -4
  299. data/lib/Query.rb +0 -8
  300. data/lib/RealFormat.rb +1 -1
  301. data/lib/Resource.rb +1 -1
  302. data/lib/ResourceScenario.rb +96 -31
  303. data/lib/RichText.rb +17 -5
  304. data/lib/RichTextParser.rb +22 -9
  305. data/lib/RichTextScanner.rb +34 -34
  306. data/lib/RichTextSyntaxRules.rb +41 -36
  307. data/lib/Scoreboard.rb +16 -7
  308. data/lib/StatusSheetSender.rb +63 -0
  309. data/lib/SyntaxReference.rb +9 -10
  310. data/lib/TaskJuggler.rb +28 -4
  311. data/lib/TaskScenario.rb +66 -19
  312. data/lib/TextParser.rb +219 -384
  313. data/lib/TextParser/Pattern.rb +168 -49
  314. data/lib/TextParser/Rule.rb +33 -17
  315. data/lib/TextParser/StackElement.rb +42 -2
  316. data/lib/TextParser/State.rb +175 -0
  317. data/lib/TextScanner.rb +19 -15
  318. data/lib/Tj3Config.rb +1 -1
  319. data/lib/TjTime.rb +111 -3
  320. data/lib/TjpSyntaxRules.rb +122 -66
  321. data/lib/WorkingHours.rb +91 -186
  322. data/lib/daemon/ReportServer.rb +3 -2
  323. data/lib/reports/CSVFile.rb +1 -1
  324. data/lib/reports/CollisionDetector.rb +177 -0
  325. data/lib/reports/GanttChart.rb +25 -41
  326. data/lib/reports/GanttRouter.rb +104 -233
  327. data/lib/reports/Navigator.rb +1 -1
  328. data/lib/reports/Report.rb +9 -33
  329. data/lib/reports/ReportBase.rb +0 -1
  330. data/lib/reports/ReportTable.rb +19 -8
  331. data/lib/reports/ReportTableCell.rb +61 -25
  332. data/lib/reports/ReportTableColumn.rb +2 -2
  333. data/lib/reports/ReportTableLine.rb +4 -2
  334. data/lib/reports/TableReport.rb +1 -0
  335. data/lib/taskjuggler3.rb +0 -1
  336. data/manual/Installation +7 -3
  337. data/manual/Intro +12 -10
  338. data/manual/The_TaskJuggler_Syntax +4 -4
  339. data/test/TestSuite/CSV-Reports/celltext-Reference.csv +14 -14
  340. data/test/TestSuite/CSV-Reports/genrefs +1 -1
  341. data/test/TestSuite/CSV-Reports/resourcereport-Reference.csv +4 -4
  342. data/test/TestSuite/CSV-Reports/resourcereport_with_tasks-Reference.csv +22 -22
  343. data/test/TestSuite/CSV-Reports/sortByTree-Reference.csv +14 -14
  344. data/test/TestSuite/CSV-Reports/sortBy_duration.down-Reference.csv +14 -14
  345. data/test/TestSuite/CSV-Reports/sortBy_effort.up-Reference.csv +14 -14
  346. data/test/TestSuite/CSV-Reports/sortBy_plan.start.down-Reference.csv +14 -14
  347. data/test/TestSuite/CSV-Reports/taskreport-Reference.csv +14 -14
  348. data/test/TestSuite/CSV-Reports/taskreport_with_resources-Reference.csv +32 -24
  349. data/test/TestSuite/CSV-Reports/weekly-Reference.csv +13 -0
  350. data/test/TestSuite/CSV-Reports/weekly.tjp +9 -0
  351. data/test/TestSuite/HTML-Reports/css/tjreport.css +7 -2
  352. data/test/TestSuite/HTML-Reports/depArrows.html +839 -830
  353. data/test/TestSuite/HTML-Reports/depArrows.tjp +12 -12
  354. data/test/TestSuite/HTML-Reports/profile.html +37581 -0
  355. data/test/TestSuite/ReportGenerator/Errors/no_report_defined.tjp +7 -0
  356. data/test/TestSuite/ReportGenerator/Errors/rtp_report_recursion.tjp +1 -1
  357. data/test/TestSuite/StatusSheets/TimeSheets/2002-03-01/missing-reports +2 -0
  358. data/test/TestSuite/StatusSheets/run +2 -0
  359. data/test/TestSuite/Syntax/Correct/Booking.tjp +13 -5
  360. data/test/TestSuite/Syntax/Correct/ResourceRoot.tjp +21 -0
  361. data/test/TestSuite/Syntax/Correct/RollupResource.tjp +21 -0
  362. data/test/TestSuite/Syntax/Correct/TaskRoot.tjp +1 -1
  363. data/test/TestSuite/Syntax/Errors/empty.tjp +1 -1
  364. data/test/TestSuite/Syntax/Errors/include_before_project.tjp +2 -0
  365. data/test/TestSuite/Syntax/Errors/no_reduce.tjp +6 -0
  366. data/test/TestSuite/Syntax/Errors/unsupported_token.tjp +1 -1
  367. data/test/TestSuite/TimeSheets/run +1 -1
  368. data/test/test_CSV-Reports.rb +2 -4
  369. data/test/test_CollisionDetector.rb +85 -0
  370. data/test/test_Project.rb +2 -2
  371. data/test/test_ProjectFileScanner.rb +73 -31
  372. data/test/test_Query.rb +2 -2
  373. data/test/test_ReportGenerator.rb +1 -1
  374. data/test/test_RichText.rb +4 -4
  375. data/test/test_WorkingHours.rb +150 -11
  376. metadata +75 -67
  377. data/test/TestSuite/ReportGenerator/Errors/css/tjreport.css +0 -407
  378. data/test/TestSuite/ReportGenerator/Errors/rtp_report_recursion.html +0 -26
  379. data/test/TestSuite/Scheduler/Correct/Allocate.html +0 -3210
  380. data/test/TestSuite/Scheduler/Correct/Container.html +0 -349
  381. data/test/TestSuite/Scheduler/Correct/Limits.html +0 -4964
  382. data/test/TestSuite/Scheduler/Correct/Shift.html +0 -1719
  383. data/test/TestSuite/Scheduler/Correct/Shift2.html +0 -476
  384. data/test/TestSuite/Scheduler/Correct/css/tjmanual.css +0 -66
  385. data/test/TestSuite/Scheduler/Correct/icons/details.png +0 -0
  386. data/test/TestSuite/Scheduler/Correct/icons/flag-green.png +0 -0
  387. data/test/TestSuite/Scheduler/Correct/icons/flag-red.png +0 -0
  388. data/test/TestSuite/Scheduler/Correct/icons/flag-yellow.png +0 -0
  389. data/test/TestSuite/Scheduler/Correct/icons/resource.png +0 -0
  390. data/test/TestSuite/Scheduler/Correct/icons/resourcegroup.png +0 -0
  391. data/test/TestSuite/Scheduler/Correct/icons/task.png +0 -0
  392. data/test/TestSuite/Scheduler/Correct/icons/taskgroup.png +0 -0
  393. data/test/TestSuite/Scheduler/Correct/icons/trend-down.png +0 -0
  394. data/test/TestSuite/Scheduler/Correct/icons/trend-flat.png +0 -0
  395. data/test/TestSuite/Scheduler/Correct/icons/trend-up.png +0 -0
  396. data/test/TestSuite/Scheduler/Correct/scripts/wz_tooltip.js +0 -1301
  397. data/test/TestSuite/Scheduler/Errors/css/tjmanual.css +0 -66
  398. data/test/TestSuite/Scheduler/Errors/css/tjreport.css +0 -407
  399. data/test/TestSuite/Scheduler/Errors/icons/details.png +0 -0
  400. data/test/TestSuite/Scheduler/Errors/icons/flag-green.png +0 -0
  401. data/test/TestSuite/Scheduler/Errors/icons/flag-red.png +0 -0
  402. data/test/TestSuite/Scheduler/Errors/icons/flag-yellow.png +0 -0
  403. data/test/TestSuite/Scheduler/Errors/icons/resource.png +0 -0
  404. data/test/TestSuite/Scheduler/Errors/icons/resourcegroup.png +0 -0
  405. data/test/TestSuite/Scheduler/Errors/icons/task.png +0 -0
  406. data/test/TestSuite/Scheduler/Errors/icons/taskgroup.png +0 -0
  407. data/test/TestSuite/Scheduler/Errors/icons/trend-down.png +0 -0
  408. data/test/TestSuite/Scheduler/Errors/icons/trend-flat.png +0 -0
  409. data/test/TestSuite/Scheduler/Errors/icons/trend-up.png +0 -0
  410. data/test/TestSuite/Scheduler/Errors/scripts/wz_tooltip.js +0 -1301
  411. data/test/TestSuite/StatusSheets/resrep.tji +0 -7
  412. data/test/TestSuite/StatusSheets/tj3d.log +0 -312
  413. data/test/TestSuite/Syntax/Correct/Managers.html +0 -263
  414. data/test/TestSuite/TimeSheets/acceptable_intervals +0 -1
  415. data/test/TestSuite/TimeSheets/statussheets.log +0 -1
@@ -153,12 +153,18 @@
153
153
 
154
154
  <li><a href="../TaskJuggler/ChargeSetListAttribute.html">TaskJuggler::ChargeSetListAttribute</a></li>
155
155
 
156
+ <li><a href="../TaskJuggler/CollisionDetector.html">TaskJuggler::CollisionDetector</a></li>
157
+
156
158
  <li><a href="../TaskJuggler/ColumnListAttribute.html">TaskJuggler::ColumnListAttribute</a></li>
157
159
 
158
160
  <li><a href="../TaskJuggler/ColumnTable.html">TaskJuggler::ColumnTable</a></li>
159
161
 
160
162
  <li><a href="../TaskJuggler/Daemon.html">TaskJuggler::Daemon</a></li>
161
163
 
164
+ <li><a href="../TaskJuggler/DataCache.html">TaskJuggler::DataCache</a></li>
165
+
166
+ <li><a href="../TaskJuggler/DataCacheEntry.html">TaskJuggler::DataCacheEntry</a></li>
167
+
162
168
  <li><a href="../TaskJuggler/DateAttribute.html">TaskJuggler::DateAttribute</a></li>
163
169
 
164
170
  <li><a href="../TaskJuggler/DefinitionListAttribute.html">TaskJuggler::DefinitionListAttribute</a></li>
@@ -265,7 +271,7 @@
265
271
 
266
272
  <li><a href="../TaskJuggler/NodeListAttribute.html">TaskJuggler::NodeListAttribute</a></li>
267
273
 
268
- <li><a href="../TaskJuggler/OnShiftCache.html">TaskJuggler::OnShiftCache</a></li>
274
+ <li><a href="../TaskJuggler/PlaceHolderCell.html">TaskJuggler::PlaceHolderCell</a></li>
269
275
 
270
276
  <li><a href="../TaskJuggler/ProcessIntercom.html">TaskJuggler::ProcessIntercom</a></li>
271
277
 
@@ -445,6 +451,10 @@
445
451
 
446
452
  <li><a href="../TaskJuggler/TextParser/StackElement.html">TaskJuggler::TextParser::StackElement</a></li>
447
453
 
454
+ <li><a href="../TaskJuggler/TextParser/State.html">TaskJuggler::TextParser::State</a></li>
455
+
456
+ <li><a href="../TaskJuggler/TextParser/StateTransition.html">TaskJuggler::TextParser::StateTransition</a></li>
457
+
448
458
  <li><a href="../TaskJuggler/TextParser/TextParserResultArray.html">TaskJuggler::TextParser::TextParserResultArray</a></li>
449
459
 
450
460
  <li><a href="../TaskJuggler/TextParser/TokenDoc.html">TaskJuggler::TextParser::TokenDoc</a></li>
@@ -149,12 +149,18 @@
149
149
 
150
150
  <li><a href="../TaskJuggler/ChargeSetListAttribute.html">TaskJuggler::ChargeSetListAttribute</a></li>
151
151
 
152
+ <li><a href="../TaskJuggler/CollisionDetector.html">TaskJuggler::CollisionDetector</a></li>
153
+
152
154
  <li><a href="../TaskJuggler/ColumnListAttribute.html">TaskJuggler::ColumnListAttribute</a></li>
153
155
 
154
156
  <li><a href="../TaskJuggler/ColumnTable.html">TaskJuggler::ColumnTable</a></li>
155
157
 
156
158
  <li><a href="../TaskJuggler/Daemon.html">TaskJuggler::Daemon</a></li>
157
159
 
160
+ <li><a href="../TaskJuggler/DataCache.html">TaskJuggler::DataCache</a></li>
161
+
162
+ <li><a href="../TaskJuggler/DataCacheEntry.html">TaskJuggler::DataCacheEntry</a></li>
163
+
158
164
  <li><a href="../TaskJuggler/DateAttribute.html">TaskJuggler::DateAttribute</a></li>
159
165
 
160
166
  <li><a href="../TaskJuggler/DefinitionListAttribute.html">TaskJuggler::DefinitionListAttribute</a></li>
@@ -261,7 +267,7 @@
261
267
 
262
268
  <li><a href="../TaskJuggler/NodeListAttribute.html">TaskJuggler::NodeListAttribute</a></li>
263
269
 
264
- <li><a href="../TaskJuggler/OnShiftCache.html">TaskJuggler::OnShiftCache</a></li>
270
+ <li><a href="../TaskJuggler/PlaceHolderCell.html">TaskJuggler::PlaceHolderCell</a></li>
265
271
 
266
272
  <li><a href="../TaskJuggler/ProcessIntercom.html">TaskJuggler::ProcessIntercom</a></li>
267
273
 
@@ -441,6 +447,10 @@
441
447
 
442
448
  <li><a href="../TaskJuggler/TextParser/StackElement.html">TaskJuggler::TextParser::StackElement</a></li>
443
449
 
450
+ <li><a href="../TaskJuggler/TextParser/State.html">TaskJuggler::TextParser::State</a></li>
451
+
452
+ <li><a href="../TaskJuggler/TextParser/StateTransition.html">TaskJuggler::TextParser::StateTransition</a></li>
453
+
444
454
  <li><a href="../TaskJuggler/TextParser/TextParserResultArray.html">TaskJuggler::TextParser::TextParserResultArray</a></li>
445
455
 
446
456
  <li><a href="../TaskJuggler/TextParser/TokenDoc.html">TaskJuggler::TextParser::TokenDoc</a></li>
@@ -149,12 +149,18 @@
149
149
 
150
150
  <li><a href="../TaskJuggler/ChargeSetListAttribute.html">TaskJuggler::ChargeSetListAttribute</a></li>
151
151
 
152
+ <li><a href="../TaskJuggler/CollisionDetector.html">TaskJuggler::CollisionDetector</a></li>
153
+
152
154
  <li><a href="../TaskJuggler/ColumnListAttribute.html">TaskJuggler::ColumnListAttribute</a></li>
153
155
 
154
156
  <li><a href="../TaskJuggler/ColumnTable.html">TaskJuggler::ColumnTable</a></li>
155
157
 
156
158
  <li><a href="../TaskJuggler/Daemon.html">TaskJuggler::Daemon</a></li>
157
159
 
160
+ <li><a href="../TaskJuggler/DataCache.html">TaskJuggler::DataCache</a></li>
161
+
162
+ <li><a href="../TaskJuggler/DataCacheEntry.html">TaskJuggler::DataCacheEntry</a></li>
163
+
158
164
  <li><a href="../TaskJuggler/DateAttribute.html">TaskJuggler::DateAttribute</a></li>
159
165
 
160
166
  <li><a href="../TaskJuggler/DefinitionListAttribute.html">TaskJuggler::DefinitionListAttribute</a></li>
@@ -261,7 +267,7 @@
261
267
 
262
268
  <li><a href="../TaskJuggler/NodeListAttribute.html">TaskJuggler::NodeListAttribute</a></li>
263
269
 
264
- <li><a href="../TaskJuggler/OnShiftCache.html">TaskJuggler::OnShiftCache</a></li>
270
+ <li><a href="../TaskJuggler/PlaceHolderCell.html">TaskJuggler::PlaceHolderCell</a></li>
265
271
 
266
272
  <li><a href="../TaskJuggler/ProcessIntercom.html">TaskJuggler::ProcessIntercom</a></li>
267
273
 
@@ -441,6 +447,10 @@
441
447
 
442
448
  <li><a href="../TaskJuggler/TextParser/StackElement.html">TaskJuggler::TextParser::StackElement</a></li>
443
449
 
450
+ <li><a href="../TaskJuggler/TextParser/State.html">TaskJuggler::TextParser::State</a></li>
451
+
452
+ <li><a href="../TaskJuggler/TextParser/StateTransition.html">TaskJuggler::TextParser::StateTransition</a></li>
453
+
444
454
  <li><a href="../TaskJuggler/TextParser/TextParserResultArray.html">TaskJuggler::TextParser::TextParserResultArray</a></li>
445
455
 
446
456
  <li><a href="../TaskJuggler/TextParser/TokenDoc.html">TaskJuggler::TextParser::TokenDoc</a></li>
@@ -149,12 +149,18 @@
149
149
 
150
150
  <li><a href="../TaskJuggler/ChargeSetListAttribute.html">TaskJuggler::ChargeSetListAttribute</a></li>
151
151
 
152
+ <li><a href="../TaskJuggler/CollisionDetector.html">TaskJuggler::CollisionDetector</a></li>
153
+
152
154
  <li><a href="../TaskJuggler/ColumnListAttribute.html">TaskJuggler::ColumnListAttribute</a></li>
153
155
 
154
156
  <li><a href="../TaskJuggler/ColumnTable.html">TaskJuggler::ColumnTable</a></li>
155
157
 
156
158
  <li><a href="../TaskJuggler/Daemon.html">TaskJuggler::Daemon</a></li>
157
159
 
160
+ <li><a href="../TaskJuggler/DataCache.html">TaskJuggler::DataCache</a></li>
161
+
162
+ <li><a href="../TaskJuggler/DataCacheEntry.html">TaskJuggler::DataCacheEntry</a></li>
163
+
158
164
  <li><a href="../TaskJuggler/DateAttribute.html">TaskJuggler::DateAttribute</a></li>
159
165
 
160
166
  <li><a href="../TaskJuggler/DefinitionListAttribute.html">TaskJuggler::DefinitionListAttribute</a></li>
@@ -261,7 +267,7 @@
261
267
 
262
268
  <li><a href="../TaskJuggler/NodeListAttribute.html">TaskJuggler::NodeListAttribute</a></li>
263
269
 
264
- <li><a href="../TaskJuggler/OnShiftCache.html">TaskJuggler::OnShiftCache</a></li>
270
+ <li><a href="../TaskJuggler/PlaceHolderCell.html">TaskJuggler::PlaceHolderCell</a></li>
265
271
 
266
272
  <li><a href="../TaskJuggler/ProcessIntercom.html">TaskJuggler::ProcessIntercom</a></li>
267
273
 
@@ -441,6 +447,10 @@
441
447
 
442
448
  <li><a href="../TaskJuggler/TextParser/StackElement.html">TaskJuggler::TextParser::StackElement</a></li>
443
449
 
450
+ <li><a href="../TaskJuggler/TextParser/State.html">TaskJuggler::TextParser::State</a></li>
451
+
452
+ <li><a href="../TaskJuggler/TextParser/StateTransition.html">TaskJuggler::TextParser::StateTransition</a></li>
453
+
444
454
  <li><a href="../TaskJuggler/TextParser/TextParserResultArray.html">TaskJuggler::TextParser::TextParserResultArray</a></li>
445
455
 
446
456
  <li><a href="../TaskJuggler/TextParser/TokenDoc.html">TaskJuggler::TextParser::TokenDoc</a></li>
@@ -155,12 +155,18 @@
155
155
 
156
156
  <li><a href="../TaskJuggler/ChargeSetListAttribute.html">TaskJuggler::ChargeSetListAttribute</a></li>
157
157
 
158
+ <li><a href="../TaskJuggler/CollisionDetector.html">TaskJuggler::CollisionDetector</a></li>
159
+
158
160
  <li><a href="../TaskJuggler/ColumnListAttribute.html">TaskJuggler::ColumnListAttribute</a></li>
159
161
 
160
162
  <li><a href="../TaskJuggler/ColumnTable.html">TaskJuggler::ColumnTable</a></li>
161
163
 
162
164
  <li><a href="../TaskJuggler/Daemon.html">TaskJuggler::Daemon</a></li>
163
165
 
166
+ <li><a href="../TaskJuggler/DataCache.html">TaskJuggler::DataCache</a></li>
167
+
168
+ <li><a href="../TaskJuggler/DataCacheEntry.html">TaskJuggler::DataCacheEntry</a></li>
169
+
164
170
  <li><a href="../TaskJuggler/DateAttribute.html">TaskJuggler::DateAttribute</a></li>
165
171
 
166
172
  <li><a href="../TaskJuggler/DefinitionListAttribute.html">TaskJuggler::DefinitionListAttribute</a></li>
@@ -267,7 +273,7 @@
267
273
 
268
274
  <li><a href="../TaskJuggler/NodeListAttribute.html">TaskJuggler::NodeListAttribute</a></li>
269
275
 
270
- <li><a href="../TaskJuggler/OnShiftCache.html">TaskJuggler::OnShiftCache</a></li>
276
+ <li><a href="../TaskJuggler/PlaceHolderCell.html">TaskJuggler::PlaceHolderCell</a></li>
271
277
 
272
278
  <li><a href="../TaskJuggler/ProcessIntercom.html">TaskJuggler::ProcessIntercom</a></li>
273
279
 
@@ -447,6 +453,10 @@
447
453
 
448
454
  <li><a href="../TaskJuggler/TextParser/StackElement.html">TaskJuggler::TextParser::StackElement</a></li>
449
455
 
456
+ <li><a href="../TaskJuggler/TextParser/State.html">TaskJuggler::TextParser::State</a></li>
457
+
458
+ <li><a href="../TaskJuggler/TextParser/StateTransition.html">TaskJuggler::TextParser::StateTransition</a></li>
459
+
450
460
  <li><a href="../TaskJuggler/TextParser/TextParserResultArray.html">TaskJuggler::TextParser::TextParserResultArray</a></li>
451
461
 
452
462
  <li><a href="../TaskJuggler/TextParser/TokenDoc.html">TaskJuggler::TextParser::TokenDoc</a></li>
@@ -201,12 +201,18 @@
201
201
 
202
202
  <li><a href="../TaskJuggler/ChargeSetListAttribute.html">TaskJuggler::ChargeSetListAttribute</a></li>
203
203
 
204
+ <li><a href="../TaskJuggler/CollisionDetector.html">TaskJuggler::CollisionDetector</a></li>
205
+
204
206
  <li><a href="../TaskJuggler/ColumnListAttribute.html">TaskJuggler::ColumnListAttribute</a></li>
205
207
 
206
208
  <li><a href="../TaskJuggler/ColumnTable.html">TaskJuggler::ColumnTable</a></li>
207
209
 
208
210
  <li><a href="../TaskJuggler/Daemon.html">TaskJuggler::Daemon</a></li>
209
211
 
212
+ <li><a href="../TaskJuggler/DataCache.html">TaskJuggler::DataCache</a></li>
213
+
214
+ <li><a href="../TaskJuggler/DataCacheEntry.html">TaskJuggler::DataCacheEntry</a></li>
215
+
210
216
  <li><a href="../TaskJuggler/DateAttribute.html">TaskJuggler::DateAttribute</a></li>
211
217
 
212
218
  <li><a href="../TaskJuggler/DefinitionListAttribute.html">TaskJuggler::DefinitionListAttribute</a></li>
@@ -313,7 +319,7 @@
313
319
 
314
320
  <li><a href="../TaskJuggler/NodeListAttribute.html">TaskJuggler::NodeListAttribute</a></li>
315
321
 
316
- <li><a href="../TaskJuggler/OnShiftCache.html">TaskJuggler::OnShiftCache</a></li>
322
+ <li><a href="../TaskJuggler/PlaceHolderCell.html">TaskJuggler::PlaceHolderCell</a></li>
317
323
 
318
324
  <li><a href="../TaskJuggler/ProcessIntercom.html">TaskJuggler::ProcessIntercom</a></li>
319
325
 
@@ -493,6 +499,10 @@
493
499
 
494
500
  <li><a href="../TaskJuggler/TextParser/StackElement.html">TaskJuggler::TextParser::StackElement</a></li>
495
501
 
502
+ <li><a href="../TaskJuggler/TextParser/State.html">TaskJuggler::TextParser::State</a></li>
503
+
504
+ <li><a href="../TaskJuggler/TextParser/StateTransition.html">TaskJuggler::TextParser::StateTransition</a></li>
505
+
496
506
  <li><a href="../TaskJuggler/TextParser/TextParserResultArray.html">TaskJuggler::TextParser::TextParserResultArray</a></li>
497
507
 
498
508
  <li><a href="../TaskJuggler/TextParser/TokenDoc.html">TaskJuggler::TextParser::TokenDoc</a></li>
@@ -1522,13 +1532,13 @@ error. This could happen after scheduling errors.
1522
1532
  <div class="method-source-code"
1523
1533
  id="check-ell-ext-source">
1524
1534
  <pre>
1525
- <span class="ruby-comment cmt"># File lib/reports/TableReport.rb, line 1010</span>
1526
- 1010: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">checkCellText</span>(<span class="ruby-identifier">cell</span>)
1527
- 1011: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">text</span>
1528
- 1012: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">text</span> = <span class="ruby-value str">'&lt;Error&gt;'</span>
1529
- 1013: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">fontColor</span> = <span class="ruby-value str">'#FF0000'</span>
1530
- 1014: <span class="ruby-keyword kw">end</span>
1531
- 1015: <span class="ruby-keyword kw">end</span></pre>
1535
+ <span class="ruby-comment cmt"># File lib/reports/TableReport.rb, line 1011</span>
1536
+ 1011: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">checkCellText</span>(<span class="ruby-identifier">cell</span>)
1537
+ 1012: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">text</span>
1538
+ 1013: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">text</span> = <span class="ruby-value str">'&lt;Error&gt;'</span>
1539
+ 1014: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">fontColor</span> = <span class="ruby-value str">'#FF0000'</span>
1540
+ 1015: <span class="ruby-keyword kw">end</span>
1541
+ 1016: <span class="ruby-keyword kw">end</span></pre>
1532
1542
  </div>
1533
1543
 
1534
1544
  </div>
@@ -1667,121 +1677,121 @@ next cell.
1667
1677
  <div class="method-source-code"
1668
1678
  id="gen-al-hart-esource-ell-source">
1669
1679
  <pre>
1670
- <span class="ruby-comment cmt"># File lib/reports/TableReport.rb, line 825</span>
1671
- 825: <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>,
1672
- 826: <span class="ruby-identifier">sameTimeNextFunc</span>)
1673
- 827: <span class="ruby-comment cmt"># Find out if we have an enclosing task scope.</span>
1674
- 828: <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>)
1675
- 829: <span class="ruby-identifier">task</span> = <span class="ruby-identifier">line</span>.<span class="ruby-identifier">scopeLine</span>.<span class="ruby-identifier">property</span>
1676
- 830: <span class="ruby-comment cmt"># Get the interval of the task. In case a date is invalid due to a</span>
1677
- 831: <span class="ruby-comment cmt"># scheduling problem, we use the full project interval.</span>
1678
- 832: <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>]
1679
- 833: <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>]
1680
- 834: <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>,
1681
- 835: <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>)
1682
- 836: <span class="ruby-keyword kw">else</span>
1683
- 837: <span class="ruby-identifier">task</span> = <span class="ruby-keyword kw">nil</span>
1684
- 838: <span class="ruby-keyword kw">end</span>
1685
- 839:
1686
- 840: <span class="ruby-identifier">firstCell</span> = <span class="ruby-keyword kw">nil</span>
1687
- 841: <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>
1688
- 842: <span class="ruby-comment cmt"># We modify the start and end dates to match the cell boundaries. So</span>
1689
- 843: <span class="ruby-comment cmt"># we need to make sure we don't modify the original Query but our own</span>
1690
- 844: <span class="ruby-comment cmt"># copies.</span>
1691
- 845: <span class="ruby-identifier">query</span> = <span class="ruby-identifier">origQuery</span>.<span class="ruby-identifier">dup</span>
1692
- 846:
1693
- 847: <span class="ruby-comment cmt"># Create a new cell</span>
1694
- 848: <span class="ruby-identifier">cell</span> = <span class="ruby-identifier">newCell</span>(<span class="ruby-identifier">query</span>, <span class="ruby-identifier">line</span>)
1695
- 849:
1696
- 850: <span class="ruby-comment cmt"># call TjTime::sameTimeNext... function</span>
1697
- 851: <span class="ruby-identifier">nextT</span> = <span class="ruby-identifier">t</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">sameTimeNextFunc</span>)
1698
- 852: <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>)
1699
- 853: <span class="ruby-comment cmt"># Get work load for all tasks.</span>
1700
- 854: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">scopeProperty</span> = <span class="ruby-keyword kw">nil</span>
1701
- 855: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">attributeId</span> = <span class="ruby-value str">'effort'</span>
1702
- 856: <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>)
1703
- 857: <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>
1704
- 858: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">process</span>
1705
- 859: <span class="ruby-identifier">workLoad</span> = <span class="ruby-identifier">query</span>.<span class="ruby-identifier">to_num</span>
1706
- 860: <span class="ruby-identifier">scaledWorkLoad</span> = <span class="ruby-identifier">query</span>.<span class="ruby-identifier">to_s</span>
1707
- 861: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">task</span>
1708
- 862: <span class="ruby-comment cmt"># Get work load for the particular task.</span>
1709
- 863: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">scopeProperty</span> = <span class="ruby-identifier">task</span>
1710
- 864: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">process</span>
1711
- 865: <span class="ruby-identifier">workLoadTask</span> = <span class="ruby-identifier">query</span>.<span class="ruby-identifier">to_num</span>
1712
- 866: <span class="ruby-identifier">scaledWorkLoad</span> = <span class="ruby-identifier">query</span>.<span class="ruby-identifier">to_s</span>
1713
- 867: <span class="ruby-keyword kw">else</span>
1714
- 868: <span class="ruby-identifier">workLoadTask</span> = <span class="ruby-value">0.0</span>
1715
- 869: <span class="ruby-keyword kw">end</span>
1716
- 870: <span class="ruby-comment cmt"># Get unassigned work load.</span>
1717
- 871: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">attributeId</span> = <span class="ruby-value str">'freework'</span>
1718
- 872: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">process</span>
1719
- 873: <span class="ruby-identifier">freeLoad</span> = <span class="ruby-identifier">query</span>.<span class="ruby-identifier">to_num</span>
1720
- 874: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">content</span>
1721
- 875: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'empty'</span>
1722
- 876: <span class="ruby-comment cmt"># We only generate cells will different background colors.</span>
1723
- 877: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'load'</span>
1724
- 878: <span class="ruby-comment cmt"># Report the workload of the resource in this time interval.</span>
1725
- 879: <span class="ruby-comment cmt"># To increase readability, we don't show 0.0 values.</span>
1726
- 880: <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>
1727
- 881: <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>
1728
- 882: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">text</span> = <span class="ruby-identifier">scaledWorkLoad</span>
1729
- 883: <span class="ruby-keyword kw">end</span>
1730
- 884: <span class="ruby-keyword kw">else</span>
1731
- 885: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Unknown column content #{column.content}&quot;</span>
1732
- 886: <span class="ruby-keyword kw">end</span>
1733
- 887:
1734
- 888: <span class="ruby-comment cmt"># Set the tooltip for the cell. We might delete it again.</span>
1735
- 889: <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>
1736
- 890: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">showTooltipHint</span> = <span class="ruby-keyword kw">false</span>
1737
- 891:
1738
- 892: <span class="ruby-comment cmt"># Determine cell category (mostly the background color)</span>
1739
- 893: <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>
1740
- 894: <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>)
1741
- 895: <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>
1742
- 896: <span class="ruby-value str">'busy'</span>
1743
- 897: <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>
1744
- 898: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">tooltip</span> = <span class="ruby-keyword kw">nil</span>
1745
- 899: <span class="ruby-value str">'offduty'</span>
1746
- 900: <span class="ruby-keyword kw">else</span>
1747
- 901: <span class="ruby-value str">'loaded'</span>
1748
- 902: <span class="ruby-keyword kw">end</span>
1749
- 903: <span class="ruby-keyword kw">else</span>
1750
- 904: <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>
1751
- 905: <span class="ruby-value str">'free'</span>
1752
- 906: <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>
1753
- 907: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">tooltip</span> = <span class="ruby-keyword kw">nil</span>
1754
- 908: <span class="ruby-value str">'offduty'</span>
1755
- 909: <span class="ruby-keyword kw">else</span>
1756
- 910: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">tooltip</span> = <span class="ruby-keyword kw">nil</span>
1757
- 911: <span class="ruby-value str">'resourcecell'</span>
1758
- 912: <span class="ruby-keyword kw">end</span>
1759
- 913: <span class="ruby-keyword kw">end</span>
1760
- 914: <span class="ruby-keyword kw">else</span>
1761
- 915: <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>
1762
- 916: <span class="ruby-value str">'busy'</span>
1763
- 917: <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>
1764
- 918: <span class="ruby-value str">'loaded'</span>
1765
- 919: <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>
1766
- 920: <span class="ruby-value str">'free'</span>
1767
- 921: <span class="ruby-keyword kw">else</span>
1768
- 922: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">tooltip</span> = <span class="ruby-keyword kw">nil</span>
1769
- 923: <span class="ruby-value str">'offduty'</span>
1770
- 924: <span class="ruby-keyword kw">end</span>
1771
- 925: <span class="ruby-keyword kw">end</span>
1772
- 926: <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>
1773
- 927:
1774
- 928: <span class="ruby-identifier">tryCellMerging</span>(<span class="ruby-identifier">cell</span>, <span class="ruby-identifier">line</span>, <span class="ruby-identifier">firstCell</span>)
1775
- 929:
1776
- 930: <span class="ruby-identifier">t</span> = <span class="ruby-identifier">nextT</span>
1777
- 931: <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>
1778
- 932: <span class="ruby-keyword kw">end</span>
1779
- 933:
1780
- 934: <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>)
1781
- 935: <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>)
1782
- 936: <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>)
1783
- 937: <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>)
1784
- 938: <span class="ruby-keyword kw">end</span></pre>
1680
+ <span class="ruby-comment cmt"># File lib/reports/TableReport.rb, line 826</span>
1681
+ 826: <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>,
1682
+ 827: <span class="ruby-identifier">sameTimeNextFunc</span>)
1683
+ 828: <span class="ruby-comment cmt"># Find out if we have an enclosing task scope.</span>
1684
+ 829: <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>)
1685
+ 830: <span class="ruby-identifier">task</span> = <span class="ruby-identifier">line</span>.<span class="ruby-identifier">scopeLine</span>.<span class="ruby-identifier">property</span>
1686
+ 831: <span class="ruby-comment cmt"># Get the interval of the task. In case a date is invalid due to a</span>
1687
+ 832: <span class="ruby-comment cmt"># scheduling problem, we use the full project interval.</span>
1688
+ 833: <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>]
1689
+ 834: <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>]
1690
+ 835: <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>,
1691
+ 836: <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>)
1692
+ 837: <span class="ruby-keyword kw">else</span>
1693
+ 838: <span class="ruby-identifier">task</span> = <span class="ruby-keyword kw">nil</span>
1694
+ 839: <span class="ruby-keyword kw">end</span>
1695
+ 840:
1696
+ 841: <span class="ruby-identifier">firstCell</span> = <span class="ruby-keyword kw">nil</span>
1697
+ 842: <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>
1698
+ 843: <span class="ruby-comment cmt"># We modify the start and end dates to match the cell boundaries. So</span>
1699
+ 844: <span class="ruby-comment cmt"># we need to make sure we don't modify the original Query but our own</span>
1700
+ 845: <span class="ruby-comment cmt"># copies.</span>
1701
+ 846: <span class="ruby-identifier">query</span> = <span class="ruby-identifier">origQuery</span>.<span class="ruby-identifier">dup</span>
1702
+ 847:
1703
+ 848: <span class="ruby-comment cmt"># Create a new cell</span>
1704
+ 849: <span class="ruby-identifier">cell</span> = <span class="ruby-identifier">newCell</span>(<span class="ruby-identifier">query</span>, <span class="ruby-identifier">line</span>)
1705
+ 850:
1706
+ 851: <span class="ruby-comment cmt"># call TjTime::sameTimeNext... function</span>
1707
+ 852: <span class="ruby-identifier">nextT</span> = <span class="ruby-identifier">t</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">sameTimeNextFunc</span>)
1708
+ 853: <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>)
1709
+ 854: <span class="ruby-comment cmt"># Get work load for all tasks.</span>
1710
+ 855: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">scopeProperty</span> = <span class="ruby-keyword kw">nil</span>
1711
+ 856: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">attributeId</span> = <span class="ruby-value str">'effort'</span>
1712
+ 857: <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>)
1713
+ 858: <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>
1714
+ 859: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">process</span>
1715
+ 860: <span class="ruby-identifier">workLoad</span> = <span class="ruby-identifier">query</span>.<span class="ruby-identifier">to_num</span>
1716
+ 861: <span class="ruby-identifier">scaledWorkLoad</span> = <span class="ruby-identifier">query</span>.<span class="ruby-identifier">to_s</span>
1717
+ 862: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">task</span>
1718
+ 863: <span class="ruby-comment cmt"># Get work load for the particular task.</span>
1719
+ 864: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">scopeProperty</span> = <span class="ruby-identifier">task</span>
1720
+ 865: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">process</span>
1721
+ 866: <span class="ruby-identifier">workLoadTask</span> = <span class="ruby-identifier">query</span>.<span class="ruby-identifier">to_num</span>
1722
+ 867: <span class="ruby-identifier">scaledWorkLoad</span> = <span class="ruby-identifier">query</span>.<span class="ruby-identifier">to_s</span>
1723
+ 868: <span class="ruby-keyword kw">else</span>
1724
+ 869: <span class="ruby-identifier">workLoadTask</span> = <span class="ruby-value">0.0</span>
1725
+ 870: <span class="ruby-keyword kw">end</span>
1726
+ 871: <span class="ruby-comment cmt"># Get unassigned work load.</span>
1727
+ 872: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">attributeId</span> = <span class="ruby-value str">'freework'</span>
1728
+ 873: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">process</span>
1729
+ 874: <span class="ruby-identifier">freeLoad</span> = <span class="ruby-identifier">query</span>.<span class="ruby-identifier">to_num</span>
1730
+ 875: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">content</span>
1731
+ 876: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'empty'</span>
1732
+ 877: <span class="ruby-comment cmt"># We only generate cells will different background colors.</span>
1733
+ 878: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'load'</span>
1734
+ 879: <span class="ruby-comment cmt"># Report the workload of the resource in this time interval.</span>
1735
+ 880: <span class="ruby-comment cmt"># To increase readability, we don't show 0.0 values.</span>
1736
+ 881: <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>
1737
+ 882: <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>
1738
+ 883: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">text</span> = <span class="ruby-identifier">scaledWorkLoad</span>
1739
+ 884: <span class="ruby-keyword kw">end</span>
1740
+ 885: <span class="ruby-keyword kw">else</span>
1741
+ 886: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Unknown column content #{column.content}&quot;</span>
1742
+ 887: <span class="ruby-keyword kw">end</span>
1743
+ 888:
1744
+ 889: <span class="ruby-comment cmt"># Set the tooltip for the cell. We might delete it again.</span>
1745
+ 890: <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>
1746
+ 891: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">showTooltipHint</span> = <span class="ruby-keyword kw">false</span>
1747
+ 892:
1748
+ 893: <span class="ruby-comment cmt"># Determine cell category (mostly the background color)</span>
1749
+ 894: <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>
1750
+ 895: <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>)
1751
+ 896: <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>
1752
+ 897: <span class="ruby-value str">'busy'</span>
1753
+ 898: <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>
1754
+ 899: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">tooltip</span> = <span class="ruby-keyword kw">nil</span>
1755
+ 900: <span class="ruby-value str">'offduty'</span>
1756
+ 901: <span class="ruby-keyword kw">else</span>
1757
+ 902: <span class="ruby-value str">'loaded'</span>
1758
+ 903: <span class="ruby-keyword kw">end</span>
1759
+ 904: <span class="ruby-keyword kw">else</span>
1760
+ 905: <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>
1761
+ 906: <span class="ruby-value str">'free'</span>
1762
+ 907: <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>
1763
+ 908: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">tooltip</span> = <span class="ruby-keyword kw">nil</span>
1764
+ 909: <span class="ruby-value str">'offduty'</span>
1765
+ 910: <span class="ruby-keyword kw">else</span>
1766
+ 911: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">tooltip</span> = <span class="ruby-keyword kw">nil</span>
1767
+ 912: <span class="ruby-value str">'resourcecell'</span>
1768
+ 913: <span class="ruby-keyword kw">end</span>
1769
+ 914: <span class="ruby-keyword kw">end</span>
1770
+ 915: <span class="ruby-keyword kw">else</span>
1771
+ 916: <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>
1772
+ 917: <span class="ruby-value str">'busy'</span>
1773
+ 918: <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>
1774
+ 919: <span class="ruby-value str">'loaded'</span>
1775
+ 920: <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>
1776
+ 921: <span class="ruby-value str">'free'</span>
1777
+ 922: <span class="ruby-keyword kw">else</span>
1778
+ 923: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">tooltip</span> = <span class="ruby-keyword kw">nil</span>
1779
+ 924: <span class="ruby-value str">'offduty'</span>
1780
+ 925: <span class="ruby-keyword kw">end</span>
1781
+ 926: <span class="ruby-keyword kw">end</span>
1782
+ 927: <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>
1783
+ 928:
1784
+ 929: <span class="ruby-identifier">tryCellMerging</span>(<span class="ruby-identifier">cell</span>, <span class="ruby-identifier">line</span>, <span class="ruby-identifier">firstCell</span>)
1785
+ 930:
1786
+ 931: <span class="ruby-identifier">t</span> = <span class="ruby-identifier">nextT</span>
1787
+ 932: <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>
1788
+ 933: <span class="ruby-keyword kw">end</span>
1789
+ 934:
1790
+ 935: <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>)
1791
+ 936: <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>)
1792
+ 937: <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>)
1793
+ 938: <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>)
1794
+ 939: <span class="ruby-keyword kw">end</span></pre>
1785
1795
  </div>
1786
1796
 
1787
1797
  </div>
@@ -1821,78 +1831,78 @@ next cell.
1821
1831
  <div class="method-source-code"
1822
1832
  id="gen-al-hart-ask-ell-source">
1823
1833
  <pre>
1824
- <span class="ruby-comment cmt"># File lib/reports/TableReport.rb, line 746</span>
1825
- 746: <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>)
1826
- 747: <span class="ruby-identifier">task</span> = <span class="ruby-identifier">line</span>.<span class="ruby-identifier">property</span>
1827
- 748: <span class="ruby-comment cmt"># Find out if we have an enclosing resource scope.</span>
1828
- 749: <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>)
1829
- 750: <span class="ruby-identifier">resource</span> = <span class="ruby-identifier">line</span>.<span class="ruby-identifier">scopeLine</span>.<span class="ruby-identifier">property</span>
1830
- 751: <span class="ruby-keyword kw">else</span>
1831
- 752: <span class="ruby-identifier">resource</span> = <span class="ruby-keyword kw">nil</span>
1832
- 753: <span class="ruby-keyword kw">end</span>
1833
- 754:
1834
- 755: <span class="ruby-comment cmt"># Get the interval of the task. In case a date is invalid due to a</span>
1835
- 756: <span class="ruby-comment cmt"># scheduling problem, we use the full project interval.</span>
1836
- 757: <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>]
1837
- 758: <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>]
1838
- 759: <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>,
1839
- 760: <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>)
1840
- 761:
1841
- 762: <span class="ruby-identifier">firstCell</span> = <span class="ruby-keyword kw">nil</span>
1842
- 763: <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>
1843
- 764: <span class="ruby-comment cmt"># We modify the start and end dates to match the cell boundaries. So</span>
1844
- 765: <span class="ruby-comment cmt"># we need to make sure we don't modify the original Query but our own</span>
1845
- 766: <span class="ruby-comment cmt"># copies.</span>
1846
- 767: <span class="ruby-identifier">query</span> = <span class="ruby-identifier">origQuery</span>.<span class="ruby-identifier">dup</span>
1847
- 768: <span class="ruby-comment cmt"># call TjTime::sameTimeNext... function</span>
1848
- 769: <span class="ruby-identifier">nextT</span> = <span class="ruby-identifier">t</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">sameTimeNextFunc</span>)
1849
- 770: <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>)
1850
- 771: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">content</span>
1851
- 772: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'empty'</span>
1852
- 773: <span class="ruby-comment cmt"># Create a new cell</span>
1853
- 774: <span class="ruby-identifier">cell</span> = <span class="ruby-identifier">newCell</span>(<span class="ruby-identifier">query</span>, <span class="ruby-identifier">line</span>)
1854
- 775: <span class="ruby-comment cmt"># We only generate cells will different background colors.</span>
1855
- 776: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'load'</span>
1856
- 777: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">attributeId</span> = <span class="ruby-value str">'effort'</span>
1857
- 778: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">start</span> = <span class="ruby-identifier">t</span>
1858
- 779: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">end</span> = <span class="ruby-identifier">nextT</span>
1859
- 780: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">process</span>
1860
- 781:
1861
- 782: <span class="ruby-comment cmt"># Create a new cell</span>
1862
- 783: <span class="ruby-identifier">cell</span> = <span class="ruby-identifier">newCell</span>(<span class="ruby-identifier">query</span>, <span class="ruby-identifier">line</span>)
1863
- 784:
1864
- 785: <span class="ruby-comment cmt"># To increase readability, we don't show 0.0 values.</span>
1865
- 786: <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>
1866
- 787: <span class="ruby-keyword kw">else</span>
1867
- 788: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Unknown column content #{column.content}&quot;</span>
1868
- 789: <span class="ruby-keyword kw">end</span>
1869
- 790:
1870
- 791: <span class="ruby-comment cmt"># Determine cell category (mostly the background color)</span>
1871
- 792: <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>)
1872
- 793: <span class="ruby-comment cmt"># The cell is either a container or leaf task</span>
1873
- 794: <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>
1874
- 795: <span class="ruby-comment cmt"># If the user has requested a custom tooltip, add it to each task cell.</span>
1875
- 796: <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>
1876
- 797: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">showTooltipHint</span> = <span class="ruby-keyword kw">false</span>
1877
- 798: <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>)
1878
- 799: <span class="ruby-comment cmt"># The cell is a vacation cell.</span>
1879
- 800: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">category</span> = <span class="ruby-value str">'offduty'</span>
1880
- 801: <span class="ruby-keyword kw">else</span>
1881
- 802: <span class="ruby-comment cmt"># The cell is just filled with the background color.</span>
1882
- 803: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">category</span> = <span class="ruby-value str">'taskcell'</span>
1883
- 804: <span class="ruby-keyword kw">end</span>
1884
- 805: <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>
1885
- 806:
1886
- 807: <span class="ruby-identifier">tryCellMerging</span>(<span class="ruby-identifier">cell</span>, <span class="ruby-identifier">line</span>, <span class="ruby-identifier">firstCell</span>)
1887
- 808:
1888
- 809: <span class="ruby-identifier">t</span> = <span class="ruby-identifier">nextT</span>
1889
- 810: <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>
1890
- 811: <span class="ruby-keyword kw">end</span>
1891
- 812:
1892
- 813: <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>)
1893
- 814: <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>)
1894
- 815: <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>)
1895
- 816: <span class="ruby-keyword kw">end</span></pre>
1834
+ <span class="ruby-comment cmt"># File lib/reports/TableReport.rb, line 747</span>
1835
+ 747: <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>)
1836
+ 748: <span class="ruby-identifier">task</span> = <span class="ruby-identifier">line</span>.<span class="ruby-identifier">property</span>
1837
+ 749: <span class="ruby-comment cmt"># Find out if we have an enclosing resource scope.</span>
1838
+ 750: <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>)
1839
+ 751: <span class="ruby-identifier">resource</span> = <span class="ruby-identifier">line</span>.<span class="ruby-identifier">scopeLine</span>.<span class="ruby-identifier">property</span>
1840
+ 752: <span class="ruby-keyword kw">else</span>
1841
+ 753: <span class="ruby-identifier">resource</span> = <span class="ruby-keyword kw">nil</span>
1842
+ 754: <span class="ruby-keyword kw">end</span>
1843
+ 755:
1844
+ 756: <span class="ruby-comment cmt"># Get the interval of the task. In case a date is invalid due to a</span>
1845
+ 757: <span class="ruby-comment cmt"># scheduling problem, we use the full project interval.</span>
1846
+ 758: <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>]
1847
+ 759: <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>]
1848
+ 760: <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>,
1849
+ 761: <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>)
1850
+ 762:
1851
+ 763: <span class="ruby-identifier">firstCell</span> = <span class="ruby-keyword kw">nil</span>
1852
+ 764: <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>
1853
+ 765: <span class="ruby-comment cmt"># We modify the start and end dates to match the cell boundaries. So</span>
1854
+ 766: <span class="ruby-comment cmt"># we need to make sure we don't modify the original Query but our own</span>
1855
+ 767: <span class="ruby-comment cmt"># copies.</span>
1856
+ 768: <span class="ruby-identifier">query</span> = <span class="ruby-identifier">origQuery</span>.<span class="ruby-identifier">dup</span>
1857
+ 769: <span class="ruby-comment cmt"># call TjTime::sameTimeNext... function</span>
1858
+ 770: <span class="ruby-identifier">nextT</span> = <span class="ruby-identifier">t</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">sameTimeNextFunc</span>)
1859
+ 771: <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>)
1860
+ 772: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">content</span>
1861
+ 773: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'empty'</span>
1862
+ 774: <span class="ruby-comment cmt"># Create a new cell</span>
1863
+ 775: <span class="ruby-identifier">cell</span> = <span class="ruby-identifier">newCell</span>(<span class="ruby-identifier">query</span>, <span class="ruby-identifier">line</span>)
1864
+ 776: <span class="ruby-comment cmt"># We only generate cells will different background colors.</span>
1865
+ 777: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'load'</span>
1866
+ 778: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">attributeId</span> = <span class="ruby-value str">'effort'</span>
1867
+ 779: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">start</span> = <span class="ruby-identifier">t</span>
1868
+ 780: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">end</span> = <span class="ruby-identifier">nextT</span>
1869
+ 781: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">process</span>
1870
+ 782:
1871
+ 783: <span class="ruby-comment cmt"># Create a new cell</span>
1872
+ 784: <span class="ruby-identifier">cell</span> = <span class="ruby-identifier">newCell</span>(<span class="ruby-identifier">query</span>, <span class="ruby-identifier">line</span>)
1873
+ 785:
1874
+ 786: <span class="ruby-comment cmt"># To increase readability, we don't show 0.0 values.</span>
1875
+ 787: <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>
1876
+ 788: <span class="ruby-keyword kw">else</span>
1877
+ 789: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Unknown column content #{column.content}&quot;</span>
1878
+ 790: <span class="ruby-keyword kw">end</span>
1879
+ 791:
1880
+ 792: <span class="ruby-comment cmt"># Determine cell category (mostly the background color)</span>
1881
+ 793: <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>)
1882
+ 794: <span class="ruby-comment cmt"># The cell is either a container or leaf task</span>
1883
+ 795: <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>
1884
+ 796: <span class="ruby-comment cmt"># If the user has requested a custom tooltip, add it to each task cell.</span>
1885
+ 797: <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>
1886
+ 798: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">showTooltipHint</span> = <span class="ruby-keyword kw">false</span>
1887
+ 799: <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>)
1888
+ 800: <span class="ruby-comment cmt"># The cell is a vacation cell.</span>
1889
+ 801: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">category</span> = <span class="ruby-value str">'offduty'</span>
1890
+ 802: <span class="ruby-keyword kw">else</span>
1891
+ 803: <span class="ruby-comment cmt"># The cell is just filled with the background color.</span>
1892
+ 804: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">category</span> = <span class="ruby-value str">'taskcell'</span>
1893
+ 805: <span class="ruby-keyword kw">end</span>
1894
+ 806: <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>
1895
+ 807:
1896
+ 808: <span class="ruby-identifier">tryCellMerging</span>(<span class="ruby-identifier">cell</span>, <span class="ruby-identifier">line</span>, <span class="ruby-identifier">firstCell</span>)
1897
+ 809:
1898
+ 810: <span class="ruby-identifier">t</span> = <span class="ruby-identifier">nextT</span>
1899
+ 811: <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>
1900
+ 812: <span class="ruby-keyword kw">end</span>
1901
+ 813:
1902
+ 814: <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>)
1903
+ 815: <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>)
1904
+ 816: <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>)
1905
+ 817: <span class="ruby-keyword kw">end</span></pre>
1896
1906
  </div>
1897
1907
 
1898
1908
  </div>
@@ -1934,87 +1944,87 @@ cell.
1934
1944
  <div class="method-source-code"
1935
1945
  id="gen-alculated-ell-source">
1936
1946
  <pre>
1937
- <span class="ruby-comment cmt"># File lib/reports/TableReport.rb, line 658</span>
1938
- 658: <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>)
1939
- 659: <span class="ruby-comment cmt"># Create a new cell</span>
1940
- 660: <span class="ruby-identifier">cell</span> = <span class="ruby-identifier">newCell</span>(<span class="ruby-identifier">query</span>, <span class="ruby-identifier">line</span>)
1941
- 661:
1942
- 662: <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>,
1943
- 663: <span class="ruby-identifier">scenarioSpecific?</span>(<span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">id</span>))
1944
- 664: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
1945
- 665: <span class="ruby-keyword kw">end</span>
1946
- 666:
1947
- 667: <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>)
1948
- 668:
1949
- 669: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">query</span>.<span class="ruby-identifier">process</span>
1950
- 670: <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>
1951
- 671: <span class="ruby-keyword kw">end</span>
1952
- 672:
1953
- 673: <span class="ruby-comment cmt"># Some columns need some extra care.</span>
1954
- 674: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">id</span>
1955
- 675: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'alert'</span>
1956
- 676: <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>)
1957
- 677: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">icon</span> = <span class="ruby-node">&quot;flag-#{id}&quot;</span>
1958
- 678: <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>)
1959
- 679: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'alerttrend'</span>
1960
- 680: <span class="ruby-identifier">icons</span> = <span class="ruby-node">%( up flat down )</span>
1961
- 681: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">icon</span> = <span class="ruby-node">&quot;trend-#{icons[query.to_sort]}&quot;</span>
1962
- 682: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'line'</span>
1963
- 683: <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>
1964
- 684: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'name'</span>
1965
- 685: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">icon</span> =
1966
- 686: <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>)
1967
- 687: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">property</span>.<span class="ruby-identifier">container?</span>
1968
- 688: <span class="ruby-value str">'taskgroup'</span>
1969
- 689: <span class="ruby-keyword kw">else</span>
1970
- 690: <span class="ruby-value str">'task'</span>
1971
- 691: <span class="ruby-keyword kw">end</span>
1972
- 692: <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>)
1973
- 693: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">property</span>.<span class="ruby-identifier">container?</span>
1974
- 694: <span class="ruby-value str">'resourcegroup'</span>
1975
- 695: <span class="ruby-keyword kw">else</span>
1976
- 696: <span class="ruby-value str">'resource'</span>
1977
- 697: <span class="ruby-keyword kw">end</span>
1978
- 698: <span class="ruby-keyword kw">else</span>
1979
- 699: <span class="ruby-keyword kw">nil</span>
1980
- 700: <span class="ruby-keyword kw">end</span>
1981
- 701: <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>).
1982
- 702: <span class="ruby-identifier">generateIntermediateFormat</span>
1983
- 703: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'no'</span>
1984
- 704: <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>
1985
- 705: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'wbs'</span>
1986
- 706: <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>
1987
- 707: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'scenario'</span>
1988
- 708: <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>
1989
- 709: <span class="ruby-keyword kw">end</span>
1990
- 710:
1991
- 711: <span class="ruby-comment cmt"># Replace the cell text if the user has requested a custom cell text.</span>
1992
- 712: <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>)
1993
- 713: <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>
1994
- 714:
1995
- 715: <span class="ruby-comment cmt"># Replace the cell background color if the user has requested a custom</span>
1996
- 716: <span class="ruby-comment cmt"># color.</span>
1997
- 717: <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>)
1998
- 718: <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>
1999
- 719:
2000
- 720: <span class="ruby-comment cmt"># Replace the font color setting if the user has requested a custom</span>
2001
- 721: <span class="ruby-comment cmt"># color.</span>
2002
- 722: <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>)
2003
- 723: <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>
2004
- 724:
2005
- 725: <span class="ruby-comment cmt"># Replace the default cell alignment if the user has requested a custom</span>
2006
- 726: <span class="ruby-comment cmt"># alignment.</span>
2007
- 727: <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>)
2008
- 728: <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>
2009
- 729:
2010
- 730: <span class="ruby-comment cmt"># Register the custom tooltip if the user has requested one.</span>
2011
- 731: <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>)
2012
- 732: <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>
2013
- 733:
2014
- 734: <span class="ruby-identifier">checkCellText</span>(<span class="ruby-identifier">cell</span>)
2015
- 735:
2016
- 736: <span class="ruby-keyword kw">true</span>
2017
- 737: <span class="ruby-keyword kw">end</span></pre>
1947
+ <span class="ruby-comment cmt"># File lib/reports/TableReport.rb, line 659</span>
1948
+ 659: <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>)
1949
+ 660: <span class="ruby-comment cmt"># Create a new cell</span>
1950
+ 661: <span class="ruby-identifier">cell</span> = <span class="ruby-identifier">newCell</span>(<span class="ruby-identifier">query</span>, <span class="ruby-identifier">line</span>)
1951
+ 662:
1952
+ 663: <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>,
1953
+ 664: <span class="ruby-identifier">scenarioSpecific?</span>(<span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">id</span>))
1954
+ 665: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
1955
+ 666: <span class="ruby-keyword kw">end</span>
1956
+ 667:
1957
+ 668: <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>)
1958
+ 669:
1959
+ 670: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">query</span>.<span class="ruby-identifier">process</span>
1960
+ 671: <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>
1961
+ 672: <span class="ruby-keyword kw">end</span>
1962
+ 673:
1963
+ 674: <span class="ruby-comment cmt"># Some columns need some extra care.</span>
1964
+ 675: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">id</span>
1965
+ 676: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'alert'</span>
1966
+ 677: <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>)
1967
+ 678: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">icon</span> = <span class="ruby-node">&quot;flag-#{id}&quot;</span>
1968
+ 679: <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>)
1969
+ 680: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'alerttrend'</span>
1970
+ 681: <span class="ruby-identifier">icons</span> = <span class="ruby-node">%( up flat down )</span>
1971
+ 682: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">icon</span> = <span class="ruby-node">&quot;trend-#{icons[query.to_sort]}&quot;</span>
1972
+ 683: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'line'</span>
1973
+ 684: <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>
1974
+ 685: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'name'</span>
1975
+ 686: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">icon</span> =
1976
+ 687: <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>)
1977
+ 688: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">property</span>.<span class="ruby-identifier">container?</span>
1978
+ 689: <span class="ruby-value str">'taskgroup'</span>
1979
+ 690: <span class="ruby-keyword kw">else</span>
1980
+ 691: <span class="ruby-value str">'task'</span>
1981
+ 692: <span class="ruby-keyword kw">end</span>
1982
+ 693: <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>)
1983
+ 694: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">property</span>.<span class="ruby-identifier">container?</span>
1984
+ 695: <span class="ruby-value str">'resourcegroup'</span>
1985
+ 696: <span class="ruby-keyword kw">else</span>
1986
+ 697: <span class="ruby-value str">'resource'</span>
1987
+ 698: <span class="ruby-keyword kw">end</span>
1988
+ 699: <span class="ruby-keyword kw">else</span>
1989
+ 700: <span class="ruby-keyword kw">nil</span>
1990
+ 701: <span class="ruby-keyword kw">end</span>
1991
+ 702: <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>).
1992
+ 703: <span class="ruby-identifier">generateIntermediateFormat</span>
1993
+ 704: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'no'</span>
1994
+ 705: <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>
1995
+ 706: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'wbs'</span>
1996
+ 707: <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>
1997
+ 708: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'scenario'</span>
1998
+ 709: <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>
1999
+ 710: <span class="ruby-keyword kw">end</span>
2000
+ 711:
2001
+ 712: <span class="ruby-comment cmt"># Replace the cell text if the user has requested a custom cell text.</span>
2002
+ 713: <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>)
2003
+ 714: <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>
2004
+ 715:
2005
+ 716: <span class="ruby-comment cmt"># Replace the cell background color if the user has requested a custom</span>
2006
+ 717: <span class="ruby-comment cmt"># color.</span>
2007
+ 718: <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>)
2008
+ 719: <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>
2009
+ 720:
2010
+ 721: <span class="ruby-comment cmt"># Replace the font color setting if the user has requested a custom</span>
2011
+ 722: <span class="ruby-comment cmt"># color.</span>
2012
+ 723: <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>)
2013
+ 724: <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>
2014
+ 725:
2015
+ 726: <span class="ruby-comment cmt"># Replace the default cell alignment if the user has requested a custom</span>
2016
+ 727: <span class="ruby-comment cmt"># alignment.</span>
2017
+ 728: <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>)
2018
+ 729: <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>
2019
+ 730:
2020
+ 731: <span class="ruby-comment cmt"># Register the custom tooltip if the user has requested one.</span>
2021
+ 732: <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>)
2022
+ 733: <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>
2023
+ 734:
2024
+ 735: <span class="ruby-identifier">checkCellText</span>(<span class="ruby-identifier">cell</span>)
2025
+ 736:
2026
+ 737: <span class="ruby-keyword kw">true</span>
2027
+ 738: <span class="ruby-keyword kw">end</span></pre>
2018
2028
  </div>
2019
2029
 
2020
2030
  </div>
@@ -2049,59 +2059,59 @@ the cell exists, false for a hidden cell.
2049
2059
  <div class="method-source-code"
2050
2060
  id="gen-tandard-ell-source">
2051
2061
  <pre>
2052
- <span class="ruby-comment cmt"># File lib/reports/TableReport.rb, line 599</span>
2053
- 599: <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>)
2054
- 600: <span class="ruby-comment cmt"># Find out, what type of PropertyTreeNode we are dealing with.</span>
2055
- 601: <span class="ruby-identifier">property</span> = <span class="ruby-identifier">line</span>.<span class="ruby-identifier">property</span>
2056
- 602: <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>)
2057
- 603: <span class="ruby-identifier">propertyList</span> = <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">tasks</span>
2058
- 604: <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>)
2059
- 605: <span class="ruby-identifier">propertyList</span> = <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">resources</span>
2060
- 606: <span class="ruby-keyword kw">else</span>
2061
- 607: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Unknown property type #{property.class}&quot;</span>
2062
- 608: <span class="ruby-keyword kw">end</span>
2063
- 609:
2064
- 610: <span class="ruby-comment cmt"># Create a new cell</span>
2065
- 611: <span class="ruby-identifier">cell</span> = <span class="ruby-identifier">newCell</span>(<span class="ruby-identifier">query</span>, <span class="ruby-identifier">line</span>)
2066
- 612:
2067
- 613: <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>,
2068
- 614: <span class="ruby-identifier">propertyList</span>.<span class="ruby-identifier">scenarioSpecific?</span>(<span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">id</span>))
2069
- 615: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
2070
- 616: <span class="ruby-keyword kw">end</span>
2071
- 617:
2072
- 618: <span class="ruby-identifier">setStandardCellAttributes</span>(<span class="ruby-identifier">cell</span>, <span class="ruby-identifier">columnDef</span>,
2073
- 619: <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>)
2074
- 620:
2075
- 621: <span class="ruby-comment cmt"># If the user has requested a custom cell text, this will be used</span>
2076
- 622: <span class="ruby-comment cmt"># instead of the queried one.</span>
2077
- 623: <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>))
2078
- 624: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">text</span> = <span class="ruby-identifier">cdText</span>
2079
- 625: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">query</span>.<span class="ruby-identifier">process</span>
2080
- 626: <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>
2081
- 627: <span class="ruby-keyword kw">end</span>
2082
- 628:
2083
- 629: <span class="ruby-comment cmt"># Replace the font color setting if the user has requested a custom</span>
2084
- 630: <span class="ruby-comment cmt"># color.</span>
2085
- 631: <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>)
2086
- 632: <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>
2087
- 633:
2088
- 634: <span class="ruby-comment cmt"># Replace the cell background color if the user has requested a custom</span>
2089
- 635: <span class="ruby-comment cmt"># color.</span>
2090
- 636: <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>)
2091
- 637: <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>
2092
- 638:
2093
- 639: <span class="ruby-comment cmt"># Replace the default cell alignment if the user has requested a custom</span>
2094
- 640: <span class="ruby-comment cmt"># alignment.</span>
2095
- 641: <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>)
2096
- 642: <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>
2097
- 643:
2098
- 644: <span class="ruby-comment cmt"># If the user has requested a custom tooltip, add it to the cell.</span>
2099
- 645: <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>
2100
- 646:
2101
- 647: <span class="ruby-identifier">checkCellText</span>(<span class="ruby-identifier">cell</span>)
2102
- 648:
2103
- 649: <span class="ruby-keyword kw">true</span>
2104
- 650: <span class="ruby-keyword kw">end</span></pre>
2062
+ <span class="ruby-comment cmt"># File lib/reports/TableReport.rb, line 600</span>
2063
+ 600: <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>)
2064
+ 601: <span class="ruby-comment cmt"># Find out, what type of PropertyTreeNode we are dealing with.</span>
2065
+ 602: <span class="ruby-identifier">property</span> = <span class="ruby-identifier">line</span>.<span class="ruby-identifier">property</span>
2066
+ 603: <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>)
2067
+ 604: <span class="ruby-identifier">propertyList</span> = <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">tasks</span>
2068
+ 605: <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>)
2069
+ 606: <span class="ruby-identifier">propertyList</span> = <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">resources</span>
2070
+ 607: <span class="ruby-keyword kw">else</span>
2071
+ 608: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Unknown property type #{property.class}&quot;</span>
2072
+ 609: <span class="ruby-keyword kw">end</span>
2073
+ 610:
2074
+ 611: <span class="ruby-comment cmt"># Create a new cell</span>
2075
+ 612: <span class="ruby-identifier">cell</span> = <span class="ruby-identifier">newCell</span>(<span class="ruby-identifier">query</span>, <span class="ruby-identifier">line</span>)
2076
+ 613:
2077
+ 614: <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>,
2078
+ 615: <span class="ruby-identifier">propertyList</span>.<span class="ruby-identifier">scenarioSpecific?</span>(<span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">id</span>))
2079
+ 616: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
2080
+ 617: <span class="ruby-keyword kw">end</span>
2081
+ 618:
2082
+ 619: <span class="ruby-identifier">setStandardCellAttributes</span>(<span class="ruby-identifier">cell</span>, <span class="ruby-identifier">columnDef</span>,
2083
+ 620: <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>)
2084
+ 621:
2085
+ 622: <span class="ruby-comment cmt"># If the user has requested a custom cell text, this will be used</span>
2086
+ 623: <span class="ruby-comment cmt"># instead of the queried one.</span>
2087
+ 624: <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>))
2088
+ 625: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">text</span> = <span class="ruby-identifier">cdText</span>
2089
+ 626: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">query</span>.<span class="ruby-identifier">process</span>
2090
+ 627: <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>
2091
+ 628: <span class="ruby-keyword kw">end</span>
2092
+ 629:
2093
+ 630: <span class="ruby-comment cmt"># Replace the font color setting if the user has requested a custom</span>
2094
+ 631: <span class="ruby-comment cmt"># color.</span>
2095
+ 632: <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>)
2096
+ 633: <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>
2097
+ 634:
2098
+ 635: <span class="ruby-comment cmt"># Replace the cell background color if the user has requested a custom</span>
2099
+ 636: <span class="ruby-comment cmt"># color.</span>
2100
+ 637: <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>)
2101
+ 638: <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>
2102
+ 639:
2103
+ 640: <span class="ruby-comment cmt"># Replace the default cell alignment if the user has requested a custom</span>
2104
+ 641: <span class="ruby-comment cmt"># alignment.</span>
2105
+ 642: <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>)
2106
+ 643: <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>
2107
+ 644:
2108
+ 645: <span class="ruby-comment cmt"># If the user has requested a custom tooltip, add it to the cell.</span>
2109
+ 646: <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>
2110
+ 647:
2111
+ 648: <span class="ruby-identifier">checkCellText</span>(<span class="ruby-identifier">cell</span>)
2112
+ 649:
2113
+ 650: <span class="ruby-keyword kw">true</span>
2114
+ 651: <span class="ruby-keyword kw">end</span></pre>
2105
2115
  </div>
2106
2116
 
2107
2117
  </div>
@@ -2207,17 +2217,18 @@ objects that belong to the property in this line.
2207
2217
  581: <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>,
2208
2218
  582: <span class="ruby-identifier">line</span>.<span class="ruby-identifier">property</span>, <span class="ruby-identifier">line</span>.<span class="ruby-identifier">scopeLine</span>)
2209
2219
  583:
2210
- 584: <span class="ruby-comment cmt"># Depending on the property type we use different generator functions.</span>
2211
- 585: <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>)
2212
- 586: <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>)
2213
- 587: <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>)
2214
- 588: <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>,
2215
- 589: <span class="ruby-identifier">sameTimeNextFunc</span>)
2216
- 590: <span class="ruby-keyword kw">else</span>
2217
- 591: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Unknown property type #{property.class}&quot;</span>
2218
- 592: <span class="ruby-keyword kw">end</span>
2219
- 593: <span class="ruby-keyword kw">true</span>
2220
- 594: <span class="ruby-keyword kw">end</span></pre>
2220
+ 584: <span class="ruby-constant">PlaceHolderCell</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">line</span>, <span class="ruby-identifier">tcLine</span>)
2221
+ 585: <span class="ruby-comment cmt"># Depending on the property type we use different generator functions.</span>
2222
+ 586: <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>)
2223
+ 587: <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>)
2224
+ 588: <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>)
2225
+ 589: <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>,
2226
+ 590: <span class="ruby-identifier">sameTimeNextFunc</span>)
2227
+ 591: <span class="ruby-keyword kw">else</span>
2228
+ 592: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Unknown property type #{property.class}&quot;</span>
2229
+ 593: <span class="ruby-keyword kw">end</span>
2230
+ 594: <span class="ruby-keyword kw">true</span>
2231
+ 595: <span class="ruby-keyword kw">end</span></pre>
2221
2232
  </div>
2222
2233
 
2223
2234
  </div>
@@ -2251,16 +2262,16 @@ initialize some common values.
2251
2262
  <div class="method-source-code"
2252
2263
  id="new-ell-source">
2253
2264
  <pre>
2254
- <span class="ruby-comment cmt"># File lib/reports/TableReport.rb, line 984</span>
2255
- 984: <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>)
2256
- 985: <span class="ruby-identifier">property</span> = <span class="ruby-identifier">line</span>.<span class="ruby-identifier">property</span>
2257
- 986: <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>)
2258
- 987:
2259
- 988: <span class="ruby-comment cmt"># Cells for containers should be using bold font face.</span>
2260
- 989: <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>
2261
- 990: <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>)
2262
- 991: <span class="ruby-identifier">cell</span>
2263
- 992: <span class="ruby-keyword kw">end</span></pre>
2265
+ <span class="ruby-comment cmt"># File lib/reports/TableReport.rb, line 985</span>
2266
+ 985: <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>)
2267
+ 986: <span class="ruby-identifier">property</span> = <span class="ruby-identifier">line</span>.<span class="ruby-identifier">property</span>
2268
+ 987: <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>)
2269
+ 988:
2270
+ 989: <span class="ruby-comment cmt"># Cells for containers should be using bold font face.</span>
2271
+ 990: <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>
2272
+ 991: <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>)
2273
+ 992: <span class="ruby-identifier">cell</span>
2274
+ 993: <span class="ruby-keyword kw">end</span></pre>
2264
2275
  </div>
2265
2276
 
2266
2277
  </div>
@@ -2293,19 +2304,19 @@ Determine the indentation for this line.
2293
2304
  <div class="method-source-code"
2294
2305
  id="set-ndent-source">
2295
2306
  <pre>
2296
- <span class="ruby-comment cmt"># File lib/reports/TableReport.rb, line 995</span>
2297
- 995: <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>)
2298
- 996: <span class="ruby-identifier">property</span> = <span class="ruby-identifier">line</span>.<span class="ruby-identifier">property</span>
2299
- 997: <span class="ruby-identifier">scopeLine</span> = <span class="ruby-identifier">line</span>.<span class="ruby-identifier">scopeLine</span>
2300
- 998: <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>)
2301
- 999: <span class="ruby-comment cmt"># We indent at least as much as the scopeline + 1, if we have a scope.</span>
2302
- 1000: <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>
2303
- 1001: <span class="ruby-comment cmt"># In tree mode we indent according to the level.</span>
2304
- 1002: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">treeMode</span>
2305
- 1003: <span class="ruby-identifier">line</span>.<span class="ruby-identifier">indentation</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">level</span>
2306
- 1004: <span class="ruby-identifier">line</span>.<span class="ruby-identifier">bold</span> = <span class="ruby-keyword kw">true</span>
2307
- 1005: <span class="ruby-keyword kw">end</span>
2308
- 1006: <span class="ruby-keyword kw">end</span></pre>
2307
+ <span class="ruby-comment cmt"># File lib/reports/TableReport.rb, line 996</span>
2308
+ 996: <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>)
2309
+ 997: <span class="ruby-identifier">property</span> = <span class="ruby-identifier">line</span>.<span class="ruby-identifier">property</span>
2310
+ 998: <span class="ruby-identifier">scopeLine</span> = <span class="ruby-identifier">line</span>.<span class="ruby-identifier">scopeLine</span>
2311
+ 999: <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>)
2312
+ 1000: <span class="ruby-comment cmt"># We indent at least as much as the scopeline + 1, if we have a scope.</span>
2313
+ 1001: <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>
2314
+ 1002: <span class="ruby-comment cmt"># In tree mode we indent according to the level.</span>
2315
+ 1003: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">treeMode</span>
2316
+ 1004: <span class="ruby-identifier">line</span>.<span class="ruby-identifier">indentation</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">level</span>
2317
+ 1005: <span class="ruby-identifier">line</span>.<span class="ruby-identifier">bold</span> = <span class="ruby-keyword kw">true</span>
2318
+ 1006: <span class="ruby-keyword kw">end</span>
2319
+ 1007: <span class="ruby-keyword kw">end</span></pre>
2309
2320
  </div>
2310
2321
 
2311
2322
  </div>
@@ -2336,25 +2347,25 @@ Determine the indentation for this line.
2336
2347
  <div class="method-source-code"
2337
2348
  id="set-cenario-ettings-source">
2338
2349
  <pre>
2339
- <span class="ruby-comment cmt"># File lib/reports/TableReport.rb, line 964</span>
2340
- 964: <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>)
2341
- 965: <span class="ruby-comment cmt"># Check if we are dealing with multiple scenarios.</span>
2342
- 966: <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>
2343
- 967: <span class="ruby-comment cmt"># Check if the attribute is not scenario specific</span>
2344
- 968: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">scenarioSpecific</span>
2345
- 969: <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>
2346
- 970: <span class="ruby-comment cmt"># Use a somewhat bigger font.</span>
2347
- 971: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">fontSize</span> = <span class="ruby-value">15</span>
2348
- 972: <span class="ruby-keyword kw">else</span>
2349
- 973: <span class="ruby-comment cmt"># And hide the cells for all but the first scenario.</span>
2350
- 974: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">hidden</span> = <span class="ruby-keyword kw">true</span>
2351
- 975: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
2352
- 976: <span class="ruby-keyword kw">end</span>
2353
- 977: <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>
2354
- 978: <span class="ruby-keyword kw">end</span>
2355
- 979: <span class="ruby-keyword kw">end</span>
2356
- 980: <span class="ruby-keyword kw">true</span>
2357
- 981: <span class="ruby-keyword kw">end</span></pre>
2350
+ <span class="ruby-comment cmt"># File lib/reports/TableReport.rb, line 965</span>
2351
+ 965: <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>)
2352
+ 966: <span class="ruby-comment cmt"># Check if we are dealing with multiple scenarios.</span>
2353
+ 967: <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>
2354
+ 968: <span class="ruby-comment cmt"># Check if the attribute is not scenario specific</span>
2355
+ 969: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">scenarioSpecific</span>
2356
+ 970: <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>
2357
+ 971: <span class="ruby-comment cmt"># Use a somewhat bigger font.</span>
2358
+ 972: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">fontSize</span> = <span class="ruby-value">15</span>
2359
+ 973: <span class="ruby-keyword kw">else</span>
2360
+ 974: <span class="ruby-comment cmt"># And hide the cells for all but the first scenario.</span>
2361
+ 975: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">hidden</span> = <span class="ruby-keyword kw">true</span>
2362
+ 976: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
2363
+ 977: <span class="ruby-keyword kw">end</span>
2364
+ 978: <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>
2365
+ 979: <span class="ruby-keyword kw">end</span>
2366
+ 980: <span class="ruby-keyword kw">end</span>
2367
+ 981: <span class="ruby-keyword kw">true</span>
2368
+ 982: <span class="ruby-keyword kw">end</span></pre>
2358
2369
  </div>
2359
2370
 
2360
2371
  </div>
@@ -2388,28 +2399,28 @@ alignment and background color.
2388
2399
  <div class="method-source-code"
2389
2400
  id="set-tandard-ell-ttributes-source">
2390
2401
  <pre>
2391
- <span class="ruby-comment cmt"># File lib/reports/TableReport.rb, line 942</span>
2392
- 942: <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>)
2393
- 943: <span class="ruby-comment cmt"># Determine whether it should be indented</span>
2394
- 944: <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>)
2395
- 945: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">indent</span> = <span class="ruby-identifier">line</span>.<span class="ruby-identifier">indentation</span>
2396
- 946: <span class="ruby-keyword kw">end</span>
2397
- 947:
2398
- 948: <span class="ruby-comment cmt"># Determine the cell alignment</span>
2399
- 949: <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>)
2400
- 950:
2401
- 951: <span class="ruby-comment cmt"># Set background color</span>
2402
- 952: <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>)
2403
- 953: <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>
2404
- 954: <span class="ruby-value str">'taskcell1'</span> <span class="ruby-operator">:</span> <span class="ruby-value str">'taskcell2'</span>
2405
- 955: <span class="ruby-keyword kw">else</span>
2406
- 956: <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>
2407
- 957: <span class="ruby-value str">'resourcecell1'</span> <span class="ruby-operator">:</span> <span class="ruby-value str">'resourcecell2'</span>
2408
- 958: <span class="ruby-keyword kw">end</span>
2409
- 959:
2410
- 960: <span class="ruby-comment cmt"># Set column width</span>
2411
- 961: <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>
2412
- 962: <span class="ruby-keyword kw">end</span></pre>
2402
+ <span class="ruby-comment cmt"># File lib/reports/TableReport.rb, line 943</span>
2403
+ 943: <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>)
2404
+ 944: <span class="ruby-comment cmt"># Determine whether it should be indented</span>
2405
+ 945: <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>)
2406
+ 946: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">indent</span> = <span class="ruby-identifier">line</span>.<span class="ruby-identifier">indentation</span>
2407
+ 947: <span class="ruby-keyword kw">end</span>
2408
+ 948:
2409
+ 949: <span class="ruby-comment cmt"># Determine the cell alignment</span>
2410
+ 950: <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>)
2411
+ 951:
2412
+ 952: <span class="ruby-comment cmt"># Set background color</span>
2413
+ 953: <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>)
2414
+ 954: <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>
2415
+ 955: <span class="ruby-value str">'taskcell1'</span> <span class="ruby-operator">:</span> <span class="ruby-value str">'taskcell2'</span>
2416
+ 956: <span class="ruby-keyword kw">else</span>
2417
+ 957: <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>
2418
+ 958: <span class="ruby-value str">'resourcecell1'</span> <span class="ruby-operator">:</span> <span class="ruby-value str">'resourcecell2'</span>
2419
+ 959: <span class="ruby-keyword kw">end</span>
2420
+ 960:
2421
+ 961: <span class="ruby-comment cmt"># Set column width</span>
2422
+ 962: <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>
2423
+ 963: <span class="ruby-keyword kw">end</span></pre>
2413
2424
  </div>
2414
2425
 
2415
2426
  </div>
@@ -2442,13 +2453,13 @@ Try to merge equal cells without text to multi-column cells.
2442
2453
  <div class="method-source-code"
2443
2454
  id="try-ell-erging-source">
2444
2455
  <pre>
2445
- <span class="ruby-comment cmt"># File lib/reports/TableReport.rb, line 1018</span>
2446
- 1018: <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>)
2447
- 1019: <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>
2448
- 1020: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">hidden</span> = <span class="ruby-keyword kw">true</span>
2449
- 1021: <span class="ruby-identifier">c</span>.<span class="ruby-identifier">columns</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
2450
- 1022: <span class="ruby-keyword kw">end</span>
2451
- 1023: <span class="ruby-keyword kw">end</span></pre>
2456
+ <span class="ruby-comment cmt"># File lib/reports/TableReport.rb, line 1019</span>
2457
+ 1019: <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>)
2458
+ 1020: <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>
2459
+ 1021: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">hidden</span> = <span class="ruby-keyword kw">true</span>
2460
+ 1022: <span class="ruby-identifier">c</span>.<span class="ruby-identifier">columns</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
2461
+ 1023: <span class="ruby-keyword kw">end</span>
2462
+ 1024: <span class="ruby-keyword kw">end</span></pre>
2452
2463
  </div>
2453
2464
 
2454
2465
  </div>