taskjuggler 0.0.8 → 0.0.9

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 (613) hide show
  1. data/CHANGELOG +1144 -2047
  2. data/README +1 -1
  3. data/Rakefile +6 -6
  4. data/data/css/tjmanual.css +20 -0
  5. data/data/css/tjreport.css +7 -6
  6. data/doc/AppConfig.html +136 -130
  7. data/doc/Arguments.html +46 -40
  8. data/doc/CHANGELOG.html +1162 -2057
  9. data/doc/COPYING.html +8 -2
  10. data/doc/Object.html +205 -199
  11. data/doc/README.html +9 -3
  12. data/doc/RuntimeConfig.html +75 -69
  13. data/doc/String.html +69 -63
  14. data/doc/TaskJuggler.html +350 -291
  15. data/doc/TaskJuggler/Account.html +26 -20
  16. data/doc/TaskJuggler/AccountAttribute.html +24 -18
  17. data/doc/TaskJuggler/AccountScenario.html +24 -18
  18. data/doc/TaskJuggler/Allocation.html +74 -68
  19. data/doc/TaskJuggler/AllocationAttribute.html +54 -48
  20. data/doc/TaskJuggler/AttributeBase.html +172 -93
  21. data/doc/TaskJuggler/AttributeDefinition.html +22 -16
  22. data/doc/TaskJuggler/AttributeOverwrite.html +586 -0
  23. data/doc/TaskJuggler/BatchProcessor.html +263 -257
  24. data/doc/TaskJuggler/Booking.html +44 -38
  25. data/doc/TaskJuggler/BookingListAttribute.html +25 -21
  26. data/doc/TaskJuggler/BooleanAttribute.html +24 -18
  27. data/doc/TaskJuggler/CSVFile.html +193 -187
  28. data/doc/TaskJuggler/CellSettingPattern.html +13 -7
  29. data/doc/TaskJuggler/CellSettingPatternList.html +25 -19
  30. data/doc/TaskJuggler/Charge.html +49 -43
  31. data/doc/TaskJuggler/ChargeListAttribute.html +21 -15
  32. data/doc/TaskJuggler/ChargeSet.html +94 -88
  33. data/doc/TaskJuggler/ChargeSetListAttribute.html +29 -25
  34. data/doc/TaskJuggler/CollisionDetector.html +142 -136
  35. data/doc/TaskJuggler/ColumnListAttribute.html +21 -17
  36. data/doc/TaskJuggler/ColumnTable.html +50 -44
  37. data/doc/TaskJuggler/Daemon.html +71 -50
  38. data/doc/TaskJuggler/DataCache.html +110 -58
  39. data/doc/TaskJuggler/DataCacheEntry.html +22 -16
  40. data/doc/TaskJuggler/DateAttribute.html +24 -18
  41. data/doc/TaskJuggler/DefinitionListAttribute.html +12 -6
  42. data/doc/TaskJuggler/DependencyListAttribute.html +29 -25
  43. data/doc/TaskJuggler/DurationAttribute.html +25 -19
  44. data/doc/TaskJuggler/FileList.html +25 -19
  45. data/doc/TaskJuggler/FileRecord.html +17 -11
  46. data/doc/TaskJuggler/FixnumAttribute.html +16 -10
  47. data/doc/TaskJuggler/FlagListAttribute.html +25 -21
  48. data/doc/TaskJuggler/FloatAttribute.html +20 -14
  49. data/doc/TaskJuggler/FormatListAttribute.html +17 -11
  50. data/doc/TaskJuggler/GanttChart.html +242 -236
  51. data/doc/TaskJuggler/GanttContainer.html +71 -67
  52. data/doc/TaskJuggler/GanttHeader.html +113 -107
  53. data/doc/TaskJuggler/GanttHeaderScaleItem.html +26 -20
  54. data/doc/TaskJuggler/GanttLine.html +217 -210
  55. data/doc/TaskJuggler/GanttLoadStack.html +89 -83
  56. data/doc/TaskJuggler/GanttMilestone.html +11 -6
  57. data/doc/TaskJuggler/GanttRouter.html +194 -186
  58. data/doc/TaskJuggler/GanttTaskBar.html +41 -34
  59. data/doc/TaskJuggler/HTMLDocument.html +52 -46
  60. data/doc/TaskJuggler/HTMLGraphics.html +58 -52
  61. data/doc/TaskJuggler/Interval.html +90 -84
  62. data/doc/TaskJuggler/IntervalList.html +777 -0
  63. data/doc/TaskJuggler/IntervalListAttribute.html +29 -25
  64. data/doc/TaskJuggler/JobInfo.html +36 -30
  65. data/doc/TaskJuggler/Journal.html +188 -177
  66. data/doc/TaskJuggler/JournalEntry.html +36 -30
  67. data/doc/TaskJuggler/JournalEntryList.html +88 -82
  68. data/doc/TaskJuggler/KeywordArray.html +12 -6
  69. data/doc/TaskJuggler/KeywordDocumentation.html +512 -503
  70. data/doc/TaskJuggler/Limits.html +111 -105
  71. data/doc/TaskJuggler/Limits/Limit.html +71 -65
  72. data/doc/TaskJuggler/LimitsAttribute.html +21 -15
  73. data/doc/TaskJuggler/ListAttributeBase.html +16 -10
  74. data/doc/TaskJuggler/Log.html +111 -105
  75. data/doc/TaskJuggler/LogFile.html +54 -48
  76. data/doc/TaskJuggler/LogicalAttribute.html +35 -29
  77. data/doc/TaskJuggler/LogicalExpression.html +32 -26
  78. data/doc/TaskJuggler/LogicalExpressionAttribute.html +16 -10
  79. data/doc/TaskJuggler/LogicalExpressionListAttribute.html +671 -0
  80. data/doc/TaskJuggler/LogicalFlag.html +24 -18
  81. data/doc/TaskJuggler/LogicalFunction.html +164 -158
  82. data/doc/TaskJuggler/LogicalOperation.html +138 -132
  83. data/doc/TaskJuggler/Macro.html +14 -8
  84. data/doc/TaskJuggler/MacroTable.html +42 -36
  85. data/doc/TaskJuggler/ManagerResponsibilities.html +19 -13
  86. data/doc/TaskJuggler/ManagerStatusRecord.html +23 -17
  87. data/doc/TaskJuggler/Message.html +56 -50
  88. data/doc/TaskJuggler/MessageHandler.html +73 -67
  89. data/doc/TaskJuggler/Navigator.html +92 -86
  90. data/doc/TaskJuggler/NavigatorElement.html +88 -82
  91. data/doc/TaskJuggler/NikuProject.html +15 -9
  92. data/doc/TaskJuggler/NikuReport.html +405 -370
  93. data/doc/TaskJuggler/NikuResource.html +13 -7
  94. data/doc/TaskJuggler/NodeListAttribute.html +13 -9
  95. data/doc/TaskJuggler/PlaceHolderCell.html +22 -16
  96. data/doc/TaskJuggler/ProcessIntercom.html +116 -110
  97. data/doc/TaskJuggler/ProcessIntercomIface.html +39 -33
  98. data/doc/TaskJuggler/Project.html +1064 -895
  99. data/doc/TaskJuggler/ProjectBroker.html +439 -366
  100. data/doc/TaskJuggler/ProjectBrokerIface.html +63 -53
  101. data/doc/TaskJuggler/ProjectFileParser.html +329 -319
  102. data/doc/TaskJuggler/ProjectFileScanner.html +351 -345
  103. data/doc/TaskJuggler/ProjectRecord.html +66 -60
  104. data/doc/TaskJuggler/ProjectServer.html +287 -280
  105. data/doc/TaskJuggler/ProjectServerIface.html +43 -37
  106. data/doc/TaskJuggler/PropertyAttribute.html +16 -10
  107. data/doc/TaskJuggler/PropertyList.html +205 -199
  108. data/doc/TaskJuggler/PropertySet.html +264 -296
  109. data/doc/TaskJuggler/PropertyTreeNode.html +455 -505
  110. data/doc/TaskJuggler/Query.html +309 -524
  111. data/doc/TaskJuggler/RTFHandlers.html +17 -11
  112. data/doc/TaskJuggler/RTFNavigator.html +33 -27
  113. data/doc/TaskJuggler/RTFQuery.html +135 -129
  114. data/doc/TaskJuggler/RTFReport.html +63 -57
  115. data/doc/TaskJuggler/RTFReportLink.html +55 -49
  116. data/doc/TaskJuggler/RTFWithQuerySupport.html +17 -11
  117. data/doc/TaskJuggler/RealFormat.html +64 -58
  118. data/doc/TaskJuggler/RealFormatAttribute.html +12 -6
  119. data/doc/TaskJuggler/ReferenceAttribute.html +35 -29
  120. data/doc/TaskJuggler/Report.html +294 -249
  121. data/doc/TaskJuggler/ReportBase.html +229 -223
  122. data/doc/TaskJuggler/ReportContext.html +52 -46
  123. data/doc/TaskJuggler/ReportServer.html +143 -137
  124. data/doc/TaskJuggler/ReportServerIface.html +51 -43
  125. data/doc/TaskJuggler/ReportServerRecord.html +36 -30
  126. data/doc/TaskJuggler/ReportServlet.html +167 -140
  127. data/doc/TaskJuggler/ReportTable.html +137 -131
  128. data/doc/TaskJuggler/ReportTableCell.html +332 -292
  129. data/doc/TaskJuggler/ReportTableColumn.html +46 -40
  130. data/doc/TaskJuggler/ReportTableLegend.html +43 -38
  131. data/doc/TaskJuggler/ReportTableLine.html +66 -60
  132. data/doc/TaskJuggler/Resource.html +166 -160
  133. data/doc/TaskJuggler/ResourceListAttribute.html +54 -32
  134. data/doc/TaskJuggler/ResourceListRE.html +47 -41
  135. data/doc/TaskJuggler/ResourceScenario.html +671 -644
  136. data/doc/TaskJuggler/RichText.html +51 -45
  137. data/doc/TaskJuggler/RichTextAttribute.html +28 -22
  138. data/doc/TaskJuggler/RichTextDocument.html +96 -90
  139. data/doc/TaskJuggler/RichTextElement.html +503 -497
  140. data/doc/TaskJuggler/RichTextFunctionExample.html +41 -35
  141. data/doc/TaskJuggler/RichTextFunctionHandler.html +19 -13
  142. data/doc/TaskJuggler/RichTextImage.html +14 -8
  143. data/doc/TaskJuggler/RichTextIntermediate.html +86 -80
  144. data/doc/TaskJuggler/RichTextParser.html +59 -53
  145. data/doc/TaskJuggler/RichTextScanner.html +184 -178
  146. data/doc/TaskJuggler/RichTextSnip.html +69 -63
  147. data/doc/TaskJuggler/RichTextSyntaxRules.html +416 -410
  148. data/doc/TaskJuggler/Scenario.html +13 -7
  149. data/doc/TaskJuggler/ScenarioData.html +40 -34
  150. data/doc/TaskJuggler/ScenarioListAttribute.html +21 -15
  151. data/doc/TaskJuggler/Scoreboard.html +129 -107
  152. data/doc/TaskJuggler/SheetHandlerBase.html +245 -239
  153. data/doc/TaskJuggler/SheetReceiver.html +333 -327
  154. data/doc/TaskJuggler/SheetSender.html +227 -221
  155. data/doc/TaskJuggler/Shift.html +26 -20
  156. data/doc/TaskJuggler/ShiftAssignment.html +45 -39
  157. data/doc/TaskJuggler/ShiftAssignments.html +178 -172
  158. data/doc/TaskJuggler/ShiftAssignmentsAttribute.html +21 -15
  159. data/doc/TaskJuggler/ShiftScenario.html +29 -23
  160. data/doc/TaskJuggler/SimpleQueryExpander.html +36 -30
  161. data/doc/TaskJuggler/SortListAttribute.html +17 -13
  162. data/doc/TaskJuggler/SourceFileInfo.html +19 -13
  163. data/doc/TaskJuggler/StatusSheetReceiver.html +31 -25
  164. data/doc/TaskJuggler/StatusSheetReport.html +166 -159
  165. data/doc/TaskJuggler/StatusSheetSender.html +80 -74
  166. data/doc/TaskJuggler/StringAttribute.html +20 -14
  167. data/doc/TaskJuggler/SymbolAttribute.html +16 -10
  168. data/doc/TaskJuggler/SyntaxReference.html +231 -225
  169. data/doc/TaskJuggler/TOCEntry.html +46 -40
  170. data/doc/TaskJuggler/TSResourceRecord.html +15 -9
  171. data/doc/TaskJuggler/TSTaskRecord.html +16 -10
  172. data/doc/TaskJuggler/TableColumnDefinition.html +84 -39
  173. data/doc/TaskJuggler/TableOfContents.html +28 -22
  174. data/doc/TaskJuggler/TableReport.html +906 -866
  175. data/doc/TaskJuggler/Task.html +99 -93
  176. data/doc/TaskJuggler/TaskDependency.html +24 -18
  177. data/doc/TaskJuggler/TaskListAttribute.html +29 -25
  178. data/doc/TaskJuggler/TaskListRE.html +46 -39
  179. data/doc/TaskJuggler/TaskScenario.html +2218 -1965
  180. data/doc/TaskJuggler/TextFormatter.html +154 -148
  181. data/doc/TaskJuggler/TextParser.html +362 -348
  182. data/doc/TaskJuggler/TextParser/Pattern.html +313 -307
  183. data/doc/TaskJuggler/TextParser/Rule.html +147 -141
  184. data/doc/TaskJuggler/TextParser/StackElement.html +58 -52
  185. data/doc/TaskJuggler/TextParser/State.html +88 -82
  186. data/doc/TaskJuggler/TextParser/StateTransition.html +42 -36
  187. data/doc/TaskJuggler/TextParser/TextParserResultArray.html +20 -14
  188. data/doc/TaskJuggler/TextParser/TokenDoc.html +19 -13
  189. data/doc/TaskJuggler/TextReport.html +80 -74
  190. data/doc/TaskJuggler/TextScanner.html +284 -272
  191. data/doc/TaskJuggler/TextScanner/BufferStreamHandle.html +14 -8
  192. data/doc/TaskJuggler/TextScanner/FileStreamHandle.html +21 -15
  193. data/doc/TaskJuggler/TextScanner/MacroStackEntry.html +15 -9
  194. data/doc/TaskJuggler/TextScanner/StreamHandle.html +102 -96
  195. data/doc/TaskJuggler/TimeSheet.html +123 -117
  196. data/doc/TaskJuggler/TimeSheetReceiver.html +28 -22
  197. data/doc/TaskJuggler/TimeSheetRecord.html +212 -206
  198. data/doc/TaskJuggler/TimeSheetReport.html +206 -199
  199. data/doc/TaskJuggler/TimeSheetSender.html +27 -21
  200. data/doc/TaskJuggler/TimeSheetSummary.html +140 -134
  201. data/doc/TaskJuggler/TimeSheets.html +20 -14
  202. data/doc/TaskJuggler/Tj3AppBase.html +100 -94
  203. data/doc/TaskJuggler/Tj3Client.html +407 -483
  204. data/doc/TaskJuggler/Tj3Daemon.html +116 -107
  205. data/doc/TaskJuggler/Tj3SheetAppBase.html +45 -39
  206. data/doc/TaskJuggler/Tj3SsReceiver.html +31 -25
  207. data/doc/TaskJuggler/Tj3SsSender.html +64 -58
  208. data/doc/TaskJuggler/Tj3TsReceiver.html +31 -25
  209. data/doc/TaskJuggler/Tj3TsSender.html +51 -45
  210. data/doc/TaskJuggler/Tj3TsSummary.html +59 -53
  211. data/doc/TaskJuggler/TjException.html +13 -7
  212. data/doc/TaskJuggler/TjTime.html +444 -438
  213. data/doc/TaskJuggler/TjpExample.html +84 -78
  214. data/doc/TaskJuggler/TjpExportRE.html +356 -349
  215. data/doc/TaskJuggler/TjpSyntaxRules.html +4279 -4151
  216. data/doc/TaskJuggler/URLParameter.html +16 -10
  217. data/doc/TaskJuggler/UserManual.html +185 -179
  218. data/doc/TaskJuggler/VimSyntax.html +144 -138
  219. data/doc/TaskJuggler/WebServer.html +46 -39
  220. data/doc/TaskJuggler/WelcomePage.html +769 -0
  221. data/doc/TaskJuggler/WorkingHours.html +185 -179
  222. data/doc/TaskJuggler/WorkingHoursAttribute.html +42 -36
  223. data/doc/TaskJuggler/XMLBlob.html +21 -15
  224. data/doc/TaskJuggler/XMLComment.html +17 -11
  225. data/doc/TaskJuggler/XMLDocument.html +33 -27
  226. data/doc/TaskJuggler/XMLElement.html +97 -91
  227. data/doc/TaskJuggler/XMLNamedText.html +13 -7
  228. data/doc/TaskJuggler/XMLText.html +32 -26
  229. data/doc/index.html +601 -563
  230. data/doc/lib/AccountScenario_rb.html +5 -3
  231. data/doc/lib/Account_rb.html +5 -3
  232. data/doc/lib/Allocation_rb.html +5 -3
  233. data/doc/lib/AppConfig_rb.html +5 -3
  234. data/doc/lib/AttributeBase_rb.html +5 -3
  235. data/doc/lib/AttributeDefinition_rb.html +5 -3
  236. data/doc/lib/Attributes_rb.html +5 -3
  237. data/doc/lib/BatchProcessor_rb.html +5 -3
  238. data/doc/lib/Booking_rb.html +5 -3
  239. data/doc/lib/ChargeSet_rb.html +5 -3
  240. data/doc/lib/Charge_rb.html +5 -3
  241. data/doc/lib/DataCache_rb.html +5 -3
  242. data/doc/lib/FileList_rb.html +5 -3
  243. data/doc/lib/HTMLDocument_rb.html +5 -3
  244. data/doc/lib/IntervalList_rb.html +69 -0
  245. data/doc/lib/Interval_rb.html +5 -3
  246. data/doc/lib/Journal_rb.html +5 -3
  247. data/doc/lib/KeywordArray_rb.html +5 -3
  248. data/doc/lib/KeywordDocumentation_rb.html +5 -3
  249. data/doc/lib/Limits_rb.html +5 -3
  250. data/doc/lib/LogFile_rb.html +5 -3
  251. data/doc/lib/Log_rb.html +5 -3
  252. data/doc/lib/LogicalExpression_rb.html +5 -3
  253. data/doc/lib/LogicalFunction_rb.html +5 -3
  254. data/doc/lib/LogicalOperation_rb.html +5 -3
  255. data/doc/lib/MacroTable_rb.html +5 -3
  256. data/doc/lib/MessageHandler_rb.html +5 -3
  257. data/doc/lib/ProjectFileParser_rb.html +5 -3
  258. data/doc/lib/ProjectFileScanner_rb.html +5 -3
  259. data/doc/lib/Project_rb.html +5 -3
  260. data/doc/lib/PropertyList_rb.html +5 -3
  261. data/doc/lib/PropertySet_rb.html +5 -3
  262. data/doc/lib/PropertyTreeNode_rb.html +5 -3
  263. data/doc/lib/Query_rb.html +5 -3
  264. data/doc/lib/RTFHandlers_rb.html +5 -3
  265. data/doc/lib/RTFNavigator_rb.html +5 -3
  266. data/doc/lib/RTFQuery_rb.html +5 -3
  267. data/doc/lib/RTFReportLink_rb.html +5 -3
  268. data/doc/lib/RTFReport_rb.html +5 -3
  269. data/doc/lib/RTFWithQuerySupport_rb.html +5 -3
  270. data/doc/lib/RealFormat_rb.html +5 -3
  271. data/doc/lib/ResourceScenario_rb.html +5 -3
  272. data/doc/lib/Resource_rb.html +5 -3
  273. data/doc/lib/RichTextDocument_rb.html +5 -3
  274. data/doc/lib/RichTextElement_rb.html +5 -3
  275. data/doc/lib/RichTextFunctionExample_rb.html +5 -3
  276. data/doc/lib/RichTextFunctionHandler_rb.html +5 -3
  277. data/doc/lib/RichTextParser_rb.html +5 -3
  278. data/doc/lib/RichTextScanner_rb.html +5 -3
  279. data/doc/lib/RichTextSnip_rb.html +5 -3
  280. data/doc/lib/RichTextSyntaxRules_rb.html +5 -3
  281. data/doc/lib/RichText_rb.html +5 -3
  282. data/doc/lib/RuntimeConfig_rb.html +5 -3
  283. data/doc/lib/ScenarioData_rb.html +5 -3
  284. data/doc/lib/Scenario_rb.html +5 -3
  285. data/doc/lib/Scoreboard_rb.html +7 -3
  286. data/doc/lib/SheetHandlerBase_rb.html +5 -3
  287. data/doc/lib/SheetReceiver_rb.html +5 -3
  288. data/doc/lib/SheetSender_rb.html +5 -3
  289. data/doc/lib/ShiftAssignments_rb.html +5 -3
  290. data/doc/lib/ShiftScenario_rb.html +5 -3
  291. data/doc/lib/Shift_rb.html +5 -3
  292. data/doc/lib/SimpleQueryExpander_rb.html +5 -3
  293. data/doc/lib/SourceFileInfo_rb.html +5 -3
  294. data/doc/lib/StatusSheetReceiver_rb.html +5 -3
  295. data/doc/lib/StatusSheetSender_rb.html +5 -3
  296. data/doc/lib/SyntaxReference_rb.html +5 -3
  297. data/doc/lib/TOCEntry_rb.html +5 -3
  298. data/doc/lib/TableColumnDefinition_rb.html +5 -3
  299. data/doc/lib/TableOfContents_rb.html +5 -3
  300. data/doc/lib/TaskDependency_rb.html +5 -3
  301. data/doc/lib/TaskJuggler_rb.html +5 -3
  302. data/doc/lib/TaskScenario_rb.html +5 -3
  303. data/doc/lib/Task_rb.html +5 -3
  304. data/doc/lib/TextFormatter_rb.html +6 -4
  305. data/doc/lib/TextParser/Pattern_rb.html +5 -3
  306. data/doc/lib/TextParser/Rule_rb.html +5 -3
  307. data/doc/lib/TextParser/StackElement_rb.html +5 -3
  308. data/doc/lib/TextParser/State_rb.html +6 -4
  309. data/doc/lib/TextParser/TokenDoc_rb.html +5 -3
  310. data/doc/lib/TextParser_rb.html +5 -3
  311. data/doc/lib/TextScanner_rb.html +5 -3
  312. data/doc/lib/TimeSheetReceiver_rb.html +5 -3
  313. data/doc/lib/TimeSheetSender_rb.html +5 -3
  314. data/doc/lib/TimeSheetSummary_rb.html +6 -4
  315. data/doc/lib/TimeSheets_rb.html +5 -3
  316. data/doc/lib/Tj3AppBase_rb.html +5 -3
  317. data/doc/lib/Tj3Config_rb.html +5 -3
  318. data/doc/lib/Tj3SheetAppBase_rb.html +5 -3
  319. data/doc/lib/TjException_rb.html +5 -3
  320. data/doc/lib/TjTime_rb.html +5 -3
  321. data/doc/lib/TjpExample_rb.html +5 -3
  322. data/doc/lib/TjpSyntaxRules_rb.html +5 -3
  323. data/doc/lib/URLParameter_rb.html +5 -3
  324. data/doc/lib/UTF8String_rb.html +5 -3
  325. data/doc/lib/UserManual_rb.html +5 -3
  326. data/doc/lib/VimSyntax_rb.html +6 -4
  327. data/doc/lib/WorkingHours_rb.html +5 -3
  328. data/doc/lib/XMLDocument_rb.html +5 -3
  329. data/doc/lib/XMLElement_rb.html +5 -3
  330. data/doc/lib/daemon/Daemon_rb.html +5 -3
  331. data/doc/lib/daemon/ProcessIntercom_rb.html +7 -3
  332. data/doc/lib/daemon/ProjectBroker_rb.html +5 -3
  333. data/doc/lib/daemon/ProjectServer_rb.html +5 -3
  334. data/doc/lib/daemon/ReportServer_rb.html +5 -3
  335. data/doc/lib/daemon/ReportServlet_rb.html +69 -0
  336. data/doc/lib/daemon/WebServer_rb.html +9 -3
  337. data/doc/lib/daemon/WelcomePage_rb.html +71 -0
  338. data/doc/lib/deep_copy_rb.html +5 -3
  339. data/doc/lib/reports/CSVFile_rb.html +5 -3
  340. data/doc/lib/reports/CollisionDetector_rb.html +5 -3
  341. data/doc/lib/reports/ColumnTable_rb.html +5 -3
  342. data/doc/lib/reports/GanttChart_rb.html +5 -3
  343. data/doc/lib/reports/GanttContainer_rb.html +5 -3
  344. data/doc/lib/reports/GanttHeaderScaleItem_rb.html +5 -3
  345. data/doc/lib/reports/GanttHeader_rb.html +5 -3
  346. data/doc/lib/reports/GanttLine_rb.html +5 -3
  347. data/doc/lib/reports/GanttLoadStack_rb.html +5 -3
  348. data/doc/lib/reports/GanttMilestone_rb.html +5 -3
  349. data/doc/lib/reports/GanttRouter_rb.html +5 -3
  350. data/doc/lib/reports/GanttTaskBar_rb.html +5 -3
  351. data/doc/lib/reports/HTMLGraphics_rb.html +5 -3
  352. data/doc/lib/reports/Navigator_rb.html +5 -3
  353. data/doc/lib/reports/NikuReport_rb.html +5 -3
  354. data/doc/lib/reports/ReportBase_rb.html +5 -3
  355. data/doc/lib/reports/ReportContext_rb.html +5 -3
  356. data/doc/lib/reports/ReportTableCell_rb.html +5 -3
  357. data/doc/lib/reports/ReportTableColumn_rb.html +5 -3
  358. data/doc/lib/reports/ReportTableLegend_rb.html +5 -3
  359. data/doc/lib/reports/ReportTableLine_rb.html +5 -3
  360. data/doc/lib/reports/ReportTable_rb.html +5 -3
  361. data/doc/lib/reports/Report_rb.html +5 -3
  362. data/doc/lib/reports/ResourceListRE_rb.html +5 -3
  363. data/doc/lib/reports/StatusSheetReport_rb.html +5 -3
  364. data/doc/lib/reports/TableReport_rb.html +5 -3
  365. data/doc/lib/reports/TaskListRE_rb.html +5 -3
  366. data/doc/lib/reports/TextReport_rb.html +5 -3
  367. data/doc/lib/reports/TimeSheetReport_rb.html +5 -3
  368. data/doc/lib/reports/TjpExportRE_rb.html +5 -3
  369. data/doc/lib/{taskjuggler3_rb.html → tj3_rb.html} +7 -5
  370. data/doc/lib/tj3client_rb.html +5 -3
  371. data/doc/lib/tj3d_rb.html +6 -4
  372. data/doc/lib/tj3man_rb.html +5 -3
  373. data/doc/lib/tj3ss_receiver_rb.html +5 -3
  374. data/doc/lib/tj3ss_sender_rb.html +5 -3
  375. data/doc/lib/tj3ts_receiver_rb.html +5 -3
  376. data/doc/lib/tj3ts_sender_rb.html +5 -3
  377. data/doc/lib/tj3ts_summary_rb.html +5 -3
  378. data/examples/tutorial.tjp +13 -5
  379. data/gem_spec.rb +3 -0
  380. data/lib/Account.rb +2 -1
  381. data/lib/AccountScenario.rb +2 -1
  382. data/lib/Allocation.rb +2 -1
  383. data/lib/AppConfig.rb +2 -1
  384. data/lib/AttributeBase.rb +19 -5
  385. data/lib/AttributeDefinition.rb +2 -1
  386. data/lib/Attributes.rb +49 -38
  387. data/lib/BatchProcessor.rb +2 -1
  388. data/lib/Booking.rb +2 -1
  389. data/lib/Charge.rb +2 -1
  390. data/lib/ChargeSet.rb +2 -1
  391. data/lib/DataCache.rb +15 -1
  392. data/lib/FileList.rb +2 -1
  393. data/lib/HTMLDocument.rb +2 -1
  394. data/lib/Interval.rb +2 -1
  395. data/lib/IntervalList.rb +100 -0
  396. data/lib/Journal.rb +8 -2
  397. data/lib/KeywordArray.rb +2 -1
  398. data/lib/KeywordDocumentation.rb +10 -6
  399. data/lib/Limits.rb +2 -1
  400. data/lib/Log.rb +3 -2
  401. data/lib/LogFile.rb +2 -1
  402. data/lib/LogicalExpression.rb +2 -1
  403. data/lib/LogicalFunction.rb +2 -1
  404. data/lib/LogicalOperation.rb +2 -1
  405. data/lib/MacroTable.rb +2 -1
  406. data/lib/MessageHandler.rb +2 -1
  407. data/lib/Project.rb +92 -25
  408. data/lib/ProjectFileParser.rb +7 -2
  409. data/lib/ProjectFileScanner.rb +2 -1
  410. data/lib/PropertyList.rb +2 -1
  411. data/lib/PropertySet.rb +2 -6
  412. data/lib/PropertyTreeNode.rb +22 -44
  413. data/lib/Query.rb +32 -13
  414. data/lib/RTFHandlers.rb +2 -1
  415. data/lib/RTFNavigator.rb +2 -1
  416. data/lib/RTFQuery.rb +3 -2
  417. data/lib/RTFReport.rb +2 -1
  418. data/lib/RTFReportLink.rb +2 -1
  419. data/lib/RTFWithQuerySupport.rb +2 -1
  420. data/lib/RealFormat.rb +2 -1
  421. data/lib/Resource.rb +2 -1
  422. data/lib/ResourceScenario.rb +35 -14
  423. data/lib/RichText.rb +2 -1
  424. data/lib/RichTextDocument.rb +2 -1
  425. data/lib/RichTextElement.rb +2 -1
  426. data/lib/RichTextFunctionExample.rb +2 -1
  427. data/lib/RichTextFunctionHandler.rb +2 -1
  428. data/lib/RichTextParser.rb +2 -1
  429. data/lib/RichTextScanner.rb +2 -1
  430. data/lib/RichTextSnip.rb +2 -1
  431. data/lib/RichTextSyntaxRules.rb +2 -1
  432. data/lib/RuntimeConfig.rb +2 -1
  433. data/lib/Scenario.rb +2 -1
  434. data/lib/ScenarioData.rb +2 -1
  435. data/lib/Scoreboard.rb +27 -8
  436. data/lib/SheetHandlerBase.rb +2 -1
  437. data/lib/SheetReceiver.rb +2 -1
  438. data/lib/SheetSender.rb +2 -1
  439. data/lib/Shift.rb +2 -1
  440. data/lib/ShiftAssignments.rb +2 -1
  441. data/lib/ShiftScenario.rb +2 -1
  442. data/lib/SimpleQueryExpander.rb +2 -1
  443. data/lib/SourceFileInfo.rb +2 -1
  444. data/lib/StatusSheetReceiver.rb +2 -1
  445. data/lib/StatusSheetSender.rb +2 -1
  446. data/lib/SyntaxReference.rb +2 -1
  447. data/lib/TOCEntry.rb +2 -1
  448. data/lib/TableColumnDefinition.rb +9 -2
  449. data/lib/TableOfContents.rb +2 -1
  450. data/lib/Task.rb +2 -1
  451. data/lib/TaskDependency.rb +2 -1
  452. data/lib/TaskJuggler.rb +8 -6
  453. data/lib/TaskScenario.rb +337 -153
  454. data/lib/TextFormatter.rb +3 -2
  455. data/lib/TextParser.rb +7 -2
  456. data/lib/TextParser/Pattern.rb +2 -1
  457. data/lib/TextParser/Rule.rb +2 -1
  458. data/lib/TextParser/StackElement.rb +2 -1
  459. data/lib/TextParser/State.rb +3 -2
  460. data/lib/TextParser/TokenDoc.rb +2 -1
  461. data/lib/TextScanner.rb +12 -5
  462. data/lib/TimeSheetReceiver.rb +2 -1
  463. data/lib/TimeSheetSender.rb +2 -1
  464. data/lib/TimeSheetSummary.rb +3 -2
  465. data/lib/TimeSheets.rb +2 -1
  466. data/lib/Tj3AppBase.rb +6 -5
  467. data/lib/Tj3Config.rb +5 -4
  468. data/lib/Tj3SheetAppBase.rb +2 -1
  469. data/lib/TjException.rb +2 -1
  470. data/lib/TjTime.rb +2 -1
  471. data/lib/TjpExample.rb +2 -1
  472. data/lib/TjpSyntaxRules.rb +264 -65
  473. data/lib/URLParameter.rb +2 -1
  474. data/lib/UTF8String.rb +2 -1
  475. data/lib/UserManual.rb +2 -1
  476. data/lib/VimSyntax.rb +3 -2
  477. data/lib/WorkingHours.rb +2 -1
  478. data/lib/XMLDocument.rb +2 -1
  479. data/lib/XMLElement.rb +2 -1
  480. data/lib/daemon/Daemon.rb +3 -1
  481. data/lib/daemon/ProcessIntercom.rb +3 -1
  482. data/lib/daemon/ProjectBroker.rb +84 -32
  483. data/lib/daemon/ProjectServer.rb +5 -3
  484. data/lib/daemon/ReportServer.rb +8 -5
  485. data/lib/daemon/ReportServlet.rb +166 -0
  486. data/lib/daemon/WebServer.rb +6 -150
  487. data/lib/daemon/WelcomePage.rb +80 -0
  488. data/lib/deep_copy.rb +2 -1
  489. data/lib/reports/CSVFile.rb +2 -1
  490. data/lib/reports/CollisionDetector.rb +2 -1
  491. data/lib/reports/ColumnTable.rb +2 -1
  492. data/lib/reports/GanttChart.rb +2 -1
  493. data/lib/reports/GanttContainer.rb +3 -4
  494. data/lib/reports/GanttHeader.rb +2 -1
  495. data/lib/reports/GanttHeaderScaleItem.rb +2 -1
  496. data/lib/reports/GanttLine.rb +12 -10
  497. data/lib/reports/GanttLoadStack.rb +2 -1
  498. data/lib/reports/GanttMilestone.rb +3 -3
  499. data/lib/reports/GanttRouter.rb +4 -1
  500. data/lib/reports/GanttTaskBar.rb +9 -7
  501. data/lib/reports/HTMLGraphics.rb +2 -1
  502. data/lib/reports/Navigator.rb +2 -1
  503. data/lib/reports/NikuReport.rb +79 -49
  504. data/lib/reports/Report.rb +42 -10
  505. data/lib/reports/ReportBase.rb +2 -1
  506. data/lib/reports/ReportContext.rb +2 -1
  507. data/lib/reports/ReportTable.rb +2 -1
  508. data/lib/reports/ReportTableCell.rb +63 -28
  509. data/lib/reports/ReportTableColumn.rb +2 -1
  510. data/lib/reports/ReportTableLegend.rb +5 -5
  511. data/lib/reports/ReportTableLine.rb +2 -1
  512. data/lib/reports/ResourceListRE.rb +2 -1
  513. data/lib/reports/StatusSheetReport.rb +4 -2
  514. data/lib/reports/TableReport.rb +42 -38
  515. data/lib/reports/TaskListRE.rb +4 -2
  516. data/lib/reports/TextReport.rb +2 -1
  517. data/lib/reports/TimeSheetReport.rb +4 -2
  518. data/lib/reports/TjpExportRE.rb +4 -2
  519. data/lib/{taskjuggler3.rb → tj3.rb} +6 -5
  520. data/lib/tj3client.rb +19 -36
  521. data/lib/tj3d.rb +6 -2
  522. data/lib/tj3man.rb +4 -3
  523. data/lib/tj3ss_receiver.rb +2 -1
  524. data/lib/tj3ss_sender.rb +2 -1
  525. data/lib/tj3ts_receiver.rb +2 -1
  526. data/lib/tj3ts_sender.rb +2 -1
  527. data/lib/tj3ts_summary.rb +2 -1
  528. data/manual/Day_To_Day_Juggling +36 -0
  529. data/manual/How_To_Contribute +9 -4
  530. data/manual/Installation +10 -3
  531. data/manual/TaskJuggler_Internals +0 -2
  532. data/manual/Tutorial +25 -3
  533. data/prj_cfg.rb +4 -2
  534. data/spec/IntervalList_spec.rb +138 -0
  535. data/spec/ProjectBroker_spec.rb +133 -0
  536. data/tasks/changelog.rake +41 -24
  537. data/tasks/csts.rake +1 -0
  538. data/tasks/gem.rake +1 -0
  539. data/tasks/rcov.rake +1 -1
  540. data/tasks/spec.rake +7 -0
  541. data/tasks/test.rake +1 -0
  542. data/test/MessageChecker.rb +2 -1
  543. data/test/TestSuite/CSV-Reports/niku.tjp +70 -0
  544. data/test/TestSuite/CSV-Reports/{celltext-Reference.csv → refs/celltext.csv} +0 -0
  545. data/test/TestSuite/CSV-Reports/refs/niku.csv +5 -0
  546. data/test/TestSuite/CSV-Reports/{resourcereport-Reference.csv → refs/resourcereport.csv} +0 -0
  547. data/test/TestSuite/CSV-Reports/{resourcereport_with_tasks-Reference.csv → refs/resourcereport_with_tasks.csv} +0 -0
  548. data/test/TestSuite/CSV-Reports/{sortByTree-Reference.csv → refs/sortByTree.csv} +0 -0
  549. data/test/TestSuite/CSV-Reports/{sortBy_duration.down-Reference.csv → refs/sortBy_duration.down.csv} +0 -0
  550. data/test/TestSuite/CSV-Reports/{sortBy_effort.up-Reference.csv → refs/sortBy_effort.up.csv} +0 -0
  551. data/test/TestSuite/CSV-Reports/{sortBy_plan.start.down-Reference.csv → refs/sortBy_plan.start.down.csv} +0 -0
  552. data/test/TestSuite/CSV-Reports/{taskreport-Reference.csv → refs/taskreport.csv} +0 -0
  553. data/test/TestSuite/CSV-Reports/{taskreport_with_resources-Reference.csv → refs/taskreport_with_resources.csv} +0 -0
  554. data/test/TestSuite/CSV-Reports/{weekly-Reference.csv → refs/weekly.csv} +0 -0
  555. data/test/TestSuite/HTML-Reports/Alerts.tjp +12 -0
  556. data/test/TestSuite/Scheduler/Correct/Allocate.tjp +2 -2
  557. data/test/TestSuite/Scheduler/Correct/Container-2.tjp +1 -2
  558. data/test/TestSuite/Scheduler/Correct/InheritedAttributes.tjp +77 -0
  559. data/test/TestSuite/Scheduler/Correct/WeakDeps.tjp +40 -0
  560. data/test/TestSuite/Scheduler/Errors/loop_detected_12.tjp +2 -2
  561. data/test/TestSuite/Scheduler/Errors/loop_detected_13.tjp +3 -4
  562. data/test/TestSuite/Scheduler/Errors/loop_detected_3.tjp +2 -2
  563. data/test/TestSuite/Scheduler/Errors/loop_detected_6.tjp +8 -7
  564. data/test/TestSuite/Scheduler/Errors/onend_wrong_direction.tjp +19 -0
  565. data/test/TestSuite/Scheduler/Errors/onstart_wrong_direction.tjp +18 -0
  566. data/test/TestSuite/Scheduler/Errors/task_depend_multi.tjp +1 -2
  567. data/test/TestSuite/StatusSheets/StatusSheetTemplates/2002-03-02/boss_2002-03-02.tji +46 -0
  568. data/test/TestSuite/StatusSheets/StatusSheetTemplates/2002-03-02/dev2_2002-03-02.tji +22 -0
  569. data/test/TestSuite/StatusSheets/StatusSheetTemplates/2002-03-02/resources.yml +11 -0
  570. data/test/TestSuite/StatusSheets/StatusSheetTemplates/acceptable_intervals +1 -0
  571. data/test/TestSuite/StatusSheets/sender.log +256 -0
  572. data/test/TestSuite/StatusSheets/statussheets.log +9 -0
  573. data/test/TestSuite/StatusSheets/tj3d.log +395 -0
  574. data/test/TestSuite/Syntax/Correct/Limits-1.tjp +2 -0
  575. data/test/TestSuite/Syntax/Correct/Niku.tjp +6 -1
  576. data/test/TestSuite/Syntax/Correct/Scenario.tjp +4 -1
  577. data/test/TestSuite/Syntax/Correct/Supplement.tjp +12 -5
  578. data/test/TestSuite/Syntax/Correct/TaskPrefix.tji +3 -0
  579. data/test/TestSuite/Syntax/Correct/TaskPrefix.tjp +24 -0
  580. data/test/TestSuite/Syntax/Correct/css/tjreport.css +7 -2
  581. data/test/TestSuite/Syntax/Correct/tutorial.tjp +15 -5
  582. data/test/all.rb +2 -4
  583. data/test/test_BatchProcessor.rb +2 -1
  584. data/test/test_CSV-Reports.rb +34 -23
  585. data/test/test_CSVFile.rb +2 -1
  586. data/test/test_CollisionDetector.rb +3 -2
  587. data/test/test_Journal.rb +2 -1
  588. data/test/test_Limits.rb +2 -1
  589. data/test/test_LogicalExpression.rb +2 -1
  590. data/test/test_MacroTable.rb +2 -1
  591. data/test/test_Project.rb +3 -2
  592. data/test/test_ProjectFileScanner.rb +2 -1
  593. data/test/test_PropertySet.rb +2 -1
  594. data/test/test_Query.rb +2 -1
  595. data/test/test_RealFormat.rb +2 -1
  596. data/test/test_ReportGenerator.rb +2 -1
  597. data/test/test_RichText.rb +2 -1
  598. data/test/test_Scheduler.rb +2 -1
  599. data/test/test_ShiftAssignments.rb +2 -1
  600. data/test/test_SimpleQueryExpander.rb +2 -1
  601. data/test/test_Syntax.rb +2 -1
  602. data/test/test_TextFormatter.rb +3 -2
  603. data/test/test_TjTime.rb +2 -1
  604. data/test/test_TjpExample.rb +2 -1
  605. data/test/test_URLParameter.rb +2 -1
  606. data/test/test_UTF8String.rb +2 -1
  607. data/test/test_WorkingHours.rb +2 -1
  608. data/test/test_deep_copy.rb +2 -1
  609. metadata +74 -20
  610. data/doc/StringIO.html +0 -595
  611. data/test/TestSuite/Scheduler/Errors/loop_detected_7.tjp +0 -46
  612. data/test/TestSuite/Scheduler/Errors/loop_detected_8.tjp +0 -51
  613. data/test/TestSuite/Scheduler/Errors/multiple_durations.tjp +0 -11
@@ -129,6 +129,8 @@
129
129
 
130
130
  <li><a href="../TaskJuggler/AttributeDefinition.html">TaskJuggler::AttributeDefinition</a></li>
131
131
 
132
+ <li><a href="../TaskJuggler/AttributeOverwrite.html">TaskJuggler::AttributeOverwrite</a></li>
133
+
132
134
  <li><a href="../TaskJuggler/BatchProcessor.html">TaskJuggler::BatchProcessor</a></li>
133
135
 
134
136
  <li><a href="../TaskJuggler/Booking.html">TaskJuggler::Booking</a></li>
@@ -207,6 +209,8 @@
207
209
 
208
210
  <li><a href="../TaskJuggler/Interval.html">TaskJuggler::Interval</a></li>
209
211
 
212
+ <li><a href="../TaskJuggler/IntervalList.html">TaskJuggler::IntervalList</a></li>
213
+
210
214
  <li><a href="../TaskJuggler/IntervalListAttribute.html">TaskJuggler::IntervalListAttribute</a></li>
211
215
 
212
216
  <li><a href="../TaskJuggler/JobInfo.html">TaskJuggler::JobInfo</a></li>
@@ -239,6 +243,8 @@
239
243
 
240
244
  <li><a href="../TaskJuggler/LogicalExpressionAttribute.html">TaskJuggler::LogicalExpressionAttribute</a></li>
241
245
 
246
+ <li><a href="../TaskJuggler/LogicalExpressionListAttribute.html">TaskJuggler::LogicalExpressionListAttribute</a></li>
247
+
242
248
  <li><a href="../TaskJuggler/LogicalFlag.html">TaskJuggler::LogicalFlag</a></li>
243
249
 
244
250
  <li><a href="../TaskJuggler/LogicalFunction.html">TaskJuggler::LogicalFunction</a></li>
@@ -519,6 +525,8 @@
519
525
 
520
526
  <li><a href="../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
521
527
 
528
+ <li><a href="../TaskJuggler/WelcomePage.html">TaskJuggler::WelcomePage</a></li>
529
+
522
530
  <li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
523
531
 
524
532
  <li><a href="../TaskJuggler/WorkingHoursAttribute.html">TaskJuggler::WorkingHoursAttribute</a></li>
@@ -545,8 +553,6 @@
545
553
 
546
554
  <li><a href="../String.html">String</a></li>
547
555
 
548
- <li><a href="../StringIO.html">StringIO</a></li>
549
-
550
556
  </ul>
551
557
  <div id="no-class-search-results" style="display: none;">No matching classes.</div>
552
558
  </div>
@@ -649,14 +655,14 @@ This class is a storate container for all data related to a scale step of a
649
655
  <div class="method-source-code"
650
656
  id="new-source">
651
657
  <pre>
652
- <span class="ruby-comment cmt"># File lib/reports/GanttHeaderScaleItem.rb, line 21</span>
653
- 21: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">label</span>, <span class="ruby-identifier">x</span>, <span class="ruby-identifier">y</span>, <span class="ruby-identifier">width</span>, <span class="ruby-identifier">height</span>)
654
- 22: <span class="ruby-ivar">@label</span> = <span class="ruby-identifier">label</span>
655
- 23: <span class="ruby-ivar">@x</span> = <span class="ruby-identifier">x</span>
656
- 24: <span class="ruby-ivar">@y</span> = <span class="ruby-identifier">y</span>
657
- 25: <span class="ruby-ivar">@width</span> = <span class="ruby-identifier">width</span>
658
- 26: <span class="ruby-ivar">@height</span> = <span class="ruby-identifier">height</span>
659
- 27: <span class="ruby-keyword kw">end</span></pre>
658
+ <span class="ruby-comment cmt"># File lib/reports/GanttHeaderScaleItem.rb, line 22</span>
659
+ 22: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">label</span>, <span class="ruby-identifier">x</span>, <span class="ruby-identifier">y</span>, <span class="ruby-identifier">width</span>, <span class="ruby-identifier">height</span>)
660
+ 23: <span class="ruby-ivar">@label</span> = <span class="ruby-identifier">label</span>
661
+ 24: <span class="ruby-ivar">@x</span> = <span class="ruby-identifier">x</span>
662
+ 25: <span class="ruby-ivar">@y</span> = <span class="ruby-identifier">y</span>
663
+ 26: <span class="ruby-ivar">@width</span> = <span class="ruby-identifier">width</span>
664
+ 27: <span class="ruby-ivar">@height</span> = <span class="ruby-identifier">height</span>
665
+ 28: <span class="ruby-keyword kw">end</span></pre>
660
666
  </div>
661
667
 
662
668
  </div>
@@ -693,16 +699,16 @@ This class is a storate container for all data related to a scale step of a
693
699
  <div class="method-source-code"
694
700
  id="to-html-source">
695
701
  <pre>
696
- <span class="ruby-comment cmt"># File lib/reports/GanttHeaderScaleItem.rb, line 29</span>
697
- 29: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_html</span>
698
- 30: <span class="ruby-identifier">div</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'div'</span>, <span class="ruby-value str">'class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'tabhead'</span>,
699
- 31: <span class="ruby-value str">'style'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">&quot;font-weight:bold; position:absolute; &quot;</span> <span class="ruby-operator">+</span>
700
- 32: <span class="ruby-node">&quot;left:#{@x}px; top:#{@y}px; width:#{@width}px; height:#{@height}px; &quot;</span>)
701
- 33: <span class="ruby-identifier">div</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">div1</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'div'</span>, <span class="ruby-value str">'style'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'padding:3px; '</span>))
702
- 34: <span class="ruby-identifier">div1</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">XMLText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-node">&quot;#{label}&quot;</span>)
703
- 35:
704
- 36: <span class="ruby-identifier">div</span>
705
- 37: <span class="ruby-keyword kw">end</span></pre>
702
+ <span class="ruby-comment cmt"># File lib/reports/GanttHeaderScaleItem.rb, line 30</span>
703
+ 30: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_html</span>
704
+ 31: <span class="ruby-identifier">div</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'div'</span>, <span class="ruby-value str">'class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'tabhead'</span>,
705
+ 32: <span class="ruby-value str">'style'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">&quot;font-weight:bold; position:absolute; &quot;</span> <span class="ruby-operator">+</span>
706
+ 33: <span class="ruby-node">&quot;left:#{@x}px; top:#{@y}px; width:#{@width}px; height:#{@height}px; &quot;</span>)
707
+ 34: <span class="ruby-identifier">div</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">div1</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'div'</span>, <span class="ruby-value str">'style'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'padding:3px; '</span>))
708
+ 35: <span class="ruby-identifier">div1</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">XMLText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-node">&quot;#{label}&quot;</span>)
709
+ 36:
710
+ 37: <span class="ruby-identifier">div</span>
711
+ 38: <span class="ruby-keyword kw">end</span></pre>
706
712
  </div>
707
713
 
708
714
  </div>
@@ -154,6 +154,8 @@
154
154
 
155
155
  <li><a href="../TaskJuggler/AttributeDefinition.html">TaskJuggler::AttributeDefinition</a></li>
156
156
 
157
+ <li><a href="../TaskJuggler/AttributeOverwrite.html">TaskJuggler::AttributeOverwrite</a></li>
158
+
157
159
  <li><a href="../TaskJuggler/BatchProcessor.html">TaskJuggler::BatchProcessor</a></li>
158
160
 
159
161
  <li><a href="../TaskJuggler/Booking.html">TaskJuggler::Booking</a></li>
@@ -232,6 +234,8 @@
232
234
 
233
235
  <li><a href="../TaskJuggler/Interval.html">TaskJuggler::Interval</a></li>
234
236
 
237
+ <li><a href="../TaskJuggler/IntervalList.html">TaskJuggler::IntervalList</a></li>
238
+
235
239
  <li><a href="../TaskJuggler/IntervalListAttribute.html">TaskJuggler::IntervalListAttribute</a></li>
236
240
 
237
241
  <li><a href="../TaskJuggler/JobInfo.html">TaskJuggler::JobInfo</a></li>
@@ -264,6 +268,8 @@
264
268
 
265
269
  <li><a href="../TaskJuggler/LogicalExpressionAttribute.html">TaskJuggler::LogicalExpressionAttribute</a></li>
266
270
 
271
+ <li><a href="../TaskJuggler/LogicalExpressionListAttribute.html">TaskJuggler::LogicalExpressionListAttribute</a></li>
272
+
267
273
  <li><a href="../TaskJuggler/LogicalFlag.html">TaskJuggler::LogicalFlag</a></li>
268
274
 
269
275
  <li><a href="../TaskJuggler/LogicalFunction.html">TaskJuggler::LogicalFunction</a></li>
@@ -544,6 +550,8 @@
544
550
 
545
551
  <li><a href="../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
546
552
 
553
+ <li><a href="../TaskJuggler/WelcomePage.html">TaskJuggler::WelcomePage</a></li>
554
+
547
555
  <li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
548
556
 
549
557
  <li><a href="../TaskJuggler/WorkingHoursAttribute.html">TaskJuggler::WorkingHoursAttribute</a></li>
@@ -570,8 +578,6 @@
570
578
 
571
579
  <li><a href="../String.html">String</a></li>
572
580
 
573
- <li><a href="../StringIO.html">StringIO</a></li>
574
-
575
581
  </ul>
576
582
  <div id="no-class-search-results" style="display: none;">No matching classes.</div>
577
583
  </div>
@@ -680,30 +686,30 @@ abstract representation.
680
686
  <div class="method-source-code"
681
687
  id="new-source">
682
688
  <pre>
683
- <span class="ruby-comment cmt"># File lib/reports/GanttLine.rb, line 34</span>
684
- 34: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">chart</span>, <span class="ruby-identifier">query</span>, <span class="ruby-identifier">y</span>, <span class="ruby-identifier">height</span>, <span class="ruby-identifier">tooltip</span>)
685
- 35: <span class="ruby-comment cmt"># A reference to the chart that the line belongs to.</span>
686
- 36: <span class="ruby-ivar">@chart</span> = <span class="ruby-identifier">chart</span>
687
- 37: <span class="ruby-comment cmt"># Register the line with the chart.</span>
688
- 38: <span class="ruby-ivar">@chart</span>.<span class="ruby-identifier">addLine</span>(<span class="ruby-keyword kw">self</span>)
689
- 39:
690
- 40: <span class="ruby-comment cmt"># The query is used to access the presented project data.</span>
691
- 41: <span class="ruby-ivar">@query</span> = <span class="ruby-identifier">query</span>
692
- 42: <span class="ruby-comment cmt"># A CellSettingPatternList object to determine the tooltips for the</span>
693
- 43: <span class="ruby-comment cmt"># line's content.</span>
694
- 44: <span class="ruby-ivar">@tooltip</span> = <span class="ruby-identifier">tooltip</span>
695
- 45: <span class="ruby-comment cmt"># The category determines the background color of the line.</span>
696
- 46: <span class="ruby-ivar">@category</span> = <span class="ruby-keyword kw">nil</span>
697
- 47: <span class="ruby-comment cmt"># The y coordinate of the topmost pixel of this line.</span>
698
- 48: <span class="ruby-ivar">@y</span> = <span class="ruby-identifier">y</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">chart</span>.<span class="ruby-identifier">header</span>.<span class="ruby-identifier">height</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>
699
- 49: <span class="ruby-comment cmt"># The height of the line in screen pixels.</span>
700
- 50: <span class="ruby-ivar">@height</span> = <span class="ruby-identifier">height</span>
701
- 51: <span class="ruby-comment cmt"># The x coordinates of the time-off zones. It's an Array of [ startX, endX</span>
702
- 52: <span class="ruby-comment cmt"># ] touples.</span>
703
- 53: <span class="ruby-ivar">@timeOffZones</span> = []
704
- 54:
705
- 55: <span class="ruby-identifier">generate</span>
706
- 56: <span class="ruby-keyword kw">end</span></pre>
689
+ <span class="ruby-comment cmt"># File lib/reports/GanttLine.rb, line 35</span>
690
+ 35: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">chart</span>, <span class="ruby-identifier">query</span>, <span class="ruby-identifier">y</span>, <span class="ruby-identifier">height</span>, <span class="ruby-identifier">tooltip</span>)
691
+ 36: <span class="ruby-comment cmt"># A reference to the chart that the line belongs to.</span>
692
+ 37: <span class="ruby-ivar">@chart</span> = <span class="ruby-identifier">chart</span>
693
+ 38: <span class="ruby-comment cmt"># Register the line with the chart.</span>
694
+ 39: <span class="ruby-ivar">@chart</span>.<span class="ruby-identifier">addLine</span>(<span class="ruby-keyword kw">self</span>)
695
+ 40:
696
+ 41: <span class="ruby-comment cmt"># The query is used to access the presented project data.</span>
697
+ 42: <span class="ruby-ivar">@query</span> = <span class="ruby-identifier">query</span>
698
+ 43: <span class="ruby-comment cmt"># A CellSettingPatternList object to determine the tooltips for the</span>
699
+ 44: <span class="ruby-comment cmt"># line's content.</span>
700
+ 45: <span class="ruby-ivar">@tooltip</span> = <span class="ruby-identifier">tooltip</span>
701
+ 46: <span class="ruby-comment cmt"># The category determines the background color of the line.</span>
702
+ 47: <span class="ruby-ivar">@category</span> = <span class="ruby-keyword kw">nil</span>
703
+ 48: <span class="ruby-comment cmt"># The y coordinate of the topmost pixel of this line.</span>
704
+ 49: <span class="ruby-ivar">@y</span> = <span class="ruby-identifier">y</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">chart</span>.<span class="ruby-identifier">header</span>.<span class="ruby-identifier">height</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>
705
+ 50: <span class="ruby-comment cmt"># The height of the line in screen pixels.</span>
706
+ 51: <span class="ruby-ivar">@height</span> = <span class="ruby-identifier">height</span>
707
+ 52: <span class="ruby-comment cmt"># The x coordinates of the time-off zones. It's an Array of [ startX, endX</span>
708
+ 53: <span class="ruby-comment cmt"># ] touples.</span>
709
+ 54: <span class="ruby-ivar">@timeOffZones</span> = []
710
+ 55:
711
+ 56: <span class="ruby-identifier">generate</span>
712
+ 57: <span class="ruby-keyword kw">end</span></pre>
707
713
  </div>
708
714
 
709
715
  </div>
@@ -742,12 +748,12 @@ Register the areas that dependency lines should not cross.
742
748
  <div class="method-source-code"
743
749
  id="add-locked-ones-source">
744
750
  <pre>
745
- <span class="ruby-comment cmt"># File lib/reports/GanttLine.rb, line 108</span>
746
- 108: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">addBlockedZones</span>(<span class="ruby-identifier">router</span>)
747
- 109: <span class="ruby-ivar">@content</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">c</span><span class="ruby-operator">|</span>
748
- 110: <span class="ruby-identifier">c</span>.<span class="ruby-identifier">addBlockedZones</span>(<span class="ruby-identifier">router</span>)
749
- 111: <span class="ruby-keyword kw">end</span>
750
- 112: <span class="ruby-keyword kw">end</span></pre>
751
+ <span class="ruby-comment cmt"># File lib/reports/GanttLine.rb, line 109</span>
752
+ 109: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">addBlockedZones</span>(<span class="ruby-identifier">router</span>)
753
+ 110: <span class="ruby-ivar">@content</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">c</span><span class="ruby-operator">|</span>
754
+ 111: <span class="ruby-identifier">c</span>.<span class="ruby-identifier">addBlockedZones</span>(<span class="ruby-identifier">router</span>)
755
+ 112: <span class="ruby-keyword kw">end</span>
756
+ 113: <span class="ruby-keyword kw">end</span></pre>
751
757
  </div>
752
758
 
753
759
  </div>
@@ -781,14 +787,14 @@ intermediate object for that line.
781
787
  <div class="method-source-code"
782
788
  id="get-ask-source">
783
789
  <pre>
784
- <span class="ruby-comment cmt"># File lib/reports/GanttLine.rb, line 99</span>
785
- 99: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">getTask</span>
786
- 100: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@content</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">==</span> <span class="ruby-value">1</span>
787
- 101: <span class="ruby-ivar">@content</span>[<span class="ruby-value">0</span>]
788
- 102: <span class="ruby-keyword kw">else</span>
789
- 103: <span class="ruby-keyword kw">nil</span>
790
- 104: <span class="ruby-keyword kw">end</span>
791
- 105: <span class="ruby-keyword kw">end</span></pre>
790
+ <span class="ruby-comment cmt"># File lib/reports/GanttLine.rb, line 100</span>
791
+ 100: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">getTask</span>
792
+ 101: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@content</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">==</span> <span class="ruby-value">1</span>
793
+ 102: <span class="ruby-ivar">@content</span>[<span class="ruby-value">0</span>]
794
+ 103: <span class="ruby-keyword kw">else</span>
795
+ 104: <span class="ruby-keyword kw">nil</span>
796
+ 105: <span class="ruby-keyword kw">end</span>
797
+ 106: <span class="ruby-keyword kw">end</span></pre>
792
798
  </div>
793
799
 
794
800
  </div>
@@ -822,44 +828,44 @@ href="GanttLine.html">GanttLine</a> into HTML elements.
822
828
  <div class="method-source-code"
823
829
  id="to-html-source">
824
830
  <pre>
825
- <span class="ruby-comment cmt"># File lib/reports/GanttLine.rb, line 59</span>
826
- 59: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_html</span>
827
- 60: <span class="ruby-comment cmt"># The whole line is put in a 'div' section. All coordinates relative to</span>
828
- 61: <span class="ruby-comment cmt"># the top-left corner of this div. Elements that extend over the</span>
829
- 62: <span class="ruby-comment cmt"># boundaries of this div are cut off.</span>
830
- 63: <span class="ruby-identifier">div</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'div'</span>, <span class="ruby-value str">'class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@category</span>,
831
- 64: <span class="ruby-value str">'style'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">&quot;margin:0px; padding:0px; &quot;</span> <span class="ruby-operator">+</span>
832
- 65: <span class="ruby-value str">&quot;position:absolute; &quot;</span> <span class="ruby-operator">+</span>
833
- 66: <span class="ruby-node">&quot;left:0px; top:#{@y}px; &quot;</span> <span class="ruby-operator">+</span>
834
- 67: <span class="ruby-node">&quot;width:#{@chart.width.to_i}px; &quot;</span> <span class="ruby-operator">+</span>
835
- 68: <span class="ruby-node">&quot;height:#{@height}px; &quot;</span> <span class="ruby-operator">+</span>
836
- 69: <span class="ruby-value str">&quot;font-size:10px;&quot;</span>)
837
- 70: <span class="ruby-comment cmt"># Render time-off zones.</span>
838
- 71: <span class="ruby-ivar">@timeOffZones</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">zone</span><span class="ruby-operator">|</span>
839
- 72: <span class="ruby-identifier">div</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">rectToHTML</span>(<span class="ruby-identifier">zone</span>[<span class="ruby-value">0</span>], <span class="ruby-value">0</span>, <span class="ruby-identifier">zone</span>[<span class="ruby-value">1</span>], <span class="ruby-ivar">@height</span>, <span class="ruby-value str">'offduty'</span>)
840
- 73: <span class="ruby-keyword kw">end</span>
841
- 74:
842
- 75: <span class="ruby-comment cmt"># Render grid lines. The grid lines are determined by the large scale.</span>
843
- 76: <span class="ruby-ivar">@chart</span>.<span class="ruby-identifier">header</span>.<span class="ruby-identifier">gridLines</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">line</span><span class="ruby-operator">|</span>
844
- 77: <span class="ruby-identifier">div</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">rectToHTML</span>(<span class="ruby-identifier">line</span>, <span class="ruby-value">0</span>, <span class="ruby-value">1</span>, <span class="ruby-ivar">@height</span>, <span class="ruby-value str">'tabvline'</span>)
845
- 78: <span class="ruby-keyword kw">end</span>
846
- 79:
847
- 80: <span class="ruby-comment cmt"># Now render the content as HTML elements.</span>
848
- 81: <span class="ruby-ivar">@content</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">c</span><span class="ruby-operator">|</span>
849
- 82: <span class="ruby-identifier">html</span> = <span class="ruby-identifier">c</span>.<span class="ruby-identifier">to_html</span>
850
- 83: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">html</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">html</span>[<span class="ruby-value">0</span>]
851
- 84: <span class="ruby-identifier">addHtmlTooltip</span>(<span class="ruby-ivar">@tooltip</span>, <span class="ruby-ivar">@query</span>, <span class="ruby-identifier">html</span>[<span class="ruby-value">0</span>], <span class="ruby-identifier">div</span>)
852
- 85: <span class="ruby-identifier">div</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">html</span>
853
- 86: <span class="ruby-keyword kw">end</span>
854
- 87: <span class="ruby-keyword kw">end</span>
855
- 88:
856
- 89: <span class="ruby-comment cmt"># Render the 'now' line</span>
857
- 90: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@chart</span>.<span class="ruby-identifier">header</span>.<span class="ruby-identifier">nowLineX</span>
858
- 91: <span class="ruby-identifier">div</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">rectToHTML</span>(<span class="ruby-ivar">@chart</span>.<span class="ruby-identifier">header</span>.<span class="ruby-identifier">nowLineX</span>, <span class="ruby-value">0</span>, <span class="ruby-value">1</span>, <span class="ruby-ivar">@height</span>, <span class="ruby-value str">'nowline'</span>)
859
- 92: <span class="ruby-keyword kw">end</span>
860
- 93:
861
- 94: <span class="ruby-identifier">div</span>
862
- 95: <span class="ruby-keyword kw">end</span></pre>
831
+ <span class="ruby-comment cmt"># File lib/reports/GanttLine.rb, line 60</span>
832
+ 60: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_html</span>
833
+ 61: <span class="ruby-comment cmt"># The whole line is put in a 'div' section. All coordinates relative to</span>
834
+ 62: <span class="ruby-comment cmt"># the top-left corner of this div. Elements that extend over the</span>
835
+ 63: <span class="ruby-comment cmt"># boundaries of this div are cut off.</span>
836
+ 64: <span class="ruby-identifier">div</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'div'</span>, <span class="ruby-value str">'class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@category</span>,
837
+ 65: <span class="ruby-value str">'style'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">&quot;margin:0px; padding:0px; &quot;</span> <span class="ruby-operator">+</span>
838
+ 66: <span class="ruby-value str">&quot;position:absolute; &quot;</span> <span class="ruby-operator">+</span>
839
+ 67: <span class="ruby-node">&quot;left:0px; top:#{@y}px; &quot;</span> <span class="ruby-operator">+</span>
840
+ 68: <span class="ruby-node">&quot;width:#{@chart.width.to_i}px; &quot;</span> <span class="ruby-operator">+</span>
841
+ 69: <span class="ruby-node">&quot;height:#{@height}px; &quot;</span> <span class="ruby-operator">+</span>
842
+ 70: <span class="ruby-value str">&quot;font-size:10px;&quot;</span>)
843
+ 71: <span class="ruby-comment cmt"># Render time-off zones.</span>
844
+ 72: <span class="ruby-ivar">@timeOffZones</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">zone</span><span class="ruby-operator">|</span>
845
+ 73: <span class="ruby-identifier">div</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">rectToHTML</span>(<span class="ruby-identifier">zone</span>[<span class="ruby-value">0</span>], <span class="ruby-value">0</span>, <span class="ruby-identifier">zone</span>[<span class="ruby-value">1</span>], <span class="ruby-ivar">@height</span>, <span class="ruby-value str">'offduty'</span>)
846
+ 74: <span class="ruby-keyword kw">end</span>
847
+ 75:
848
+ 76: <span class="ruby-comment cmt"># Render grid lines. The grid lines are determined by the large scale.</span>
849
+ 77: <span class="ruby-ivar">@chart</span>.<span class="ruby-identifier">header</span>.<span class="ruby-identifier">gridLines</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">line</span><span class="ruby-operator">|</span>
850
+ 78: <span class="ruby-identifier">div</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">rectToHTML</span>(<span class="ruby-identifier">line</span>, <span class="ruby-value">0</span>, <span class="ruby-value">1</span>, <span class="ruby-ivar">@height</span>, <span class="ruby-value str">'tabvline'</span>)
851
+ 79: <span class="ruby-keyword kw">end</span>
852
+ 80:
853
+ 81: <span class="ruby-comment cmt"># Now render the content as HTML elements.</span>
854
+ 82: <span class="ruby-ivar">@content</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">c</span><span class="ruby-operator">|</span>
855
+ 83: <span class="ruby-identifier">html</span> = <span class="ruby-identifier">c</span>.<span class="ruby-identifier">to_html</span>
856
+ 84: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">html</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">html</span>[<span class="ruby-value">0</span>]
857
+ 85: <span class="ruby-identifier">addHtmlTooltip</span>(<span class="ruby-ivar">@tooltip</span>, <span class="ruby-ivar">@query</span>, <span class="ruby-identifier">html</span>[<span class="ruby-value">0</span>], <span class="ruby-identifier">div</span>)
858
+ 86: <span class="ruby-identifier">div</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">html</span>
859
+ 87: <span class="ruby-keyword kw">end</span>
860
+ 88: <span class="ruby-keyword kw">end</span>
861
+ 89:
862
+ 90: <span class="ruby-comment cmt"># Render the 'now' line</span>
863
+ 91: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@chart</span>.<span class="ruby-identifier">header</span>.<span class="ruby-identifier">nowLineX</span>
864
+ 92: <span class="ruby-identifier">div</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">rectToHTML</span>(<span class="ruby-ivar">@chart</span>.<span class="ruby-identifier">header</span>.<span class="ruby-identifier">nowLineX</span>, <span class="ruby-value">0</span>, <span class="ruby-value">1</span>, <span class="ruby-ivar">@height</span>, <span class="ruby-value str">'nowline'</span>)
865
+ 93: <span class="ruby-keyword kw">end</span>
866
+ 94:
867
+ 95: <span class="ruby-identifier">div</span>
868
+ 96: <span class="ruby-keyword kw">end</span></pre>
863
869
  </div>
864
870
 
865
871
  </div>
@@ -896,32 +902,32 @@ href="GanttLine.html">GanttLine</a> into HTML elements.
896
902
  <div class="method-source-code"
897
903
  id="add-tml-ooltip-source">
898
904
  <pre>
899
- <span class="ruby-comment cmt"># File lib/reports/GanttLine.rb, line 335</span>
900
- 335: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">addHtmlTooltip</span>(<span class="ruby-identifier">tooltip</span>, <span class="ruby-identifier">query</span>, <span class="ruby-identifier">trigger</span>, <span class="ruby-identifier">hook</span> = <span class="ruby-keyword kw">nil</span>)
901
- 336: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">tooltip</span>
902
- 337:
903
- 338: <span class="ruby-identifier">tooltip</span> = <span class="ruby-identifier">tooltip</span>.<span class="ruby-identifier">getPattern</span>(<span class="ruby-identifier">query</span>)
904
- 339: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">tooltip</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-identifier">tooltip</span>.<span class="ruby-identifier">empty?</span>
905
- 340:
906
- 341: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">tooltip</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-value str">'functionHandler'</span>)
907
- 342: <span class="ruby-identifier">tooltip</span>.<span class="ruby-identifier">setQuery</span>(<span class="ruby-identifier">query</span>)
908
- 343: <span class="ruby-keyword kw">end</span>
909
- 344: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">query</span>
910
- 345: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">attributeId</span> = <span class="ruby-value str">'name'</span>
911
- 346: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">process</span>
912
- 347: <span class="ruby-identifier">title</span> = <span class="ruby-identifier">query</span>.<span class="ruby-identifier">to_s</span>
913
- 348: <span class="ruby-keyword kw">else</span>
914
- 349: <span class="ruby-identifier">title</span> = <span class="ruby-value str">''</span>
915
- 350: <span class="ruby-keyword kw">end</span>
916
- 351: <span class="ruby-identifier">trigger</span>[<span class="ruby-value str">'onclick'</span>] = <span class="ruby-node">&quot;TagToTip('ID#{trigger.object_id}', &quot;</span> <span class="ruby-operator">+</span>
917
- 352: <span class="ruby-node">&quot;TITLE, '#{title}')&quot;</span>
918
- 353: <span class="ruby-identifier">trigger</span>[<span class="ruby-value str">'style'</span>] <span class="ruby-operator">+=</span> <span class="ruby-value str">'cursor:help; '</span>
919
- 354: <span class="ruby-identifier">hook</span> = <span class="ruby-identifier">trigger</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">hook</span>
920
- 355: <span class="ruby-identifier">hook</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">ltDiv</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'div'</span>, <span class="ruby-value str">'class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'tj_tooltip_box'</span>,
921
- 356: <span class="ruby-value str">'id'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-node">&quot;ID#{trigger.object_id}&quot;</span>))
922
- 357: <span class="ruby-identifier">ltDiv</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">tooltip</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-value str">'to_html'</span>) <span class="ruby-operator">?</span> <span class="ruby-identifier">tooltip</span>.<span class="ruby-identifier">to_html</span> <span class="ruby-operator">:</span>
923
- 358: <span class="ruby-constant">XMLText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">tooltip</span>))
924
- 359: <span class="ruby-keyword kw">end</span></pre>
905
+ <span class="ruby-comment cmt"># File lib/reports/GanttLine.rb, line 337</span>
906
+ 337: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">addHtmlTooltip</span>(<span class="ruby-identifier">tooltip</span>, <span class="ruby-identifier">query</span>, <span class="ruby-identifier">trigger</span>, <span class="ruby-identifier">hook</span> = <span class="ruby-keyword kw">nil</span>)
907
+ 338: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">tooltip</span>
908
+ 339:
909
+ 340: <span class="ruby-identifier">tooltip</span> = <span class="ruby-identifier">tooltip</span>.<span class="ruby-identifier">getPattern</span>(<span class="ruby-identifier">query</span>)
910
+ 341: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">tooltip</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-identifier">tooltip</span>.<span class="ruby-identifier">empty?</span>
911
+ 342:
912
+ 343: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">tooltip</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-value str">'functionHandler'</span>)
913
+ 344: <span class="ruby-identifier">tooltip</span>.<span class="ruby-identifier">setQuery</span>(<span class="ruby-identifier">query</span>)
914
+ 345: <span class="ruby-keyword kw">end</span>
915
+ 346: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">query</span>
916
+ 347: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">attributeId</span> = <span class="ruby-value str">'name'</span>
917
+ 348: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">process</span>
918
+ 349: <span class="ruby-identifier">title</span> = <span class="ruby-identifier">query</span>.<span class="ruby-identifier">to_s</span>
919
+ 350: <span class="ruby-keyword kw">else</span>
920
+ 351: <span class="ruby-identifier">title</span> = <span class="ruby-value str">''</span>
921
+ 352: <span class="ruby-keyword kw">end</span>
922
+ 353: <span class="ruby-identifier">trigger</span>[<span class="ruby-value str">'onclick'</span>] = <span class="ruby-node">&quot;TagToTip('ID#{trigger.object_id}', &quot;</span> <span class="ruby-operator">+</span>
923
+ 354: <span class="ruby-node">&quot;TITLE, '#{title}')&quot;</span>
924
+ 355: <span class="ruby-identifier">trigger</span>[<span class="ruby-value str">'style'</span>] <span class="ruby-operator">+=</span> <span class="ruby-value str">'cursor:help; '</span>
925
+ 356: <span class="ruby-identifier">hook</span> = <span class="ruby-identifier">trigger</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">hook</span>
926
+ 357: <span class="ruby-identifier">hook</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">ltDiv</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'div'</span>, <span class="ruby-value str">'class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'tj_tooltip_box'</span>,
927
+ 358: <span class="ruby-value str">'id'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-node">&quot;ID#{trigger.object_id}&quot;</span>))
928
+ 359: <span class="ruby-identifier">ltDiv</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">tooltip</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-value str">'to_html'</span>) <span class="ruby-operator">?</span> <span class="ruby-identifier">tooltip</span>.<span class="ruby-identifier">to_html</span> <span class="ruby-operator">:</span>
929
+ 360: <span class="ruby-constant">XMLText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">tooltip</span>))
930
+ 361: <span class="ruby-keyword kw">end</span></pre>
925
931
  </div>
926
932
 
927
933
  </div>
@@ -955,19 +961,19 @@ Gantt chart line.
955
961
  <div class="method-source-code"
956
962
  id="generate-source">
957
963
  <pre>
958
- <span class="ruby-comment cmt"># File lib/reports/GanttLine.rb, line 118</span>
959
- 118: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generate</span>
960
- 119: <span class="ruby-comment cmt"># This Array holds the GanttLineObjects.</span>
961
- 120: <span class="ruby-ivar">@content</span> = []
962
- 121:
963
- 122: <span class="ruby-identifier">generateTimeOffZones</span>
964
- 123:
965
- 124: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@query</span>.<span class="ruby-identifier">property</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Task</span>)
966
- 125: <span class="ruby-identifier">generateTask</span>
967
- 126: <span class="ruby-keyword kw">else</span>
968
- 127: <span class="ruby-identifier">generateResource</span>
969
- 128: <span class="ruby-keyword kw">end</span>
970
- 129: <span class="ruby-keyword kw">end</span></pre>
964
+ <span class="ruby-comment cmt"># File lib/reports/GanttLine.rb, line 119</span>
965
+ 119: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generate</span>
966
+ 120: <span class="ruby-comment cmt"># This Array holds the GanttLineObjects.</span>
967
+ 121: <span class="ruby-ivar">@content</span> = []
968
+ 122:
969
+ 123: <span class="ruby-identifier">generateTimeOffZones</span>
970
+ 124:
971
+ 125: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@query</span>.<span class="ruby-identifier">property</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Task</span>)
972
+ 126: <span class="ruby-identifier">generateTask</span>
973
+ 127: <span class="ruby-keyword kw">else</span>
974
+ 128: <span class="ruby-identifier">generateResource</span>
975
+ 129: <span class="ruby-keyword kw">end</span>
976
+ 130: <span class="ruby-keyword kw">end</span></pre>
971
977
  </div>
972
978
 
973
979
  </div>
@@ -1034,7 +1040,7 @@ line or appear in the scope of a task.
1034
1040
  254: <span class="ruby-ivar">@chart</span>.<span class="ruby-identifier">table</span>.<span class="ruby-identifier">legend</span>.<span class="ruby-identifier">addGanttItem</span>(<span class="ruby-value str">'Resource assigned to task(s)'</span>,
1035
1041
  255: <span class="ruby-value str">'busy'</span>)
1036
1042
  256: <span class="ruby-ivar">@chart</span>.<span class="ruby-identifier">table</span>.<span class="ruby-identifier">legend</span>.<span class="ruby-identifier">addGanttItem</span>(<span class="ruby-value str">'Resource available'</span>, <span class="ruby-value str">'free'</span>)
1037
- 257: <span class="ruby-ivar">@chart</span>.<span class="ruby-identifier">table</span>.<span class="ruby-identifier">legend</span>.<span class="ruby-identifier">addGanttItem</span>(<span class="ruby-value str">'Resource off-duty'</span>, <span class="ruby-value str">'offduty'</span>)
1043
+ 257: <span class="ruby-ivar">@chart</span>.<span class="ruby-identifier">table</span>.<span class="ruby-identifier">legend</span>.<span class="ruby-identifier">addGanttItem</span>(<span class="ruby-value str">'Off-duty period'</span>, <span class="ruby-value str">'offduty'</span>)
1038
1044
  258: <span class="ruby-keyword kw">end</span>
1039
1045
  259: <span class="ruby-keyword kw">else</span>
1040
1046
  260: <span class="ruby-identifier">categories</span> = [ <span class="ruby-value str">'busy'</span>, <span class="ruby-value str">'free'</span> ]
@@ -1042,7 +1048,7 @@ line or appear in the scope of a task.
1042
1048
  262: <span class="ruby-ivar">@chart</span>.<span class="ruby-identifier">table</span>.<span class="ruby-identifier">legend</span>.<span class="ruby-identifier">addGanttItem</span>(<span class="ruby-value str">'Resource assigned to task(s)'</span>,
1043
1049
  263: <span class="ruby-value str">'busy'</span>)
1044
1050
  264: <span class="ruby-ivar">@chart</span>.<span class="ruby-identifier">table</span>.<span class="ruby-identifier">legend</span>.<span class="ruby-identifier">addGanttItem</span>(<span class="ruby-value str">'Resource available'</span>, <span class="ruby-value str">'free'</span>)
1045
- 265: <span class="ruby-ivar">@chart</span>.<span class="ruby-identifier">table</span>.<span class="ruby-identifier">legend</span>.<span class="ruby-identifier">addGanttItem</span>(<span class="ruby-value str">'Resource off-duty'</span>, <span class="ruby-value str">'offduty'</span>)
1051
+ 265: <span class="ruby-ivar">@chart</span>.<span class="ruby-identifier">table</span>.<span class="ruby-identifier">legend</span>.<span class="ruby-identifier">addGanttItem</span>(<span class="ruby-value str">'Off-duty period'</span>, <span class="ruby-value str">'offduty'</span>)
1046
1052
  266: <span class="ruby-keyword kw">end</span>
1047
1053
  267: <span class="ruby-keyword kw">end</span>
1048
1054
  268:
@@ -1125,93 +1131,92 @@ appear in the scope of a resource.
1125
1131
  <div class="method-source-code"
1126
1132
  id="generate-ask-source">
1127
1133
  <pre>
1128
- <span class="ruby-comment cmt"># File lib/reports/GanttLine.rb, line 133</span>
1129
- 133: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateTask</span>
1130
- 134: <span class="ruby-comment cmt"># Set the background color</span>
1131
- 135: <span class="ruby-ivar">@category</span> = <span class="ruby-node">&quot;taskcell#{(@query.property.get('index') + 1) % 2 + 1}&quot;</span>
1132
- 136:
1133
- 137: <span class="ruby-identifier">project</span> = <span class="ruby-ivar">@query</span>.<span class="ruby-identifier">project</span>
1134
- 138: <span class="ruby-identifier">property</span> = <span class="ruby-ivar">@query</span>.<span class="ruby-identifier">property</span>
1135
- 139: <span class="ruby-identifier">scopeProperty</span> = <span class="ruby-ivar">@query</span>.<span class="ruby-identifier">scopeProperty</span>
1136
- 140: <span class="ruby-identifier">taskStart</span> = <span class="ruby-identifier">property</span>[<span class="ruby-value str">'start'</span>, <span class="ruby-ivar">@query</span>.<span class="ruby-identifier">scenarioIdx</span>] <span class="ruby-operator">||</span> <span class="ruby-identifier">project</span>[<span class="ruby-value str">'start'</span>]
1137
- 141: <span class="ruby-identifier">taskEnd</span> = <span class="ruby-identifier">property</span>[<span class="ruby-value str">'end'</span>, <span class="ruby-ivar">@query</span>.<span class="ruby-identifier">scenarioIdx</span>] <span class="ruby-operator">||</span> <span class="ruby-identifier">project</span>[<span class="ruby-value str">'end'</span>]
1138
- 142:
1139
- 143: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">scopeProperty</span>
1140
- 144: <span class="ruby-comment cmt"># The task is nested into a resource. We show the work the resource is</span>
1141
- 145: <span class="ruby-comment cmt"># doing for this task relative to the work the resource is doing for</span>
1142
- 146: <span class="ruby-comment cmt"># all tasks.</span>
1143
- 147: <span class="ruby-identifier">x</span> = <span class="ruby-keyword kw">nil</span>
1144
- 148: <span class="ruby-identifier">startDate</span> = <span class="ruby-identifier">endDate</span> = <span class="ruby-keyword kw">nil</span>
1145
- 149: <span class="ruby-identifier">categories</span> = [ <span class="ruby-value str">'busy'</span>, <span class="ruby-keyword kw">nil</span> ]
1146
- 150:
1147
- 151: <span class="ruby-ivar">@chart</span>.<span class="ruby-identifier">header</span>.<span class="ruby-identifier">cellStartDates</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">date</span><span class="ruby-operator">|</span>
1148
- 152: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">x</span>.<span class="ruby-identifier">nil?</span>
1149
- 153: <span class="ruby-identifier">x</span> = <span class="ruby-ivar">@chart</span>.<span class="ruby-identifier">dateToX</span>(<span class="ruby-identifier">endDate</span> = <span class="ruby-identifier">date</span>).<span class="ruby-identifier">to_i</span>
1150
- 154: <span class="ruby-keyword kw">else</span>
1151
- 155: <span class="ruby-identifier">xNew</span> = <span class="ruby-ivar">@chart</span>.<span class="ruby-identifier">dateToX</span>(<span class="ruby-identifier">date</span>).<span class="ruby-identifier">to_i</span>
1152
- 156: <span class="ruby-identifier">w</span> = <span class="ruby-identifier">xNew</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">x</span>
1153
- 157: <span class="ruby-identifier">startDate</span> = <span class="ruby-identifier">endDate</span>
1154
- 158: <span class="ruby-identifier">endDate</span> = <span class="ruby-identifier">date</span>
1155
- 159:
1156
- 160: <span class="ruby-comment cmt"># If we have a scope limiting task, we only want to generate load</span>
1157
- 161: <span class="ruby-comment cmt"># stacks that overlap with the task interval.</span>
1158
- 162: <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">endDate</span> <span class="ruby-operator">&lt;=</span> <span class="ruby-identifier">taskStart</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">taskEnd</span> <span class="ruby-operator">&lt;=</span> <span class="ruby-identifier">startDate</span>
1159
- 163: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">startDate</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">taskStart</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">endDate</span> <span class="ruby-operator">&gt;</span> <span class="ruby-identifier">taskStart</span>
1160
- 164: <span class="ruby-comment cmt"># Make sure the left edge of the first stack aligns with the</span>
1161
- 165: <span class="ruby-comment cmt"># start of the scope task.</span>
1162
- 166: <span class="ruby-identifier">startDate</span> = <span class="ruby-identifier">taskStart</span>
1163
- 167: <span class="ruby-identifier">x</span> = <span class="ruby-ivar">@chart</span>.<span class="ruby-identifier">dateToX</span>(<span class="ruby-identifier">startDate</span>)
1164
- 168: <span class="ruby-identifier">w</span> = <span class="ruby-identifier">xNew</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">x</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>
1165
- 169: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">startDate</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">taskEnd</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">endDate</span> <span class="ruby-operator">&gt;</span> <span class="ruby-identifier">taskEnd</span>
1166
- 170: <span class="ruby-comment cmt"># Make sure the right edge of the last stack aligns with the end</span>
1167
- 171: <span class="ruby-comment cmt"># of the scope task.</span>
1168
- 172: <span class="ruby-identifier">endDate</span> = <span class="ruby-identifier">taskEnd</span>
1169
- 173: <span class="ruby-identifier">w</span> = <span class="ruby-ivar">@chart</span>.<span class="ruby-identifier">dateToX</span>(<span class="ruby-identifier">endDate</span>) <span class="ruby-operator">-</span> <span class="ruby-identifier">x</span>
1170
- 174: <span class="ruby-keyword kw">end</span>
1171
- 175:
1172
- 176: <span class="ruby-identifier">overallWork</span> = <span class="ruby-identifier">scopeProperty</span>.<span class="ruby-identifier">getEffectiveWork</span>(<span class="ruby-ivar">@query</span>.<span class="ruby-identifier">scenarioIdx</span>,
1173
- 177: <span class="ruby-identifier">startDate</span>, <span class="ruby-identifier">endDate</span>) <span class="ruby-operator">+</span>
1174
- 178: <span class="ruby-identifier">scopeProperty</span>.<span class="ruby-identifier">getEffectiveFreeWork</span>(<span class="ruby-ivar">@query</span>.<span class="ruby-identifier">scenarioIdx</span>,
1175
- 179: <span class="ruby-identifier">startDate</span>,
1176
- 180: <span class="ruby-identifier">endDate</span>)
1177
- 181: <span class="ruby-identifier">workThisTask</span> = <span class="ruby-identifier">property</span>.<span class="ruby-identifier">getEffectiveWork</span>(<span class="ruby-ivar">@query</span>.<span class="ruby-identifier">scenarioIdx</span>,
1178
- 182: <span class="ruby-identifier">startDate</span>, <span class="ruby-identifier">endDate</span>,
1179
- 183: <span class="ruby-identifier">scopeProperty</span>)
1180
- 184: <span class="ruby-comment cmt"># If all values are 0 we make sure we show an empty frame.</span>
1181
- 185: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">overallWork</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">workThisTask</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
1182
- 186: <span class="ruby-identifier">values</span> = [ <span class="ruby-value">0</span>, <span class="ruby-value">1</span> ]
1183
- 187: <span class="ruby-keyword kw">else</span>
1184
- 188: <span class="ruby-identifier">values</span> = [ <span class="ruby-identifier">workThisTask</span>, <span class="ruby-identifier">overallWork</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">workThisTask</span> ]
1185
- 189: <span class="ruby-keyword kw">end</span>
1186
- 190: <span class="ruby-ivar">@content</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">GanttLoadStack</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">self</span>, <span class="ruby-identifier">x</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>, <span class="ruby-identifier">w</span> <span class="ruby-operator">-</span> <span class="ruby-value">2</span>, <span class="ruby-identifier">values</span>,
1187
- 191: <span class="ruby-identifier">categories</span>)
1188
- 192:
1189
- 193: <span class="ruby-identifier">x</span> = <span class="ruby-identifier">xNew</span>
1190
- 194: <span class="ruby-keyword kw">end</span>
1191
- 195: <span class="ruby-keyword kw">end</span>
1192
- 196: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@chart</span>.<span class="ruby-identifier">table</span>
1193
- 197: <span class="ruby-ivar">@chart</span>.<span class="ruby-identifier">table</span>.<span class="ruby-identifier">legend</span>.<span class="ruby-identifier">addGanttItem</span>(<span class="ruby-value str">'Resource assigned to task(s)'</span>,
1194
- 198: <span class="ruby-value str">'busy'</span>)
1195
- 199: <span class="ruby-keyword kw">end</span>
1196
- 200: <span class="ruby-keyword kw">else</span>
1197
- 201: <span class="ruby-comment cmt"># The task is not nested into a resource. We show the classical Gantt</span>
1198
- 202: <span class="ruby-comment cmt"># bars for the task.</span>
1199
- 203: <span class="ruby-identifier">xStart</span> = <span class="ruby-ivar">@chart</span>.<span class="ruby-identifier">dateToX</span>(<span class="ruby-identifier">taskStart</span>)
1200
- 204: <span class="ruby-identifier">xEnd</span> = <span class="ruby-ivar">@chart</span>.<span class="ruby-identifier">dateToX</span>(<span class="ruby-identifier">taskEnd</span>)
1201
- 205: <span class="ruby-ivar">@chart</span>.<span class="ruby-identifier">addTask</span>(<span class="ruby-identifier">property</span>, <span class="ruby-keyword kw">self</span>)
1202
- 206: <span class="ruby-ivar">@content</span> <span class="ruby-operator">&lt;&lt;</span>
1203
- 207: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">property</span>[<span class="ruby-value str">'milestone'</span>, <span class="ruby-ivar">@query</span>.<span class="ruby-identifier">scenarioIdx</span>]
1204
- 208: <span class="ruby-constant">GanttMilestone</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">property</span>, <span class="ruby-ivar">@height</span>, <span class="ruby-identifier">xStart</span>, <span class="ruby-ivar">@y</span>)
1205
- 209: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">property</span>.<span class="ruby-identifier">container?</span>
1206
- 210: <span class="ruby-constant">GanttContainer</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">property</span>, <span class="ruby-ivar">@query</span>.<span class="ruby-identifier">scenarioIdx</span>, <span class="ruby-ivar">@height</span>,
1207
- 211: <span class="ruby-identifier">xStart</span>, <span class="ruby-identifier">xEnd</span>, <span class="ruby-ivar">@y</span>)
1134
+ <span class="ruby-comment cmt"># File lib/reports/GanttLine.rb, line 134</span>
1135
+ 134: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateTask</span>
1136
+ 135: <span class="ruby-comment cmt"># Set the background color</span>
1137
+ 136: <span class="ruby-ivar">@category</span> = <span class="ruby-node">&quot;taskcell#{(@query.property.get('index') + 1) % 2 + 1}&quot;</span>
1138
+ 137:
1139
+ 138: <span class="ruby-identifier">project</span> = <span class="ruby-ivar">@query</span>.<span class="ruby-identifier">project</span>
1140
+ 139: <span class="ruby-identifier">property</span> = <span class="ruby-ivar">@query</span>.<span class="ruby-identifier">property</span>
1141
+ 140: <span class="ruby-identifier">scopeProperty</span> = <span class="ruby-ivar">@query</span>.<span class="ruby-identifier">scopeProperty</span>
1142
+ 141: <span class="ruby-identifier">taskStart</span> = <span class="ruby-identifier">property</span>[<span class="ruby-value str">'start'</span>, <span class="ruby-ivar">@query</span>.<span class="ruby-identifier">scenarioIdx</span>] <span class="ruby-operator">||</span> <span class="ruby-identifier">project</span>[<span class="ruby-value str">'start'</span>]
1143
+ 142: <span class="ruby-identifier">taskEnd</span> = <span class="ruby-identifier">property</span>[<span class="ruby-value str">'end'</span>, <span class="ruby-ivar">@query</span>.<span class="ruby-identifier">scenarioIdx</span>] <span class="ruby-operator">||</span> <span class="ruby-identifier">project</span>[<span class="ruby-value str">'end'</span>]
1144
+ 143:
1145
+ 144: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">scopeProperty</span>
1146
+ 145: <span class="ruby-comment cmt"># The task is nested into a resource. We show the work the resource is</span>
1147
+ 146: <span class="ruby-comment cmt"># doing for this task relative to the work the resource is doing for</span>
1148
+ 147: <span class="ruby-comment cmt"># all tasks.</span>
1149
+ 148: <span class="ruby-identifier">x</span> = <span class="ruby-keyword kw">nil</span>
1150
+ 149: <span class="ruby-identifier">startDate</span> = <span class="ruby-identifier">endDate</span> = <span class="ruby-keyword kw">nil</span>
1151
+ 150: <span class="ruby-identifier">categories</span> = [ <span class="ruby-value str">'busy'</span>, <span class="ruby-keyword kw">nil</span> ]
1152
+ 151:
1153
+ 152: <span class="ruby-ivar">@chart</span>.<span class="ruby-identifier">header</span>.<span class="ruby-identifier">cellStartDates</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">date</span><span class="ruby-operator">|</span>
1154
+ 153: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">x</span>.<span class="ruby-identifier">nil?</span>
1155
+ 154: <span class="ruby-identifier">x</span> = <span class="ruby-ivar">@chart</span>.<span class="ruby-identifier">dateToX</span>(<span class="ruby-identifier">endDate</span> = <span class="ruby-identifier">date</span>).<span class="ruby-identifier">to_i</span>
1156
+ 155: <span class="ruby-keyword kw">else</span>
1157
+ 156: <span class="ruby-identifier">xNew</span> = <span class="ruby-ivar">@chart</span>.<span class="ruby-identifier">dateToX</span>(<span class="ruby-identifier">date</span>).<span class="ruby-identifier">to_i</span>
1158
+ 157: <span class="ruby-identifier">w</span> = <span class="ruby-identifier">xNew</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">x</span>
1159
+ 158: <span class="ruby-identifier">startDate</span> = <span class="ruby-identifier">endDate</span>
1160
+ 159: <span class="ruby-identifier">endDate</span> = <span class="ruby-identifier">date</span>
1161
+ 160:
1162
+ 161: <span class="ruby-comment cmt"># If we have a scope limiting task, we only want to generate load</span>
1163
+ 162: <span class="ruby-comment cmt"># stacks that overlap with the task interval.</span>
1164
+ 163: <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">endDate</span> <span class="ruby-operator">&lt;=</span> <span class="ruby-identifier">taskStart</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">taskEnd</span> <span class="ruby-operator">&lt;=</span> <span class="ruby-identifier">startDate</span>
1165
+ 164: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">startDate</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">taskStart</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">endDate</span> <span class="ruby-operator">&gt;</span> <span class="ruby-identifier">taskStart</span>
1166
+ 165: <span class="ruby-comment cmt"># Make sure the left edge of the first stack aligns with the</span>
1167
+ 166: <span class="ruby-comment cmt"># start of the scope task.</span>
1168
+ 167: <span class="ruby-identifier">startDate</span> = <span class="ruby-identifier">taskStart</span>
1169
+ 168: <span class="ruby-identifier">x</span> = <span class="ruby-ivar">@chart</span>.<span class="ruby-identifier">dateToX</span>(<span class="ruby-identifier">startDate</span>)
1170
+ 169: <span class="ruby-identifier">w</span> = <span class="ruby-identifier">xNew</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">x</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>
1171
+ 170: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">startDate</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">taskEnd</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">endDate</span> <span class="ruby-operator">&gt;</span> <span class="ruby-identifier">taskEnd</span>
1172
+ 171: <span class="ruby-comment cmt"># Make sure the right edge of the last stack aligns with the end</span>
1173
+ 172: <span class="ruby-comment cmt"># of the scope task.</span>
1174
+ 173: <span class="ruby-identifier">endDate</span> = <span class="ruby-identifier">taskEnd</span>
1175
+ 174: <span class="ruby-identifier">w</span> = <span class="ruby-ivar">@chart</span>.<span class="ruby-identifier">dateToX</span>(<span class="ruby-identifier">endDate</span>) <span class="ruby-operator">-</span> <span class="ruby-identifier">x</span>
1176
+ 175: <span class="ruby-keyword kw">end</span>
1177
+ 176:
1178
+ 177: <span class="ruby-identifier">overallWork</span> = <span class="ruby-identifier">scopeProperty</span>.<span class="ruby-identifier">getEffectiveWork</span>(<span class="ruby-ivar">@query</span>.<span class="ruby-identifier">scenarioIdx</span>,
1179
+ 178: <span class="ruby-identifier">startDate</span>, <span class="ruby-identifier">endDate</span>) <span class="ruby-operator">+</span>
1180
+ 179: <span class="ruby-identifier">scopeProperty</span>.<span class="ruby-identifier">getEffectiveFreeWork</span>(<span class="ruby-ivar">@query</span>.<span class="ruby-identifier">scenarioIdx</span>,
1181
+ 180: <span class="ruby-identifier">startDate</span>,
1182
+ 181: <span class="ruby-identifier">endDate</span>)
1183
+ 182: <span class="ruby-identifier">workThisTask</span> = <span class="ruby-identifier">property</span>.<span class="ruby-identifier">getEffectiveWork</span>(<span class="ruby-ivar">@query</span>.<span class="ruby-identifier">scenarioIdx</span>,
1184
+ 183: <span class="ruby-identifier">startDate</span>, <span class="ruby-identifier">endDate</span>,
1185
+ 184: <span class="ruby-identifier">scopeProperty</span>)
1186
+ 185: <span class="ruby-comment cmt"># If all values are 0 we make sure we show an empty frame.</span>
1187
+ 186: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">overallWork</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">workThisTask</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
1188
+ 187: <span class="ruby-identifier">values</span> = [ <span class="ruby-value">0</span>, <span class="ruby-value">1</span> ]
1189
+ 188: <span class="ruby-keyword kw">else</span>
1190
+ 189: <span class="ruby-identifier">values</span> = [ <span class="ruby-identifier">workThisTask</span>, <span class="ruby-identifier">overallWork</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">workThisTask</span> ]
1191
+ 190: <span class="ruby-keyword kw">end</span>
1192
+ 191: <span class="ruby-ivar">@content</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">GanttLoadStack</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">self</span>, <span class="ruby-identifier">x</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>, <span class="ruby-identifier">w</span> <span class="ruby-operator">-</span> <span class="ruby-value">2</span>, <span class="ruby-identifier">values</span>,
1193
+ 192: <span class="ruby-identifier">categories</span>)
1194
+ 193:
1195
+ 194: <span class="ruby-identifier">x</span> = <span class="ruby-identifier">xNew</span>
1196
+ 195: <span class="ruby-keyword kw">end</span>
1197
+ 196: <span class="ruby-keyword kw">end</span>
1198
+ 197: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@chart</span>.<span class="ruby-identifier">table</span>
1199
+ 198: <span class="ruby-ivar">@chart</span>.<span class="ruby-identifier">table</span>.<span class="ruby-identifier">legend</span>.<span class="ruby-identifier">addGanttItem</span>(<span class="ruby-value str">'Resource assigned to task(s)'</span>,
1200
+ 199: <span class="ruby-value str">'busy'</span>)
1201
+ 200: <span class="ruby-keyword kw">end</span>
1202
+ 201: <span class="ruby-keyword kw">else</span>
1203
+ 202: <span class="ruby-comment cmt"># The task is not nested into a resource. We show the classical Gantt</span>
1204
+ 203: <span class="ruby-comment cmt"># bars for the task.</span>
1205
+ 204: <span class="ruby-identifier">xStart</span> = <span class="ruby-ivar">@chart</span>.<span class="ruby-identifier">dateToX</span>(<span class="ruby-identifier">taskStart</span>)
1206
+ 205: <span class="ruby-identifier">xEnd</span> = <span class="ruby-ivar">@chart</span>.<span class="ruby-identifier">dateToX</span>(<span class="ruby-identifier">taskEnd</span>)
1207
+ 206: <span class="ruby-ivar">@chart</span>.<span class="ruby-identifier">addTask</span>(<span class="ruby-identifier">property</span>, <span class="ruby-keyword kw">self</span>)
1208
+ 207: <span class="ruby-ivar">@content</span> <span class="ruby-operator">&lt;&lt;</span>
1209
+ 208: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">property</span>[<span class="ruby-value str">'milestone'</span>, <span class="ruby-ivar">@query</span>.<span class="ruby-identifier">scenarioIdx</span>]
1210
+ 209: <span class="ruby-constant">GanttMilestone</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@height</span>, <span class="ruby-identifier">xStart</span>, <span class="ruby-ivar">@y</span>)
1211
+ 210: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">property</span>.<span class="ruby-identifier">container?</span>
1212
+ 211: <span class="ruby-constant">GanttContainer</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@height</span>, <span class="ruby-identifier">xStart</span>, <span class="ruby-identifier">xEnd</span>, <span class="ruby-ivar">@y</span>)
1208
1213
  212: <span class="ruby-keyword kw">else</span>
1209
- 213: <span class="ruby-constant">GanttTaskBar</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">property</span>, <span class="ruby-ivar">@query</span>.<span class="ruby-identifier">scenarioIdx</span>, <span class="ruby-ivar">@height</span>,
1210
- 214: <span class="ruby-identifier">xStart</span>, <span class="ruby-identifier">xEnd</span>, <span class="ruby-ivar">@y</span>)
1211
- 215: <span class="ruby-keyword kw">end</span>
1212
- 216:
1213
- 217: <span class="ruby-comment cmt"># Make sure the legend includes the Gantt symbols.</span>
1214
- 218: <span class="ruby-ivar">@chart</span>.<span class="ruby-identifier">table</span>.<span class="ruby-identifier">legend</span>.<span class="ruby-identifier">showGanttItems</span> = <span class="ruby-keyword kw">true</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@chart</span>.<span class="ruby-identifier">table</span>
1214
+ 213: <span class="ruby-constant">GanttTaskBar</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@query</span>, <span class="ruby-ivar">@height</span>, <span class="ruby-identifier">xStart</span>, <span class="ruby-identifier">xEnd</span>, <span class="ruby-ivar">@y</span>)
1215
+ 214: <span class="ruby-keyword kw">end</span>
1216
+ 215:
1217
+ 216: <span class="ruby-comment cmt"># Make sure the legend includes the Gantt symbols.</span>
1218
+ 217: <span class="ruby-ivar">@chart</span>.<span class="ruby-identifier">table</span>.<span class="ruby-identifier">legend</span>.<span class="ruby-identifier">showGanttItems</span> = <span class="ruby-keyword kw">true</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@chart</span>.<span class="ruby-identifier">table</span>
1219
+ 218: <span class="ruby-ivar">@chart</span>.<span class="ruby-identifier">table</span>.<span class="ruby-identifier">legend</span>.<span class="ruby-identifier">addGanttItem</span>(<span class="ruby-value str">'Off-duty period'</span>, <span class="ruby-value str">'offduty'</span>)
1215
1220
  219: <span class="ruby-keyword kw">end</span>
1216
1221
  220:
1217
1222
  221: <span class="ruby-keyword kw">end</span></pre>
@@ -1260,11 +1265,13 @@ a duration above the threshold are shown.
1260
1265
  326: <span class="ruby-ivar">@query</span>.<span class="ruby-identifier">scenarioIdx</span>, <span class="ruby-identifier">iv</span>, <span class="ruby-identifier">minTimeOff</span>)
1261
1266
  327: <span class="ruby-comment cmt"># Convert the start/end dates to X coordinates of the chart. When</span>
1262
1267
  328: <span class="ruby-comment cmt"># finished, the zones in @timeOffZones are [ startX, endX ] touples.</span>
1263
- 329: <span class="ruby-ivar">@timeOffZones</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">zone</span><span class="ruby-operator">|</span>
1264
- 330: <span class="ruby-identifier">zone</span>[<span class="ruby-value">0</span>] = <span class="ruby-ivar">@chart</span>.<span class="ruby-identifier">dateToX</span>(<span class="ruby-identifier">zone</span>[<span class="ruby-value">0</span>])
1265
- 331: <span class="ruby-identifier">zone</span>[<span class="ruby-value">1</span>] = <span class="ruby-ivar">@chart</span>.<span class="ruby-identifier">dateToX</span>(<span class="ruby-identifier">zone</span>[<span class="ruby-value">1</span>]) <span class="ruby-operator">-</span> <span class="ruby-identifier">zone</span>[<span class="ruby-value">0</span>]
1266
- 332: <span class="ruby-keyword kw">end</span>
1267
- 333: <span class="ruby-keyword kw">end</span></pre>
1268
+ 329: <span class="ruby-identifier">zones</span> = []
1269
+ 330: <span class="ruby-ivar">@timeOffZones</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">zone</span><span class="ruby-operator">|</span>
1270
+ 331: <span class="ruby-identifier">zones</span> <span class="ruby-operator">&lt;&lt;</span> [ <span class="ruby-identifier">s</span> = <span class="ruby-ivar">@chart</span>.<span class="ruby-identifier">dateToX</span>(<span class="ruby-identifier">zone</span>.<span class="ruby-identifier">start</span>),
1271
+ 332: <span class="ruby-ivar">@chart</span>.<span class="ruby-identifier">dateToX</span>(<span class="ruby-identifier">zone</span>.<span class="ruby-identifier">end</span>) <span class="ruby-operator">-</span> <span class="ruby-identifier">s</span> ]
1272
+ 333: <span class="ruby-keyword kw">end</span>
1273
+ 334: <span class="ruby-ivar">@timeOffZones</span> = <span class="ruby-identifier">zones</span>
1274
+ 335: <span class="ruby-keyword kw">end</span></pre>
1268
1275
  </div>
1269
1276
 
1270
1277
  </div>