taskjuggler 0.1.1 → 0.2.0

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 (563) hide show
  1. data/CHANGELOG +37 -5
  2. data/README.rdoc +4 -2
  3. data/benchmarks/UTF-8-Strings.rb +58 -0
  4. data/benchmarks/css/tjmanual.css +0 -1
  5. data/benchmarks/htmltaskreport-1.html +47702 -0
  6. data/benchmarks/htmltaskreport-2.html +23345 -0
  7. data/benchmarks/htmltaskreport-3.html +23265 -0
  8. data/benchmarks/htmltaskreport-4.html +22135 -0
  9. data/benchmarks/profile.clt +36082 -0
  10. data/benchmarks/tj3.profile +0 -0
  11. data/benchmarks/tj3.profile.grind +6185 -0
  12. data/benchmarks/tj3.profile.symbols +432 -0
  13. data/benchmarks/tj3.profile.txt +448 -0
  14. data/data/tjp.vim +689 -0
  15. data/doc/AppConfig.html +26 -2
  16. data/doc/CHANGELOG.html +60 -8
  17. data/doc/COPYING.html +26 -2
  18. data/doc/Diff/Hunk.html +26 -2
  19. data/doc/Diff.html +26 -2
  20. data/doc/Diffable.html +26 -2
  21. data/doc/DiffableString.html +26 -2
  22. data/doc/Object.html +26 -104
  23. data/doc/README_rdoc.html +39 -7
  24. data/doc/RuntimeConfig.html +26 -2
  25. data/doc/String.html +26 -2
  26. data/doc/TaskJuggler/Account.html +27 -3
  27. data/doc/TaskJuggler/AccountAttribute.html +30 -6
  28. data/doc/TaskJuggler/AccountScenario.html +28 -4
  29. data/doc/TaskJuggler/Allocation.html +33 -9
  30. data/doc/TaskJuggler/AllocationAttribute.html +31 -7
  31. data/doc/TaskJuggler/AttributeBase.html +162 -111
  32. data/doc/TaskJuggler/AttributeDefinition.html +26 -2
  33. data/doc/TaskJuggler/AttributeOverwrite.html +26 -2
  34. data/doc/TaskJuggler/BatchProcessor.html +26 -2
  35. data/doc/TaskJuggler/Booking.html +29 -5
  36. data/doc/TaskJuggler/BookingListAttribute.html +29 -5
  37. data/doc/TaskJuggler/BooleanAttribute.html +30 -6
  38. data/doc/TaskJuggler/CSVFile.html +26 -2
  39. data/doc/TaskJuggler/CellSettingPattern.html +26 -2
  40. data/doc/TaskJuggler/CellSettingPatternList.html +26 -2
  41. data/doc/TaskJuggler/Charge.html +30 -6
  42. data/doc/TaskJuggler/ChargeListAttribute.html +29 -5
  43. data/doc/TaskJuggler/ChargeSet.html +26 -2
  44. data/doc/TaskJuggler/ChargeSetListAttribute.html +30 -6
  45. data/doc/TaskJuggler/CollisionDetector.html +26 -2
  46. data/doc/TaskJuggler/ColumnListAttribute.html +28 -4
  47. data/doc/TaskJuggler/ColumnTable.html +26 -2
  48. data/doc/TaskJuggler/Daemon.html +26 -2
  49. data/doc/TaskJuggler/DataCache.html +26 -2
  50. data/doc/TaskJuggler/DataCacheEntry.html +26 -2
  51. data/doc/TaskJuggler/DateAttribute.html +30 -6
  52. data/doc/TaskJuggler/DefinitionListAttribute.html +28 -4
  53. data/doc/TaskJuggler/DependencyListAttribute.html +30 -6
  54. data/doc/TaskJuggler/DurationAttribute.html +31 -7
  55. data/doc/TaskJuggler/FileList.html +26 -2
  56. data/doc/TaskJuggler/FileRecord.html +26 -2
  57. data/doc/TaskJuggler/FixnumAttribute.html +28 -4
  58. data/doc/TaskJuggler/FlagListAttribute.html +30 -6
  59. data/doc/TaskJuggler/FloatAttribute.html +29 -5
  60. data/doc/TaskJuggler/FormatListAttribute.html +29 -5
  61. data/doc/TaskJuggler/GanttChart.html +26 -2
  62. data/doc/TaskJuggler/GanttContainer.html +26 -2
  63. data/doc/TaskJuggler/GanttHeader.html +26 -2
  64. data/doc/TaskJuggler/GanttHeaderScaleItem.html +26 -2
  65. data/doc/TaskJuggler/GanttLine.html +27 -3
  66. data/doc/TaskJuggler/GanttLoadStack.html +26 -2
  67. data/doc/TaskJuggler/GanttMilestone.html +26 -2
  68. data/doc/TaskJuggler/GanttRouter.html +26 -2
  69. data/doc/TaskJuggler/GanttTaskBar.html +26 -2
  70. data/doc/TaskJuggler/HTMLDocument.html +26 -2
  71. data/doc/TaskJuggler/HTMLElements.html +623 -0
  72. data/doc/TaskJuggler/HTMLGraphics.html +26 -2
  73. data/doc/TaskJuggler/ICalReport.html +864 -0
  74. data/doc/TaskJuggler/ICalendar/Component.html +969 -0
  75. data/doc/TaskJuggler/ICalendar/Event.html +742 -0
  76. data/doc/TaskJuggler/ICalendar/Journal.html +722 -0
  77. data/doc/TaskJuggler/ICalendar/Person.html +633 -0
  78. data/doc/TaskJuggler/ICalendar/Todo.html +789 -0
  79. data/doc/TaskJuggler/ICalendar.html +1035 -0
  80. data/doc/TaskJuggler/Interval.html +99 -172
  81. data/doc/TaskJuggler/IntervalList.html +31 -7
  82. data/doc/TaskJuggler/JobInfo.html +26 -2
  83. data/doc/TaskJuggler/Journal.html +26 -2
  84. data/doc/TaskJuggler/JournalEntry.html +26 -2
  85. data/doc/TaskJuggler/JournalEntryList.html +26 -2
  86. data/doc/TaskJuggler/KeywordArray.html +26 -2
  87. data/doc/TaskJuggler/KeywordDocumentation.html +26 -2
  88. data/doc/TaskJuggler/Limits/Limit.html +124 -49
  89. data/doc/TaskJuggler/Limits.html +139 -156
  90. data/doc/TaskJuggler/LimitsAttribute.html +39 -14
  91. data/doc/TaskJuggler/ListAttributeBase.html +35 -11
  92. data/doc/TaskJuggler/Log.html +26 -2
  93. data/doc/TaskJuggler/LogFile.html +26 -2
  94. data/doc/TaskJuggler/LogicalAttribute.html +26 -2
  95. data/doc/TaskJuggler/LogicalExpression.html +26 -2
  96. data/doc/TaskJuggler/LogicalExpressionAttribute.html +35 -11
  97. data/doc/TaskJuggler/LogicalExpressionListAttribute.html +35 -11
  98. data/doc/TaskJuggler/LogicalFlag.html +26 -2
  99. data/doc/TaskJuggler/LogicalFunction.html +28 -4
  100. data/doc/TaskJuggler/LogicalOperation.html +26 -2
  101. data/doc/TaskJuggler/ManagerResponsibilities.html +26 -2
  102. data/doc/TaskJuggler/ManagerStatusRecord.html +26 -2
  103. data/doc/TaskJuggler/Message.html +26 -2
  104. data/doc/TaskJuggler/MessageHandler.html +108 -62
  105. data/doc/TaskJuggler/Navigator.html +26 -2
  106. data/doc/TaskJuggler/NavigatorElement.html +26 -2
  107. data/doc/TaskJuggler/NikuProject.html +26 -2
  108. data/doc/TaskJuggler/NikuReport.html +27 -3
  109. data/doc/TaskJuggler/NikuResource.html +26 -2
  110. data/doc/TaskJuggler/NodeListAttribute.html +31 -7
  111. data/doc/TaskJuggler/PlaceHolderCell.html +26 -2
  112. data/doc/TaskJuggler/ProcessIntercom.html +26 -2
  113. data/doc/TaskJuggler/ProcessIntercomIface.html +26 -2
  114. data/doc/TaskJuggler/Project.html +1236 -973
  115. data/doc/TaskJuggler/ProjectBroker.html +26 -2
  116. data/doc/TaskJuggler/ProjectBrokerIface.html +26 -2
  117. data/doc/TaskJuggler/ProjectFileParser.html +29 -4
  118. data/doc/TaskJuggler/ProjectFileScanner.html +56 -31
  119. data/doc/TaskJuggler/ProjectRecord.html +26 -2
  120. data/doc/TaskJuggler/ProjectServer.html +26 -2
  121. data/doc/TaskJuggler/ProjectServerIface.html +26 -2
  122. data/doc/TaskJuggler/PropertyAttribute.html +35 -11
  123. data/doc/TaskJuggler/PropertyList.html +26 -2
  124. data/doc/TaskJuggler/PropertySet.html +126 -106
  125. data/doc/TaskJuggler/PropertyTreeNode.html +595 -551
  126. data/doc/TaskJuggler/Query.html +127 -100
  127. data/doc/TaskJuggler/RTFHandlers.html +26 -2
  128. data/doc/TaskJuggler/RTFNavigator.html +26 -2
  129. data/doc/TaskJuggler/RTFQuery.html +28 -4
  130. data/doc/TaskJuggler/RTFReport.html +26 -2
  131. data/doc/TaskJuggler/RTFReportLink.html +26 -2
  132. data/doc/TaskJuggler/RTFWithQuerySupport.html +26 -2
  133. data/doc/TaskJuggler/RealFormat.html +26 -2
  134. data/doc/TaskJuggler/RealFormatAttribute.html +31 -7
  135. data/doc/TaskJuggler/ReferenceAttribute.html +58 -34
  136. data/doc/TaskJuggler/Report.html +427 -284
  137. data/doc/TaskJuggler/ReportBase.html +28 -102
  138. data/doc/TaskJuggler/ReportContext.html +26 -2
  139. data/doc/TaskJuggler/ReportScenario.html +633 -0
  140. data/doc/TaskJuggler/ReportServer.html +26 -2
  141. data/doc/TaskJuggler/ReportServerIface.html +26 -2
  142. data/doc/TaskJuggler/ReportServerRecord.html +26 -2
  143. data/doc/TaskJuggler/ReportServlet.html +26 -2
  144. data/doc/TaskJuggler/ReportTable.html +26 -2
  145. data/doc/TaskJuggler/ReportTableCell.html +26 -2
  146. data/doc/TaskJuggler/ReportTableColumn.html +26 -2
  147. data/doc/TaskJuggler/ReportTableLegend.html +26 -2
  148. data/doc/TaskJuggler/ReportTableLine.html +26 -2
  149. data/doc/TaskJuggler/Resource.html +225 -163
  150. data/doc/TaskJuggler/ResourceListAttribute.html +71 -47
  151. data/doc/TaskJuggler/ResourceListRE.html +26 -2
  152. data/doc/TaskJuggler/ResourceScenario.html +645 -603
  153. data/doc/TaskJuggler/RichText.html +26 -2
  154. data/doc/TaskJuggler/RichTextAttribute.html +53 -29
  155. data/doc/TaskJuggler/RichTextDocument.html +26 -2
  156. data/doc/TaskJuggler/RichTextElement.html +26 -2
  157. data/doc/TaskJuggler/RichTextFunctionExample.html +26 -2
  158. data/doc/TaskJuggler/RichTextFunctionHandler.html +26 -2
  159. data/doc/TaskJuggler/RichTextImage.html +26 -2
  160. data/doc/TaskJuggler/RichTextIntermediate.html +29 -5
  161. data/doc/TaskJuggler/RichTextParser.html +26 -2
  162. data/doc/TaskJuggler/RichTextScanner.html +26 -2
  163. data/doc/TaskJuggler/RichTextSnip.html +26 -2
  164. data/doc/TaskJuggler/RichTextSyntaxRules.html +26 -2
  165. data/doc/TaskJuggler/Scenario.html +26 -2
  166. data/doc/TaskJuggler/ScenarioData.html +95 -28
  167. data/doc/TaskJuggler/ScenarioListAttribute.html +39 -15
  168. data/doc/TaskJuggler/Scoreboard.html +137 -73
  169. data/doc/TaskJuggler/ScoreboardInterval.html +1116 -0
  170. data/doc/TaskJuggler/SheetHandlerBase.html +26 -2
  171. data/doc/TaskJuggler/SheetReceiver.html +26 -2
  172. data/doc/TaskJuggler/SheetSender.html +26 -2
  173. data/doc/TaskJuggler/Shift.html +27 -3
  174. data/doc/TaskJuggler/ShiftAssignment.html +27 -3
  175. data/doc/TaskJuggler/ShiftAssignments.html +174 -149
  176. data/doc/TaskJuggler/ShiftAssignmentsAttribute.html +41 -16
  177. data/doc/TaskJuggler/ShiftScenario.html +26 -2
  178. data/doc/TaskJuggler/SimpleQueryExpander.html +26 -2
  179. data/doc/TaskJuggler/SortListAttribute.html +35 -11
  180. data/doc/TaskJuggler/StatusSheetReceiver.html +26 -2
  181. data/doc/TaskJuggler/StatusSheetReport.html +26 -2
  182. data/doc/TaskJuggler/StatusSheetSender.html +26 -2
  183. data/doc/TaskJuggler/StdIoWrapper.html +26 -2
  184. data/doc/TaskJuggler/StringAttribute.html +39 -15
  185. data/doc/TaskJuggler/SymbolAttribute.html +35 -11
  186. data/doc/TaskJuggler/SyntaxReference.html +26 -2
  187. data/doc/TaskJuggler/TOCEntry.html +26 -2
  188. data/doc/TaskJuggler/TSResourceRecord.html +26 -2
  189. data/doc/TaskJuggler/TSTaskRecord.html +26 -2
  190. data/doc/TaskJuggler/TableColumnDefinition.html +26 -2
  191. data/doc/TaskJuggler/TableOfContents.html +26 -2
  192. data/doc/TaskJuggler/TableReport.html +239 -214
  193. data/doc/TaskJuggler/TagFile/TagFileEntry.html +841 -0
  194. data/doc/TaskJuggler/TagFile.html +817 -0
  195. data/doc/TaskJuggler/Task.html +27 -3
  196. data/doc/TaskJuggler/TaskDepListAttribute.html +47 -23
  197. data/doc/TaskJuggler/TaskDependency.html +26 -2
  198. data/doc/TaskJuggler/TaskListAttribute.html +47 -23
  199. data/doc/TaskJuggler/TaskListRE.html +26 -2
  200. data/doc/TaskJuggler/TaskScenario.html +2235 -2178
  201. data/doc/TaskJuggler/TernarySearchTree.html +26 -2
  202. data/doc/TaskJuggler/TextFormatter.html +26 -2
  203. data/doc/TaskJuggler/TextParser/Macro.html +26 -2
  204. data/doc/TaskJuggler/TextParser/MacroTable.html +26 -2
  205. data/doc/TaskJuggler/TextParser/Pattern.html +26 -2
  206. data/doc/TaskJuggler/TextParser/Rule.html +26 -2
  207. data/doc/TaskJuggler/TextParser/Scanner/BufferStreamHandle.html +32 -8
  208. data/doc/TaskJuggler/TextParser/Scanner/FileStreamHandle.html +39 -15
  209. data/doc/TaskJuggler/TextParser/Scanner/MacroStackEntry.html +26 -2
  210. data/doc/TaskJuggler/TextParser/Scanner/StreamHandle.html +119 -86
  211. data/doc/TaskJuggler/TextParser/Scanner.html +317 -291
  212. data/doc/TaskJuggler/TextParser/SourceFileInfo.html +26 -2
  213. data/doc/TaskJuggler/TextParser/StackElement.html +26 -2
  214. data/doc/TaskJuggler/TextParser/State.html +26 -2
  215. data/doc/TaskJuggler/TextParser/StateTransition.html +26 -2
  216. data/doc/TaskJuggler/TextParser/TextParserResultArray.html +26 -2
  217. data/doc/TaskJuggler/TextParser/TokenDoc.html +26 -2
  218. data/doc/TaskJuggler/TextParser.html +85 -61
  219. data/doc/TaskJuggler/TextReport.html +26 -2
  220. data/doc/TaskJuggler/TimeInterval.html +841 -0
  221. data/doc/TaskJuggler/{IntervalListAttribute.html → TimeIntervalListAttribute.html} +33 -9
  222. data/doc/TaskJuggler/TimeSheet.html +26 -2
  223. data/doc/TaskJuggler/TimeSheetReceiver.html +26 -2
  224. data/doc/TaskJuggler/TimeSheetRecord.html +27 -3
  225. data/doc/TaskJuggler/TimeSheetReport.html +29 -5
  226. data/doc/TaskJuggler/TimeSheetSender.html +26 -2
  227. data/doc/TaskJuggler/TimeSheetSummary.html +26 -2
  228. data/doc/TaskJuggler/TimeSheets.html +26 -2
  229. data/doc/TaskJuggler/Tj3.html +150 -111
  230. data/doc/TaskJuggler/Tj3AppBase.html +26 -2
  231. data/doc/TaskJuggler/Tj3Client.html +26 -2
  232. data/doc/TaskJuggler/Tj3Daemon.html +26 -2
  233. data/doc/TaskJuggler/Tj3Man.html +26 -2
  234. data/doc/TaskJuggler/Tj3SheetAppBase.html +26 -2
  235. data/doc/TaskJuggler/Tj3SsReceiver.html +26 -2
  236. data/doc/TaskJuggler/Tj3SsSender.html +26 -2
  237. data/doc/TaskJuggler/Tj3TsReceiver.html +26 -2
  238. data/doc/TaskJuggler/Tj3TsSender.html +26 -2
  239. data/doc/TaskJuggler/Tj3TsSummary.html +26 -2
  240. data/doc/TaskJuggler/TjException.html +26 -2
  241. data/doc/TaskJuggler/TjRuntimeError.html +26 -2
  242. data/doc/TaskJuggler/TjTime.html +539 -477
  243. data/doc/TaskJuggler/TjpExample.html +26 -2
  244. data/doc/TaskJuggler/TjpExportRE.html +240 -161
  245. data/doc/TaskJuggler/TjpSyntaxRules.html +4236 -3844
  246. data/doc/TaskJuggler/URLParameter.html +26 -2
  247. data/doc/TaskJuggler/UserManual.html +26 -2
  248. data/doc/TaskJuggler/VimSyntax.html +31 -7
  249. data/doc/TaskJuggler/WebServer.html +26 -2
  250. data/doc/TaskJuggler/WelcomePage.html +26 -2
  251. data/doc/TaskJuggler/WorkingHours.html +227 -152
  252. data/doc/TaskJuggler/WorkingHoursAttribute.html +62 -38
  253. data/doc/TaskJuggler/XMLBlob.html +26 -2
  254. data/doc/TaskJuggler/XMLComment.html +26 -2
  255. data/doc/TaskJuggler/XMLDocument.html +26 -2
  256. data/doc/TaskJuggler/XMLElement.html +26 -2
  257. data/doc/TaskJuggler/XMLNamedText.html +26 -2
  258. data/doc/TaskJuggler/XMLText.html +26 -2
  259. data/doc/TaskJuggler.html +486 -427
  260. data/doc/index.html +801 -659
  261. data/doc/lib/taskjuggler/AccountScenario_rb.html +1 -1
  262. data/doc/lib/taskjuggler/Account_rb.html +1 -1
  263. data/doc/lib/taskjuggler/AlgorithmDiff_rb.html +1 -1
  264. data/doc/lib/taskjuggler/Allocation_rb.html +1 -1
  265. data/doc/lib/taskjuggler/AppConfig_rb.html +1 -1
  266. data/doc/lib/taskjuggler/AttributeBase_rb.html +1 -1
  267. data/doc/lib/taskjuggler/AttributeDefinition_rb.html +1 -1
  268. data/doc/lib/taskjuggler/Attributes_rb.html +1 -1
  269. data/doc/lib/taskjuggler/BatchProcessor_rb.html +1 -1
  270. data/doc/lib/taskjuggler/Booking_rb.html +1 -1
  271. data/doc/lib/taskjuggler/ChargeSet_rb.html +1 -1
  272. data/doc/lib/taskjuggler/Charge_rb.html +1 -1
  273. data/doc/lib/taskjuggler/DataCache_rb.html +1 -1
  274. data/doc/lib/taskjuggler/FileList_rb.html +1 -1
  275. data/doc/lib/taskjuggler/HTMLDocument_rb.html +1 -1
  276. data/doc/lib/{ruby-signal-bug_rb.html → taskjuggler/HTMLElements_rb.html} +9 -9
  277. data/doc/lib/{exchangebug_rb.html → taskjuggler/ICalendar_rb.html} +9 -9
  278. data/doc/lib/taskjuggler/IntervalList_rb.html +1 -1
  279. data/doc/lib/taskjuggler/Interval_rb.html +1 -1
  280. data/doc/lib/taskjuggler/Journal_rb.html +1 -1
  281. data/doc/lib/taskjuggler/KeywordArray_rb.html +1 -1
  282. data/doc/lib/taskjuggler/KeywordDocumentation_rb.html +1 -1
  283. data/doc/lib/taskjuggler/Limits_rb.html +1 -1
  284. data/doc/lib/taskjuggler/LogFile_rb.html +1 -1
  285. data/doc/lib/taskjuggler/Log_rb.html +1 -1
  286. data/doc/lib/taskjuggler/LogicalExpression_rb.html +1 -1
  287. data/doc/lib/taskjuggler/LogicalFunction_rb.html +1 -1
  288. data/doc/lib/taskjuggler/LogicalOperation_rb.html +1 -1
  289. data/doc/lib/taskjuggler/MessageHandler_rb.html +1 -1
  290. data/doc/lib/taskjuggler/ProjectFileParser_rb.html +1 -1
  291. data/doc/lib/taskjuggler/ProjectFileScanner_rb.html +1 -1
  292. data/doc/lib/taskjuggler/Project_rb.html +1 -1
  293. data/doc/lib/taskjuggler/PropertyList_rb.html +1 -1
  294. data/doc/lib/taskjuggler/PropertySet_rb.html +1 -1
  295. data/doc/lib/taskjuggler/PropertyTreeNode_rb.html +1 -1
  296. data/doc/lib/taskjuggler/Query_rb.html +1 -1
  297. data/doc/lib/taskjuggler/RealFormat_rb.html +1 -1
  298. data/doc/lib/taskjuggler/ResourceScenario_rb.html +1 -1
  299. data/doc/lib/taskjuggler/Resource_rb.html +1 -1
  300. data/doc/lib/taskjuggler/RichText/Document_rb.html +1 -1
  301. data/doc/lib/taskjuggler/RichText/Element_rb.html +1 -1
  302. data/doc/lib/taskjuggler/RichText/FunctionExample_rb.html +1 -1
  303. data/doc/lib/taskjuggler/RichText/FunctionHandler_rb.html +1 -1
  304. data/doc/lib/taskjuggler/RichText/Parser_rb.html +1 -1
  305. data/doc/lib/taskjuggler/RichText/RTFHandlers_rb.html +1 -1
  306. data/doc/lib/taskjuggler/RichText/RTFNavigator_rb.html +1 -1
  307. data/doc/lib/taskjuggler/RichText/RTFQuery_rb.html +1 -1
  308. data/doc/lib/taskjuggler/RichText/RTFReportLink_rb.html +1 -1
  309. data/doc/lib/taskjuggler/RichText/RTFReport_rb.html +1 -1
  310. data/doc/lib/taskjuggler/RichText/RTFWithQuerySupport_rb.html +1 -1
  311. data/doc/lib/taskjuggler/RichText/Scanner_rb.html +1 -1
  312. data/doc/lib/taskjuggler/RichText/Snip_rb.html +1 -1
  313. data/doc/lib/taskjuggler/RichText/SyntaxRules_rb.html +1 -1
  314. data/doc/lib/taskjuggler/RichText/TOCEntry_rb.html +1 -1
  315. data/doc/lib/taskjuggler/RichText/TableOfContents_rb.html +1 -1
  316. data/doc/lib/taskjuggler/RichText_rb.html +1 -1
  317. data/doc/lib/taskjuggler/RuntimeConfig_rb.html +1 -1
  318. data/doc/lib/taskjuggler/ScenarioData_rb.html +1 -1
  319. data/doc/lib/taskjuggler/Scenario_rb.html +1 -1
  320. data/doc/lib/taskjuggler/Scoreboard_rb.html +1 -1
  321. data/doc/lib/taskjuggler/SheetHandlerBase_rb.html +1 -1
  322. data/doc/lib/taskjuggler/SheetReceiver_rb.html +1 -1
  323. data/doc/lib/taskjuggler/SheetSender_rb.html +1 -1
  324. data/doc/lib/taskjuggler/ShiftAssignments_rb.html +1 -1
  325. data/doc/lib/taskjuggler/ShiftScenario_rb.html +1 -1
  326. data/doc/lib/taskjuggler/Shift_rb.html +1 -1
  327. data/doc/lib/taskjuggler/SimpleQueryExpander_rb.html +1 -1
  328. data/doc/lib/taskjuggler/StatusSheetReceiver_rb.html +1 -1
  329. data/doc/lib/taskjuggler/StatusSheetSender_rb.html +1 -1
  330. data/doc/lib/taskjuggler/StdIoWrapper_rb.html +1 -1
  331. data/doc/lib/taskjuggler/SyntaxReference_rb.html +1 -1
  332. data/doc/lib/taskjuggler/TableColumnDefinition_rb.html +1 -1
  333. data/doc/lib/taskjuggler/TaskDependency_rb.html +1 -1
  334. data/doc/lib/taskjuggler/TaskJuggler_rb.html +1 -1
  335. data/doc/lib/taskjuggler/TaskScenario_rb.html +1 -1
  336. data/doc/lib/taskjuggler/Task_rb.html +1 -1
  337. data/doc/lib/taskjuggler/TernarySearchTree_rb.html +1 -1
  338. data/doc/lib/taskjuggler/TextFormatter_rb.html +1 -1
  339. data/doc/lib/taskjuggler/TextParser/MacroTable_rb.html +1 -1
  340. data/doc/lib/taskjuggler/TextParser/Pattern_rb.html +1 -1
  341. data/doc/lib/taskjuggler/TextParser/Rule_rb.html +1 -1
  342. data/doc/lib/taskjuggler/TextParser/Scanner_rb.html +1 -1
  343. data/doc/lib/taskjuggler/TextParser/SourceFileInfo_rb.html +1 -1
  344. data/doc/lib/taskjuggler/TextParser/StackElement_rb.html +1 -1
  345. data/doc/lib/taskjuggler/TextParser/State_rb.html +1 -1
  346. data/doc/lib/taskjuggler/TextParser/TokenDoc_rb.html +1 -1
  347. data/doc/lib/taskjuggler/TextParser_rb.html +1 -1
  348. data/doc/lib/taskjuggler/TimeSheetReceiver_rb.html +1 -1
  349. data/doc/lib/taskjuggler/TimeSheetSender_rb.html +1 -1
  350. data/doc/lib/taskjuggler/TimeSheetSummary_rb.html +1 -1
  351. data/doc/lib/taskjuggler/TimeSheets_rb.html +1 -1
  352. data/doc/lib/taskjuggler/Tj3AppBase_rb.html +1 -1
  353. data/doc/lib/taskjuggler/Tj3Config_rb.html +1 -1
  354. data/doc/lib/taskjuggler/Tj3SheetAppBase_rb.html +1 -1
  355. data/doc/lib/taskjuggler/TjException_rb.html +1 -1
  356. data/doc/lib/taskjuggler/TjTime_rb.html +1 -1
  357. data/doc/lib/taskjuggler/TjpExample_rb.html +1 -1
  358. data/doc/lib/taskjuggler/TjpSyntaxRules_rb.html +1 -1
  359. data/doc/lib/taskjuggler/URLParameter_rb.html +1 -1
  360. data/doc/lib/taskjuggler/UTF8String_rb.html +1 -1
  361. data/doc/lib/taskjuggler/UserManual_rb.html +1 -1
  362. data/doc/lib/taskjuggler/VimSyntax_rb.html +1 -1
  363. data/doc/lib/taskjuggler/WorkingHours_rb.html +1 -1
  364. data/doc/lib/taskjuggler/XMLDocument_rb.html +1 -1
  365. data/doc/lib/taskjuggler/XMLElement_rb.html +1 -1
  366. data/doc/lib/taskjuggler/apps/Tj3Client_rb.html +1 -1
  367. data/doc/lib/taskjuggler/apps/Tj3Daemon_rb.html +1 -1
  368. data/doc/lib/taskjuggler/apps/Tj3Man_rb.html +1 -1
  369. data/doc/lib/taskjuggler/apps/Tj3SsReceiver_rb.html +1 -1
  370. data/doc/lib/taskjuggler/apps/Tj3SsSender_rb.html +1 -1
  371. data/doc/lib/taskjuggler/apps/Tj3TsReceiver_rb.html +1 -1
  372. data/doc/lib/taskjuggler/apps/Tj3TsSender_rb.html +1 -1
  373. data/doc/lib/taskjuggler/apps/Tj3TsSummary_rb.html +1 -1
  374. data/doc/lib/taskjuggler/apps/Tj3_rb.html +1 -1
  375. data/doc/lib/taskjuggler/daemon/Daemon_rb.html +1 -1
  376. data/doc/lib/taskjuggler/daemon/ProcessIntercom_rb.html +1 -1
  377. data/doc/lib/taskjuggler/daemon/ProjectBroker_rb.html +1 -1
  378. data/doc/lib/taskjuggler/daemon/ProjectServer_rb.html +1 -1
  379. data/doc/lib/taskjuggler/daemon/ReportServer_rb.html +1 -1
  380. data/doc/lib/taskjuggler/daemon/ReportServlet_rb.html +1 -1
  381. data/doc/lib/taskjuggler/daemon/WebServer_rb.html +1 -1
  382. data/doc/lib/taskjuggler/daemon/WelcomePage_rb.html +1 -1
  383. data/doc/lib/taskjuggler/deep_copy_rb.html +1 -1
  384. data/doc/lib/taskjuggler/reports/CSVFile_rb.html +1 -1
  385. data/doc/lib/taskjuggler/reports/CollisionDetector_rb.html +1 -1
  386. data/doc/lib/taskjuggler/reports/ColumnTable_rb.html +1 -1
  387. data/doc/lib/taskjuggler/reports/GanttChart_rb.html +1 -1
  388. data/doc/lib/taskjuggler/reports/GanttContainer_rb.html +1 -1
  389. data/doc/lib/taskjuggler/reports/GanttHeaderScaleItem_rb.html +1 -1
  390. data/doc/lib/taskjuggler/reports/GanttHeader_rb.html +1 -1
  391. data/doc/lib/taskjuggler/reports/GanttLine_rb.html +1 -1
  392. data/doc/lib/taskjuggler/reports/GanttLoadStack_rb.html +1 -1
  393. data/doc/lib/taskjuggler/reports/GanttMilestone_rb.html +1 -1
  394. data/doc/lib/taskjuggler/reports/GanttRouter_rb.html +1 -1
  395. data/doc/lib/taskjuggler/reports/GanttTaskBar_rb.html +1 -1
  396. data/doc/lib/taskjuggler/reports/HTMLGraphics_rb.html +1 -1
  397. data/doc/lib/taskjuggler/reports/ICalReport_rb.html +71 -0
  398. data/doc/lib/taskjuggler/reports/Navigator_rb.html +1 -1
  399. data/doc/lib/taskjuggler/reports/NikuReport_rb.html +1 -1
  400. data/doc/lib/taskjuggler/reports/ReportBase_rb.html +1 -1
  401. data/doc/lib/taskjuggler/reports/ReportContext_rb.html +1 -1
  402. data/doc/lib/taskjuggler/reports/ReportTableCell_rb.html +1 -1
  403. data/doc/lib/taskjuggler/reports/ReportTableColumn_rb.html +1 -1
  404. data/doc/lib/taskjuggler/reports/ReportTableLegend_rb.html +1 -1
  405. data/doc/lib/taskjuggler/reports/ReportTableLine_rb.html +1 -1
  406. data/doc/lib/taskjuggler/reports/ReportTable_rb.html +1 -1
  407. data/doc/lib/taskjuggler/reports/Report_rb.html +5 -1
  408. data/doc/lib/taskjuggler/reports/ResourceListRE_rb.html +1 -1
  409. data/doc/lib/taskjuggler/reports/StatusSheetReport_rb.html +1 -1
  410. data/doc/lib/taskjuggler/reports/TableReport_rb.html +1 -1
  411. data/doc/lib/taskjuggler/reports/TagFile_rb.html +71 -0
  412. data/doc/lib/taskjuggler/reports/TaskListRE_rb.html +1 -1
  413. data/doc/lib/taskjuggler/reports/TextReport_rb.html +1 -1
  414. data/doc/lib/taskjuggler/reports/TimeSheetReport_rb.html +1 -1
  415. data/doc/lib/taskjuggler/reports/TjpExportRE_rb.html +1 -1
  416. data/doc/lib/tj3_rb.html +1 -1
  417. data/doc/lib/tj3client_rb.html +1 -1
  418. data/doc/lib/tj3d_rb.html +1 -1
  419. data/doc/lib/tj3man_rb.html +1 -1
  420. data/doc/lib/tj3ss_receiver_rb.html +1 -1
  421. data/doc/lib/tj3ss_sender_rb.html +1 -1
  422. data/doc/lib/tj3ts_receiver_rb.html +1 -1
  423. data/doc/lib/tj3ts_sender_rb.html +1 -1
  424. data/doc/lib/tj3ts_summary_rb.html +1 -1
  425. data/lib/taskjuggler/Account.rb +1 -1
  426. data/lib/taskjuggler/AccountScenario.rb +1 -1
  427. data/lib/taskjuggler/Allocation.rb +5 -5
  428. data/lib/taskjuggler/AttributeBase.rb +30 -22
  429. data/lib/taskjuggler/Attributes.rb +80 -78
  430. data/lib/taskjuggler/Booking.rb +2 -2
  431. data/lib/taskjuggler/Charge.rb +3 -3
  432. data/lib/taskjuggler/ICalendar.rb +251 -0
  433. data/lib/taskjuggler/Interval.rb +215 -53
  434. data/lib/taskjuggler/IntervalList.rb +5 -5
  435. data/lib/taskjuggler/Limits.rb +79 -69
  436. data/lib/taskjuggler/LogicalFunction.rb +2 -2
  437. data/lib/taskjuggler/MessageHandler.rb +11 -6
  438. data/lib/taskjuggler/Project.rb +208 -95
  439. data/lib/taskjuggler/ProjectFileParser.rb +2 -2
  440. data/lib/taskjuggler/ProjectFileScanner.rb +7 -6
  441. data/lib/taskjuggler/PropertySet.rb +1 -5
  442. data/lib/taskjuggler/PropertyTreeNode.rb +21 -16
  443. data/lib/taskjuggler/Query.rb +10 -7
  444. data/lib/taskjuggler/Resource.rb +6 -1
  445. data/lib/taskjuggler/ResourceScenario.rb +85 -69
  446. data/lib/taskjuggler/RichText/RTFQuery.rb +2 -2
  447. data/lib/taskjuggler/ScenarioData.rb +11 -1
  448. data/lib/taskjuggler/Scoreboard.rb +8 -1
  449. data/lib/taskjuggler/Shift.rb +1 -1
  450. data/lib/taskjuggler/ShiftAssignments.rb +22 -20
  451. data/lib/taskjuggler/Task.rb +1 -1
  452. data/lib/taskjuggler/TaskJuggler.rb +65 -51
  453. data/lib/taskjuggler/TaskScenario.rb +486 -419
  454. data/lib/taskjuggler/TextParser/Scanner.rb +22 -11
  455. data/lib/taskjuggler/TimeSheets.rb +1 -1
  456. data/lib/taskjuggler/Tj3Config.rb +1 -1
  457. data/lib/taskjuggler/TjTime.rb +7 -3
  458. data/lib/taskjuggler/TjpSyntaxRules.rb +157 -23
  459. data/lib/taskjuggler/VimSyntax.rb +18 -0
  460. data/lib/taskjuggler/WorkingHours.rb +20 -4
  461. data/lib/taskjuggler/apps/Tj3.rb +16 -1
  462. data/lib/taskjuggler/reports/GanttLine.rb +1 -1
  463. data/lib/taskjuggler/reports/ICalReport.rb +136 -0
  464. data/lib/taskjuggler/reports/NikuReport.rb +1 -1
  465. data/lib/taskjuggler/reports/Report.rb +59 -0
  466. data/lib/taskjuggler/reports/ReportBase.rb +2 -67
  467. data/lib/taskjuggler/reports/TableReport.rb +9 -8
  468. data/lib/taskjuggler/reports/TagFile.rb +120 -0
  469. data/lib/taskjuggler/reports/TimeSheetReport.rb +3 -3
  470. data/lib/taskjuggler/reports/TjpExportRE.rb +33 -9
  471. data/manual/Installation +126 -0
  472. data/spec/ICalendar_spec.rb +45 -0
  473. data/spec/IntervalList_spec.rb +11 -11
  474. data/tasks/changelog.rake +150 -60
  475. data/tasks/gem.rake +1 -0
  476. data/tasks/vim.rake +2 -2
  477. data/test/TestSuite/Export-Reports/refs/Booking.tjp +1 -1
  478. data/test/TestSuite/Export-Reports/refs/CompletedWork.tji.tjp +40 -0
  479. data/test/TestSuite/Export-Reports/refs/Macro-2.tjp +10 -1
  480. data/test/TestSuite/Export-Reports/refs/TaskPrefix.tjp +1 -1
  481. data/test/TestSuite/HTML-Reports/Alerts.html +160 -412
  482. data/test/TestSuite/HTML-Reports/CellText.html +758 -0
  483. data/test/TestSuite/HTML-Reports/ColumnPeriods.html +156 -0
  484. data/test/TestSuite/HTML-Reports/IsOngoing.html +172 -0
  485. data/test/TestSuite/HTML-Reports/LogicalFunctions.html +245 -0
  486. data/test/TestSuite/HTML-Reports/Query.html +31 -0
  487. data/test/TestSuite/HTML-Reports/css/tjmanual.css +0 -20
  488. data/test/TestSuite/HTML-Reports/css/tjreport.css +6 -7
  489. data/test/TestSuite/HTML-Reports/depArrows.html +851 -0
  490. data/test/TestSuite/HTML-Reports/profile.html +37581 -0
  491. data/test/TestSuite/{Scheduler/Correct → HTML-Reports/scripts}/scripts/wz_tooltip.js +20 -20
  492. data/test/TestSuite/Scheduler/Correct/Booking.tjp +3 -3
  493. data/test/TestSuite/Scheduler/Correct/Duration.tjp +3 -3
  494. data/test/TestSuite/Scheduler/Errors/R.html +113 -0
  495. data/test/TestSuite/Scheduler/Errors/allocate_no_assigned.tjp +15 -0
  496. data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/css/tjmanual.css +0 -1
  497. data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/css/tjreport.css +0 -0
  498. data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/details.png +0 -0
  499. data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/flag-green.png +0 -0
  500. data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/flag-red.png +0 -0
  501. data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/flag-yellow.png +0 -0
  502. data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/resource.png +0 -0
  503. data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/resourcegroup.png +0 -0
  504. data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/task.png +0 -0
  505. data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/taskgroup.png +0 -0
  506. data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/trend-down.png +0 -0
  507. data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/trend-flat.png +0 -0
  508. data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/trend-up.png +0 -0
  509. data/test/TestSuite/Scheduler/Errors/overbooked_duration.tjp +11 -0
  510. data/test/TestSuite/Scheduler/Errors/overbooked_effort.tjp +11 -0
  511. data/test/TestSuite/Scheduler/Errors/overbooked_length.tjp +13 -0
  512. data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/scripts/wz_tooltip.js +0 -0
  513. data/test/TestSuite/StatusSheets/dev2.tji +22 -0
  514. data/test/TestSuite/Syntax/Correct/CompletedWork.tji.tjp +38 -0
  515. data/test/TestSuite/Syntax/Correct/Macro-2.tjp +5 -2
  516. data/test/TestSuite/Syntax/Errors/scenario_after_tracking.tjp +8 -0
  517. data/test/TestSuite/TimeSheets/resrep.tji +7 -0
  518. data/test/TestSuite/TimeSheets/ts.tji +351 -0
  519. data/test/TestSuite/TimeSheets/tsdef.tji +2 -0
  520. data/test/test_Limits.rb +38 -30
  521. data/test/test_Scheduler.rb +2 -2
  522. data/test/test_ShiftAssignments.rb +8 -8
  523. data/test/test_WorkingHours.rb +4 -4
  524. metadata +1015 -1005
  525. data/lib/exchangebug.rb +0 -42
  526. data/lib/ruby-signal-bug.rb +0 -55
  527. data/test/TestSuite/Export-Reports/refs/DST.tjp +0 -60
  528. data/test/TestSuite/Export-Reports/refs/ReleasePlan.tjp +0 -80
  529. data/test/TestSuite/HTML-Reports/TimeSheet.html +0 -79
  530. data/test/TestSuite/HTML-Reports/reference.html +0 -51
  531. data/test/TestSuite/ReportGenerator/Correct/Alerts-1.csv +0 -412
  532. data/test/TestSuite/ReportGenerator/Correct/Alerts-1.html +0 -680
  533. data/test/TestSuite/ReportGenerator/Correct/DependencyList.csv +0 -4
  534. data/test/TestSuite/ReportGenerator/Correct/DependencyList.tjp +0 -25
  535. data/test/TestSuite/ReportGenerator/Correct/Journal-1.csv +0 -8
  536. data/test/TestSuite/ReportGenerator/Correct/Journal-2.csv +0 -8
  537. data/test/TestSuite/ReportGenerator/Correct/Journal-3.html +0 -28
  538. data/test/TestSuite/ReportGenerator/Correct/LogicalFunctions2.csv +0 -3
  539. data/test/TestSuite/ReportGenerator/Correct/opennodes-1.csv +0 -2
  540. data/test/TestSuite/ReportGenerator/Correct/opennodes.csv +0 -2
  541. data/test/TestSuite/ReportGenerator/Correct/opennodes.tjp +0 -26
  542. data/test/TestSuite/ReportGenerator/Correct/refs/opennodes-1.csv +0 -2
  543. data/test/TestSuite/Scheduler/' +0 -23
  544. data/test/TestSuite/Scheduler/Correct/css/tjmanual.css +0 -86
  545. data/test/TestSuite/Scheduler/Correct/css/tjreport.css +0 -413
  546. data/test/TestSuite/Scheduler/Correct/icons/details.png +0 -0
  547. data/test/TestSuite/Scheduler/Correct/icons/flag-green.png +0 -0
  548. data/test/TestSuite/Scheduler/Correct/icons/flag-red.png +0 -0
  549. data/test/TestSuite/Scheduler/Correct/icons/flag-yellow.png +0 -0
  550. data/test/TestSuite/Scheduler/Correct/icons/resource.png +0 -0
  551. data/test/TestSuite/Scheduler/Correct/icons/resourcegroup.png +0 -0
  552. data/test/TestSuite/Scheduler/Correct/icons/task.png +0 -0
  553. data/test/TestSuite/Scheduler/Correct/icons/taskgroup.png +0 -0
  554. data/test/TestSuite/Scheduler/Correct/icons/trend-down.png +0 -0
  555. data/test/TestSuite/Scheduler/Correct/icons/trend-flat.png +0 -0
  556. data/test/TestSuite/Scheduler/Correct/icons/trend-up.png +0 -0
  557. data/test/TestSuite/StatusSheetTemplates/project.tji +0 -35
  558. data/test/TestSuite/StatusSheetTemplates/project.tjp +0 -56
  559. data/test/TestSuite/StatusSheets/TimeSheets/2002-03-01/resource1_2002-03-01.tji +0 -0
  560. data/test/TestSuite/Syntax/Correct/DST.tjp +0 -11
  561. data/test/TestSuite/Syntax/Correct/ReleasePlan.tjp +0 -32
  562. data/test/TestSuite/TimeSheets/receiver.log.mod +0 -1056
  563. data/test/TestSuite/TimeSheets/uu.txt +0 -29
@@ -261,12 +261,24 @@
261
261
 
262
262
  <li><a href="../TaskJuggler/HTMLGraphics.html">TaskJuggler::HTMLGraphics</a></li>
263
263
 
264
+ <li><a href="../TaskJuggler/ICalReport.html">TaskJuggler::ICalReport</a></li>
265
+
266
+ <li><a href="../TaskJuggler/ICalendar.html">TaskJuggler::ICalendar</a></li>
267
+
268
+ <li><a href="../TaskJuggler/ICalendar/Component.html">TaskJuggler::ICalendar::Component</a></li>
269
+
270
+ <li><a href="../TaskJuggler/ICalendar/Event.html">TaskJuggler::ICalendar::Event</a></li>
271
+
272
+ <li><a href="../TaskJuggler/ICalendar/Journal.html">TaskJuggler::ICalendar::Journal</a></li>
273
+
274
+ <li><a href="../TaskJuggler/ICalendar/Person.html">TaskJuggler::ICalendar::Person</a></li>
275
+
276
+ <li><a href="../TaskJuggler/ICalendar/Todo.html">TaskJuggler::ICalendar::Todo</a></li>
277
+
264
278
  <li><a href="../TaskJuggler/Interval.html">TaskJuggler::Interval</a></li>
265
279
 
266
280
  <li><a href="../TaskJuggler/IntervalList.html">TaskJuggler::IntervalList</a></li>
267
281
 
268
- <li><a href="../TaskJuggler/IntervalListAttribute.html">TaskJuggler::IntervalListAttribute</a></li>
269
-
270
282
  <li><a href="../TaskJuggler/JobInfo.html">TaskJuggler::JobInfo</a></li>
271
283
 
272
284
  <li><a href="../TaskJuggler/Journal.html">TaskJuggler::Journal</a></li>
@@ -381,6 +393,8 @@
381
393
 
382
394
  <li><a href="../TaskJuggler/ReportContext.html">TaskJuggler::ReportContext</a></li>
383
395
 
396
+ <li><a href="../TaskJuggler/ReportScenario.html">TaskJuggler::ReportScenario</a></li>
397
+
384
398
  <li><a href="../TaskJuggler/ReportServer.html">TaskJuggler::ReportServer</a></li>
385
399
 
386
400
  <li><a href="../TaskJuggler/ReportServerIface.html">TaskJuggler::ReportServerIface</a></li>
@@ -439,6 +453,8 @@
439
453
 
440
454
  <li><a href="../TaskJuggler/Scoreboard.html">TaskJuggler::Scoreboard</a></li>
441
455
 
456
+ <li><a href="../TaskJuggler/ScoreboardInterval.html">TaskJuggler::ScoreboardInterval</a></li>
457
+
442
458
  <li><a href="../TaskJuggler/SheetHandlerBase.html">TaskJuggler::SheetHandlerBase</a></li>
443
459
 
444
460
  <li><a href="../TaskJuggler/SheetReceiver.html">TaskJuggler::SheetReceiver</a></li>
@@ -485,6 +501,10 @@
485
501
 
486
502
  <li><a href="../TaskJuggler/TableReport.html">TaskJuggler::TableReport</a></li>
487
503
 
504
+ <li><a href="../TaskJuggler/TagFile.html">TaskJuggler::TagFile</a></li>
505
+
506
+ <li><a href="../TaskJuggler/TagFile/TagFileEntry.html">TaskJuggler::TagFile::TagFileEntry</a></li>
507
+
488
508
  <li><a href="../TaskJuggler/Task.html">TaskJuggler::Task</a></li>
489
509
 
490
510
  <li><a href="../TaskJuggler/TaskDepListAttribute.html">TaskJuggler::TaskDepListAttribute</a></li>
@@ -535,6 +555,10 @@
535
555
 
536
556
  <li><a href="../TaskJuggler/TextReport.html">TaskJuggler::TextReport</a></li>
537
557
 
558
+ <li><a href="../TaskJuggler/TimeInterval.html">TaskJuggler::TimeInterval</a></li>
559
+
560
+ <li><a href="../TaskJuggler/TimeIntervalListAttribute.html">TaskJuggler::TimeIntervalListAttribute</a></li>
561
+
538
562
  <li><a href="../TaskJuggler/TimeSheet.html">TaskJuggler::TimeSheet</a></li>
539
563
 
540
564
  <li><a href="../TaskJuggler/TimeSheetReceiver.html">TaskJuggler::TimeSheetReceiver</a></li>
@@ -1564,13 +1588,13 @@ error. This could happen after scheduling errors.
1564
1588
  <div class="method-source-code"
1565
1589
  id="check-ell-ext-source">
1566
1590
  <pre>
1567
- <span class="ruby-comment cmt"># File lib/taskjuggler/reports/TableReport.rb, line 1018</span>
1568
- 1018: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">checkCellText</span>(<span class="ruby-identifier">cell</span>)
1569
- 1019: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">text</span>
1570
- 1020: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">text</span> = <span class="ruby-value str">'&lt;Error&gt;'</span>
1571
- 1021: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">fontColor</span> = <span class="ruby-value str">'#FF0000'</span>
1572
- 1022: <span class="ruby-keyword kw">end</span>
1573
- 1023: <span class="ruby-keyword kw">end</span></pre>
1591
+ <span class="ruby-comment cmt"># File lib/taskjuggler/reports/TableReport.rb, line 1019</span>
1592
+ 1019: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">checkCellText</span>(<span class="ruby-identifier">cell</span>)
1593
+ 1020: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">text</span>
1594
+ 1021: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">text</span> = <span class="ruby-value str">'&lt;Error&gt;'</span>
1595
+ 1022: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">fontColor</span> = <span class="ruby-value str">'#FF0000'</span>
1596
+ 1023: <span class="ruby-keyword kw">end</span>
1597
+ 1024: <span class="ruby-keyword kw">end</span></pre>
1574
1598
  </div>
1575
1599
 
1576
1600
  </div>
@@ -1641,7 +1665,7 @@ the particular column.
1641
1665
  488: <span class="ruby-identifier">t</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">name1Func</span>) <span class="ruby-operator">==</span> <span class="ruby-identifier">currentInterval</span>)
1642
1666
  489: <span class="ruby-comment cmt"># call TjTime::sameTimeNext... function to get the end of the column.</span>
1643
1667
  490: <span class="ruby-identifier">nextT</span> = <span class="ruby-identifier">t</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">sameTimeNextFunc</span>)
1644
- 491: <span class="ruby-identifier">iv</span> = <span class="ruby-constant">Interval</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">t</span>, <span class="ruby-identifier">nextT</span>)
1668
+ 491: <span class="ruby-identifier">iv</span> = <span class="ruby-constant">TimeInterval</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">t</span>, <span class="ruby-identifier">nextT</span>)
1645
1669
  492: <span class="ruby-comment cmt"># Create the new column object.</span>
1646
1670
  493: <span class="ruby-identifier">column</span> = <span class="ruby-constant">ReportTableColumn</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">table</span>, <span class="ruby-keyword kw">nil</span>, <span class="ruby-value str">''</span>)
1647
1671
  494: <span class="ruby-comment cmt"># Store the date of the column in the original form.</span>
@@ -1658,7 +1682,7 @@ the particular column.
1658
1682
  505: <span class="ruby-comment cmt"># TODO: The width should be taken from some data structure.</span>
1659
1683
  506: <span class="ruby-identifier">column</span>.<span class="ruby-identifier">cell2</span>.<span class="ruby-identifier">width</span> = <span class="ruby-value">20</span>
1660
1684
  507: <span class="ruby-comment cmt"># Off-duty cells will have a different color than working time cells.</span>
1661
- 508: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">isWorkingTime</span>(<span class="ruby-identifier">iv</span>)
1685
+ 508: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">hasWorkingTime</span>(<span class="ruby-identifier">iv</span>)
1662
1686
  509: <span class="ruby-identifier">column</span>.<span class="ruby-identifier">cell2</span>.<span class="ruby-identifier">category</span> = <span class="ruby-value str">'tabhead_offduty'</span>
1663
1687
  510: <span class="ruby-keyword kw">end</span>
1664
1688
  511: <span class="ruby-identifier">cellsInInterval</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
@@ -1719,114 +1743,115 @@ next cell.
1719
1743
  814: <span class="ruby-comment cmt"># scheduling problem, we use the full project interval.</span>
1720
1744
  815: <span class="ruby-identifier">taskStart</span> = <span class="ruby-identifier">task</span>[<span class="ruby-value str">'start'</span>, <span class="ruby-identifier">origQuery</span>.<span class="ruby-identifier">scenarioIdx</span>]
1721
1745
  816: <span class="ruby-identifier">taskEnd</span> = <span class="ruby-identifier">task</span>[<span class="ruby-value str">'end'</span>, <span class="ruby-identifier">origQuery</span>.<span class="ruby-identifier">scenarioIdx</span>]
1722
- 817: <span class="ruby-identifier">taskIv</span> = <span class="ruby-constant">Interval</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">taskStart</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">?</span> <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'start'</span>] <span class="ruby-operator">:</span> <span class="ruby-identifier">taskStart</span>,
1723
- 818: <span class="ruby-identifier">taskEnd</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">?</span> <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'end'</span>] <span class="ruby-operator">:</span> <span class="ruby-identifier">taskEnd</span>)
1724
- 819: <span class="ruby-keyword kw">else</span>
1725
- 820: <span class="ruby-identifier">task</span> = <span class="ruby-keyword kw">nil</span>
1726
- 821: <span class="ruby-keyword kw">end</span>
1727
- 822:
1728
- 823: <span class="ruby-identifier">firstCell</span> = <span class="ruby-keyword kw">nil</span>
1729
- 824: <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">t</span> <span class="ruby-operator">&lt;</span> <span class="ruby-ivar">@end</span>
1730
- 825: <span class="ruby-comment cmt"># We modify the start and end dates to match the cell boundaries. So</span>
1731
- 826: <span class="ruby-comment cmt"># we need to make sure we don't modify the original Query but our own</span>
1732
- 827: <span class="ruby-comment cmt"># copies.</span>
1733
- 828: <span class="ruby-identifier">query</span> = <span class="ruby-identifier">origQuery</span>.<span class="ruby-identifier">dup</span>
1734
- 829:
1735
- 830: <span class="ruby-comment cmt"># Create a new cell</span>
1736
- 831: <span class="ruby-identifier">cell</span> = <span class="ruby-identifier">newCell</span>(<span class="ruby-identifier">query</span>, <span class="ruby-identifier">line</span>)
1737
- 832:
1738
- 833: <span class="ruby-comment cmt"># call TjTime::sameTimeNext... function</span>
1739
- 834: <span class="ruby-identifier">nextT</span> = <span class="ruby-identifier">t</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">sameTimeNextFunc</span>)
1740
- 835: <span class="ruby-identifier">cellIv</span> = <span class="ruby-constant">Interval</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">t</span>, <span class="ruby-identifier">nextT</span>)
1741
- 836: <span class="ruby-comment cmt"># Get work load for all tasks.</span>
1742
- 837: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">scopeProperty</span> = <span class="ruby-keyword kw">nil</span>
1743
- 838: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">attributeId</span> = <span class="ruby-value str">'effort'</span>
1744
- 839: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">startIdx</span> = <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">dateToIdx</span>(<span class="ruby-identifier">t</span>)
1745
- 840: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">endIdx</span> = <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">dateToIdx</span>(<span class="ruby-identifier">nextT</span>) <span class="ruby-operator">-</span> <span class="ruby-value">1</span>
1746
- 841: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">process</span>
1747
- 842: <span class="ruby-identifier">workLoad</span> = <span class="ruby-identifier">query</span>.<span class="ruby-identifier">to_num</span>
1748
- 843: <span class="ruby-identifier">scaledWorkLoad</span> = <span class="ruby-identifier">query</span>.<span class="ruby-identifier">to_s</span>
1749
- 844: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">task</span>
1750
- 845: <span class="ruby-comment cmt"># Get work load for the particular task.</span>
1751
- 846: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">scopeProperty</span> = <span class="ruby-identifier">task</span>
1752
- 847: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">process</span>
1753
- 848: <span class="ruby-identifier">workLoadTask</span> = <span class="ruby-identifier">query</span>.<span class="ruby-identifier">to_num</span>
1754
- 849: <span class="ruby-identifier">scaledWorkLoad</span> = <span class="ruby-identifier">query</span>.<span class="ruby-identifier">to_s</span>
1755
- 850: <span class="ruby-keyword kw">else</span>
1756
- 851: <span class="ruby-identifier">workLoadTask</span> = <span class="ruby-value">0.0</span>
1757
- 852: <span class="ruby-keyword kw">end</span>
1758
- 853: <span class="ruby-comment cmt"># Get unassigned work load.</span>
1759
- 854: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">attributeId</span> = <span class="ruby-value str">'freework'</span>
1760
- 855: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">process</span>
1761
- 856: <span class="ruby-identifier">freeLoad</span> = <span class="ruby-identifier">query</span>.<span class="ruby-identifier">to_num</span>
1762
- 857: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">content</span>
1763
- 858: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'empty'</span>
1764
- 859: <span class="ruby-comment cmt"># We only generate cells will different background colors.</span>
1765
- 860: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'load'</span>
1766
- 861: <span class="ruby-comment cmt"># Report the workload of the resource in this time interval.</span>
1767
- 862: <span class="ruby-comment cmt"># To increase readability, we don't show 0.0 values.</span>
1768
- 863: <span class="ruby-identifier">wLoad</span> = <span class="ruby-identifier">task</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">workLoadTask</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">workLoad</span>
1769
- 864: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">wLoad</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0.0</span>
1770
- 865: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">text</span> = <span class="ruby-identifier">scaledWorkLoad</span>
1771
- 866: <span class="ruby-keyword kw">end</span>
1772
- 867: <span class="ruby-keyword kw">else</span>
1773
- 868: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Unknown column content #{column.content}&quot;</span>
1774
- 869: <span class="ruby-keyword kw">end</span>
1775
- 870:
1776
- 871: <span class="ruby-identifier">cdText</span> = <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">cellText</span>.<span class="ruby-identifier">getPattern</span>(<span class="ruby-identifier">query</span>)
1777
- 872: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">text</span> = <span class="ruby-identifier">cdText</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">cdText</span>
1778
- 873:
1779
- 874: <span class="ruby-comment cmt"># Set the tooltip for the cell. We might delete it again.</span>
1780
- 875: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">tooltip</span> = <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">tooltip</span>.<span class="ruby-identifier">getPattern</span>(<span class="ruby-identifier">query</span>) <span class="ruby-operator">||</span> <span class="ruby-keyword kw">nil</span>
1781
- 876: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">showTooltipHint</span> = <span class="ruby-keyword kw">false</span>
1782
- 877:
1783
- 878: <span class="ruby-comment cmt"># Determine cell category (mostly the background color)</span>
1784
- 879: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">category</span> = <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">task</span>
1785
- 880: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">cellIv</span>.<span class="ruby-identifier">overlaps?</span>(<span class="ruby-identifier">taskIv</span>)
1786
- 881: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">workLoadTask</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0.0</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">freeLoad</span> <span class="ruby-operator">==</span> <span class="ruby-value">0.0</span>
1787
- 882: <span class="ruby-value str">'busy'</span>
1788
- 883: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">workLoad</span> <span class="ruby-operator">==</span> <span class="ruby-value">0.0</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">freeLoad</span> <span class="ruby-operator">==</span> <span class="ruby-value">0.0</span>
1789
- 884: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">tooltip</span> = <span class="ruby-keyword kw">nil</span>
1790
- 885: <span class="ruby-value str">'offduty'</span>
1791
- 886: <span class="ruby-keyword kw">else</span>
1792
- 887: <span class="ruby-value str">'loaded'</span>
1793
- 888: <span class="ruby-keyword kw">end</span>
1794
- 889: <span class="ruby-keyword kw">else</span>
1795
- 890: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">freeLoad</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0.0</span>
1796
- 891: <span class="ruby-value str">'free'</span>
1797
- 892: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">workLoad</span> <span class="ruby-operator">==</span> <span class="ruby-value">0.0</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">freeLoad</span> <span class="ruby-operator">==</span> <span class="ruby-value">0.0</span>
1798
- 893: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">tooltip</span> = <span class="ruby-keyword kw">nil</span>
1799
- 894: <span class="ruby-value str">'offduty'</span>
1800
- 895: <span class="ruby-keyword kw">else</span>
1801
- 896: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">tooltip</span> = <span class="ruby-keyword kw">nil</span>
1802
- 897: <span class="ruby-value str">'resourcecell'</span>
1803
- 898: <span class="ruby-keyword kw">end</span>
1804
- 899: <span class="ruby-keyword kw">end</span>
1805
- 900: <span class="ruby-keyword kw">else</span>
1806
- 901: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">workLoad</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0.0</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">freeLoad</span> <span class="ruby-operator">==</span> <span class="ruby-value">0.0</span>
1807
- 902: <span class="ruby-value str">'busy'</span>
1808
- 903: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">workLoad</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0.0</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">freeLoad</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0.0</span>
1809
- 904: <span class="ruby-value str">'loaded'</span>
1810
- 905: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">workLoad</span> <span class="ruby-operator">==</span> <span class="ruby-value">0.0</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">freeLoad</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0.0</span>
1811
- 906: <span class="ruby-value str">'free'</span>
1812
- 907: <span class="ruby-keyword kw">else</span>
1813
- 908: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">tooltip</span> = <span class="ruby-keyword kw">nil</span>
1814
- 909: <span class="ruby-value str">'offduty'</span>
1815
- 910: <span class="ruby-keyword kw">end</span>
1816
- 911: <span class="ruby-keyword kw">end</span>
1817
- 912: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">category</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">line</span>.<span class="ruby-identifier">property</span>.<span class="ruby-identifier">get</span>(<span class="ruby-value str">'index'</span>) <span class="ruby-operator">%</span> <span class="ruby-value">2</span> <span class="ruby-operator">==</span> <span class="ruby-value">1</span> <span class="ruby-operator">?</span> <span class="ruby-value str">'1'</span> <span class="ruby-operator">:</span> <span class="ruby-value str">'2'</span>
1818
- 913:
1819
- 914: <span class="ruby-identifier">tryCellMerging</span>(<span class="ruby-identifier">cell</span>, <span class="ruby-identifier">line</span>, <span class="ruby-identifier">firstCell</span>)
1820
- 915:
1821
- 916: <span class="ruby-identifier">t</span> = <span class="ruby-identifier">nextT</span>
1822
- 917: <span class="ruby-identifier">firstCell</span> = <span class="ruby-identifier">cell</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">firstCell</span>
1823
- 918: <span class="ruby-keyword kw">end</span>
1824
- 919:
1825
- 920: <span class="ruby-identifier">legend</span>.<span class="ruby-identifier">addCalendarItem</span>(<span class="ruby-value str">'Resource is fully loaded'</span>, <span class="ruby-value str">'busy1'</span>)
1826
- 921: <span class="ruby-identifier">legend</span>.<span class="ruby-identifier">addCalendarItem</span>(<span class="ruby-value str">'Resource is partially loaded'</span>, <span class="ruby-value str">'loaded1'</span>)
1827
- 922: <span class="ruby-identifier">legend</span>.<span class="ruby-identifier">addCalendarItem</span>(<span class="ruby-value str">'Resource is available'</span>, <span class="ruby-value str">'free'</span>)
1828
- 923: <span class="ruby-identifier">legend</span>.<span class="ruby-identifier">addCalendarItem</span>(<span class="ruby-value str">'Off duty time'</span>, <span class="ruby-value str">'offduty'</span>)
1829
- 924: <span class="ruby-keyword kw">end</span></pre>
1746
+ 817: <span class="ruby-identifier">taskIv</span> = <span class="ruby-constant">TimeInterval</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">taskStart</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">?</span> <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'start'</span>] <span class="ruby-operator">:</span>
1747
+ 818: <span class="ruby-identifier">taskStart</span>,
1748
+ 819: <span class="ruby-identifier">taskEnd</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">?</span> <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'end'</span>] <span class="ruby-operator">:</span> <span class="ruby-identifier">taskEnd</span>)
1749
+ 820: <span class="ruby-keyword kw">else</span>
1750
+ 821: <span class="ruby-identifier">task</span> = <span class="ruby-keyword kw">nil</span>
1751
+ 822: <span class="ruby-keyword kw">end</span>
1752
+ 823:
1753
+ 824: <span class="ruby-identifier">firstCell</span> = <span class="ruby-keyword kw">nil</span>
1754
+ 825: <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">t</span> <span class="ruby-operator">&lt;</span> <span class="ruby-ivar">@end</span>
1755
+ 826: <span class="ruby-comment cmt"># We modify the start and end dates to match the cell boundaries. So</span>
1756
+ 827: <span class="ruby-comment cmt"># we need to make sure we don't modify the original Query but our own</span>
1757
+ 828: <span class="ruby-comment cmt"># copies.</span>
1758
+ 829: <span class="ruby-identifier">query</span> = <span class="ruby-identifier">origQuery</span>.<span class="ruby-identifier">dup</span>
1759
+ 830:
1760
+ 831: <span class="ruby-comment cmt"># Create a new cell</span>
1761
+ 832: <span class="ruby-identifier">cell</span> = <span class="ruby-identifier">newCell</span>(<span class="ruby-identifier">query</span>, <span class="ruby-identifier">line</span>)
1762
+ 833:
1763
+ 834: <span class="ruby-comment cmt"># call TjTime::sameTimeNext... function</span>
1764
+ 835: <span class="ruby-identifier">nextT</span> = <span class="ruby-identifier">t</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">sameTimeNextFunc</span>)
1765
+ 836: <span class="ruby-identifier">cellIv</span> = <span class="ruby-constant">TimeInterval</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">t</span>, <span class="ruby-identifier">nextT</span>)
1766
+ 837: <span class="ruby-comment cmt"># Get work load for all tasks.</span>
1767
+ 838: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">scopeProperty</span> = <span class="ruby-keyword kw">nil</span>
1768
+ 839: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">attributeId</span> = <span class="ruby-value str">'effort'</span>
1769
+ 840: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">startIdx</span> = <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">dateToIdx</span>(<span class="ruby-identifier">t</span>)
1770
+ 841: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">endIdx</span> = <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">dateToIdx</span>(<span class="ruby-identifier">nextT</span>) <span class="ruby-operator">-</span> <span class="ruby-value">1</span>
1771
+ 842: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">process</span>
1772
+ 843: <span class="ruby-identifier">workLoad</span> = <span class="ruby-identifier">query</span>.<span class="ruby-identifier">to_num</span>
1773
+ 844: <span class="ruby-identifier">scaledWorkLoad</span> = <span class="ruby-identifier">query</span>.<span class="ruby-identifier">to_s</span>
1774
+ 845: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">task</span>
1775
+ 846: <span class="ruby-comment cmt"># Get work load for the particular task.</span>
1776
+ 847: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">scopeProperty</span> = <span class="ruby-identifier">task</span>
1777
+ 848: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">process</span>
1778
+ 849: <span class="ruby-identifier">workLoadTask</span> = <span class="ruby-identifier">query</span>.<span class="ruby-identifier">to_num</span>
1779
+ 850: <span class="ruby-identifier">scaledWorkLoad</span> = <span class="ruby-identifier">query</span>.<span class="ruby-identifier">to_s</span>
1780
+ 851: <span class="ruby-keyword kw">else</span>
1781
+ 852: <span class="ruby-identifier">workLoadTask</span> = <span class="ruby-value">0.0</span>
1782
+ 853: <span class="ruby-keyword kw">end</span>
1783
+ 854: <span class="ruby-comment cmt"># Get unassigned work load.</span>
1784
+ 855: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">attributeId</span> = <span class="ruby-value str">'freework'</span>
1785
+ 856: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">process</span>
1786
+ 857: <span class="ruby-identifier">freeLoad</span> = <span class="ruby-identifier">query</span>.<span class="ruby-identifier">to_num</span>
1787
+ 858: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">content</span>
1788
+ 859: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'empty'</span>
1789
+ 860: <span class="ruby-comment cmt"># We only generate cells will different background colors.</span>
1790
+ 861: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'load'</span>
1791
+ 862: <span class="ruby-comment cmt"># Report the workload of the resource in this time interval.</span>
1792
+ 863: <span class="ruby-comment cmt"># To increase readability, we don't show 0.0 values.</span>
1793
+ 864: <span class="ruby-identifier">wLoad</span> = <span class="ruby-identifier">task</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">workLoadTask</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">workLoad</span>
1794
+ 865: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">wLoad</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0.0</span>
1795
+ 866: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">text</span> = <span class="ruby-identifier">scaledWorkLoad</span>
1796
+ 867: <span class="ruby-keyword kw">end</span>
1797
+ 868: <span class="ruby-keyword kw">else</span>
1798
+ 869: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Unknown column content #{column.content}&quot;</span>
1799
+ 870: <span class="ruby-keyword kw">end</span>
1800
+ 871:
1801
+ 872: <span class="ruby-identifier">cdText</span> = <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">cellText</span>.<span class="ruby-identifier">getPattern</span>(<span class="ruby-identifier">query</span>)
1802
+ 873: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">text</span> = <span class="ruby-identifier">cdText</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">cdText</span>
1803
+ 874:
1804
+ 875: <span class="ruby-comment cmt"># Set the tooltip for the cell. We might delete it again.</span>
1805
+ 876: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">tooltip</span> = <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">tooltip</span>.<span class="ruby-identifier">getPattern</span>(<span class="ruby-identifier">query</span>) <span class="ruby-operator">||</span> <span class="ruby-keyword kw">nil</span>
1806
+ 877: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">showTooltipHint</span> = <span class="ruby-keyword kw">false</span>
1807
+ 878:
1808
+ 879: <span class="ruby-comment cmt"># Determine cell category (mostly the background color)</span>
1809
+ 880: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">category</span> = <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">task</span>
1810
+ 881: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">cellIv</span>.<span class="ruby-identifier">overlaps?</span>(<span class="ruby-identifier">taskIv</span>)
1811
+ 882: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">workLoadTask</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0.0</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">freeLoad</span> <span class="ruby-operator">==</span> <span class="ruby-value">0.0</span>
1812
+ 883: <span class="ruby-value str">'busy'</span>
1813
+ 884: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">workLoad</span> <span class="ruby-operator">==</span> <span class="ruby-value">0.0</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">freeLoad</span> <span class="ruby-operator">==</span> <span class="ruby-value">0.0</span>
1814
+ 885: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">tooltip</span> = <span class="ruby-keyword kw">nil</span>
1815
+ 886: <span class="ruby-value str">'offduty'</span>
1816
+ 887: <span class="ruby-keyword kw">else</span>
1817
+ 888: <span class="ruby-value str">'loaded'</span>
1818
+ 889: <span class="ruby-keyword kw">end</span>
1819
+ 890: <span class="ruby-keyword kw">else</span>
1820
+ 891: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">freeLoad</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0.0</span>
1821
+ 892: <span class="ruby-value str">'free'</span>
1822
+ 893: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">workLoad</span> <span class="ruby-operator">==</span> <span class="ruby-value">0.0</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">freeLoad</span> <span class="ruby-operator">==</span> <span class="ruby-value">0.0</span>
1823
+ 894: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">tooltip</span> = <span class="ruby-keyword kw">nil</span>
1824
+ 895: <span class="ruby-value str">'offduty'</span>
1825
+ 896: <span class="ruby-keyword kw">else</span>
1826
+ 897: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">tooltip</span> = <span class="ruby-keyword kw">nil</span>
1827
+ 898: <span class="ruby-value str">'resourcecell'</span>
1828
+ 899: <span class="ruby-keyword kw">end</span>
1829
+ 900: <span class="ruby-keyword kw">end</span>
1830
+ 901: <span class="ruby-keyword kw">else</span>
1831
+ 902: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">workLoad</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0.0</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">freeLoad</span> <span class="ruby-operator">==</span> <span class="ruby-value">0.0</span>
1832
+ 903: <span class="ruby-value str">'busy'</span>
1833
+ 904: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">workLoad</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0.0</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">freeLoad</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0.0</span>
1834
+ 905: <span class="ruby-value str">'loaded'</span>
1835
+ 906: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">workLoad</span> <span class="ruby-operator">==</span> <span class="ruby-value">0.0</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">freeLoad</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0.0</span>
1836
+ 907: <span class="ruby-value str">'free'</span>
1837
+ 908: <span class="ruby-keyword kw">else</span>
1838
+ 909: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">tooltip</span> = <span class="ruby-keyword kw">nil</span>
1839
+ 910: <span class="ruby-value str">'offduty'</span>
1840
+ 911: <span class="ruby-keyword kw">end</span>
1841
+ 912: <span class="ruby-keyword kw">end</span>
1842
+ 913: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">category</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">line</span>.<span class="ruby-identifier">property</span>.<span class="ruby-identifier">get</span>(<span class="ruby-value str">'index'</span>) <span class="ruby-operator">%</span> <span class="ruby-value">2</span> <span class="ruby-operator">==</span> <span class="ruby-value">1</span> <span class="ruby-operator">?</span> <span class="ruby-value str">'1'</span> <span class="ruby-operator">:</span> <span class="ruby-value str">'2'</span>
1843
+ 914:
1844
+ 915: <span class="ruby-identifier">tryCellMerging</span>(<span class="ruby-identifier">cell</span>, <span class="ruby-identifier">line</span>, <span class="ruby-identifier">firstCell</span>)
1845
+ 916:
1846
+ 917: <span class="ruby-identifier">t</span> = <span class="ruby-identifier">nextT</span>
1847
+ 918: <span class="ruby-identifier">firstCell</span> = <span class="ruby-identifier">cell</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">firstCell</span>
1848
+ 919: <span class="ruby-keyword kw">end</span>
1849
+ 920:
1850
+ 921: <span class="ruby-identifier">legend</span>.<span class="ruby-identifier">addCalendarItem</span>(<span class="ruby-value str">'Resource is fully loaded'</span>, <span class="ruby-value str">'busy1'</span>)
1851
+ 922: <span class="ruby-identifier">legend</span>.<span class="ruby-identifier">addCalendarItem</span>(<span class="ruby-value str">'Resource is partially loaded'</span>, <span class="ruby-value str">'loaded1'</span>)
1852
+ 923: <span class="ruby-identifier">legend</span>.<span class="ruby-identifier">addCalendarItem</span>(<span class="ruby-value str">'Resource is available'</span>, <span class="ruby-value str">'free'</span>)
1853
+ 924: <span class="ruby-identifier">legend</span>.<span class="ruby-identifier">addCalendarItem</span>(<span class="ruby-value str">'Off duty time'</span>, <span class="ruby-value str">'offduty'</span>)
1854
+ 925: <span class="ruby-keyword kw">end</span></pre>
1830
1855
  </div>
1831
1856
 
1832
1857
  </div>
@@ -1880,8 +1905,8 @@ next cell.
1880
1905
  736: <span class="ruby-comment cmt"># scheduling problem, we use the full project interval.</span>
1881
1906
  737: <span class="ruby-identifier">taskStart</span> = <span class="ruby-identifier">task</span>[<span class="ruby-value str">'start'</span>, <span class="ruby-identifier">origQuery</span>.<span class="ruby-identifier">scenarioIdx</span>]
1882
1907
  738: <span class="ruby-identifier">taskEnd</span> = <span class="ruby-identifier">task</span>[<span class="ruby-value str">'end'</span>, <span class="ruby-identifier">origQuery</span>.<span class="ruby-identifier">scenarioIdx</span>]
1883
- 739: <span class="ruby-identifier">taskIv</span> = <span class="ruby-constant">Interval</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">taskStart</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">?</span> <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'start'</span>] <span class="ruby-operator">:</span> <span class="ruby-identifier">taskStart</span>,
1884
- 740: <span class="ruby-identifier">taskEnd</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">?</span> <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'end'</span>] <span class="ruby-operator">:</span> <span class="ruby-identifier">taskEnd</span>)
1908
+ 739: <span class="ruby-identifier">taskIv</span> = <span class="ruby-constant">TimeInterval</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">taskStart</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">?</span> <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'start'</span>] <span class="ruby-operator">:</span> <span class="ruby-identifier">taskStart</span>,
1909
+ 740: <span class="ruby-identifier">taskEnd</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">?</span> <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'end'</span>] <span class="ruby-operator">:</span> <span class="ruby-identifier">taskEnd</span>)
1885
1910
  741:
1886
1911
  742: <span class="ruby-identifier">firstCell</span> = <span class="ruby-keyword kw">nil</span>
1887
1912
  743: <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">t</span> <span class="ruby-operator">&lt;</span> <span class="ruby-ivar">@end</span>
@@ -1891,7 +1916,7 @@ next cell.
1891
1916
  747: <span class="ruby-identifier">query</span> = <span class="ruby-identifier">origQuery</span>.<span class="ruby-identifier">dup</span>
1892
1917
  748: <span class="ruby-comment cmt"># call TjTime::sameTimeNext... function</span>
1893
1918
  749: <span class="ruby-identifier">nextT</span> = <span class="ruby-identifier">t</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">sameTimeNextFunc</span>)
1894
- 750: <span class="ruby-identifier">cellIv</span> = <span class="ruby-constant">Interval</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">t</span>, <span class="ruby-identifier">nextT</span>)
1919
+ 750: <span class="ruby-identifier">cellIv</span> = <span class="ruby-constant">TimeInterval</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">t</span>, <span class="ruby-identifier">nextT</span>)
1895
1920
  751: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">content</span>
1896
1921
  752: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'empty'</span>
1897
1922
  753: <span class="ruby-comment cmt"># Create a new cell</span>
@@ -2273,16 +2298,16 @@ initialize some common values.
2273
2298
  <div class="method-source-code"
2274
2299
  id="new-ell-source">
2275
2300
  <pre>
2276
- <span class="ruby-comment cmt"># File lib/taskjuggler/reports/TableReport.rb, line 992</span>
2277
- 992: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">newCell</span>(<span class="ruby-identifier">query</span>, <span class="ruby-identifier">line</span>)
2278
- 993: <span class="ruby-identifier">property</span> = <span class="ruby-identifier">line</span>.<span class="ruby-identifier">property</span>
2279
- 994: <span class="ruby-identifier">cell</span> = <span class="ruby-constant">ReportTableCell</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">line</span>, <span class="ruby-identifier">query</span>)
2280
- 995:
2281
- 996: <span class="ruby-comment cmt"># Cells for containers should be using bold font face.</span>
2282
- 997: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">bold</span> = <span class="ruby-keyword kw">true</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">property</span>.<span class="ruby-identifier">container?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">line</span>.<span class="ruby-identifier">bold</span>
2283
- 998: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">selfcontained</span> = <span class="ruby-identifier">a</span>(<span class="ruby-value str">'selfcontained'</span>)
2284
- 999: <span class="ruby-identifier">cell</span>
2285
- 1000: <span class="ruby-keyword kw">end</span></pre>
2301
+ <span class="ruby-comment cmt"># File lib/taskjuggler/reports/TableReport.rb, line 993</span>
2302
+ 993: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">newCell</span>(<span class="ruby-identifier">query</span>, <span class="ruby-identifier">line</span>)
2303
+ 994: <span class="ruby-identifier">property</span> = <span class="ruby-identifier">line</span>.<span class="ruby-identifier">property</span>
2304
+ 995: <span class="ruby-identifier">cell</span> = <span class="ruby-constant">ReportTableCell</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">line</span>, <span class="ruby-identifier">query</span>)
2305
+ 996:
2306
+ 997: <span class="ruby-comment cmt"># Cells for containers should be using bold font face.</span>
2307
+ 998: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">bold</span> = <span class="ruby-keyword kw">true</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">property</span>.<span class="ruby-identifier">container?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">line</span>.<span class="ruby-identifier">bold</span>
2308
+ 999: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">selfcontained</span> = <span class="ruby-identifier">a</span>(<span class="ruby-value str">'selfcontained'</span>)
2309
+ 1000: <span class="ruby-identifier">cell</span>
2310
+ 1001: <span class="ruby-keyword kw">end</span></pre>
2286
2311
  </div>
2287
2312
 
2288
2313
  </div>
@@ -2313,27 +2338,27 @@ initialize some common values.
2313
2338
  <div class="method-source-code"
2314
2339
  id="set-ustom-ell-ttributes-source">
2315
2340
  <pre>
2316
- <span class="ruby-comment cmt"># File lib/taskjuggler/reports/TableReport.rb, line 950</span>
2317
- 950: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">setCustomCellAttributes</span>(<span class="ruby-identifier">cell</span>, <span class="ruby-identifier">columnDef</span>, <span class="ruby-identifier">query</span>)
2318
- 951: <span class="ruby-comment cmt"># Replace the cell background color if the user has requested a custom</span>
2319
- 952: <span class="ruby-comment cmt"># color.</span>
2320
- 953: <span class="ruby-identifier">cellColor</span> = <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">cellColor</span>.<span class="ruby-identifier">getPattern</span>(<span class="ruby-identifier">query</span>)
2321
- 954: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">cellColor</span> = <span class="ruby-identifier">cellColor</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">cellColor</span>
2322
- 955:
2323
- 956: <span class="ruby-comment cmt"># Replace the font color setting if the user has requested a custom</span>
2324
- 957: <span class="ruby-comment cmt"># color.</span>
2325
- 958: <span class="ruby-identifier">fontColor</span> = <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">fontColor</span>.<span class="ruby-identifier">getPattern</span>(<span class="ruby-identifier">query</span>)
2326
- 959: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">fontColor</span> = <span class="ruby-identifier">fontColor</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">fontColor</span>
2327
- 960:
2328
- 961: <span class="ruby-comment cmt"># Replace the default cell alignment if the user has requested a custom</span>
2329
- 962: <span class="ruby-comment cmt"># alignment.</span>
2330
- 963: <span class="ruby-identifier">hAlign</span> = <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">hAlign</span>.<span class="ruby-identifier">getPattern</span>(<span class="ruby-identifier">query</span>)
2331
- 964: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">alignment</span> = <span class="ruby-identifier">hAlign</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">hAlign</span>
2332
- 965:
2333
- 966: <span class="ruby-comment cmt"># Register the custom tooltip if the user has requested one.</span>
2334
- 967: <span class="ruby-identifier">cdTooltip</span> = <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">tooltip</span>.<span class="ruby-identifier">getPattern</span>(<span class="ruby-identifier">query</span>)
2335
- 968: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">tooltip</span> = <span class="ruby-identifier">cdTooltip</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">cdTooltip</span>
2336
- 969: <span class="ruby-keyword kw">end</span></pre>
2341
+ <span class="ruby-comment cmt"># File lib/taskjuggler/reports/TableReport.rb, line 951</span>
2342
+ 951: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">setCustomCellAttributes</span>(<span class="ruby-identifier">cell</span>, <span class="ruby-identifier">columnDef</span>, <span class="ruby-identifier">query</span>)
2343
+ 952: <span class="ruby-comment cmt"># Replace the cell background color if the user has requested a custom</span>
2344
+ 953: <span class="ruby-comment cmt"># color.</span>
2345
+ 954: <span class="ruby-identifier">cellColor</span> = <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">cellColor</span>.<span class="ruby-identifier">getPattern</span>(<span class="ruby-identifier">query</span>)
2346
+ 955: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">cellColor</span> = <span class="ruby-identifier">cellColor</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">cellColor</span>
2347
+ 956:
2348
+ 957: <span class="ruby-comment cmt"># Replace the font color setting if the user has requested a custom</span>
2349
+ 958: <span class="ruby-comment cmt"># color.</span>
2350
+ 959: <span class="ruby-identifier">fontColor</span> = <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">fontColor</span>.<span class="ruby-identifier">getPattern</span>(<span class="ruby-identifier">query</span>)
2351
+ 960: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">fontColor</span> = <span class="ruby-identifier">fontColor</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">fontColor</span>
2352
+ 961:
2353
+ 962: <span class="ruby-comment cmt"># Replace the default cell alignment if the user has requested a custom</span>
2354
+ 963: <span class="ruby-comment cmt"># alignment.</span>
2355
+ 964: <span class="ruby-identifier">hAlign</span> = <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">hAlign</span>.<span class="ruby-identifier">getPattern</span>(<span class="ruby-identifier">query</span>)
2356
+ 965: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">alignment</span> = <span class="ruby-identifier">hAlign</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">hAlign</span>
2357
+ 966:
2358
+ 967: <span class="ruby-comment cmt"># Register the custom tooltip if the user has requested one.</span>
2359
+ 968: <span class="ruby-identifier">cdTooltip</span> = <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">tooltip</span>.<span class="ruby-identifier">getPattern</span>(<span class="ruby-identifier">query</span>)
2360
+ 969: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">tooltip</span> = <span class="ruby-identifier">cdTooltip</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">cdTooltip</span>
2361
+ 970: <span class="ruby-keyword kw">end</span></pre>
2337
2362
  </div>
2338
2363
 
2339
2364
  </div>
@@ -2366,19 +2391,19 @@ Determine the indentation for this line.
2366
2391
  <div class="method-source-code"
2367
2392
  id="set-ndent-source">
2368
2393
  <pre>
2369
- <span class="ruby-comment cmt"># File lib/taskjuggler/reports/TableReport.rb, line 1003</span>
2370
- 1003: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">setIndent</span>(<span class="ruby-identifier">line</span>, <span class="ruby-identifier">propertyRoot</span>, <span class="ruby-identifier">treeMode</span>)
2371
- 1004: <span class="ruby-identifier">property</span> = <span class="ruby-identifier">line</span>.<span class="ruby-identifier">property</span>
2372
- 1005: <span class="ruby-identifier">scopeLine</span> = <span class="ruby-identifier">line</span>.<span class="ruby-identifier">scopeLine</span>
2373
- 1006: <span class="ruby-identifier">level</span> = <span class="ruby-identifier">property</span>.<span class="ruby-identifier">level</span> <span class="ruby-operator">-</span> (<span class="ruby-identifier">propertyRoot</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">propertyRoot</span>.<span class="ruby-identifier">level</span> <span class="ruby-operator">:</span> <span class="ruby-value">0</span>)
2374
- 1007: <span class="ruby-comment cmt"># We indent at least as much as the scopeline + 1, if we have a scope.</span>
2375
- 1008: <span class="ruby-identifier">line</span>.<span class="ruby-identifier">indentation</span> = <span class="ruby-identifier">scopeLine</span>.<span class="ruby-identifier">indentation</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">scopeLine</span>
2376
- 1009: <span class="ruby-comment cmt"># In tree mode we indent according to the level.</span>
2377
- 1010: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">treeMode</span>
2378
- 1011: <span class="ruby-identifier">line</span>.<span class="ruby-identifier">indentation</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">level</span>
2379
- 1012: <span class="ruby-identifier">line</span>.<span class="ruby-identifier">bold</span> = <span class="ruby-keyword kw">true</span>
2380
- 1013: <span class="ruby-keyword kw">end</span>
2381
- 1014: <span class="ruby-keyword kw">end</span></pre>
2394
+ <span class="ruby-comment cmt"># File lib/taskjuggler/reports/TableReport.rb, line 1004</span>
2395
+ 1004: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">setIndent</span>(<span class="ruby-identifier">line</span>, <span class="ruby-identifier">propertyRoot</span>, <span class="ruby-identifier">treeMode</span>)
2396
+ 1005: <span class="ruby-identifier">property</span> = <span class="ruby-identifier">line</span>.<span class="ruby-identifier">property</span>
2397
+ 1006: <span class="ruby-identifier">scopeLine</span> = <span class="ruby-identifier">line</span>.<span class="ruby-identifier">scopeLine</span>
2398
+ 1007: <span class="ruby-identifier">level</span> = <span class="ruby-identifier">property</span>.<span class="ruby-identifier">level</span> <span class="ruby-operator">-</span> (<span class="ruby-identifier">propertyRoot</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">propertyRoot</span>.<span class="ruby-identifier">level</span> <span class="ruby-operator">:</span> <span class="ruby-value">0</span>)
2399
+ 1008: <span class="ruby-comment cmt"># We indent at least as much as the scopeline + 1, if we have a scope.</span>
2400
+ 1009: <span class="ruby-identifier">line</span>.<span class="ruby-identifier">indentation</span> = <span class="ruby-identifier">scopeLine</span>.<span class="ruby-identifier">indentation</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">scopeLine</span>
2401
+ 1010: <span class="ruby-comment cmt"># In tree mode we indent according to the level.</span>
2402
+ 1011: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">treeMode</span>
2403
+ 1012: <span class="ruby-identifier">line</span>.<span class="ruby-identifier">indentation</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">level</span>
2404
+ 1013: <span class="ruby-identifier">line</span>.<span class="ruby-identifier">bold</span> = <span class="ruby-keyword kw">true</span>
2405
+ 1014: <span class="ruby-keyword kw">end</span>
2406
+ 1015: <span class="ruby-keyword kw">end</span></pre>
2382
2407
  </div>
2383
2408
 
2384
2409
  </div>
@@ -2409,25 +2434,25 @@ Determine the indentation for this line.
2409
2434
  <div class="method-source-code"
2410
2435
  id="set-cenario-ettings-source">
2411
2436
  <pre>
2412
- <span class="ruby-comment cmt"># File lib/taskjuggler/reports/TableReport.rb, line 972</span>
2413
- 972: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">setScenarioSettings</span>(<span class="ruby-identifier">cell</span>, <span class="ruby-identifier">scenarioIdx</span>, <span class="ruby-identifier">scenarioSpecific</span>)
2414
- 973: <span class="ruby-comment cmt"># Check if we are dealing with multiple scenarios.</span>
2415
- 974: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'scenarios'</span>).<span class="ruby-identifier">length</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">1</span>
2416
- 975: <span class="ruby-comment cmt"># Check if the attribute is not scenario specific</span>
2417
- 976: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">scenarioSpecific</span>
2418
- 977: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">scenarioIdx</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'scenarios'</span>).<span class="ruby-identifier">first</span>
2419
- 978: <span class="ruby-comment cmt"># Use a somewhat bigger font.</span>
2420
- 979: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">fontSize</span> = <span class="ruby-value">15</span>
2421
- 980: <span class="ruby-keyword kw">else</span>
2422
- 981: <span class="ruby-comment cmt"># And hide the cells for all but the first scenario.</span>
2423
- 982: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">hidden</span> = <span class="ruby-keyword kw">true</span>
2424
- 983: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
2425
- 984: <span class="ruby-keyword kw">end</span>
2426
- 985: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">rows</span> = <span class="ruby-identifier">a</span>(<span class="ruby-value str">'scenarios'</span>).<span class="ruby-identifier">length</span>
2427
- 986: <span class="ruby-keyword kw">end</span>
2428
- 987: <span class="ruby-keyword kw">end</span>
2429
- 988: <span class="ruby-keyword kw">true</span>
2430
- 989: <span class="ruby-keyword kw">end</span></pre>
2437
+ <span class="ruby-comment cmt"># File lib/taskjuggler/reports/TableReport.rb, line 973</span>
2438
+ 973: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">setScenarioSettings</span>(<span class="ruby-identifier">cell</span>, <span class="ruby-identifier">scenarioIdx</span>, <span class="ruby-identifier">scenarioSpecific</span>)
2439
+ 974: <span class="ruby-comment cmt"># Check if we are dealing with multiple scenarios.</span>
2440
+ 975: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'scenarios'</span>).<span class="ruby-identifier">length</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">1</span>
2441
+ 976: <span class="ruby-comment cmt"># Check if the attribute is not scenario specific</span>
2442
+ 977: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">scenarioSpecific</span>
2443
+ 978: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">scenarioIdx</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'scenarios'</span>).<span class="ruby-identifier">first</span>
2444
+ 979: <span class="ruby-comment cmt"># Use a somewhat bigger font.</span>
2445
+ 980: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">fontSize</span> = <span class="ruby-value">15</span>
2446
+ 981: <span class="ruby-keyword kw">else</span>
2447
+ 982: <span class="ruby-comment cmt"># And hide the cells for all but the first scenario.</span>
2448
+ 983: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">hidden</span> = <span class="ruby-keyword kw">true</span>
2449
+ 984: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
2450
+ 985: <span class="ruby-keyword kw">end</span>
2451
+ 986: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">rows</span> = <span class="ruby-identifier">a</span>(<span class="ruby-value str">'scenarios'</span>).<span class="ruby-identifier">length</span>
2452
+ 987: <span class="ruby-keyword kw">end</span>
2453
+ 988: <span class="ruby-keyword kw">end</span>
2454
+ 989: <span class="ruby-keyword kw">true</span>
2455
+ 990: <span class="ruby-keyword kw">end</span></pre>
2431
2456
  </div>
2432
2457
 
2433
2458
  </div>
@@ -2461,28 +2486,28 @@ alignment and background color.
2461
2486
  <div class="method-source-code"
2462
2487
  id="set-tandard-ell-ttributes-source">
2463
2488
  <pre>
2464
- <span class="ruby-comment cmt"># File lib/taskjuggler/reports/TableReport.rb, line 928</span>
2465
- 928: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">setStandardCellAttributes</span>(<span class="ruby-identifier">cell</span>, <span class="ruby-identifier">columnDef</span>, <span class="ruby-identifier">attributeType</span>, <span class="ruby-identifier">line</span>)
2466
- 929: <span class="ruby-comment cmt"># Determine whether it should be indented</span>
2467
- 930: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">indent</span>(<span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">id</span>, <span class="ruby-identifier">attributeType</span>)
2468
- 931: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">indent</span> = <span class="ruby-identifier">line</span>.<span class="ruby-identifier">indentation</span>
2469
- 932: <span class="ruby-keyword kw">end</span>
2470
- 933:
2471
- 934: <span class="ruby-comment cmt"># Determine the cell alignment</span>
2472
- 935: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">alignment</span> = <span class="ruby-identifier">alignment</span>(<span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">id</span>, <span class="ruby-identifier">attributeType</span>)
2473
- 936:
2474
- 937: <span class="ruby-comment cmt"># Set background color</span>
2475
- 938: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">line</span>.<span class="ruby-identifier">property</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Task</span>)
2476
- 939: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">category</span> = <span class="ruby-identifier">line</span>.<span class="ruby-identifier">property</span>.<span class="ruby-identifier">get</span>(<span class="ruby-value str">'index'</span>) <span class="ruby-operator">%</span> <span class="ruby-value">2</span> <span class="ruby-operator">==</span> <span class="ruby-value">1</span> <span class="ruby-operator">?</span>
2477
- 940: <span class="ruby-value str">'taskcell1'</span> <span class="ruby-operator">:</span> <span class="ruby-value str">'taskcell2'</span>
2478
- 941: <span class="ruby-keyword kw">else</span>
2479
- 942: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">category</span> = <span class="ruby-identifier">line</span>.<span class="ruby-identifier">property</span>.<span class="ruby-identifier">get</span>(<span class="ruby-value str">'index'</span>) <span class="ruby-operator">%</span> <span class="ruby-value">2</span> <span class="ruby-operator">==</span> <span class="ruby-value">1</span> <span class="ruby-operator">?</span>
2480
- 943: <span class="ruby-value str">'resourcecell1'</span> <span class="ruby-operator">:</span> <span class="ruby-value str">'resourcecell2'</span>
2481
- 944: <span class="ruby-keyword kw">end</span>
2482
- 945:
2483
- 946: <span class="ruby-comment cmt"># Set column width</span>
2484
- 947: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">width</span> = <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">width</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">width</span>
2485
- 948: <span class="ruby-keyword kw">end</span></pre>
2489
+ <span class="ruby-comment cmt"># File lib/taskjuggler/reports/TableReport.rb, line 929</span>
2490
+ 929: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">setStandardCellAttributes</span>(<span class="ruby-identifier">cell</span>, <span class="ruby-identifier">columnDef</span>, <span class="ruby-identifier">attributeType</span>, <span class="ruby-identifier">line</span>)
2491
+ 930: <span class="ruby-comment cmt"># Determine whether it should be indented</span>
2492
+ 931: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">indent</span>(<span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">id</span>, <span class="ruby-identifier">attributeType</span>)
2493
+ 932: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">indent</span> = <span class="ruby-identifier">line</span>.<span class="ruby-identifier">indentation</span>
2494
+ 933: <span class="ruby-keyword kw">end</span>
2495
+ 934:
2496
+ 935: <span class="ruby-comment cmt"># Determine the cell alignment</span>
2497
+ 936: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">alignment</span> = <span class="ruby-identifier">alignment</span>(<span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">id</span>, <span class="ruby-identifier">attributeType</span>)
2498
+ 937:
2499
+ 938: <span class="ruby-comment cmt"># Set background color</span>
2500
+ 939: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">line</span>.<span class="ruby-identifier">property</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Task</span>)
2501
+ 940: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">category</span> = <span class="ruby-identifier">line</span>.<span class="ruby-identifier">property</span>.<span class="ruby-identifier">get</span>(<span class="ruby-value str">'index'</span>) <span class="ruby-operator">%</span> <span class="ruby-value">2</span> <span class="ruby-operator">==</span> <span class="ruby-value">1</span> <span class="ruby-operator">?</span>
2502
+ 941: <span class="ruby-value str">'taskcell1'</span> <span class="ruby-operator">:</span> <span class="ruby-value str">'taskcell2'</span>
2503
+ 942: <span class="ruby-keyword kw">else</span>
2504
+ 943: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">category</span> = <span class="ruby-identifier">line</span>.<span class="ruby-identifier">property</span>.<span class="ruby-identifier">get</span>(<span class="ruby-value str">'index'</span>) <span class="ruby-operator">%</span> <span class="ruby-value">2</span> <span class="ruby-operator">==</span> <span class="ruby-value">1</span> <span class="ruby-operator">?</span>
2505
+ 944: <span class="ruby-value str">'resourcecell1'</span> <span class="ruby-operator">:</span> <span class="ruby-value str">'resourcecell2'</span>
2506
+ 945: <span class="ruby-keyword kw">end</span>
2507
+ 946:
2508
+ 947: <span class="ruby-comment cmt"># Set column width</span>
2509
+ 948: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">width</span> = <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">width</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">width</span>
2510
+ 949: <span class="ruby-keyword kw">end</span></pre>
2486
2511
  </div>
2487
2512
 
2488
2513
  </div>
@@ -2515,13 +2540,13 @@ Try to merge equal cells without text to multi-column cells.
2515
2540
  <div class="method-source-code"
2516
2541
  id="try-ell-erging-source">
2517
2542
  <pre>
2518
- <span class="ruby-comment cmt"># File lib/taskjuggler/reports/TableReport.rb, line 1026</span>
2519
- 1026: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">tryCellMerging</span>(<span class="ruby-identifier">cell</span>, <span class="ruby-identifier">line</span>, <span class="ruby-identifier">firstCell</span>)
2520
- 1027: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">text</span> <span class="ruby-operator">==</span> <span class="ruby-value str">''</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">firstCell</span> <span class="ruby-operator">&amp;&amp;</span> (<span class="ruby-identifier">c</span> = <span class="ruby-identifier">line</span>.<span class="ruby-identifier">last</span>(<span class="ruby-value">1</span>)) <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">c</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">cell</span>
2521
- 1028: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">hidden</span> = <span class="ruby-keyword kw">true</span>
2522
- 1029: <span class="ruby-identifier">c</span>.<span class="ruby-identifier">columns</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
2523
- 1030: <span class="ruby-keyword kw">end</span>
2524
- 1031: <span class="ruby-keyword kw">end</span></pre>
2543
+ <span class="ruby-comment cmt"># File lib/taskjuggler/reports/TableReport.rb, line 1027</span>
2544
+ 1027: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">tryCellMerging</span>(<span class="ruby-identifier">cell</span>, <span class="ruby-identifier">line</span>, <span class="ruby-identifier">firstCell</span>)
2545
+ 1028: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">text</span> <span class="ruby-operator">==</span> <span class="ruby-value str">''</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">firstCell</span> <span class="ruby-operator">&amp;&amp;</span> (<span class="ruby-identifier">c</span> = <span class="ruby-identifier">line</span>.<span class="ruby-identifier">last</span>(<span class="ruby-value">1</span>)) <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">c</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">cell</span>
2546
+ 1029: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">hidden</span> = <span class="ruby-keyword kw">true</span>
2547
+ 1030: <span class="ruby-identifier">c</span>.<span class="ruby-identifier">columns</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
2548
+ 1031: <span class="ruby-keyword kw">end</span>
2549
+ 1032: <span class="ruby-keyword kw">end</span></pre>
2525
2550
  </div>
2526
2551
 
2527
2552
  </div>