taskjuggler 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (492) hide show
  1. data/CHANGELOG +7 -0
  2. data/data/tjp.vim +1 -1
  3. data/lib/exchangebug.rb +42 -0
  4. data/lib/ruby-signal-bug.rb +55 -0
  5. data/lib/taskjuggler/DataCache.rb +30 -41
  6. data/lib/taskjuggler/ResourceScenario.rb +19 -20
  7. data/lib/taskjuggler/TaskScenario.rb +11 -8
  8. data/lib/taskjuggler/Tj3Config.rb +1 -1
  9. data/prj_cfg.rb +3 -3
  10. data/test/TestSuite/Export-Reports/refs/DST.tjp +60 -0
  11. data/test/TestSuite/Export-Reports/refs/ReleasePlan.tjp +80 -0
  12. data/test/TestSuite/Export-Reports/tp.tjp +49 -0
  13. data/test/TestSuite/HTML-Reports/Alerts.html +412 -160
  14. data/test/TestSuite/HTML-Reports/TimeSheet.html +79 -0
  15. data/test/TestSuite/HTML-Reports/css/tjmanual.css +20 -0
  16. data/test/TestSuite/HTML-Reports/css/tjreport.css +7 -6
  17. data/test/TestSuite/HTML-Reports/reference.html +51 -0
  18. data/test/TestSuite/ReportGenerator/Correct/css/tjmanual.css +86 -0
  19. data/test/TestSuite/{Scheduler/Errors → ReportGenerator/Correct}/css/tjreport.css +0 -0
  20. data/test/TestSuite/{Scheduler/Errors → ReportGenerator/Correct}/icons/details.png +0 -0
  21. data/test/TestSuite/{Scheduler/Errors → ReportGenerator/Correct}/icons/flag-green.png +0 -0
  22. data/test/TestSuite/{Scheduler/Errors → ReportGenerator/Correct}/icons/flag-red.png +0 -0
  23. data/test/TestSuite/{Scheduler/Errors → ReportGenerator/Correct}/icons/flag-yellow.png +0 -0
  24. data/test/TestSuite/{Scheduler/Errors → ReportGenerator/Correct}/icons/resource.png +0 -0
  25. data/test/TestSuite/{Scheduler/Errors → ReportGenerator/Correct}/icons/resourcegroup.png +0 -0
  26. data/test/TestSuite/{Scheduler/Errors → ReportGenerator/Correct}/icons/task.png +0 -0
  27. data/test/TestSuite/{Scheduler/Errors → ReportGenerator/Correct}/icons/taskgroup.png +0 -0
  28. data/test/TestSuite/{Scheduler/Errors → ReportGenerator/Correct}/icons/trend-down.png +0 -0
  29. data/test/TestSuite/{Scheduler/Errors → ReportGenerator/Correct}/icons/trend-flat.png +0 -0
  30. data/test/TestSuite/{Scheduler/Errors → ReportGenerator/Correct}/icons/trend-up.png +0 -0
  31. data/test/TestSuite/ReportGenerator/Correct/opennodes.tjp +26 -0
  32. data/test/TestSuite/ReportGenerator/Correct/refs/opennodes-1.csv +2 -0
  33. data/test/TestSuite/{Scheduler/Errors → ReportGenerator/Correct}/scripts/wz_tooltip.js +0 -0
  34. data/test/TestSuite/Scheduler/Correct/Allocate.html +1075 -0
  35. data/test/TestSuite/Scheduler/Correct/Duration.html +610 -0
  36. data/test/TestSuite/Scheduler/{Errors → Correct}/css/tjmanual.css +0 -0
  37. data/test/TestSuite/Scheduler/Correct/css/tjreport.css +413 -0
  38. data/test/TestSuite/Scheduler/Correct/icons/details.png +0 -0
  39. data/test/TestSuite/Scheduler/Correct/icons/flag-green.png +0 -0
  40. data/test/TestSuite/Scheduler/Correct/icons/flag-red.png +0 -0
  41. data/test/TestSuite/Scheduler/Correct/icons/flag-yellow.png +0 -0
  42. data/test/TestSuite/Scheduler/Correct/icons/resource.png +0 -0
  43. data/test/TestSuite/Scheduler/Correct/icons/resourcegroup.png +0 -0
  44. data/test/TestSuite/Scheduler/Correct/icons/task.png +0 -0
  45. data/test/TestSuite/Scheduler/Correct/icons/taskgroup.png +0 -0
  46. data/test/TestSuite/Scheduler/Correct/icons/trend-down.png +0 -0
  47. data/test/TestSuite/Scheduler/Correct/icons/trend-flat.png +0 -0
  48. data/test/TestSuite/Scheduler/Correct/icons/trend-up.png +0 -0
  49. data/test/TestSuite/{HTML-Reports/scripts → Scheduler/Correct}/scripts/wz_tooltip.js +20 -20
  50. data/test/TestSuite/StatusSheetTemplates/project.tji +35 -0
  51. data/test/TestSuite/StatusSheetTemplates/project.tjp +56 -0
  52. data/test/TestSuite/StatusSheets/TimeSheets/2002-03-01/resource1_2002-03-01.tji +0 -0
  53. data/test/TestSuite/Syntax/Correct/DST.tjp +11 -0
  54. data/test/TestSuite/Syntax/Correct/ReleasePlan.tjp +32 -0
  55. data/test/TestSuite/TimeSheets/receiver.log.mod +1056 -0
  56. data/test/TestSuite/TimeSheets/uu.txt +29 -0
  57. metadata +672 -1076
  58. data/benchmarks/UTF-8-Strings.rb +0 -58
  59. data/benchmarks/htmltaskreport-1.html +0 -47702
  60. data/benchmarks/htmltaskreport-2.html +0 -23345
  61. data/benchmarks/htmltaskreport-3.html +0 -23265
  62. data/benchmarks/htmltaskreport-4.html +0 -22135
  63. data/benchmarks/profile.clt +0 -36082
  64. data/benchmarks/tj3.profile +0 -0
  65. data/benchmarks/tj3.profile.grind +0 -6185
  66. data/benchmarks/tj3.profile.symbols +0 -432
  67. data/benchmarks/tj3.profile.txt +0 -448
  68. data/doc/AppConfig.html +0 -1515
  69. data/doc/CHANGELOG.html +0 -2441
  70. data/doc/COPYING.html +0 -923
  71. data/doc/Diff.html +0 -1217
  72. data/doc/Diff/Hunk.html +0 -1050
  73. data/doc/Diffable.html +0 -708
  74. data/doc/DiffableString.html +0 -708
  75. data/doc/Object.html +0 -744
  76. data/doc/README_rdoc.html +0 -774
  77. data/doc/RuntimeConfig.html +0 -880
  78. data/doc/String.html +0 -1029
  79. data/doc/TaskJuggler.html +0 -2698
  80. data/doc/TaskJuggler/Account.html +0 -777
  81. data/doc/TaskJuggler/AccountAttribute.html +0 -793
  82. data/doc/TaskJuggler/AccountScenario.html +0 -736
  83. data/doc/TaskJuggler/Allocation.html +0 -987
  84. data/doc/TaskJuggler/AllocationAttribute.html +0 -823
  85. data/doc/TaskJuggler/AttributeBase.html +0 -1379
  86. data/doc/TaskJuggler/AttributeDefinition.html +0 -839
  87. data/doc/TaskJuggler/AttributeOverwrite.html +0 -630
  88. data/doc/TaskJuggler/BatchProcessor.html +0 -1202
  89. data/doc/TaskJuggler/Booking.html +0 -883
  90. data/doc/TaskJuggler/BookingListAttribute.html +0 -793
  91. data/doc/TaskJuggler/BooleanAttribute.html +0 -793
  92. data/doc/TaskJuggler/CSVFile.html +0 -1152
  93. data/doc/TaskJuggler/CellSettingPattern.html +0 -724
  94. data/doc/TaskJuggler/CellSettingPatternList.html +0 -773
  95. data/doc/TaskJuggler/Charge.html +0 -801
  96. data/doc/TaskJuggler/ChargeListAttribute.html +0 -757
  97. data/doc/TaskJuggler/ChargeSet.html +0 -973
  98. data/doc/TaskJuggler/ChargeSetListAttribute.html +0 -802
  99. data/doc/TaskJuggler/CollisionDetector.html +0 -1113
  100. data/doc/TaskJuggler/ColumnListAttribute.html +0 -757
  101. data/doc/TaskJuggler/ColumnTable.html +0 -787
  102. data/doc/TaskJuggler/Daemon.html +0 -843
  103. data/doc/TaskJuggler/DataCache.html +0 -1049
  104. data/doc/TaskJuggler/DataCacheEntry.html +0 -761
  105. data/doc/TaskJuggler/DateAttribute.html +0 -761
  106. data/doc/TaskJuggler/DefinitionListAttribute.html +0 -679
  107. data/doc/TaskJuggler/DependencyListAttribute.html +0 -797
  108. data/doc/TaskJuggler/DurationAttribute.html +0 -794
  109. data/doc/TaskJuggler/FileList.html +0 -817
  110. data/doc/TaskJuggler/FileRecord.html +0 -726
  111. data/doc/TaskJuggler/FixnumAttribute.html +0 -715
  112. data/doc/TaskJuggler/FlagListAttribute.html +0 -793
  113. data/doc/TaskJuggler/FloatAttribute.html +0 -757
  114. data/doc/TaskJuggler/FormatListAttribute.html +0 -721
  115. data/doc/TaskJuggler/GanttChart.html +0 -1511
  116. data/doc/TaskJuggler/GanttContainer.html +0 -969
  117. data/doc/TaskJuggler/GanttHeader.html +0 -972
  118. data/doc/TaskJuggler/GanttHeaderScaleItem.html +0 -786
  119. data/doc/TaskJuggler/GanttLine.html +0 -1349
  120. data/doc/TaskJuggler/GanttLoadStack.html +0 -852
  121. data/doc/TaskJuggler/GanttMilestone.html +0 -950
  122. data/doc/TaskJuggler/GanttRouter.html +0 -1160
  123. data/doc/TaskJuggler/GanttTaskBar.html +0 -972
  124. data/doc/TaskJuggler/HTMLDocument.html +0 -800
  125. data/doc/TaskJuggler/HTMLElements.html +0 -623
  126. data/doc/TaskJuggler/HTMLGraphics.html +0 -861
  127. data/doc/TaskJuggler/ICalReport.html +0 -864
  128. data/doc/TaskJuggler/ICalendar.html +0 -1035
  129. data/doc/TaskJuggler/ICalendar/Component.html +0 -969
  130. data/doc/TaskJuggler/ICalendar/Event.html +0 -742
  131. data/doc/TaskJuggler/ICalendar/Journal.html +0 -722
  132. data/doc/TaskJuggler/ICalendar/Person.html +0 -633
  133. data/doc/TaskJuggler/ICalendar/Todo.html +0 -789
  134. data/doc/TaskJuggler/Interval.html +0 -1003
  135. data/doc/TaskJuggler/IntervalList.html +0 -821
  136. data/doc/TaskJuggler/JobInfo.html +0 -967
  137. data/doc/TaskJuggler/Journal.html +0 -1272
  138. data/doc/TaskJuggler/JournalEntry.html +0 -884
  139. data/doc/TaskJuggler/JournalEntryList.html +0 -1253
  140. data/doc/TaskJuggler/KeywordArray.html +0 -720
  141. data/doc/TaskJuggler/KeywordDocumentation.html +0 -2274
  142. data/doc/TaskJuggler/Limits.html +0 -1019
  143. data/doc/TaskJuggler/Limits/Limit.html +0 -1022
  144. data/doc/TaskJuggler/LimitsAttribute.html +0 -759
  145. data/doc/TaskJuggler/ListAttributeBase.html +0 -727
  146. data/doc/TaskJuggler/Log.html +0 -1187
  147. data/doc/TaskJuggler/LogFile.html +0 -1004
  148. data/doc/TaskJuggler/LogicalAttribute.html +0 -784
  149. data/doc/TaskJuggler/LogicalExpression.html +0 -825
  150. data/doc/TaskJuggler/LogicalExpressionAttribute.html +0 -715
  151. data/doc/TaskJuggler/LogicalExpressionListAttribute.html +0 -715
  152. data/doc/TaskJuggler/LogicalFlag.html +0 -777
  153. data/doc/TaskJuggler/LogicalFunction.html +0 -1433
  154. data/doc/TaskJuggler/LogicalOperation.html +0 -1168
  155. data/doc/TaskJuggler/ManagerResponsibilities.html +0 -760
  156. data/doc/TaskJuggler/ManagerStatusRecord.html +0 -764
  157. data/doc/TaskJuggler/Message.html +0 -861
  158. data/doc/TaskJuggler/MessageHandler.html +0 -1102
  159. data/doc/TaskJuggler/Navigator.html +0 -967
  160. data/doc/TaskJuggler/NavigatorElement.html +0 -1018
  161. data/doc/TaskJuggler/NikuProject.html +0 -748
  162. data/doc/TaskJuggler/NikuReport.html +0 -1494
  163. data/doc/TaskJuggler/NikuResource.html +0 -718
  164. data/doc/TaskJuggler/NodeListAttribute.html +0 -679
  165. data/doc/TaskJuggler/PlaceHolderCell.html +0 -772
  166. data/doc/TaskJuggler/ProcessIntercom.html +0 -1041
  167. data/doc/TaskJuggler/ProcessIntercomIface.html +0 -797
  168. data/doc/TaskJuggler/Project.html +0 -3741
  169. data/doc/TaskJuggler/ProjectBroker.html +0 -1700
  170. data/doc/TaskJuggler/ProjectBrokerIface.html +0 -875
  171. data/doc/TaskJuggler/ProjectFileParser.html +0 -2127
  172. data/doc/TaskJuggler/ProjectFileScanner.html +0 -1921
  173. data/doc/TaskJuggler/ProjectRecord.html +0 -1002
  174. data/doc/TaskJuggler/ProjectServer.html +0 -1273
  175. data/doc/TaskJuggler/ProjectServerIface.html +0 -892
  176. data/doc/TaskJuggler/PropertyAttribute.html +0 -715
  177. data/doc/TaskJuggler/PropertyList.html +0 -1423
  178. data/doc/TaskJuggler/PropertySet.html +0 -1816
  179. data/doc/TaskJuggler/PropertyTreeNode.html +0 -2895
  180. data/doc/TaskJuggler/Query.html +0 -1783
  181. data/doc/TaskJuggler/RTFHandlers.html +0 -688
  182. data/doc/TaskJuggler/RTFNavigator.html +0 -816
  183. data/doc/TaskJuggler/RTFQuery.html +0 -1107
  184. data/doc/TaskJuggler/RTFReport.html +0 -844
  185. data/doc/TaskJuggler/RTFReportLink.html +0 -836
  186. data/doc/TaskJuggler/RTFWithQuerySupport.html +0 -726
  187. data/doc/TaskJuggler/RealFormat.html +0 -829
  188. data/doc/TaskJuggler/RealFormatAttribute.html +0 -679
  189. data/doc/TaskJuggler/ReferenceAttribute.html +0 -904
  190. data/doc/TaskJuggler/Report.html +0 -1645
  191. data/doc/TaskJuggler/ReportBase.html +0 -1192
  192. data/doc/TaskJuggler/ReportContext.html +0 -861
  193. data/doc/TaskJuggler/ReportScenario.html +0 -633
  194. data/doc/TaskJuggler/ReportServer.html +0 -1092
  195. data/doc/TaskJuggler/ReportServerIface.html +0 -926
  196. data/doc/TaskJuggler/ReportServerRecord.html +0 -805
  197. data/doc/TaskJuggler/ReportServlet.html +0 -1053
  198. data/doc/TaskJuggler/ReportTable.html +0 -1203
  199. data/doc/TaskJuggler/ReportTableCell.html +0 -1690
  200. data/doc/TaskJuggler/ReportTableColumn.html +0 -914
  201. data/doc/TaskJuggler/ReportTableLegend.html +0 -1084
  202. data/doc/TaskJuggler/ReportTableLine.html +0 -1091
  203. data/doc/TaskJuggler/Resource.html +0 -1066
  204. data/doc/TaskJuggler/ResourceListAttribute.html +0 -853
  205. data/doc/TaskJuggler/ResourceListRE.html +0 -761
  206. data/doc/TaskJuggler/ResourceScenario.html +0 -2591
  207. data/doc/TaskJuggler/RichText.html +0 -903
  208. data/doc/TaskJuggler/RichTextAttribute.html +0 -835
  209. data/doc/TaskJuggler/RichTextDocument.html +0 -1062
  210. data/doc/TaskJuggler/RichTextElement.html +0 -1804
  211. data/doc/TaskJuggler/RichTextFunctionExample.html +0 -823
  212. data/doc/TaskJuggler/RichTextFunctionHandler.html +0 -774
  213. data/doc/TaskJuggler/RichTextImage.html +0 -736
  214. data/doc/TaskJuggler/RichTextIntermediate.html +0 -1309
  215. data/doc/TaskJuggler/RichTextParser.html +0 -892
  216. data/doc/TaskJuggler/RichTextScanner.html +0 -1589
  217. data/doc/TaskJuggler/RichTextSnip.html +0 -1024
  218. data/doc/TaskJuggler/RichTextSyntaxRules.html +0 -2076
  219. data/doc/TaskJuggler/Scenario.html +0 -680
  220. data/doc/TaskJuggler/ScenarioData.html +0 -905
  221. data/doc/TaskJuggler/ScenarioListAttribute.html +0 -757
  222. data/doc/TaskJuggler/Scoreboard.html +0 -1265
  223. data/doc/TaskJuggler/ScoreboardInterval.html +0 -1116
  224. data/doc/TaskJuggler/SheetHandlerBase.html +0 -1321
  225. data/doc/TaskJuggler/SheetReceiver.html +0 -1422
  226. data/doc/TaskJuggler/SheetSender.html +0 -1192
  227. data/doc/TaskJuggler/Shift.html +0 -775
  228. data/doc/TaskJuggler/ShiftAssignment.html +0 -1032
  229. data/doc/TaskJuggler/ShiftAssignments.html +0 -1438
  230. data/doc/TaskJuggler/ShiftAssignmentsAttribute.html +0 -759
  231. data/doc/TaskJuggler/ShiftScenario.html +0 -806
  232. data/doc/TaskJuggler/SimpleQueryExpander.html +0 -756
  233. data/doc/TaskJuggler/SortListAttribute.html +0 -715
  234. data/doc/TaskJuggler/StatusSheetReceiver.html +0 -702
  235. data/doc/TaskJuggler/StatusSheetReport.html +0 -959
  236. data/doc/TaskJuggler/StatusSheetSender.html +0 -832
  237. data/doc/TaskJuggler/StdIoWrapper.html +0 -720
  238. data/doc/TaskJuggler/StringAttribute.html +0 -757
  239. data/doc/TaskJuggler/SymbolAttribute.html +0 -715
  240. data/doc/TaskJuggler/SyntaxReference.html +0 -1264
  241. data/doc/TaskJuggler/TOCEntry.html +0 -860
  242. data/doc/TaskJuggler/TSResourceRecord.html +0 -756
  243. data/doc/TaskJuggler/TSTaskRecord.html +0 -768
  244. data/doc/TaskJuggler/TableColumnDefinition.html +0 -973
  245. data/doc/TaskJuggler/TableOfContents.html +0 -814
  246. data/doc/TaskJuggler/TableReport.html +0 -2580
  247. data/doc/TaskJuggler/TagFile.html +0 -817
  248. data/doc/TaskJuggler/TagFile/TagFileEntry.html +0 -841
  249. data/doc/TaskJuggler/Task.html +0 -914
  250. data/doc/TaskJuggler/TaskDepListAttribute.html +0 -797
  251. data/doc/TaskJuggler/TaskDependency.html +0 -856
  252. data/doc/TaskJuggler/TaskListAttribute.html +0 -797
  253. data/doc/TaskJuggler/TaskListRE.html +0 -760
  254. data/doc/TaskJuggler/TaskScenario.html +0 -5237
  255. data/doc/TaskJuggler/TernarySearchTree.html +0 -1365
  256. data/doc/TaskJuggler/TextFormatter.html +0 -997
  257. data/doc/TaskJuggler/TextParser.html +0 -1886
  258. data/doc/TaskJuggler/TextParser/Macro.html +0 -732
  259. data/doc/TaskJuggler/TextParser/MacroTable.html +0 -856
  260. data/doc/TaskJuggler/TextParser/Pattern.html +0 -1767
  261. data/doc/TaskJuggler/TextParser/Rule.html +0 -1443
  262. data/doc/TaskJuggler/TextParser/Scanner.html +0 -1542
  263. data/doc/TaskJuggler/TextParser/Scanner/BufferStreamHandle.html +0 -685
  264. data/doc/TaskJuggler/TextParser/Scanner/FileStreamHandle.html +0 -751
  265. data/doc/TaskJuggler/TextParser/Scanner/MacroStackEntry.html +0 -748
  266. data/doc/TaskJuggler/TextParser/Scanner/StreamHandle.html +0 -1128
  267. data/doc/TaskJuggler/TextParser/SourceFileInfo.html +0 -784
  268. data/doc/TaskJuggler/TextParser/StackElement.html +0 -964
  269. data/doc/TaskJuggler/TextParser/State.html +0 -1039
  270. data/doc/TaskJuggler/TextParser/StateTransition.html +0 -832
  271. data/doc/TaskJuggler/TextParser/TextParserResultArray.html +0 -735
  272. data/doc/TaskJuggler/TextParser/TokenDoc.html +0 -766
  273. data/doc/TaskJuggler/TextReport.html +0 -945
  274. data/doc/TaskJuggler/TimeInterval.html +0 -841
  275. data/doc/TaskJuggler/TimeIntervalListAttribute.html +0 -797
  276. data/doc/TaskJuggler/TimeSheet.html +0 -1288
  277. data/doc/TaskJuggler/TimeSheetReceiver.html +0 -699
  278. data/doc/TaskJuggler/TimeSheetRecord.html +0 -1439
  279. data/doc/TaskJuggler/TimeSheetReport.html +0 -1037
  280. data/doc/TaskJuggler/TimeSheetSender.html +0 -724
  281. data/doc/TaskJuggler/TimeSheetSummary.html +0 -983
  282. data/doc/TaskJuggler/TimeSheets.html +0 -760
  283. data/doc/TaskJuggler/Tj3.html +0 -896
  284. data/doc/TaskJuggler/Tj3AppBase.html +0 -966
  285. data/doc/TaskJuggler/Tj3Client.html +0 -1534
  286. data/doc/TaskJuggler/Tj3Daemon.html +0 -894
  287. data/doc/TaskJuggler/Tj3Man.html +0 -792
  288. data/doc/TaskJuggler/Tj3SheetAppBase.html +0 -782
  289. data/doc/TaskJuggler/Tj3SsReceiver.html +0 -771
  290. data/doc/TaskJuggler/Tj3SsSender.html +0 -804
  291. data/doc/TaskJuggler/Tj3TsReceiver.html +0 -771
  292. data/doc/TaskJuggler/Tj3TsSender.html +0 -791
  293. data/doc/TaskJuggler/Tj3TsSummary.html +0 -799
  294. data/doc/TaskJuggler/TjException.html +0 -716
  295. data/doc/TaskJuggler/TjRuntimeError.html +0 -630
  296. data/doc/TaskJuggler/TjTime.html +0 -3179
  297. data/doc/TaskJuggler/TjpExample.html +0 -921
  298. data/doc/TaskJuggler/TjpExportRE.html +0 -1851
  299. data/doc/TaskJuggler/TjpSyntaxRules.html +0 -14721
  300. data/doc/TaskJuggler/URLParameter.html +0 -715
  301. data/doc/TaskJuggler/UserManual.html +0 -1248
  302. data/doc/TaskJuggler/VimSyntax.html +0 -1088
  303. data/doc/TaskJuggler/WebServer.html +0 -781
  304. data/doc/TaskJuggler/WelcomePage.html +0 -813
  305. data/doc/TaskJuggler/WorkingHours.html +0 -1293
  306. data/doc/TaskJuggler/WorkingHoursAttribute.html +0 -780
  307. data/doc/TaskJuggler/XMLBlob.html +0 -731
  308. data/doc/TaskJuggler/XMLComment.html +0 -726
  309. data/doc/TaskJuggler/XMLDocument.html +0 -827
  310. data/doc/TaskJuggler/XMLElement.html +0 -1014
  311. data/doc/TaskJuggler/XMLNamedText.html +0 -687
  312. data/doc/TaskJuggler/XMLText.html +0 -741
  313. data/doc/index.html +0 -4664
  314. data/doc/lib/taskjuggler/AccountScenario_rb.html +0 -69
  315. data/doc/lib/taskjuggler/Account_rb.html +0 -71
  316. data/doc/lib/taskjuggler/AlgorithmDiff_rb.html +0 -67
  317. data/doc/lib/taskjuggler/Allocation_rb.html +0 -71
  318. data/doc/lib/taskjuggler/AppConfig_rb.html +0 -69
  319. data/doc/lib/taskjuggler/AttributeBase_rb.html +0 -69
  320. data/doc/lib/taskjuggler/AttributeDefinition_rb.html +0 -67
  321. data/doc/lib/taskjuggler/Attributes_rb.html +0 -83
  322. data/doc/lib/taskjuggler/BatchProcessor_rb.html +0 -71
  323. data/doc/lib/taskjuggler/Booking_rb.html +0 -67
  324. data/doc/lib/taskjuggler/ChargeSet_rb.html +0 -69
  325. data/doc/lib/taskjuggler/Charge_rb.html +0 -69
  326. data/doc/lib/taskjuggler/DataCache_rb.html +0 -71
  327. data/doc/lib/taskjuggler/FileList_rb.html +0 -67
  328. data/doc/lib/taskjuggler/HTMLDocument_rb.html +0 -71
  329. data/doc/lib/taskjuggler/HTMLElements_rb.html +0 -69
  330. data/doc/lib/taskjuggler/ICalendar_rb.html +0 -69
  331. data/doc/lib/taskjuggler/IntervalList_rb.html +0 -69
  332. data/doc/lib/taskjuggler/Interval_rb.html +0 -69
  333. data/doc/lib/taskjuggler/Journal_rb.html +0 -67
  334. data/doc/lib/taskjuggler/KeywordArray_rb.html +0 -67
  335. data/doc/lib/taskjuggler/KeywordDocumentation_rb.html +0 -77
  336. data/doc/lib/taskjuggler/Limits_rb.html +0 -69
  337. data/doc/lib/taskjuggler/LogFile_rb.html +0 -69
  338. data/doc/lib/taskjuggler/Log_rb.html +0 -71
  339. data/doc/lib/taskjuggler/LogicalExpression_rb.html +0 -73
  340. data/doc/lib/taskjuggler/LogicalFunction_rb.html +0 -69
  341. data/doc/lib/taskjuggler/LogicalOperation_rb.html +0 -69
  342. data/doc/lib/taskjuggler/MessageHandler_rb.html +0 -69
  343. data/doc/lib/taskjuggler/ProjectFileParser_rb.html +0 -77
  344. data/doc/lib/taskjuggler/ProjectFileScanner_rb.html +0 -69
  345. data/doc/lib/taskjuggler/Project_rb.html +0 -113
  346. data/doc/lib/taskjuggler/PropertyList_rb.html +0 -67
  347. data/doc/lib/taskjuggler/PropertySet_rb.html +0 -71
  348. data/doc/lib/taskjuggler/PropertyTreeNode_rb.html +0 -67
  349. data/doc/lib/taskjuggler/Query_rb.html +0 -69
  350. data/doc/lib/taskjuggler/RealFormat_rb.html +0 -67
  351. data/doc/lib/taskjuggler/ResourceScenario_rb.html +0 -69
  352. data/doc/lib/taskjuggler/Resource_rb.html +0 -71
  353. data/doc/lib/taskjuggler/RichText/Document_rb.html +0 -73
  354. data/doc/lib/taskjuggler/RichText/Element_rb.html +0 -75
  355. data/doc/lib/taskjuggler/RichText/FunctionExample_rb.html +0 -73
  356. data/doc/lib/taskjuggler/RichText/FunctionHandler_rb.html +0 -67
  357. data/doc/lib/taskjuggler/RichText/Parser_rb.html +0 -75
  358. data/doc/lib/taskjuggler/RichText/RTFHandlers_rb.html +0 -75
  359. data/doc/lib/taskjuggler/RichText/RTFNavigator_rb.html +0 -73
  360. data/doc/lib/taskjuggler/RichText/RTFQuery_rb.html +0 -73
  361. data/doc/lib/taskjuggler/RichText/RTFReportLink_rb.html +0 -75
  362. data/doc/lib/taskjuggler/RichText/RTFReport_rb.html +0 -71
  363. data/doc/lib/taskjuggler/RichText/RTFWithQuerySupport_rb.html +0 -69
  364. data/doc/lib/taskjuggler/RichText/Scanner_rb.html +0 -71
  365. data/doc/lib/taskjuggler/RichText/Snip_rb.html +0 -71
  366. data/doc/lib/taskjuggler/RichText/SyntaxRules_rb.html +0 -67
  367. data/doc/lib/taskjuggler/RichText/TOCEntry_rb.html +0 -71
  368. data/doc/lib/taskjuggler/RichText/TableOfContents_rb.html +0 -71
  369. data/doc/lib/taskjuggler/RichText_rb.html +0 -73
  370. data/doc/lib/taskjuggler/RuntimeConfig_rb.html +0 -69
  371. data/doc/lib/taskjuggler/ScenarioData_rb.html +0 -71
  372. data/doc/lib/taskjuggler/Scenario_rb.html +0 -69
  373. data/doc/lib/taskjuggler/Scoreboard_rb.html +0 -69
  374. data/doc/lib/taskjuggler/SheetHandlerBase_rb.html +0 -75
  375. data/doc/lib/taskjuggler/SheetReceiver_rb.html +0 -81
  376. data/doc/lib/taskjuggler/SheetSender_rb.html +0 -79
  377. data/doc/lib/taskjuggler/ShiftAssignments_rb.html +0 -71
  378. data/doc/lib/taskjuggler/ShiftScenario_rb.html +0 -69
  379. data/doc/lib/taskjuggler/Shift_rb.html +0 -71
  380. data/doc/lib/taskjuggler/SimpleQueryExpander_rb.html +0 -69
  381. data/doc/lib/taskjuggler/StatusSheetReceiver_rb.html +0 -69
  382. data/doc/lib/taskjuggler/StatusSheetSender_rb.html +0 -69
  383. data/doc/lib/taskjuggler/StdIoWrapper_rb.html +0 -67
  384. data/doc/lib/taskjuggler/SyntaxReference_rb.html +0 -75
  385. data/doc/lib/taskjuggler/TableColumnDefinition_rb.html +0 -67
  386. data/doc/lib/taskjuggler/TaskDependency_rb.html +0 -67
  387. data/doc/lib/taskjuggler/TaskJuggler_rb.html +0 -75
  388. data/doc/lib/taskjuggler/TaskScenario_rb.html +0 -71
  389. data/doc/lib/taskjuggler/Task_rb.html +0 -71
  390. data/doc/lib/taskjuggler/TernarySearchTree_rb.html +0 -69
  391. data/doc/lib/taskjuggler/TextFormatter_rb.html +0 -69
  392. data/doc/lib/taskjuggler/TextParser/MacroTable_rb.html +0 -67
  393. data/doc/lib/taskjuggler/TextParser/Pattern_rb.html +0 -71
  394. data/doc/lib/taskjuggler/TextParser/Rule_rb.html +0 -69
  395. data/doc/lib/taskjuggler/TextParser/Scanner_rb.html +0 -77
  396. data/doc/lib/taskjuggler/TextParser/SourceFileInfo_rb.html +0 -67
  397. data/doc/lib/taskjuggler/TextParser/StackElement_rb.html +0 -67
  398. data/doc/lib/taskjuggler/TextParser/State_rb.html +0 -67
  399. data/doc/lib/taskjuggler/TextParser/TokenDoc_rb.html +0 -67
  400. data/doc/lib/taskjuggler/TextParser_rb.html +0 -79
  401. data/doc/lib/taskjuggler/TimeSheetReceiver_rb.html +0 -69
  402. data/doc/lib/taskjuggler/TimeSheetSender_rb.html +0 -69
  403. data/doc/lib/taskjuggler/TimeSheetSummary_rb.html +0 -69
  404. data/doc/lib/taskjuggler/TimeSheets_rb.html +0 -67
  405. data/doc/lib/taskjuggler/Tj3AppBase_rb.html +0 -79
  406. data/doc/lib/taskjuggler/Tj3Config_rb.html +0 -71
  407. data/doc/lib/taskjuggler/Tj3SheetAppBase_rb.html +0 -69
  408. data/doc/lib/taskjuggler/TjException_rb.html +0 -67
  409. data/doc/lib/taskjuggler/TjTime_rb.html +0 -71
  410. data/doc/lib/taskjuggler/TjpExample_rb.html +0 -69
  411. data/doc/lib/taskjuggler/TjpSyntaxRules_rb.html +0 -67
  412. data/doc/lib/taskjuggler/URLParameter_rb.html +0 -69
  413. data/doc/lib/taskjuggler/UTF8String_rb.html +0 -69
  414. data/doc/lib/taskjuggler/UserManual_rb.html +0 -81
  415. data/doc/lib/taskjuggler/VimSyntax_rb.html +0 -69
  416. data/doc/lib/taskjuggler/WorkingHours_rb.html +0 -71
  417. data/doc/lib/taskjuggler/XMLDocument_rb.html +0 -69
  418. data/doc/lib/taskjuggler/XMLElement_rb.html +0 -69
  419. data/doc/lib/taskjuggler/apps/Tj3Client_rb.html +0 -75
  420. data/doc/lib/taskjuggler/apps/Tj3Daemon_rb.html +0 -75
  421. data/doc/lib/taskjuggler/apps/Tj3Man_rb.html +0 -75
  422. data/doc/lib/taskjuggler/apps/Tj3SsReceiver_rb.html +0 -71
  423. data/doc/lib/taskjuggler/apps/Tj3SsSender_rb.html +0 -71
  424. data/doc/lib/taskjuggler/apps/Tj3TsReceiver_rb.html +0 -71
  425. data/doc/lib/taskjuggler/apps/Tj3TsSender_rb.html +0 -71
  426. data/doc/lib/taskjuggler/apps/Tj3TsSummary_rb.html +0 -71
  427. data/doc/lib/taskjuggler/apps/Tj3_rb.html +0 -71
  428. data/doc/lib/taskjuggler/daemon/Daemon_rb.html +0 -69
  429. data/doc/lib/taskjuggler/daemon/ProcessIntercom_rb.html +0 -71
  430. data/doc/lib/taskjuggler/daemon/ProjectBroker_rb.html +0 -83
  431. data/doc/lib/taskjuggler/daemon/ProjectServer_rb.html +0 -85
  432. data/doc/lib/taskjuggler/daemon/ReportServer_rb.html +0 -73
  433. data/doc/lib/taskjuggler/daemon/ReportServlet_rb.html +0 -69
  434. data/doc/lib/taskjuggler/daemon/WebServer_rb.html +0 -81
  435. data/doc/lib/taskjuggler/daemon/WelcomePage_rb.html +0 -71
  436. data/doc/lib/taskjuggler/deep_copy_rb.html +0 -67
  437. data/doc/lib/taskjuggler/reports/CSVFile_rb.html +0 -69
  438. data/doc/lib/taskjuggler/reports/CollisionDetector_rb.html +0 -69
  439. data/doc/lib/taskjuggler/reports/ColumnTable_rb.html +0 -69
  440. data/doc/lib/taskjuggler/reports/GanttChart_rb.html +0 -75
  441. data/doc/lib/taskjuggler/reports/GanttContainer_rb.html +0 -69
  442. data/doc/lib/taskjuggler/reports/GanttHeaderScaleItem_rb.html +0 -67
  443. data/doc/lib/taskjuggler/reports/GanttHeader_rb.html +0 -69
  444. data/doc/lib/taskjuggler/reports/GanttLine_rb.html +0 -79
  445. data/doc/lib/taskjuggler/reports/GanttLoadStack_rb.html +0 -69
  446. data/doc/lib/taskjuggler/reports/GanttMilestone_rb.html +0 -69
  447. data/doc/lib/taskjuggler/reports/GanttRouter_rb.html +0 -69
  448. data/doc/lib/taskjuggler/reports/GanttTaskBar_rb.html +0 -69
  449. data/doc/lib/taskjuggler/reports/HTMLGraphics_rb.html +0 -67
  450. data/doc/lib/taskjuggler/reports/ICalReport_rb.html +0 -71
  451. data/doc/lib/taskjuggler/reports/Navigator_rb.html +0 -69
  452. data/doc/lib/taskjuggler/reports/NikuReport_rb.html +0 -71
  453. data/doc/lib/taskjuggler/reports/ReportBase_rb.html +0 -67
  454. data/doc/lib/taskjuggler/reports/ReportContext_rb.html +0 -67
  455. data/doc/lib/taskjuggler/reports/ReportTableCell_rb.html +0 -67
  456. data/doc/lib/taskjuggler/reports/ReportTableColumn_rb.html +0 -67
  457. data/doc/lib/taskjuggler/reports/ReportTableLegend_rb.html +0 -67
  458. data/doc/lib/taskjuggler/reports/ReportTableLine_rb.html +0 -69
  459. data/doc/lib/taskjuggler/reports/ReportTable_rb.html +0 -71
  460. data/doc/lib/taskjuggler/reports/Report_rb.html +0 -97
  461. data/doc/lib/taskjuggler/reports/ResourceListRE_rb.html +0 -75
  462. data/doc/lib/taskjuggler/reports/StatusSheetReport_rb.html +0 -69
  463. data/doc/lib/taskjuggler/reports/TableReport_rb.html +0 -77
  464. data/doc/lib/taskjuggler/reports/TagFile_rb.html +0 -71
  465. data/doc/lib/taskjuggler/reports/TaskListRE_rb.html +0 -75
  466. data/doc/lib/taskjuggler/reports/TextReport_rb.html +0 -69
  467. data/doc/lib/taskjuggler/reports/TimeSheetReport_rb.html +0 -69
  468. data/doc/lib/taskjuggler/reports/TjpExportRE_rb.html +0 -69
  469. data/doc/lib/tj3_rb.html +0 -69
  470. data/doc/lib/tj3client_rb.html +0 -69
  471. data/doc/lib/tj3d_rb.html +0 -69
  472. data/doc/lib/tj3man_rb.html +0 -69
  473. data/doc/lib/tj3ss_receiver_rb.html +0 -69
  474. data/doc/lib/tj3ss_sender_rb.html +0 -69
  475. data/doc/lib/tj3ts_receiver_rb.html +0 -69
  476. data/doc/lib/tj3ts_sender_rb.html +0 -69
  477. data/doc/lib/tj3ts_summary_rb.html +0 -69
  478. data/doc/rdoc.css +0 -706
  479. data/test/TestSuite/Export-Reports/refs/CompletedWork.tji.tjp +0 -40
  480. data/test/TestSuite/HTML-Reports/CellText.html +0 -758
  481. data/test/TestSuite/HTML-Reports/ColumnPeriods.html +0 -156
  482. data/test/TestSuite/HTML-Reports/IsOngoing.html +0 -172
  483. data/test/TestSuite/HTML-Reports/LogicalFunctions.html +0 -245
  484. data/test/TestSuite/HTML-Reports/Query.html +0 -31
  485. data/test/TestSuite/HTML-Reports/depArrows.html +0 -851
  486. data/test/TestSuite/HTML-Reports/profile.html +0 -37581
  487. data/test/TestSuite/Scheduler/Errors/R.html +0 -113
  488. data/test/TestSuite/StatusSheets/dev2.tji +0 -22
  489. data/test/TestSuite/Syntax/Correct/CompletedWork.tji.tjp +0 -38
  490. data/test/TestSuite/TimeSheets/resrep.tji +0 -7
  491. data/test/TestSuite/TimeSheets/ts.tji +0 -351
  492. data/test/TestSuite/TimeSheets/tsdef.tji +0 -2
@@ -1,2580 +0,0 @@
1
- <?xml version="1.0" encoding="utf-8"?>
2
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
3
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
5
- <head>
6
- <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
7
-
8
- <title>Class: TaskJuggler::TableReport</title>
9
-
10
- <link rel="stylesheet" href="../rdoc.css" type="text/css" media="screen" />
11
-
12
- <script src="../js/jquery.js" type="text/javascript"
13
- charset="utf-8"></script>
14
- <script src="../js/thickbox-compressed.js" type="text/javascript"
15
- charset="utf-8"></script>
16
- <script src="../js/quicksearch.js" type="text/javascript"
17
- charset="utf-8"></script>
18
- <script src="../js/darkfish.js" type="text/javascript"
19
- charset="utf-8"></script>
20
-
21
- </head>
22
- <body class="class">
23
-
24
- <div id="metadata">
25
- <div id="home-metadata">
26
- <div id="home-section" class="section">
27
- <h3 class="section-header">
28
- <a href="../index.html">Home</a>
29
- <a href="../index.html#classes">Classes</a>
30
- <a href="../index.html#methods">Methods</a>
31
- </h3>
32
- </div>
33
- </div>
34
-
35
- <div id="file-metadata">
36
- <div id="file-list-section" class="section">
37
- <h3 class="section-header">In Files</h3>
38
- <div class="section-body">
39
- <ul>
40
-
41
- <li><a href="../lib/taskjuggler/reports/TableReport_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
42
- class="thickbox" title="lib/taskjuggler/reports/TableReport.rb">lib/taskjuggler/reports/TableReport.rb</a></li>
43
-
44
- </ul>
45
- </div>
46
- </div>
47
-
48
-
49
- </div>
50
-
51
- <div id="class-metadata">
52
-
53
- <!-- Parent Class -->
54
-
55
- <div id="parent-class-section" class="section">
56
- <h3 class="section-header">Parent</h3>
57
-
58
- <p class="link"><a href="ReportBase.html">TaskJuggler::ReportBase</a></p>
59
-
60
- </div>
61
-
62
-
63
- <!-- Namespace Contents -->
64
-
65
-
66
- <!-- Method Quickref -->
67
-
68
- <div id="method-list-section" class="section">
69
- <h3 class="section-header">Methods</h3>
70
- <ul class="link-list">
71
-
72
- <li><a href="#method-c-defaultColumnTitle">::defaultColumnTitle</a></li>
73
-
74
- <li><a href="#method-c-new">::new</a></li>
75
-
76
- <li><a href="#method-i-adjustReportPeriod">#adjustReportPeriod</a></li>
77
-
78
- <li><a href="#method-i-alignment">#alignment</a></li>
79
-
80
- <li><a href="#method-i-calculated%3F">#calculated?</a></li>
81
-
82
- <li><a href="#method-i-checkCellText">#checkCellText</a></li>
83
-
84
- <li><a href="#method-i-genCalChartHeader">#genCalChartHeader</a></li>
85
-
86
- <li><a href="#method-i-genCalChartResourceCell">#genCalChartResourceCell</a></li>
87
-
88
- <li><a href="#method-i-genCalChartTaskCell">#genCalChartTaskCell</a></li>
89
-
90
- <li><a href="#method-i-genCalculatedCell">#genCalculatedCell</a></li>
91
-
92
- <li><a href="#method-i-genStandardCell">#genStandardCell</a></li>
93
-
94
- <li><a href="#method-i-generateHeaderCell">#generateHeaderCell</a></li>
95
-
96
- <li><a href="#method-i-generateIntermediateFormat">#generateIntermediateFormat</a></li>
97
-
98
- <li><a href="#method-i-generateResourceList">#generateResourceList</a></li>
99
-
100
- <li><a href="#method-i-generateTableCell">#generateTableCell</a></li>
101
-
102
- <li><a href="#method-i-generateTaskList">#generateTaskList</a></li>
103
-
104
- <li><a href="#method-i-indent">#indent</a></li>
105
-
106
- <li><a href="#method-i-newCell">#newCell</a></li>
107
-
108
- <li><a href="#method-i-scenarioSpecific%3F">#scenarioSpecific?</a></li>
109
-
110
- <li><a href="#method-i-setCustomCellAttributes">#setCustomCellAttributes</a></li>
111
-
112
- <li><a href="#method-i-setIndent">#setIndent</a></li>
113
-
114
- <li><a href="#method-i-setReportPeriod">#setReportPeriod</a></li>
115
-
116
- <li><a href="#method-i-setScenarioSettings">#setScenarioSettings</a></li>
117
-
118
- <li><a href="#method-i-setStandardCellAttributes">#setStandardCellAttributes</a></li>
119
-
120
- <li><a href="#method-i-supportedColumns">#supportedColumns</a></li>
121
-
122
- <li><a href="#method-i-to_csv">#to_csv</a></li>
123
-
124
- <li><a href="#method-i-to_html">#to_html</a></li>
125
-
126
- <li><a href="#method-i-tryCellMerging">#tryCellMerging</a></li>
127
-
128
- </ul>
129
- </div>
130
-
131
-
132
- <!-- Included Modules -->
133
-
134
- </div>
135
-
136
- <div id="project-metadata">
137
-
138
-
139
- <div id="fileindex-section" class="section project-section">
140
- <h3 class="section-header">Files</h3>
141
- <ul>
142
-
143
- <li class="file"><a href="../CHANGELOG.html">CHANGELOG</a></li>
144
-
145
- <li class="file"><a href="../COPYING.html">COPYING</a></li>
146
-
147
- <li class="file"><a href="../README_rdoc.html">README.rdoc</a></li>
148
-
149
- </ul>
150
- </div>
151
-
152
-
153
- <div id="classindex-section" class="section project-section">
154
- <h3 class="section-header">Class Index
155
- <span class="search-toggle"><img src="../images/find.png"
156
- height="16" width="16" alt="[+]"
157
- title="show/hide quicksearch" /></span></h3>
158
- <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
159
- <fieldset>
160
- <legend>Quicksearch</legend>
161
- <input type="text" name="quicksearch" value=""
162
- class="quicksearch-field" />
163
- </fieldset>
164
- </form>
165
-
166
- <ul class="link-list">
167
-
168
- <li><a href="../TaskJuggler.html">TaskJuggler</a></li>
169
-
170
- <li><a href="../TaskJuggler/Account.html">TaskJuggler::Account</a></li>
171
-
172
- <li><a href="../TaskJuggler/AccountAttribute.html">TaskJuggler::AccountAttribute</a></li>
173
-
174
- <li><a href="../TaskJuggler/AccountScenario.html">TaskJuggler::AccountScenario</a></li>
175
-
176
- <li><a href="../TaskJuggler/Allocation.html">TaskJuggler::Allocation</a></li>
177
-
178
- <li><a href="../TaskJuggler/AllocationAttribute.html">TaskJuggler::AllocationAttribute</a></li>
179
-
180
- <li><a href="../TaskJuggler/AttributeBase.html">TaskJuggler::AttributeBase</a></li>
181
-
182
- <li><a href="../TaskJuggler/AttributeDefinition.html">TaskJuggler::AttributeDefinition</a></li>
183
-
184
- <li><a href="../TaskJuggler/AttributeOverwrite.html">TaskJuggler::AttributeOverwrite</a></li>
185
-
186
- <li><a href="../TaskJuggler/BatchProcessor.html">TaskJuggler::BatchProcessor</a></li>
187
-
188
- <li><a href="../TaskJuggler/Booking.html">TaskJuggler::Booking</a></li>
189
-
190
- <li><a href="../TaskJuggler/BookingListAttribute.html">TaskJuggler::BookingListAttribute</a></li>
191
-
192
- <li><a href="../TaskJuggler/BooleanAttribute.html">TaskJuggler::BooleanAttribute</a></li>
193
-
194
- <li><a href="../TaskJuggler/CSVFile.html">TaskJuggler::CSVFile</a></li>
195
-
196
- <li><a href="../TaskJuggler/CellSettingPattern.html">TaskJuggler::CellSettingPattern</a></li>
197
-
198
- <li><a href="../TaskJuggler/CellSettingPatternList.html">TaskJuggler::CellSettingPatternList</a></li>
199
-
200
- <li><a href="../TaskJuggler/Charge.html">TaskJuggler::Charge</a></li>
201
-
202
- <li><a href="../TaskJuggler/ChargeListAttribute.html">TaskJuggler::ChargeListAttribute</a></li>
203
-
204
- <li><a href="../TaskJuggler/ChargeSet.html">TaskJuggler::ChargeSet</a></li>
205
-
206
- <li><a href="../TaskJuggler/ChargeSetListAttribute.html">TaskJuggler::ChargeSetListAttribute</a></li>
207
-
208
- <li><a href="../TaskJuggler/CollisionDetector.html">TaskJuggler::CollisionDetector</a></li>
209
-
210
- <li><a href="../TaskJuggler/ColumnListAttribute.html">TaskJuggler::ColumnListAttribute</a></li>
211
-
212
- <li><a href="../TaskJuggler/ColumnTable.html">TaskJuggler::ColumnTable</a></li>
213
-
214
- <li><a href="../TaskJuggler/Daemon.html">TaskJuggler::Daemon</a></li>
215
-
216
- <li><a href="../TaskJuggler/DataCache.html">TaskJuggler::DataCache</a></li>
217
-
218
- <li><a href="../TaskJuggler/DataCacheEntry.html">TaskJuggler::DataCacheEntry</a></li>
219
-
220
- <li><a href="../TaskJuggler/DateAttribute.html">TaskJuggler::DateAttribute</a></li>
221
-
222
- <li><a href="../TaskJuggler/DefinitionListAttribute.html">TaskJuggler::DefinitionListAttribute</a></li>
223
-
224
- <li><a href="../TaskJuggler/DependencyListAttribute.html">TaskJuggler::DependencyListAttribute</a></li>
225
-
226
- <li><a href="../TaskJuggler/DurationAttribute.html">TaskJuggler::DurationAttribute</a></li>
227
-
228
- <li><a href="../TaskJuggler/FileList.html">TaskJuggler::FileList</a></li>
229
-
230
- <li><a href="../TaskJuggler/FileRecord.html">TaskJuggler::FileRecord</a></li>
231
-
232
- <li><a href="../TaskJuggler/FixnumAttribute.html">TaskJuggler::FixnumAttribute</a></li>
233
-
234
- <li><a href="../TaskJuggler/FlagListAttribute.html">TaskJuggler::FlagListAttribute</a></li>
235
-
236
- <li><a href="../TaskJuggler/FloatAttribute.html">TaskJuggler::FloatAttribute</a></li>
237
-
238
- <li><a href="../TaskJuggler/FormatListAttribute.html">TaskJuggler::FormatListAttribute</a></li>
239
-
240
- <li><a href="../TaskJuggler/GanttChart.html">TaskJuggler::GanttChart</a></li>
241
-
242
- <li><a href="../TaskJuggler/GanttContainer.html">TaskJuggler::GanttContainer</a></li>
243
-
244
- <li><a href="../TaskJuggler/GanttHeader.html">TaskJuggler::GanttHeader</a></li>
245
-
246
- <li><a href="../TaskJuggler/GanttHeaderScaleItem.html">TaskJuggler::GanttHeaderScaleItem</a></li>
247
-
248
- <li><a href="../TaskJuggler/GanttLine.html">TaskJuggler::GanttLine</a></li>
249
-
250
- <li><a href="../TaskJuggler/GanttLoadStack.html">TaskJuggler::GanttLoadStack</a></li>
251
-
252
- <li><a href="../TaskJuggler/GanttMilestone.html">TaskJuggler::GanttMilestone</a></li>
253
-
254
- <li><a href="../TaskJuggler/GanttRouter.html">TaskJuggler::GanttRouter</a></li>
255
-
256
- <li><a href="../TaskJuggler/GanttTaskBar.html">TaskJuggler::GanttTaskBar</a></li>
257
-
258
- <li><a href="../TaskJuggler/HTMLDocument.html">TaskJuggler::HTMLDocument</a></li>
259
-
260
- <li><a href="../TaskJuggler/HTMLElements.html">TaskJuggler::HTMLElements</a></li>
261
-
262
- <li><a href="../TaskJuggler/HTMLGraphics.html">TaskJuggler::HTMLGraphics</a></li>
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
-
278
- <li><a href="../TaskJuggler/Interval.html">TaskJuggler::Interval</a></li>
279
-
280
- <li><a href="../TaskJuggler/IntervalList.html">TaskJuggler::IntervalList</a></li>
281
-
282
- <li><a href="../TaskJuggler/JobInfo.html">TaskJuggler::JobInfo</a></li>
283
-
284
- <li><a href="../TaskJuggler/Journal.html">TaskJuggler::Journal</a></li>
285
-
286
- <li><a href="../TaskJuggler/JournalEntry.html">TaskJuggler::JournalEntry</a></li>
287
-
288
- <li><a href="../TaskJuggler/JournalEntryList.html">TaskJuggler::JournalEntryList</a></li>
289
-
290
- <li><a href="../TaskJuggler/KeywordArray.html">TaskJuggler::KeywordArray</a></li>
291
-
292
- <li><a href="../TaskJuggler/KeywordDocumentation.html">TaskJuggler::KeywordDocumentation</a></li>
293
-
294
- <li><a href="../TaskJuggler/Limits.html">TaskJuggler::Limits</a></li>
295
-
296
- <li><a href="../TaskJuggler/Limits/Limit.html">TaskJuggler::Limits::Limit</a></li>
297
-
298
- <li><a href="../TaskJuggler/LimitsAttribute.html">TaskJuggler::LimitsAttribute</a></li>
299
-
300
- <li><a href="../TaskJuggler/ListAttributeBase.html">TaskJuggler::ListAttributeBase</a></li>
301
-
302
- <li><a href="../TaskJuggler/Log.html">TaskJuggler::Log</a></li>
303
-
304
- <li><a href="../TaskJuggler/LogFile.html">TaskJuggler::LogFile</a></li>
305
-
306
- <li><a href="../TaskJuggler/LogicalAttribute.html">TaskJuggler::LogicalAttribute</a></li>
307
-
308
- <li><a href="../TaskJuggler/LogicalExpression.html">TaskJuggler::LogicalExpression</a></li>
309
-
310
- <li><a href="../TaskJuggler/LogicalExpressionAttribute.html">TaskJuggler::LogicalExpressionAttribute</a></li>
311
-
312
- <li><a href="../TaskJuggler/LogicalExpressionListAttribute.html">TaskJuggler::LogicalExpressionListAttribute</a></li>
313
-
314
- <li><a href="../TaskJuggler/LogicalFlag.html">TaskJuggler::LogicalFlag</a></li>
315
-
316
- <li><a href="../TaskJuggler/LogicalFunction.html">TaskJuggler::LogicalFunction</a></li>
317
-
318
- <li><a href="../TaskJuggler/LogicalOperation.html">TaskJuggler::LogicalOperation</a></li>
319
-
320
- <li><a href="../TaskJuggler/ManagerResponsibilities.html">TaskJuggler::ManagerResponsibilities</a></li>
321
-
322
- <li><a href="../TaskJuggler/ManagerStatusRecord.html">TaskJuggler::ManagerStatusRecord</a></li>
323
-
324
- <li><a href="../TaskJuggler/Message.html">TaskJuggler::Message</a></li>
325
-
326
- <li><a href="../TaskJuggler/MessageHandler.html">TaskJuggler::MessageHandler</a></li>
327
-
328
- <li><a href="../TaskJuggler/Navigator.html">TaskJuggler::Navigator</a></li>
329
-
330
- <li><a href="../TaskJuggler/NavigatorElement.html">TaskJuggler::NavigatorElement</a></li>
331
-
332
- <li><a href="../TaskJuggler/NikuProject.html">TaskJuggler::NikuProject</a></li>
333
-
334
- <li><a href="../TaskJuggler/NikuReport.html">TaskJuggler::NikuReport</a></li>
335
-
336
- <li><a href="../TaskJuggler/NikuResource.html">TaskJuggler::NikuResource</a></li>
337
-
338
- <li><a href="../TaskJuggler/NodeListAttribute.html">TaskJuggler::NodeListAttribute</a></li>
339
-
340
- <li><a href="../TaskJuggler/PlaceHolderCell.html">TaskJuggler::PlaceHolderCell</a></li>
341
-
342
- <li><a href="../TaskJuggler/ProcessIntercom.html">TaskJuggler::ProcessIntercom</a></li>
343
-
344
- <li><a href="../TaskJuggler/ProcessIntercomIface.html">TaskJuggler::ProcessIntercomIface</a></li>
345
-
346
- <li><a href="../TaskJuggler/Project.html">TaskJuggler::Project</a></li>
347
-
348
- <li><a href="../TaskJuggler/ProjectBroker.html">TaskJuggler::ProjectBroker</a></li>
349
-
350
- <li><a href="../TaskJuggler/ProjectBrokerIface.html">TaskJuggler::ProjectBrokerIface</a></li>
351
-
352
- <li><a href="../TaskJuggler/ProjectFileParser.html">TaskJuggler::ProjectFileParser</a></li>
353
-
354
- <li><a href="../TaskJuggler/ProjectFileScanner.html">TaskJuggler::ProjectFileScanner</a></li>
355
-
356
- <li><a href="../TaskJuggler/ProjectRecord.html">TaskJuggler::ProjectRecord</a></li>
357
-
358
- <li><a href="../TaskJuggler/ProjectServer.html">TaskJuggler::ProjectServer</a></li>
359
-
360
- <li><a href="../TaskJuggler/ProjectServerIface.html">TaskJuggler::ProjectServerIface</a></li>
361
-
362
- <li><a href="../TaskJuggler/PropertyAttribute.html">TaskJuggler::PropertyAttribute</a></li>
363
-
364
- <li><a href="../TaskJuggler/PropertyList.html">TaskJuggler::PropertyList</a></li>
365
-
366
- <li><a href="../TaskJuggler/PropertySet.html">TaskJuggler::PropertySet</a></li>
367
-
368
- <li><a href="../TaskJuggler/PropertyTreeNode.html">TaskJuggler::PropertyTreeNode</a></li>
369
-
370
- <li><a href="../TaskJuggler/Query.html">TaskJuggler::Query</a></li>
371
-
372
- <li><a href="../TaskJuggler/RTFHandlers.html">TaskJuggler::RTFHandlers</a></li>
373
-
374
- <li><a href="../TaskJuggler/RTFNavigator.html">TaskJuggler::RTFNavigator</a></li>
375
-
376
- <li><a href="../TaskJuggler/RTFQuery.html">TaskJuggler::RTFQuery</a></li>
377
-
378
- <li><a href="../TaskJuggler/RTFReport.html">TaskJuggler::RTFReport</a></li>
379
-
380
- <li><a href="../TaskJuggler/RTFReportLink.html">TaskJuggler::RTFReportLink</a></li>
381
-
382
- <li><a href="../TaskJuggler/RTFWithQuerySupport.html">TaskJuggler::RTFWithQuerySupport</a></li>
383
-
384
- <li><a href="../TaskJuggler/RealFormat.html">TaskJuggler::RealFormat</a></li>
385
-
386
- <li><a href="../TaskJuggler/RealFormatAttribute.html">TaskJuggler::RealFormatAttribute</a></li>
387
-
388
- <li><a href="../TaskJuggler/ReferenceAttribute.html">TaskJuggler::ReferenceAttribute</a></li>
389
-
390
- <li><a href="../TaskJuggler/Report.html">TaskJuggler::Report</a></li>
391
-
392
- <li><a href="../TaskJuggler/ReportBase.html">TaskJuggler::ReportBase</a></li>
393
-
394
- <li><a href="../TaskJuggler/ReportContext.html">TaskJuggler::ReportContext</a></li>
395
-
396
- <li><a href="../TaskJuggler/ReportScenario.html">TaskJuggler::ReportScenario</a></li>
397
-
398
- <li><a href="../TaskJuggler/ReportServer.html">TaskJuggler::ReportServer</a></li>
399
-
400
- <li><a href="../TaskJuggler/ReportServerIface.html">TaskJuggler::ReportServerIface</a></li>
401
-
402
- <li><a href="../TaskJuggler/ReportServerRecord.html">TaskJuggler::ReportServerRecord</a></li>
403
-
404
- <li><a href="../TaskJuggler/ReportServlet.html">TaskJuggler::ReportServlet</a></li>
405
-
406
- <li><a href="../TaskJuggler/ReportTable.html">TaskJuggler::ReportTable</a></li>
407
-
408
- <li><a href="../TaskJuggler/ReportTableCell.html">TaskJuggler::ReportTableCell</a></li>
409
-
410
- <li><a href="../TaskJuggler/ReportTableColumn.html">TaskJuggler::ReportTableColumn</a></li>
411
-
412
- <li><a href="../TaskJuggler/ReportTableLegend.html">TaskJuggler::ReportTableLegend</a></li>
413
-
414
- <li><a href="../TaskJuggler/ReportTableLine.html">TaskJuggler::ReportTableLine</a></li>
415
-
416
- <li><a href="../TaskJuggler/Resource.html">TaskJuggler::Resource</a></li>
417
-
418
- <li><a href="../TaskJuggler/ResourceListAttribute.html">TaskJuggler::ResourceListAttribute</a></li>
419
-
420
- <li><a href="../TaskJuggler/ResourceListRE.html">TaskJuggler::ResourceListRE</a></li>
421
-
422
- <li><a href="../TaskJuggler/ResourceScenario.html">TaskJuggler::ResourceScenario</a></li>
423
-
424
- <li><a href="../TaskJuggler/RichText.html">TaskJuggler::RichText</a></li>
425
-
426
- <li><a href="../TaskJuggler/RichTextAttribute.html">TaskJuggler::RichTextAttribute</a></li>
427
-
428
- <li><a href="../TaskJuggler/RichTextDocument.html">TaskJuggler::RichTextDocument</a></li>
429
-
430
- <li><a href="../TaskJuggler/RichTextElement.html">TaskJuggler::RichTextElement</a></li>
431
-
432
- <li><a href="../TaskJuggler/RichTextFunctionExample.html">TaskJuggler::RichTextFunctionExample</a></li>
433
-
434
- <li><a href="../TaskJuggler/RichTextFunctionHandler.html">TaskJuggler::RichTextFunctionHandler</a></li>
435
-
436
- <li><a href="../TaskJuggler/RichTextImage.html">TaskJuggler::RichTextImage</a></li>
437
-
438
- <li><a href="../TaskJuggler/RichTextIntermediate.html">TaskJuggler::RichTextIntermediate</a></li>
439
-
440
- <li><a href="../TaskJuggler/RichTextParser.html">TaskJuggler::RichTextParser</a></li>
441
-
442
- <li><a href="../TaskJuggler/RichTextScanner.html">TaskJuggler::RichTextScanner</a></li>
443
-
444
- <li><a href="../TaskJuggler/RichTextSnip.html">TaskJuggler::RichTextSnip</a></li>
445
-
446
- <li><a href="../TaskJuggler/RichTextSyntaxRules.html">TaskJuggler::RichTextSyntaxRules</a></li>
447
-
448
- <li><a href="../TaskJuggler/Scenario.html">TaskJuggler::Scenario</a></li>
449
-
450
- <li><a href="../TaskJuggler/ScenarioData.html">TaskJuggler::ScenarioData</a></li>
451
-
452
- <li><a href="../TaskJuggler/ScenarioListAttribute.html">TaskJuggler::ScenarioListAttribute</a></li>
453
-
454
- <li><a href="../TaskJuggler/Scoreboard.html">TaskJuggler::Scoreboard</a></li>
455
-
456
- <li><a href="../TaskJuggler/ScoreboardInterval.html">TaskJuggler::ScoreboardInterval</a></li>
457
-
458
- <li><a href="../TaskJuggler/SheetHandlerBase.html">TaskJuggler::SheetHandlerBase</a></li>
459
-
460
- <li><a href="../TaskJuggler/SheetReceiver.html">TaskJuggler::SheetReceiver</a></li>
461
-
462
- <li><a href="../TaskJuggler/SheetSender.html">TaskJuggler::SheetSender</a></li>
463
-
464
- <li><a href="../TaskJuggler/Shift.html">TaskJuggler::Shift</a></li>
465
-
466
- <li><a href="../TaskJuggler/ShiftAssignment.html">TaskJuggler::ShiftAssignment</a></li>
467
-
468
- <li><a href="../TaskJuggler/ShiftAssignments.html">TaskJuggler::ShiftAssignments</a></li>
469
-
470
- <li><a href="../TaskJuggler/ShiftAssignmentsAttribute.html">TaskJuggler::ShiftAssignmentsAttribute</a></li>
471
-
472
- <li><a href="../TaskJuggler/ShiftScenario.html">TaskJuggler::ShiftScenario</a></li>
473
-
474
- <li><a href="../TaskJuggler/SimpleQueryExpander.html">TaskJuggler::SimpleQueryExpander</a></li>
475
-
476
- <li><a href="../TaskJuggler/SortListAttribute.html">TaskJuggler::SortListAttribute</a></li>
477
-
478
- <li><a href="../TaskJuggler/StatusSheetReceiver.html">TaskJuggler::StatusSheetReceiver</a></li>
479
-
480
- <li><a href="../TaskJuggler/StatusSheetReport.html">TaskJuggler::StatusSheetReport</a></li>
481
-
482
- <li><a href="../TaskJuggler/StatusSheetSender.html">TaskJuggler::StatusSheetSender</a></li>
483
-
484
- <li><a href="../TaskJuggler/StdIoWrapper.html">TaskJuggler::StdIoWrapper</a></li>
485
-
486
- <li><a href="../TaskJuggler/StringAttribute.html">TaskJuggler::StringAttribute</a></li>
487
-
488
- <li><a href="../TaskJuggler/SymbolAttribute.html">TaskJuggler::SymbolAttribute</a></li>
489
-
490
- <li><a href="../TaskJuggler/SyntaxReference.html">TaskJuggler::SyntaxReference</a></li>
491
-
492
- <li><a href="../TaskJuggler/TOCEntry.html">TaskJuggler::TOCEntry</a></li>
493
-
494
- <li><a href="../TaskJuggler/TSResourceRecord.html">TaskJuggler::TSResourceRecord</a></li>
495
-
496
- <li><a href="../TaskJuggler/TSTaskRecord.html">TaskJuggler::TSTaskRecord</a></li>
497
-
498
- <li><a href="../TaskJuggler/TableColumnDefinition.html">TaskJuggler::TableColumnDefinition</a></li>
499
-
500
- <li><a href="../TaskJuggler/TableOfContents.html">TaskJuggler::TableOfContents</a></li>
501
-
502
- <li><a href="../TaskJuggler/TableReport.html">TaskJuggler::TableReport</a></li>
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
-
508
- <li><a href="../TaskJuggler/Task.html">TaskJuggler::Task</a></li>
509
-
510
- <li><a href="../TaskJuggler/TaskDepListAttribute.html">TaskJuggler::TaskDepListAttribute</a></li>
511
-
512
- <li><a href="../TaskJuggler/TaskDependency.html">TaskJuggler::TaskDependency</a></li>
513
-
514
- <li><a href="../TaskJuggler/TaskListAttribute.html">TaskJuggler::TaskListAttribute</a></li>
515
-
516
- <li><a href="../TaskJuggler/TaskListRE.html">TaskJuggler::TaskListRE</a></li>
517
-
518
- <li><a href="../TaskJuggler/TaskScenario.html">TaskJuggler::TaskScenario</a></li>
519
-
520
- <li><a href="../TaskJuggler/TernarySearchTree.html">TaskJuggler::TernarySearchTree</a></li>
521
-
522
- <li><a href="../TaskJuggler/TextFormatter.html">TaskJuggler::TextFormatter</a></li>
523
-
524
- <li><a href="../TaskJuggler/TextParser.html">TaskJuggler::TextParser</a></li>
525
-
526
- <li><a href="../TaskJuggler/TextParser/Macro.html">TaskJuggler::TextParser::Macro</a></li>
527
-
528
- <li><a href="../TaskJuggler/TextParser/MacroTable.html">TaskJuggler::TextParser::MacroTable</a></li>
529
-
530
- <li><a href="../TaskJuggler/TextParser/Pattern.html">TaskJuggler::TextParser::Pattern</a></li>
531
-
532
- <li><a href="../TaskJuggler/TextParser/Rule.html">TaskJuggler::TextParser::Rule</a></li>
533
-
534
- <li><a href="../TaskJuggler/TextParser/Scanner.html">TaskJuggler::TextParser::Scanner</a></li>
535
-
536
- <li><a href="../TaskJuggler/TextParser/Scanner/BufferStreamHandle.html">TaskJuggler::TextParser::Scanner::BufferStreamHandle</a></li>
537
-
538
- <li><a href="../TaskJuggler/TextParser/Scanner/FileStreamHandle.html">TaskJuggler::TextParser::Scanner::FileStreamHandle</a></li>
539
-
540
- <li><a href="../TaskJuggler/TextParser/Scanner/MacroStackEntry.html">TaskJuggler::TextParser::Scanner::MacroStackEntry</a></li>
541
-
542
- <li><a href="../TaskJuggler/TextParser/Scanner/StreamHandle.html">TaskJuggler::TextParser::Scanner::StreamHandle</a></li>
543
-
544
- <li><a href="../TaskJuggler/TextParser/SourceFileInfo.html">TaskJuggler::TextParser::SourceFileInfo</a></li>
545
-
546
- <li><a href="../TaskJuggler/TextParser/StackElement.html">TaskJuggler::TextParser::StackElement</a></li>
547
-
548
- <li><a href="../TaskJuggler/TextParser/State.html">TaskJuggler::TextParser::State</a></li>
549
-
550
- <li><a href="../TaskJuggler/TextParser/StateTransition.html">TaskJuggler::TextParser::StateTransition</a></li>
551
-
552
- <li><a href="../TaskJuggler/TextParser/TextParserResultArray.html">TaskJuggler::TextParser::TextParserResultArray</a></li>
553
-
554
- <li><a href="../TaskJuggler/TextParser/TokenDoc.html">TaskJuggler::TextParser::TokenDoc</a></li>
555
-
556
- <li><a href="../TaskJuggler/TextReport.html">TaskJuggler::TextReport</a></li>
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
-
562
- <li><a href="../TaskJuggler/TimeSheet.html">TaskJuggler::TimeSheet</a></li>
563
-
564
- <li><a href="../TaskJuggler/TimeSheetReceiver.html">TaskJuggler::TimeSheetReceiver</a></li>
565
-
566
- <li><a href="../TaskJuggler/TimeSheetRecord.html">TaskJuggler::TimeSheetRecord</a></li>
567
-
568
- <li><a href="../TaskJuggler/TimeSheetReport.html">TaskJuggler::TimeSheetReport</a></li>
569
-
570
- <li><a href="../TaskJuggler/TimeSheetSender.html">TaskJuggler::TimeSheetSender</a></li>
571
-
572
- <li><a href="../TaskJuggler/TimeSheetSummary.html">TaskJuggler::TimeSheetSummary</a></li>
573
-
574
- <li><a href="../TaskJuggler/TimeSheets.html">TaskJuggler::TimeSheets</a></li>
575
-
576
- <li><a href="../TaskJuggler/Tj3.html">TaskJuggler::Tj3</a></li>
577
-
578
- <li><a href="../TaskJuggler/Tj3AppBase.html">TaskJuggler::Tj3AppBase</a></li>
579
-
580
- <li><a href="../TaskJuggler/Tj3Client.html">TaskJuggler::Tj3Client</a></li>
581
-
582
- <li><a href="../TaskJuggler/Tj3Daemon.html">TaskJuggler::Tj3Daemon</a></li>
583
-
584
- <li><a href="../TaskJuggler/Tj3Man.html">TaskJuggler::Tj3Man</a></li>
585
-
586
- <li><a href="../TaskJuggler/Tj3SheetAppBase.html">TaskJuggler::Tj3SheetAppBase</a></li>
587
-
588
- <li><a href="../TaskJuggler/Tj3SsReceiver.html">TaskJuggler::Tj3SsReceiver</a></li>
589
-
590
- <li><a href="../TaskJuggler/Tj3SsSender.html">TaskJuggler::Tj3SsSender</a></li>
591
-
592
- <li><a href="../TaskJuggler/Tj3TsReceiver.html">TaskJuggler::Tj3TsReceiver</a></li>
593
-
594
- <li><a href="../TaskJuggler/Tj3TsSender.html">TaskJuggler::Tj3TsSender</a></li>
595
-
596
- <li><a href="../TaskJuggler/Tj3TsSummary.html">TaskJuggler::Tj3TsSummary</a></li>
597
-
598
- <li><a href="../TaskJuggler/TjException.html">TaskJuggler::TjException</a></li>
599
-
600
- <li><a href="../TaskJuggler/TjRuntimeError.html">TaskJuggler::TjRuntimeError</a></li>
601
-
602
- <li><a href="../TaskJuggler/TjTime.html">TaskJuggler::TjTime</a></li>
603
-
604
- <li><a href="../TaskJuggler/TjpExample.html">TaskJuggler::TjpExample</a></li>
605
-
606
- <li><a href="../TaskJuggler/TjpExportRE.html">TaskJuggler::TjpExportRE</a></li>
607
-
608
- <li><a href="../TaskJuggler/TjpSyntaxRules.html">TaskJuggler::TjpSyntaxRules</a></li>
609
-
610
- <li><a href="../TaskJuggler/URLParameter.html">TaskJuggler::URLParameter</a></li>
611
-
612
- <li><a href="../TaskJuggler/UserManual.html">TaskJuggler::UserManual</a></li>
613
-
614
- <li><a href="../TaskJuggler/VimSyntax.html">TaskJuggler::VimSyntax</a></li>
615
-
616
- <li><a href="../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
617
-
618
- <li><a href="../TaskJuggler/WelcomePage.html">TaskJuggler::WelcomePage</a></li>
619
-
620
- <li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
621
-
622
- <li><a href="../TaskJuggler/WorkingHoursAttribute.html">TaskJuggler::WorkingHoursAttribute</a></li>
623
-
624
- <li><a href="../TaskJuggler/XMLBlob.html">TaskJuggler::XMLBlob</a></li>
625
-
626
- <li><a href="../TaskJuggler/XMLComment.html">TaskJuggler::XMLComment</a></li>
627
-
628
- <li><a href="../TaskJuggler/XMLDocument.html">TaskJuggler::XMLDocument</a></li>
629
-
630
- <li><a href="../TaskJuggler/XMLElement.html">TaskJuggler::XMLElement</a></li>
631
-
632
- <li><a href="../TaskJuggler/XMLNamedText.html">TaskJuggler::XMLNamedText</a></li>
633
-
634
- <li><a href="../TaskJuggler/XMLText.html">TaskJuggler::XMLText</a></li>
635
-
636
- <li><a href="../Diff.html">Diff</a></li>
637
-
638
- <li><a href="../Diff/Hunk.html">Diff::Hunk</a></li>
639
-
640
- <li><a href="../AppConfig.html">AppConfig</a></li>
641
-
642
- <li><a href="../Diffable.html">Diffable</a></li>
643
-
644
- <li><a href="../DiffableString.html">DiffableString</a></li>
645
-
646
- <li><a href="../Object.html">Object</a></li>
647
-
648
- <li><a href="../RuntimeConfig.html">RuntimeConfig</a></li>
649
-
650
- <li><a href="../String.html">String</a></li>
651
-
652
- </ul>
653
- <div id="no-class-search-results" style="display: none;">No matching classes.</div>
654
- </div>
655
-
656
-
657
- </div>
658
- </div>
659
-
660
- <div id="documentation">
661
- <h1 class="class">TaskJuggler::TableReport</h1>
662
-
663
- <div id="description">
664
- <p>
665
- This is base class for all types of tabular reports. All tabular reports
666
- are converted to an abstract (output independent) intermediate form first,
667
- before the are turned into the requested output format.
668
- </p>
669
-
670
- </div>
671
-
672
- <!-- Constants -->
673
-
674
-
675
- <!-- Attributes -->
676
-
677
- <div id="attribute-method-details" class="method-section section">
678
- <h3 class="section-header">Attributes</h3>
679
-
680
-
681
- <div id="legend-attribute-method" class="method-detail">
682
- <a name="legend"></a>
683
-
684
- <div class="method-heading attribute-method-heading">
685
- <span class="method-name">legend</span><span
686
- class="attribute-access-type">[R]</span>
687
- </div>
688
-
689
- <div class="method-description">
690
-
691
-
692
-
693
- </div>
694
- </div>
695
-
696
- </div>
697
-
698
-
699
- <!-- Methods -->
700
-
701
- <div id="public-class-method-details" class="method-section section">
702
- <h3 class="section-header">Public Class Methods</h3>
703
-
704
-
705
- <div id="default-olumn-itle-method" class="method-detail ">
706
- <a name="method-c-defaultColumnTitle"></a>
707
-
708
- <div class="method-heading">
709
-
710
- <span class="method-name">defaultColumnTitle</span><span
711
- class="method-args">(id)</span>
712
- <span class="method-click-advice">click to toggle source</span>
713
-
714
- </div>
715
-
716
- <div class="method-description">
717
-
718
- <p>
719
- Returns the default column title for the columns <em>id</em>.
720
- </p>
721
-
722
-
723
-
724
- <div class="method-source-code"
725
- id="default-olumn-itle-source">
726
- <pre>
727
- <span class="ruby-comment cmt"># File lib/taskjuggler/reports/TableReport.rb, line 135</span>
728
- 135: <span class="ruby-keyword kw">def</span> <span class="ruby-constant">TableReport</span><span class="ruby-operator">::</span><span class="ruby-identifier">defaultColumnTitle</span>(<span class="ruby-identifier">id</span>)
729
- 136: <span class="ruby-comment cmt"># Return an empty string for some special columns that don't have a fixed</span>
730
- 137: <span class="ruby-comment cmt"># title.</span>
731
- 138: <span class="ruby-identifier">specials</span> = <span class="ruby-node">%( chart hourly daily weekly monthly quarterly yearly)</span>
732
- 139: <span class="ruby-keyword kw">return</span> <span class="ruby-value str">''</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">specials</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">id</span>)
733
- 140:
734
- 141: <span class="ruby-comment cmt"># Return the title for build-in hardwired columns.</span>
735
- 142: <span class="ruby-identifier">@@propertiesById</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">id</span>) <span class="ruby-operator">?</span> <span class="ruby-identifier">@@propertiesById</span>[<span class="ruby-identifier">id</span>][<span class="ruby-value">0</span>] <span class="ruby-operator">:</span> <span class="ruby-keyword kw">nil</span>
736
- 143: <span class="ruby-keyword kw">end</span></pre>
737
- </div>
738
-
739
- </div>
740
-
741
-
742
-
743
-
744
- </div>
745
-
746
-
747
- <div id="new-method" class="method-detail ">
748
- <a name="method-c-new"></a>
749
-
750
- <div class="method-heading">
751
-
752
- <span class="method-name">new</span><span
753
- class="method-args">(report)</span>
754
- <span class="method-click-advice">click to toggle source</span>
755
-
756
- </div>
757
-
758
- <div class="method-description">
759
-
760
- <p>
761
- Generate a new <a href="TableReport.html">TableReport</a> object.
762
- </p>
763
-
764
-
765
-
766
- <div class="method-source-code"
767
- id="new-source">
768
- <pre>
769
- <span class="ruby-comment cmt"># File lib/taskjuggler/reports/TableReport.rb, line 73</span>
770
- 73: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">report</span>)
771
- 74: <span class="ruby-keyword kw">super</span>
772
- 75: <span class="ruby-ivar">@report</span>.<span class="ruby-identifier">content</span> = <span class="ruby-keyword kw">self</span>
773
- 76:
774
- 77: <span class="ruby-comment cmt"># Reference to the intermediate representation.</span>
775
- 78: <span class="ruby-ivar">@table</span> = <span class="ruby-keyword kw">nil</span>
776
- 79: <span class="ruby-ivar">@start</span> = <span class="ruby-ivar">@end</span> = <span class="ruby-keyword kw">nil</span>
777
- 80:
778
- 81: <span class="ruby-ivar">@legend</span> = <span class="ruby-constant">ReportTableLegend</span>.<span class="ruby-identifier">new</span>
779
- 82:
780
- 83: <span class="ruby-keyword kw">end</span></pre>
781
- </div>
782
-
783
- </div>
784
-
785
-
786
-
787
-
788
- </div>
789
-
790
-
791
- </div>
792
-
793
- <div id="public-instance-method-details" class="method-section section">
794
- <h3 class="section-header">Public Instance Methods</h3>
795
-
796
-
797
- <div id="alignment-method" class="method-detail ">
798
- <a name="method-i-alignment"></a>
799
-
800
- <div class="method-heading">
801
-
802
- <span class="method-name">alignment</span><span
803
- class="method-args">(colId, propertyType)</span>
804
- <span class="method-click-advice">click to toggle source</span>
805
-
806
- </div>
807
-
808
- <div class="method-description">
809
-
810
- <p>
811
- Return the alignment of the column based on the <em>colId</em> or the
812
- <em>propertyType</em>.
813
- </p>
814
-
815
-
816
-
817
- <div class="method-source-code"
818
- id="alignment-source">
819
- <pre>
820
- <span class="ruby-comment cmt"># File lib/taskjuggler/reports/TableReport.rb, line 159</span>
821
- 159: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">alignment</span>(<span class="ruby-identifier">colId</span>, <span class="ruby-identifier">propertyType</span>)
822
- 160: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">@@propertiesById</span>.<span class="ruby-identifier">has_key?</span>(<span class="ruby-identifier">colId</span>)
823
- 161: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">@@propertiesById</span>[<span class="ruby-identifier">colId</span>][<span class="ruby-value">2</span>]
824
- 162: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">@@propertiesByType</span>.<span class="ruby-identifier">has_key?</span>(<span class="ruby-identifier">propertyType</span>)
825
- 163: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">@@propertiesByType</span>[<span class="ruby-identifier">propertyType</span>][<span class="ruby-value">1</span>]
826
- 164: <span class="ruby-keyword kw">else</span>
827
- 165: <span class="ruby-value">:center</span>
828
- 166: <span class="ruby-keyword kw">end</span>
829
- 167: <span class="ruby-keyword kw">end</span></pre>
830
- </div>
831
-
832
- </div>
833
-
834
-
835
-
836
-
837
- </div>
838
-
839
-
840
- <div id="calculated--method" class="method-detail ">
841
- <a name="method-i-calculated%3F"></a>
842
-
843
- <div class="method-heading">
844
-
845
- <span class="method-name">calculated?</span><span
846
- class="method-args">(colId)</span>
847
- <span class="method-click-advice">click to toggle source</span>
848
-
849
- </div>
850
-
851
- <div class="method-description">
852
-
853
- <p>
854
- This function returns true if the values for the <em>colId</em> column need
855
- to be calculated.
856
- </p>
857
-
858
-
859
-
860
- <div class="method-source-code"
861
- id="calculated--source">
862
- <pre>
863
- <span class="ruby-comment cmt"># File lib/taskjuggler/reports/TableReport.rb, line 171</span>
864
- 171: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">calculated?</span>(<span class="ruby-identifier">colId</span>)
865
- 172: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">@@propertiesById</span>.<span class="ruby-identifier">has_key?</span>(<span class="ruby-identifier">colId</span>)
866
- 173: <span class="ruby-keyword kw">end</span></pre>
867
- </div>
868
-
869
- </div>
870
-
871
-
872
-
873
-
874
- </div>
875
-
876
-
877
- <div id="generate-ntermediate-ormat-method" class="method-detail ">
878
- <a name="method-i-generateIntermediateFormat"></a>
879
-
880
- <div class="method-heading">
881
-
882
- <span class="method-name">generateIntermediateFormat</span><span
883
- class="method-args">()</span>
884
- <span class="method-click-advice">click to toggle source</span>
885
-
886
- </div>
887
-
888
- <div class="method-description">
889
-
890
-
891
-
892
-
893
-
894
- <div class="method-source-code"
895
- id="generate-ntermediate-ormat-source">
896
- <pre>
897
- <span class="ruby-comment cmt"># File lib/taskjuggler/reports/TableReport.rb, line 85</span>
898
- 85: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateIntermediateFormat</span>
899
- 86: <span class="ruby-keyword kw">super</span>
900
- 87: <span class="ruby-keyword kw">end</span></pre>
901
- </div>
902
-
903
- </div>
904
-
905
-
906
-
907
-
908
- </div>
909
-
910
-
911
- <div id="indent-method" class="method-detail ">
912
- <a name="method-i-indent"></a>
913
-
914
- <div class="method-heading">
915
-
916
- <span class="method-name">indent</span><span
917
- class="method-args">(colId, propertyType)</span>
918
- <span class="method-click-advice">click to toggle source</span>
919
-
920
- </div>
921
-
922
- <div class="method-description">
923
-
924
- <p>
925
- Return if the column values should be indented based on the <em>colId</em>
926
- or the <em>propertyType</em>.
927
- </p>
928
-
929
-
930
-
931
- <div class="method-source-code"
932
- id="indent-source">
933
- <pre>
934
- <span class="ruby-comment cmt"># File lib/taskjuggler/reports/TableReport.rb, line 147</span>
935
- 147: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">indent</span>(<span class="ruby-identifier">colId</span>, <span class="ruby-identifier">propertyType</span>)
936
- 148: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">@@propertiesById</span>.<span class="ruby-identifier">has_key?</span>(<span class="ruby-identifier">colId</span>)
937
- 149: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">@@propertiesById</span>[<span class="ruby-identifier">colId</span>][<span class="ruby-value">1</span>]
938
- 150: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">@@propertiesByType</span>.<span class="ruby-identifier">has_key?</span>(<span class="ruby-identifier">propertyType</span>)
939
- 151: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">@@propertiesByType</span>[<span class="ruby-identifier">propertyType</span>][<span class="ruby-value">0</span>]
940
- 152: <span class="ruby-keyword kw">else</span>
941
- 153: <span class="ruby-keyword kw">false</span>
942
- 154: <span class="ruby-keyword kw">end</span>
943
- 155: <span class="ruby-keyword kw">end</span></pre>
944
- </div>
945
-
946
- </div>
947
-
948
-
949
-
950
-
951
- </div>
952
-
953
-
954
- <div id="scenario-pecific--method" class="method-detail ">
955
- <a name="method-i-scenarioSpecific%3F"></a>
956
-
957
- <div class="method-heading">
958
-
959
- <span class="method-name">scenarioSpecific?</span><span
960
- class="method-args">(colId)</span>
961
- <span class="method-click-advice">click to toggle source</span>
962
-
963
- </div>
964
-
965
- <div class="method-description">
966
-
967
- <p>
968
- This functions returns true if the values for the <em>col_id</em> column
969
- are scenario specific.
970
- </p>
971
-
972
-
973
-
974
- <div class="method-source-code"
975
- id="scenario-pecific--source">
976
- <pre>
977
- <span class="ruby-comment cmt"># File lib/taskjuggler/reports/TableReport.rb, line 177</span>
978
- 177: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">scenarioSpecific?</span>(<span class="ruby-identifier">colId</span>)
979
- 178: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">@@propertiesById</span>.<span class="ruby-identifier">has_key?</span>(<span class="ruby-identifier">colId</span>)
980
- 179: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">@@propertiesById</span>[<span class="ruby-identifier">colId</span>][<span class="ruby-value">3</span>]
981
- 180: <span class="ruby-keyword kw">end</span>
982
- 181: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
983
- 182: <span class="ruby-keyword kw">end</span></pre>
984
- </div>
985
-
986
- </div>
987
-
988
-
989
-
990
-
991
- </div>
992
-
993
-
994
- <div id="supported-olumns-method" class="method-detail ">
995
- <a name="method-i-supportedColumns"></a>
996
-
997
- <div class="method-heading">
998
-
999
- <span class="method-name">supportedColumns</span><span
1000
- class="method-args">()</span>
1001
- <span class="method-click-advice">click to toggle source</span>
1002
-
1003
- </div>
1004
-
1005
- <div class="method-description">
1006
-
1007
-
1008
-
1009
-
1010
-
1011
- <div class="method-source-code"
1012
- id="supported-olumns-source">
1013
- <pre>
1014
- <span class="ruby-comment cmt"># File lib/taskjuggler/reports/TableReport.rb, line 184</span>
1015
- 184: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">supportedColumns</span>
1016
- 185: <span class="ruby-identifier">@@propertiesById</span>.<span class="ruby-identifier">keys</span>
1017
- 186: <span class="ruby-keyword kw">end</span></pre>
1018
- </div>
1019
-
1020
- </div>
1021
-
1022
-
1023
-
1024
-
1025
- </div>
1026
-
1027
-
1028
- <div id="to-csv-method" class="method-detail ">
1029
- <a name="method-i-to_csv"></a>
1030
-
1031
- <div class="method-heading">
1032
-
1033
- <span class="method-name">to_csv</span><span
1034
- class="method-args">()</span>
1035
- <span class="method-click-advice">click to toggle source</span>
1036
-
1037
- </div>
1038
-
1039
- <div class="method-description">
1040
-
1041
- <p>
1042
- Convert the table into an Array of Arrays. It has one Array for each line.
1043
- The nested Arrays have one <a href="../String.html">String</a> for each
1044
- column.
1045
- </p>
1046
-
1047
-
1048
-
1049
- <div class="method-source-code"
1050
- id="to-csv-source">
1051
- <pre>
1052
- <span class="ruby-comment cmt"># File lib/taskjuggler/reports/TableReport.rb, line 130</span>
1053
- 130: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_csv</span>
1054
- 131: <span class="ruby-ivar">@table</span>.<span class="ruby-identifier">to_csv</span>
1055
- 132: <span class="ruby-keyword kw">end</span></pre>
1056
- </div>
1057
-
1058
- </div>
1059
-
1060
-
1061
-
1062
-
1063
- </div>
1064
-
1065
-
1066
- <div id="to-html-method" class="method-detail ">
1067
- <a name="method-i-to_html"></a>
1068
-
1069
- <div class="method-heading">
1070
-
1071
- <span class="method-name">to_html</span><span
1072
- class="method-args">()</span>
1073
- <span class="method-click-advice">click to toggle source</span>
1074
-
1075
- </div>
1076
-
1077
- <div class="method-description">
1078
-
1079
- <p>
1080
- Turn the <a href="TableReport.html">TableReport</a> into an equivalent HTML
1081
- element tree.
1082
- </p>
1083
-
1084
-
1085
-
1086
- <div class="method-source-code"
1087
- id="to-html-source">
1088
- <pre>
1089
- <span class="ruby-comment cmt"># File lib/taskjuggler/reports/TableReport.rb, line 90</span>
1090
- 90: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_html</span>
1091
- 91: <span class="ruby-identifier">html</span> = []
1092
- 92:
1093
- 93: <span class="ruby-identifier">html</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">XMLComment</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">&quot;Dynamic Report ID: &quot;</span> <span class="ruby-operator">+</span>
1094
- 94: <span class="ruby-node">&quot;#{@report.project.reportContexts.last.
1095
- 95: dynamicReportId}&quot;</span>)
1096
- 96: <span class="ruby-identifier">html</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">rt_to_html</span>(<span class="ruby-value str">'header'</span>)
1097
- 97: <span class="ruby-identifier">html</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">tableFrame</span> = <span class="ruby-identifier">generateHtmlTableFrame</span>)
1098
- 98:
1099
- 99: <span class="ruby-comment cmt"># Now generate the actual table with the data.</span>
1100
- 100: <span class="ruby-identifier">tableFrame</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">generateHtmlTableRow</span> <span class="ruby-keyword kw">do</span>
1101
- 101: <span class="ruby-identifier">td</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'td'</span>)
1102
- 102: <span class="ruby-identifier">td</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-ivar">@table</span>.<span class="ruby-identifier">to_html</span>
1103
- 103: <span class="ruby-identifier">td</span>
1104
- 104: <span class="ruby-keyword kw">end</span>
1105
- 105:
1106
- 106: <span class="ruby-comment cmt"># Embedd the caption as RichText into the table footer.</span>
1107
- 107: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'caption'</span>)
1108
- 108: <span class="ruby-identifier">tableFrame</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">generateHtmlTableRow</span> <span class="ruby-keyword kw">do</span>
1109
- 109: <span class="ruby-identifier">td</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'td'</span>)
1110
- 110: <span class="ruby-identifier">td</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">div</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'div'</span>, <span class="ruby-value str">'class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'tj_table_caption'</span>))
1111
- 111: <span class="ruby-identifier">a</span>(<span class="ruby-value str">'caption'</span>).<span class="ruby-identifier">sectionNumbers</span> = <span class="ruby-keyword kw">false</span>
1112
- 112: <span class="ruby-identifier">div</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'caption'</span>).<span class="ruby-identifier">to_html</span>
1113
- 113: <span class="ruby-identifier">td</span>
1114
- 114: <span class="ruby-keyword kw">end</span>
1115
- 115: <span class="ruby-keyword kw">end</span>
1116
- 116:
1117
- 117: <span class="ruby-comment cmt"># The legend.</span>
1118
- 118: <span class="ruby-identifier">tableFrame</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">generateHtmlTableRow</span> <span class="ruby-keyword kw">do</span>
1119
- 119: <span class="ruby-identifier">td</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'td'</span>)
1120
- 120: <span class="ruby-identifier">td</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-ivar">@legend</span>.<span class="ruby-identifier">to_html</span>
1121
- 121: <span class="ruby-identifier">td</span>
1122
- 122: <span class="ruby-keyword kw">end</span>
1123
- 123:
1124
- 124: <span class="ruby-identifier">html</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">rt_to_html</span>(<span class="ruby-value str">'footer'</span>)
1125
- 125: <span class="ruby-identifier">html</span>
1126
- 126: <span class="ruby-keyword kw">end</span></pre>
1127
- </div>
1128
-
1129
- </div>
1130
-
1131
-
1132
-
1133
-
1134
- </div>
1135
-
1136
-
1137
- </div>
1138
-
1139
- <div id="protected-instance-method-details" class="method-section section">
1140
- <h3 class="section-header">Protected Instance Methods</h3>
1141
-
1142
-
1143
- <div id="adjust-eport-eriod-method" class="method-detail ">
1144
- <a name="method-i-adjustReportPeriod"></a>
1145
-
1146
- <div class="method-heading">
1147
-
1148
- <span class="method-name">adjustReportPeriod</span><span
1149
- class="method-args">(tasks, scenarios, columns)</span>
1150
- <span class="method-click-advice">click to toggle source</span>
1151
-
1152
- </div>
1153
-
1154
- <div class="method-description">
1155
-
1156
- <p>
1157
- In case the user has not specified the report period, we try to fit all the
1158
- <em>tasks</em> in and add an extra 5% time at both ends. <em>scenarios</em>
1159
- is a list of scenario indexes.
1160
- </p>
1161
-
1162
-
1163
-
1164
- <div class="method-source-code"
1165
- id="adjust-eport-eriod-source">
1166
- <pre>
1167
- <span class="ruby-comment cmt"># File lib/taskjuggler/reports/TableReport.rb, line 200</span>
1168
- 200: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">adjustReportPeriod</span>(<span class="ruby-identifier">tasks</span>, <span class="ruby-identifier">scenarios</span>, <span class="ruby-identifier">columns</span>)
1169
- 201: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">tasks</span>.<span class="ruby-identifier">empty?</span> <span class="ruby-operator">||</span>
1170
- 202: <span class="ruby-identifier">a</span>(<span class="ruby-value str">'start'</span>) <span class="ruby-operator">!=</span> <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'start'</span>] <span class="ruby-operator">||</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'end'</span>) <span class="ruby-operator">!=</span> <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'end'</span>]
1171
- 203:
1172
- 204: <span class="ruby-ivar">@start</span> = <span class="ruby-ivar">@end</span> = <span class="ruby-keyword kw">nil</span>
1173
- 205: <span class="ruby-identifier">scenarios</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">scenarioIdx</span><span class="ruby-operator">|</span>
1174
- 206: <span class="ruby-identifier">tasks</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">task</span><span class="ruby-operator">|</span>
1175
- 207: <span class="ruby-identifier">date</span> = <span class="ruby-identifier">task</span>[<span class="ruby-value str">'start'</span>, <span class="ruby-identifier">scenarioIdx</span>] <span class="ruby-operator">||</span> <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'start'</span>]
1176
- 208: <span class="ruby-ivar">@start</span> = <span class="ruby-identifier">date</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@start</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">date</span> <span class="ruby-operator">&lt;</span> <span class="ruby-ivar">@start</span>
1177
- 209: <span class="ruby-identifier">date</span> = <span class="ruby-identifier">task</span>[<span class="ruby-value str">'end'</span>, <span class="ruby-identifier">scenarioIdx</span>] <span class="ruby-operator">||</span> <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'end'</span>]
1178
- 210: <span class="ruby-ivar">@end</span> = <span class="ruby-identifier">date</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@end</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">date</span> <span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@end</span>
1179
- 211: <span class="ruby-keyword kw">end</span>
1180
- 212: <span class="ruby-keyword kw">end</span>
1181
- 213:
1182
- 214: <span class="ruby-comment cmt"># We want to add at least 5% on both ends.</span>
1183
- 215: <span class="ruby-identifier">margin</span> = <span class="ruby-value">0</span>
1184
- 216: <span class="ruby-identifier">minWidth</span> = <span class="ruby-ivar">@end</span> <span class="ruby-operator">-</span> <span class="ruby-ivar">@start</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>
1185
- 217: <span class="ruby-identifier">columns</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">column</span><span class="ruby-operator">|</span>
1186
- 218: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">column</span>.<span class="ruby-identifier">id</span>
1187
- 219: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'chart'</span>
1188
- 220: <span class="ruby-comment cmt"># In case we have a 'chart' column, we enforce certain minimum width</span>
1189
- 221: <span class="ruby-comment cmt"># The following table contains an entry for each scale. The entry</span>
1190
- 222: <span class="ruby-comment cmt"># consists of the triple 'seconds per unit', 'minimum width units'</span>
1191
- 223: <span class="ruby-comment cmt"># and 'margin units'. The minimum with does not include the margins</span>
1192
- 224: <span class="ruby-comment cmt"># since they are always added.</span>
1193
- 225: <span class="ruby-identifier">mwMap</span> = {
1194
- 226: <span class="ruby-value str">'hour'</span> =<span class="ruby-operator">&gt;</span> [ <span class="ruby-value">60</span> * <span class="ruby-value">60</span>, <span class="ruby-value">18</span>, <span class="ruby-value">2</span> ],
1195
- 227: <span class="ruby-value str">'day'</span> =<span class="ruby-operator">&gt;</span> [ <span class="ruby-value">60</span> * <span class="ruby-value">60</span> * <span class="ruby-value">24</span>, <span class="ruby-value">18</span>, <span class="ruby-value">2</span> ],
1196
- 228: <span class="ruby-value str">'week'</span> =<span class="ruby-operator">&gt;</span> [ <span class="ruby-value">60</span> * <span class="ruby-value">60</span> * <span class="ruby-value">24</span> * <span class="ruby-value">7</span>, <span class="ruby-value">6</span>, <span class="ruby-value">1</span> ],
1197
- 229: <span class="ruby-value str">'month'</span> =<span class="ruby-operator">&gt;</span> [ <span class="ruby-value">60</span> * <span class="ruby-value">60</span> * <span class="ruby-value">24</span> * <span class="ruby-value">31</span>, <span class="ruby-value">10</span>, <span class="ruby-value">1</span> ],
1198
- 230: <span class="ruby-value str">'quarter'</span> =<span class="ruby-operator">&gt;</span> [ <span class="ruby-value">60</span> * <span class="ruby-value">60</span> * <span class="ruby-value">24</span> * <span class="ruby-value">90</span>, <span class="ruby-value">6</span>, <span class="ruby-value">1</span> ],
1199
- 231: <span class="ruby-value str">'year'</span> =<span class="ruby-operator">&gt;</span> [ <span class="ruby-value">60</span> * <span class="ruby-value">60</span> * <span class="ruby-value">24</span> * <span class="ruby-value">365</span>, <span class="ruby-value">4</span>, <span class="ruby-value">1</span> ]
1200
- 232: }
1201
- 233: <span class="ruby-identifier">entry</span> = <span class="ruby-identifier">mwMap</span>[<span class="ruby-identifier">column</span>.<span class="ruby-identifier">scale</span>]
1202
- 234: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Unknown scale #{column.scale}&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">entry</span>
1203
- 235: <span class="ruby-identifier">margin</span> = <span class="ruby-identifier">entry</span>[<span class="ruby-value">0</span>] * <span class="ruby-identifier">entry</span>[<span class="ruby-value">2</span>]
1204
- 236: <span class="ruby-comment cmt"># If the with determined by start and end dates of the task is below</span>
1205
- 237: <span class="ruby-comment cmt"># the minimum width, we increase the width to the value provided by</span>
1206
- 238: <span class="ruby-comment cmt"># the table.</span>
1207
- 239: <span class="ruby-identifier">minWidth</span> = <span class="ruby-identifier">entry</span>[<span class="ruby-value">0</span>] * <span class="ruby-identifier">entry</span>[<span class="ruby-value">1</span>] <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">minWidth</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">entry</span>[<span class="ruby-value">0</span>] * <span class="ruby-identifier">entry</span>[<span class="ruby-value">1</span>]
1208
- 240: <span class="ruby-keyword kw">break</span>
1209
- 241: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'hourly'</span>, <span class="ruby-value str">'daily'</span>, <span class="ruby-value str">'weekly'</span>, <span class="ruby-value str">'monthly'</span>, <span class="ruby-value str">'quarterly'</span>, <span class="ruby-value str">'yearly'</span>
1210
- 242: <span class="ruby-comment cmt"># For the calendar columns we use a similar approach as we use for</span>
1211
- 243: <span class="ruby-comment cmt"># the 'chart' column.</span>
1212
- 244: <span class="ruby-identifier">mwMap</span> = {
1213
- 245: <span class="ruby-value str">'hourly'</span> =<span class="ruby-operator">&gt;</span> [ <span class="ruby-value">60</span> * <span class="ruby-value">60</span>, <span class="ruby-value">18</span>, <span class="ruby-value">2</span> ],
1214
- 246: <span class="ruby-value str">'daily'</span> =<span class="ruby-operator">&gt;</span> [ <span class="ruby-value">60</span> * <span class="ruby-value">60</span> * <span class="ruby-value">24</span>, <span class="ruby-value">18</span>, <span class="ruby-value">2</span> ],
1215
- 247: <span class="ruby-value str">'weekly'</span> =<span class="ruby-operator">&gt;</span> [ <span class="ruby-value">60</span> * <span class="ruby-value">60</span> * <span class="ruby-value">24</span> * <span class="ruby-value">7</span>, <span class="ruby-value">6</span>, <span class="ruby-value">1</span> ],
1216
- 248: <span class="ruby-value str">'monthly'</span> =<span class="ruby-operator">&gt;</span> [ <span class="ruby-value">60</span> * <span class="ruby-value">60</span> * <span class="ruby-value">24</span> * <span class="ruby-value">31</span>, <span class="ruby-value">10</span>, <span class="ruby-value">1</span> ],
1217
- 249: <span class="ruby-value str">'quarterly'</span> =<span class="ruby-operator">&gt;</span> [ <span class="ruby-value">60</span> * <span class="ruby-value">60</span> * <span class="ruby-value">24</span> * <span class="ruby-value">90</span>, <span class="ruby-value">6</span>, <span class="ruby-value">1</span> ],
1218
- 250: <span class="ruby-value str">'yearly'</span> =<span class="ruby-operator">&gt;</span> [ <span class="ruby-value">60</span> * <span class="ruby-value">60</span> * <span class="ruby-value">24</span> * <span class="ruby-value">365</span>, <span class="ruby-value">4</span>, <span class="ruby-value">1</span> ]
1219
- 251: }
1220
- 252: <span class="ruby-identifier">entry</span> = <span class="ruby-identifier">mwMap</span>[<span class="ruby-identifier">column</span>.<span class="ruby-identifier">id</span>]
1221
- 253: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Unknown scale #{column.id}&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">entry</span>
1222
- 254: <span class="ruby-identifier">margin</span> = <span class="ruby-identifier">entry</span>[<span class="ruby-value">0</span>] * <span class="ruby-identifier">entry</span>[<span class="ruby-value">2</span>]
1223
- 255: <span class="ruby-identifier">minWidth</span> = <span class="ruby-identifier">entry</span>[<span class="ruby-value">0</span>] * <span class="ruby-identifier">entry</span>[<span class="ruby-value">1</span>] <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">minWidth</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">entry</span>[<span class="ruby-value">0</span>] * <span class="ruby-identifier">entry</span>[<span class="ruby-value">1</span>]
1224
- 256: <span class="ruby-keyword kw">break</span>
1225
- 257: <span class="ruby-keyword kw">end</span>
1226
- 258: <span class="ruby-keyword kw">end</span>
1227
- 259:
1228
- 260: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">minWidth</span> <span class="ruby-operator">&gt;</span> (<span class="ruby-ivar">@end</span> <span class="ruby-operator">-</span> <span class="ruby-ivar">@start</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>)
1229
- 261: <span class="ruby-identifier">margin</span> <span class="ruby-operator">+=</span> (<span class="ruby-identifier">minWidth</span> <span class="ruby-operator">-</span> (<span class="ruby-ivar">@end</span> <span class="ruby-operator">-</span> <span class="ruby-ivar">@start</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>)) <span class="ruby-operator">/</span> <span class="ruby-value">2</span>
1230
- 262: <span class="ruby-keyword kw">end</span>
1231
- 263: <span class="ruby-ivar">@start</span> <span class="ruby-operator">-=</span> <span class="ruby-identifier">margin</span>
1232
- 264: <span class="ruby-ivar">@end</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">margin</span>
1233
- 265: <span class="ruby-keyword kw">end</span></pre>
1234
- </div>
1235
-
1236
- </div>
1237
-
1238
-
1239
-
1240
-
1241
- </div>
1242
-
1243
-
1244
- <div id="generate-eader-ell-method" class="method-detail ">
1245
- <a name="method-i-generateHeaderCell"></a>
1246
-
1247
- <div class="method-heading">
1248
-
1249
- <span class="method-name">generateHeaderCell</span><span
1250
- class="method-args">(columnDef)</span>
1251
- <span class="method-click-advice">click to toggle source</span>
1252
-
1253
- </div>
1254
-
1255
- <div class="method-description">
1256
-
1257
- <p>
1258
- Generates cells for the table header. <em>columnDef</em> is the <a
1259
- href="TableColumnDefinition.html">TableColumnDefinition</a> object that
1260
- describes the column. Based on the id of the column different actions need
1261
- to be taken to generate the header text.
1262
- </p>
1263
-
1264
-
1265
-
1266
- <div class="method-source-code"
1267
- id="generate-eader-ell-source">
1268
- <pre>
1269
- <span class="ruby-comment cmt"># File lib/taskjuggler/reports/TableReport.rb, line 270</span>
1270
- 270: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateHeaderCell</span>(<span class="ruby-identifier">columnDef</span>)
1271
- 271: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">id</span>
1272
- 272: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'chart'</span>
1273
- 273: <span class="ruby-comment cmt"># For the 'chart' column we generate a GanttChart object. The sizes are</span>
1274
- 274: <span class="ruby-comment cmt"># set so that the lines of the Gantt chart line up with the lines of the</span>
1275
- 275: <span class="ruby-comment cmt"># table.</span>
1276
- 276: <span class="ruby-identifier">gantt</span> = <span class="ruby-constant">GanttChart</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">a</span>(<span class="ruby-value str">'now'</span>),
1277
- 277: <span class="ruby-identifier">a</span>(<span class="ruby-value str">'weekStartsMonday'</span>), <span class="ruby-keyword kw">self</span>)
1278
- 278: <span class="ruby-identifier">gantt</span>.<span class="ruby-identifier">generateByScale</span>(<span class="ruby-ivar">@start</span>, <span class="ruby-ivar">@end</span>, <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">scale</span>)
1279
- 279: <span class="ruby-comment cmt"># The header consists of 2 lines separated by a 1 pixel boundary.</span>
1280
- 280: <span class="ruby-identifier">gantt</span>.<span class="ruby-identifier">header</span>.<span class="ruby-identifier">height</span> = <span class="ruby-ivar">@table</span>.<span class="ruby-identifier">headerLineHeight</span> * <span class="ruby-value">2</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>
1281
- 281: <span class="ruby-comment cmt"># The maximum width of the chart. In case it needs more space, a</span>
1282
- 282: <span class="ruby-comment cmt"># scrollbar is shown or the chart gets truncated depending on the output</span>
1283
- 283: <span class="ruby-comment cmt"># format.</span>
1284
- 284: <span class="ruby-identifier">gantt</span>.<span class="ruby-identifier">viewWidth</span> = <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">width</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">width</span> <span class="ruby-operator">:</span> <span class="ruby-value">450</span>
1285
- 285: <span class="ruby-identifier">column</span> = <span class="ruby-constant">ReportTableColumn</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@table</span>, <span class="ruby-identifier">columnDef</span>, <span class="ruby-value str">''</span>)
1286
- 286: <span class="ruby-identifier">column</span>.<span class="ruby-identifier">cell1</span>.<span class="ruby-identifier">special</span> = <span class="ruby-identifier">gantt</span>
1287
- 287: <span class="ruby-identifier">column</span>.<span class="ruby-identifier">cell2</span>.<span class="ruby-identifier">hidden</span> = <span class="ruby-keyword kw">true</span>
1288
- 288: <span class="ruby-identifier">column</span>.<span class="ruby-identifier">scrollbar</span> = <span class="ruby-identifier">gantt</span>.<span class="ruby-identifier">hasScrollbar?</span>
1289
- 289: <span class="ruby-ivar">@table</span>.<span class="ruby-identifier">equiLines</span> = <span class="ruby-keyword kw">true</span>
1290
- 290: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'hourly'</span>
1291
- 291: <span class="ruby-identifier">genCalChartHeader</span>(<span class="ruby-identifier">columnDef</span>, <span class="ruby-ivar">@start</span>.<span class="ruby-identifier">midnight</span>, <span class="ruby-value">:sameTimeNextHour</span>,
1292
- 292: <span class="ruby-value">:weekdayAndDate</span>, <span class="ruby-value">:hour</span>)
1293
- 293: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'daily'</span>
1294
- 294: <span class="ruby-identifier">genCalChartHeader</span>(<span class="ruby-identifier">columnDef</span>, <span class="ruby-ivar">@start</span>.<span class="ruby-identifier">midnight</span>, <span class="ruby-value">:sameTimeNextDay</span>,
1295
- 295: <span class="ruby-value">:monthAndYear</span>, <span class="ruby-value">:day</span>)
1296
- 296: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'weekly'</span>
1297
- 297: <span class="ruby-identifier">genCalChartHeader</span>(<span class="ruby-identifier">columnDef</span>,
1298
- 298: <span class="ruby-ivar">@start</span>.<span class="ruby-identifier">beginOfWeek</span>(<span class="ruby-identifier">a</span>(<span class="ruby-value str">'weekStartsMonday'</span>)),
1299
- 299: <span class="ruby-value">:sameTimeNextWeek</span>, <span class="ruby-value">:monthAndYear</span>, <span class="ruby-value">:day</span>)
1300
- 300: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'monthly'</span>
1301
- 301: <span class="ruby-identifier">genCalChartHeader</span>(<span class="ruby-identifier">columnDef</span>, <span class="ruby-ivar">@start</span>.<span class="ruby-identifier">beginOfMonth</span>, <span class="ruby-value">:sameTimeNextMonth</span>,
1302
- 302: <span class="ruby-value">:year</span>, <span class="ruby-value">:shortMonthName</span>)
1303
- 303: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'quarterly'</span>
1304
- 304: <span class="ruby-identifier">genCalChartHeader</span>(<span class="ruby-identifier">columnDef</span>, <span class="ruby-ivar">@start</span>.<span class="ruby-identifier">beginOfQuarter</span>,
1305
- 305: <span class="ruby-value">:sameTimeNextQuarter</span>, <span class="ruby-value">:year</span>, <span class="ruby-value">:quarterName</span>)
1306
- 306: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'yearly'</span>
1307
- 307: <span class="ruby-identifier">genCalChartHeader</span>(<span class="ruby-identifier">columnDef</span>, <span class="ruby-ivar">@start</span>.<span class="ruby-identifier">beginOfYear</span>, <span class="ruby-value">:sameTimeNextYear</span>,
1308
- 308: <span class="ruby-keyword kw">nil</span>, <span class="ruby-value">:year</span>)
1309
- 309: <span class="ruby-keyword kw">else</span>
1310
- 310: <span class="ruby-comment cmt"># This is the most common case. It does not need any special treatment.</span>
1311
- 311: <span class="ruby-comment cmt"># We just set the pre-defined or user-defined column title in the first</span>
1312
- 312: <span class="ruby-comment cmt"># row of the header. The 2nd row is not visible.</span>
1313
- 313: <span class="ruby-identifier">column</span> = <span class="ruby-constant">ReportTableColumn</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@table</span>, <span class="ruby-identifier">columnDef</span>, <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">title</span>)
1314
- 314: <span class="ruby-identifier">column</span>.<span class="ruby-identifier">cell1</span>.<span class="ruby-identifier">rows</span> = <span class="ruby-value">2</span>
1315
- 315: <span class="ruby-identifier">column</span>.<span class="ruby-identifier">cell2</span>.<span class="ruby-identifier">hidden</span> = <span class="ruby-keyword kw">true</span>
1316
- 316: <span class="ruby-identifier">column</span>.<span class="ruby-identifier">cell1</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>
1317
- 317: <span class="ruby-keyword kw">end</span>
1318
- 318: <span class="ruby-keyword kw">end</span></pre>
1319
- </div>
1320
-
1321
- </div>
1322
-
1323
-
1324
-
1325
-
1326
- </div>
1327
-
1328
-
1329
- <div id="generate-esource-ist-method" class="method-detail ">
1330
- <a name="method-i-generateResourceList"></a>
1331
-
1332
- <div class="method-heading">
1333
-
1334
- <span class="method-name">generateResourceList</span><span
1335
- class="method-args">(resourceList, taskList, scopeLine)</span>
1336
- <span class="method-click-advice">click to toggle source</span>
1337
-
1338
- </div>
1339
-
1340
- <div class="method-description">
1341
-
1342
- <p>
1343
- Generate a <a href="ReportTableLine.html">ReportTableLine</a> for each of
1344
- the resources in <em>resourceList</em>. In case <em>taskList</em> is not
1345
- nil, it also generates the nested task lines for each task that the
1346
- resource is assigned to. If <em>scopeLine</em> is defined, the generated
1347
- resource lines will be within the scope this task line.
1348
- </p>
1349
-
1350
-
1351
-
1352
- <div class="method-source-code"
1353
- id="generate-esource-ist-source">
1354
- <pre>
1355
- <span class="ruby-comment cmt"># File lib/taskjuggler/reports/TableReport.rb, line 390</span>
1356
- 390: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateResourceList</span>(<span class="ruby-identifier">resourceList</span>, <span class="ruby-identifier">taskList</span>, <span class="ruby-identifier">scopeLine</span>)
1357
- 391: <span class="ruby-identifier">queryAttrs</span> = { <span class="ruby-value str">'project'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@project</span>,
1358
- 392: <span class="ruby-value str">'scopeProperty'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">scopeLine</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">scopeLine</span>.<span class="ruby-identifier">property</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">nil</span>,
1359
- 393: <span class="ruby-value str">'loadUnit'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'loadUnit'</span>),
1360
- 394: <span class="ruby-value str">'numberFormat'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'numberFormat'</span>),
1361
- 395: <span class="ruby-value str">'timeFormat'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'timeFormat'</span>),
1362
- 396: <span class="ruby-value str">'currencyFormat'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'currencyFormat'</span>),
1363
- 397: <span class="ruby-value str">'start'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@start</span>, <span class="ruby-value str">'end'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@end</span>,
1364
- 398: <span class="ruby-value str">'hideJournalEntry'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'hideJournalEntry'</span>),
1365
- 399: <span class="ruby-value str">'costAccount'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'costAccount'</span>),
1366
- 400: <span class="ruby-value str">'revenueAccount'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'revenueAccount'</span>) }
1367
- 401: <span class="ruby-identifier">resourceList</span>.<span class="ruby-identifier">query</span> = <span class="ruby-constant">Query</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">queryAttrs</span>)
1368
- 402: <span class="ruby-identifier">resourceList</span>.<span class="ruby-identifier">sort!</span>
1369
- 403:
1370
- 404: <span class="ruby-comment cmt"># The primary line counter. Is not used for enclosed lines.</span>
1371
- 405: <span class="ruby-identifier">no</span> = <span class="ruby-value">0</span>
1372
- 406: <span class="ruby-comment cmt"># The scope line counter. It's reset for each new scope.</span>
1373
- 407: <span class="ruby-identifier">lineNo</span> = <span class="ruby-identifier">scopeLine</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">scopeLine</span>.<span class="ruby-identifier">lineNo</span> <span class="ruby-operator">:</span> <span class="ruby-value">0</span>
1374
- 408: <span class="ruby-comment cmt"># Init the variable to get a larger scope</span>
1375
- 409: <span class="ruby-identifier">line</span> = <span class="ruby-keyword kw">nil</span>
1376
- 410: <span class="ruby-identifier">resourceList</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">resource</span><span class="ruby-operator">|</span>
1377
- 411: <span class="ruby-comment cmt"># Get the current Query from the report context and create a copy. We</span>
1378
- 412: <span class="ruby-comment cmt"># are going to modify it.</span>
1379
- 413: <span class="ruby-identifier">query</span> = <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">reportContexts</span>.<span class="ruby-identifier">last</span>.<span class="ruby-identifier">query</span>.<span class="ruby-identifier">dup</span>
1380
- 414: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">property</span> = <span class="ruby-identifier">resource</span>
1381
- 415: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">scopeProperty</span> = <span class="ruby-identifier">scopeLine</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">scopeLine</span>.<span class="ruby-identifier">property</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">nil</span>
1382
- 416:
1383
- 417: <span class="ruby-identifier">no</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
1384
- 418: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">activity</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">lineNo</span> <span class="ruby-operator">%</span> <span class="ruby-value">10</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
1385
- 419: <span class="ruby-identifier">lineNo</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
1386
- 420: <span class="ruby-identifier">a</span>(<span class="ruby-value str">'scenarios'</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">scenarioIdx</span><span class="ruby-operator">|</span>
1387
- 421: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">scenarioIdx</span> = <span class="ruby-identifier">scenarioIdx</span>
1388
- 422: <span class="ruby-comment cmt"># Generate line for each resource.</span>
1389
- 423: <span class="ruby-identifier">line</span> = <span class="ruby-constant">ReportTableLine</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@table</span>, <span class="ruby-identifier">resource</span>, <span class="ruby-identifier">scopeLine</span>)
1390
- 424:
1391
- 425: <span class="ruby-identifier">line</span>.<span class="ruby-identifier">no</span> = <span class="ruby-identifier">no</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">scopeLine</span>
1392
- 426: <span class="ruby-identifier">line</span>.<span class="ruby-identifier">lineNo</span> = <span class="ruby-identifier">lineNo</span>
1393
- 427: <span class="ruby-identifier">line</span>.<span class="ruby-identifier">subLineNo</span> = <span class="ruby-ivar">@table</span>.<span class="ruby-identifier">lines</span>
1394
- 428: <span class="ruby-identifier">setIndent</span>(<span class="ruby-identifier">line</span>, <span class="ruby-identifier">a</span>(<span class="ruby-value str">'resourceRoot'</span>), <span class="ruby-identifier">resourceList</span>.<span class="ruby-identifier">treeMode?</span>)
1395
- 429:
1396
- 430: <span class="ruby-comment cmt"># Generate a cell for each column in this line.</span>
1397
- 431: <span class="ruby-identifier">a</span>(<span class="ruby-value str">'columns'</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">column</span><span class="ruby-operator">|</span>
1398
- 432: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">attributeId</span> = <span class="ruby-identifier">column</span>.<span class="ruby-identifier">id</span>
1399
- 433: <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">generateTableCell</span>(<span class="ruby-identifier">line</span>, <span class="ruby-identifier">resource</span>, <span class="ruby-identifier">column</span>, <span class="ruby-identifier">query</span>)
1400
- 434: <span class="ruby-keyword kw">end</span>
1401
- 435: <span class="ruby-keyword kw">end</span>
1402
- 436:
1403
- 437: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">taskList</span>
1404
- 438: <span class="ruby-comment cmt"># If we have a taskList we generate nested lines for each of the</span>
1405
- 439: <span class="ruby-comment cmt"># tasks that the resource is assigned to and pass the user-defined</span>
1406
- 440: <span class="ruby-comment cmt"># filter.</span>
1407
- 441: <span class="ruby-identifier">taskList</span>.<span class="ruby-identifier">setSorting</span>(<span class="ruby-identifier">a</span>(<span class="ruby-value str">'sortTasks'</span>))
1408
- 442: <span class="ruby-identifier">assignedTaskList</span> = <span class="ruby-identifier">filterTaskList</span>(<span class="ruby-identifier">taskList</span>, <span class="ruby-identifier">resource</span>,
1409
- 443: <span class="ruby-identifier">a</span>(<span class="ruby-value str">'hideTask'</span>), <span class="ruby-identifier">a</span>(<span class="ruby-value str">'rollupTask'</span>),
1410
- 444: <span class="ruby-identifier">a</span>(<span class="ruby-value str">'openNodes'</span>))
1411
- 445: <span class="ruby-identifier">assignedTaskList</span>.<span class="ruby-identifier">sort!</span>
1412
- 446: <span class="ruby-identifier">lineNo</span> = <span class="ruby-identifier">generateTaskList</span>(<span class="ruby-identifier">assignedTaskList</span>, <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">line</span>)
1413
- 447: <span class="ruby-keyword kw">end</span>
1414
- 448: <span class="ruby-keyword kw">end</span>
1415
- 449: <span class="ruby-identifier">lineNo</span>
1416
- 450: <span class="ruby-keyword kw">end</span></pre>
1417
- </div>
1418
-
1419
- </div>
1420
-
1421
-
1422
-
1423
-
1424
- </div>
1425
-
1426
-
1427
- <div id="generate-ask-ist-method" class="method-detail ">
1428
- <a name="method-i-generateTaskList"></a>
1429
-
1430
- <div class="method-heading">
1431
-
1432
- <span class="method-name">generateTaskList</span><span
1433
- class="method-args">(taskList, resourceList, scopeLine)</span>
1434
- <span class="method-click-advice">click to toggle source</span>
1435
-
1436
- </div>
1437
-
1438
- <div class="method-description">
1439
-
1440
- <p>
1441
- Generate a <a href="ReportTableLine.html">ReportTableLine</a> for each of
1442
- the tasks in <em>taskList</em>. In case <em>resourceList</em> is not nil,
1443
- it also generates the nested resource lines for each resource that is
1444
- assigned to the particular task. If <em>scopeLine</em> is defined, the
1445
- generated task lines will be within the scope this resource line.
1446
- </p>
1447
-
1448
-
1449
-
1450
- <div class="method-source-code"
1451
- id="generate-ask-ist-source">
1452
- <pre>
1453
- <span class="ruby-comment cmt"># File lib/taskjuggler/reports/TableReport.rb, line 325</span>
1454
- 325: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateTaskList</span>(<span class="ruby-identifier">taskList</span>, <span class="ruby-identifier">resourceList</span>, <span class="ruby-identifier">scopeLine</span>)
1455
- 326: <span class="ruby-identifier">queryAttrs</span> = { <span class="ruby-value str">'project'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@project</span>,
1456
- 327: <span class="ruby-value str">'scopeProperty'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">scopeLine</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">scopeLine</span>.<span class="ruby-identifier">property</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">nil</span>,
1457
- 328: <span class="ruby-value str">'loadUnit'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'loadUnit'</span>),
1458
- 329: <span class="ruby-value str">'numberFormat'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'numberFormat'</span>),
1459
- 330: <span class="ruby-value str">'timeFormat'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'timeFormat'</span>),
1460
- 331: <span class="ruby-value str">'currencyFormat'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'currencyFormat'</span>),
1461
- 332: <span class="ruby-value str">'start'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@start</span>, <span class="ruby-value str">'end'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@end</span>,
1462
- 333: <span class="ruby-value str">'hideJournalEntry'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'hideJournalEntry'</span>),
1463
- 334: <span class="ruby-value str">'costAccount'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'costAccount'</span>),
1464
- 335: <span class="ruby-value str">'revenueAccount'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'revenueAccount'</span>) }
1465
- 336: <span class="ruby-identifier">taskList</span>.<span class="ruby-identifier">query</span> = <span class="ruby-constant">Query</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">queryAttrs</span>)
1466
- 337: <span class="ruby-identifier">taskList</span>.<span class="ruby-identifier">sort!</span>
1467
- 338:
1468
- 339: <span class="ruby-comment cmt"># The primary line counter. Is not used for enclosed lines.</span>
1469
- 340: <span class="ruby-identifier">no</span> = <span class="ruby-value">0</span>
1470
- 341: <span class="ruby-comment cmt"># The scope line counter. It's reset for each new scope.</span>
1471
- 342: <span class="ruby-identifier">lineNo</span> = <span class="ruby-identifier">scopeLine</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">scopeLine</span>.<span class="ruby-identifier">lineNo</span> <span class="ruby-operator">:</span> <span class="ruby-value">0</span>
1472
- 343: <span class="ruby-comment cmt"># Init the variable to get a larger scope</span>
1473
- 344: <span class="ruby-identifier">line</span> = <span class="ruby-keyword kw">nil</span>
1474
- 345: <span class="ruby-identifier">taskList</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">task</span><span class="ruby-operator">|</span>
1475
- 346: <span class="ruby-comment cmt"># Get the current Query from the report context and create a copy. We</span>
1476
- 347: <span class="ruby-comment cmt"># are going to modify it.</span>
1477
- 348: <span class="ruby-identifier">query</span> = <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">reportContexts</span>.<span class="ruby-identifier">last</span>.<span class="ruby-identifier">query</span>.<span class="ruby-identifier">dup</span>
1478
- 349: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">property</span> = <span class="ruby-identifier">task</span>
1479
- 350: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">scopeProperty</span> = <span class="ruby-identifier">scopeLine</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">scopeLine</span>.<span class="ruby-identifier">property</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">nil</span>
1480
- 351:
1481
- 352: <span class="ruby-identifier">no</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
1482
- 353: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">activity</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">lineNo</span> <span class="ruby-operator">%</span> <span class="ruby-value">10</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
1483
- 354: <span class="ruby-identifier">lineNo</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
1484
- 355: <span class="ruby-identifier">a</span>(<span class="ruby-value str">'scenarios'</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">scenarioIdx</span><span class="ruby-operator">|</span>
1485
- 356: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">scenarioIdx</span> = <span class="ruby-identifier">scenarioIdx</span>
1486
- 357: <span class="ruby-comment cmt"># Generate line for each task.</span>
1487
- 358: <span class="ruby-identifier">line</span> = <span class="ruby-constant">ReportTableLine</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@table</span>, <span class="ruby-identifier">task</span>, <span class="ruby-identifier">scopeLine</span>)
1488
- 359:
1489
- 360: <span class="ruby-identifier">line</span>.<span class="ruby-identifier">no</span> = <span class="ruby-identifier">no</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">scopeLine</span>
1490
- 361: <span class="ruby-identifier">line</span>.<span class="ruby-identifier">lineNo</span> = <span class="ruby-identifier">lineNo</span>
1491
- 362: <span class="ruby-identifier">line</span>.<span class="ruby-identifier">subLineNo</span> = <span class="ruby-ivar">@table</span>.<span class="ruby-identifier">lines</span>
1492
- 363: <span class="ruby-identifier">setIndent</span>(<span class="ruby-identifier">line</span>, <span class="ruby-identifier">a</span>(<span class="ruby-value str">'taskRoot'</span>), <span class="ruby-identifier">taskList</span>.<span class="ruby-identifier">treeMode?</span>)
1493
- 364:
1494
- 365: <span class="ruby-comment cmt"># Generate a cell for each column in this line.</span>
1495
- 366: <span class="ruby-identifier">a</span>(<span class="ruby-value str">'columns'</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">columnDef</span><span class="ruby-operator">|</span>
1496
- 367: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">attributeId</span> = <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">id</span>
1497
- 368: <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">generateTableCell</span>(<span class="ruby-identifier">line</span>, <span class="ruby-identifier">task</span>, <span class="ruby-identifier">columnDef</span>, <span class="ruby-identifier">query</span>)
1498
- 369: <span class="ruby-keyword kw">end</span>
1499
- 370: <span class="ruby-keyword kw">end</span>
1500
- 371:
1501
- 372: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">resourceList</span>
1502
- 373: <span class="ruby-comment cmt"># If we have a resourceList we generate nested lines for each of the</span>
1503
- 374: <span class="ruby-comment cmt"># resources that are assigned to this task and pass the user-defined</span>
1504
- 375: <span class="ruby-comment cmt"># filter.</span>
1505
- 376: <span class="ruby-identifier">resourceList</span>.<span class="ruby-identifier">setSorting</span>(<span class="ruby-identifier">a</span>(<span class="ruby-value str">'sortResources'</span>))
1506
- 377: <span class="ruby-identifier">assignedResourceList</span> = <span class="ruby-identifier">filterResourceList</span>(<span class="ruby-identifier">resourceList</span>, <span class="ruby-identifier">task</span>,
1507
- 378: <span class="ruby-identifier">a</span>(<span class="ruby-value str">'hideResource'</span>), <span class="ruby-identifier">a</span>(<span class="ruby-value str">'rollupResource'</span>), <span class="ruby-identifier">a</span>(<span class="ruby-value str">'openNodes'</span>))
1508
- 379: <span class="ruby-identifier">assignedResourceList</span>.<span class="ruby-identifier">sort!</span>
1509
- 380: <span class="ruby-identifier">lineNo</span> = <span class="ruby-identifier">generateResourceList</span>(<span class="ruby-identifier">assignedResourceList</span>, <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">line</span>)
1510
- 381: <span class="ruby-keyword kw">end</span>
1511
- 382: <span class="ruby-keyword kw">end</span>
1512
- 383: <span class="ruby-identifier">lineNo</span>
1513
- 384: <span class="ruby-keyword kw">end</span></pre>
1514
- </div>
1515
-
1516
- </div>
1517
-
1518
-
1519
-
1520
-
1521
- </div>
1522
-
1523
-
1524
- <div id="set-eport-eriod-method" class="method-detail ">
1525
- <a name="method-i-setReportPeriod"></a>
1526
-
1527
- <div class="method-heading">
1528
-
1529
- <span class="method-name">setReportPeriod</span><span
1530
- class="method-args">()</span>
1531
- <span class="method-click-advice">click to toggle source</span>
1532
-
1533
- </div>
1534
-
1535
- <div class="method-description">
1536
-
1537
- <p>
1538
- These can&#8217;t be determined during initialization as they have have
1539
- been changed afterwards.
1540
- </p>
1541
-
1542
-
1543
-
1544
- <div class="method-source-code"
1545
- id="set-eport-eriod-source">
1546
- <pre>
1547
- <span class="ruby-comment cmt"># File lib/taskjuggler/reports/TableReport.rb, line 192</span>
1548
- 192: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">setReportPeriod</span>
1549
- 193: <span class="ruby-ivar">@start</span> = <span class="ruby-identifier">a</span>(<span class="ruby-value str">'start'</span>)
1550
- 194: <span class="ruby-ivar">@end</span> = <span class="ruby-identifier">a</span>(<span class="ruby-value str">'end'</span>)
1551
- 195: <span class="ruby-keyword kw">end</span></pre>
1552
- </div>
1553
-
1554
- </div>
1555
-
1556
-
1557
-
1558
-
1559
- </div>
1560
-
1561
-
1562
- </div>
1563
-
1564
- <div id="private-instance-method-details" class="method-section section">
1565
- <h3 class="section-header">Private Instance Methods</h3>
1566
-
1567
-
1568
- <div id="check-ell-ext-method" class="method-detail ">
1569
- <a name="method-i-checkCellText"></a>
1570
-
1571
- <div class="method-heading">
1572
-
1573
- <span class="method-name">checkCellText</span><span
1574
- class="method-args">(cell)</span>
1575
- <span class="method-click-advice">click to toggle source</span>
1576
-
1577
- </div>
1578
-
1579
- <div class="method-description">
1580
-
1581
- <p>
1582
- Make sure we have a valid cell text. If not, this is the result of an
1583
- error. This could happen after scheduling errors.
1584
- </p>
1585
-
1586
-
1587
-
1588
- <div class="method-source-code"
1589
- id="check-ell-ext-source">
1590
- <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>
1598
- </div>
1599
-
1600
- </div>
1601
-
1602
-
1603
-
1604
-
1605
- </div>
1606
-
1607
-
1608
- <div id="gen-al-hart-eader-method" class="method-detail ">
1609
- <a name="method-i-genCalChartHeader"></a>
1610
-
1611
- <div class="method-heading">
1612
-
1613
- <span class="method-name">genCalChartHeader</span><span
1614
- class="method-args">(columnDef, t, sameTimeNextFunc, name1Func, name2Func)</span>
1615
- <span class="method-click-advice">click to toggle source</span>
1616
-
1617
- </div>
1618
-
1619
- <div class="method-description">
1620
-
1621
- <p>
1622
- Generate the header data for calendar tables. They consists of columns for
1623
- each hour, day, week, etc. <em>columnDef</em> is the definition of the
1624
- columns. <em>t</em> is the start time for the calendar.
1625
- <em>sameTimeNextFunc</em> is a function that is called to advance
1626
- <em>t</em> to the next table column interval. <em>name1Func</em> and
1627
- <em>name2Func</em> are functions that return the upper and lower title of
1628
- the particular column.
1629
- </p>
1630
-
1631
-
1632
-
1633
- <div class="method-source-code"
1634
- id="gen-al-hart-eader-source">
1635
- <pre>
1636
- <span class="ruby-comment cmt"># File lib/taskjuggler/reports/TableReport.rb, line 460</span>
1637
- 460: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">genCalChartHeader</span>(<span class="ruby-identifier">columnDef</span>, <span class="ruby-identifier">t</span>, <span class="ruby-identifier">sameTimeNextFunc</span>, <span class="ruby-identifier">name1Func</span>, <span class="ruby-identifier">name2Func</span>)
1638
- 461: <span class="ruby-identifier">tableColumn</span> = <span class="ruby-constant">ReportTableColumn</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@table</span>, <span class="ruby-identifier">columnDef</span>, <span class="ruby-value str">''</span>)
1639
- 462:
1640
- 463: <span class="ruby-comment cmt"># Calendar chars only work when all lines have same height.</span>
1641
- 464: <span class="ruby-ivar">@table</span>.<span class="ruby-identifier">equiLines</span> = <span class="ruby-keyword kw">true</span>
1642
- 465:
1643
- 466: <span class="ruby-comment cmt"># Embedded tables have unpredictable width. So we always need to make room</span>
1644
- 467: <span class="ruby-comment cmt"># for a potential scrollbar.</span>
1645
- 468: <span class="ruby-identifier">tableColumn</span>.<span class="ruby-identifier">scrollbar</span> = <span class="ruby-keyword kw">true</span>
1646
- 469:
1647
- 470: <span class="ruby-comment cmt"># Create the table that is embedded in this column.</span>
1648
- 471: <span class="ruby-identifier">tableColumn</span>.<span class="ruby-identifier">cell1</span>.<span class="ruby-identifier">special</span> = <span class="ruby-identifier">table</span> = <span class="ruby-constant">ColumnTable</span>.<span class="ruby-identifier">new</span>
1649
- 472: <span class="ruby-identifier">table</span>.<span class="ruby-identifier">equiLines</span> = <span class="ruby-keyword kw">true</span>
1650
- 473: <span class="ruby-identifier">tableColumn</span>.<span class="ruby-identifier">cell2</span>.<span class="ruby-identifier">hidden</span> = <span class="ruby-keyword kw">true</span>
1651
- 474: <span class="ruby-identifier">table</span>.<span class="ruby-identifier">viewWidth</span> = <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">width</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">width</span> <span class="ruby-operator">:</span> <span class="ruby-value">450</span>
1652
- 475:
1653
- 476: <span class="ruby-comment cmt"># Iterate over the report interval until we hit the end date. The</span>
1654
- 477: <span class="ruby-comment cmt"># iteration is done with 2 nested loops. The outer loops generates the</span>
1655
- 478: <span class="ruby-comment cmt"># intervals for the upper (larger) scale. The inner loop generates the</span>
1656
- 479: <span class="ruby-comment cmt"># lower (smaller) scale.</span>
1657
- 480: <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>
1658
- 481: <span class="ruby-identifier">cellsInInterval</span> = <span class="ruby-value">0</span>
1659
- 482: <span class="ruby-comment cmt"># Label for upper scale. The yearly calendar only has a lower scale.</span>
1660
- 483: <span class="ruby-identifier">currentInterval</span> = <span class="ruby-identifier">t</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">name1Func</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">name1Func</span>
1661
- 484: <span class="ruby-identifier">firstColumn</span> = <span class="ruby-keyword kw">nil</span>
1662
- 485: <span class="ruby-comment cmt"># The innter loops terminates when the label for the upper scale has</span>
1663
- 486: <span class="ruby-comment cmt"># changed to the next scale cell.</span>
1664
- 487: <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">t</span> <span class="ruby-operator">&lt;</span> <span class="ruby-ivar">@end</span> <span class="ruby-operator">&amp;&amp;</span> (<span class="ruby-identifier">name1Func</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span>
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>)
1666
- 489: <span class="ruby-comment cmt"># call TjTime::sameTimeNext... function to get the end of the column.</span>
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>)
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>)
1669
- 492: <span class="ruby-comment cmt"># Create the new column object.</span>
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>)
1671
- 494: <span class="ruby-comment cmt"># Store the date of the column in the original form.</span>
1672
- 495: <span class="ruby-identifier">column</span>.<span class="ruby-identifier">cell1</span>.<span class="ruby-identifier">data</span> = <span class="ruby-identifier">t</span>.<span class="ruby-identifier">to_s</span>(<span class="ruby-identifier">a</span>(<span class="ruby-value str">'timeFormat'</span>))
1673
- 496: <span class="ruby-comment cmt"># The upper scale cells will be merged into one large cell that spans</span>
1674
- 497: <span class="ruby-comment cmt"># all lower scale cells that belong to this upper cell.</span>
1675
- 498: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">firstColumn</span>.<span class="ruby-identifier">nil?</span>
1676
- 499: <span class="ruby-identifier">firstColumn</span> = <span class="ruby-identifier">column</span>
1677
- 500: <span class="ruby-identifier">column</span>.<span class="ruby-identifier">cell1</span>.<span class="ruby-identifier">text</span> = <span class="ruby-identifier">currentInterval</span>.<span class="ruby-identifier">to_s</span>
1678
- 501: <span class="ruby-keyword kw">else</span>
1679
- 502: <span class="ruby-identifier">column</span>.<span class="ruby-identifier">cell1</span>.<span class="ruby-identifier">hidden</span> = <span class="ruby-keyword kw">true</span>
1680
- 503: <span class="ruby-keyword kw">end</span>
1681
- 504: <span class="ruby-identifier">column</span>.<span class="ruby-identifier">cell2</span>.<span class="ruby-identifier">text</span> = <span class="ruby-identifier">t</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">name2Func</span>).<span class="ruby-identifier">to_s</span>
1682
- 505: <span class="ruby-comment cmt"># TODO: The width should be taken from some data structure.</span>
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>
1684
- 507: <span class="ruby-comment cmt"># Off-duty cells will have a different color than working time cells.</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>)
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>
1687
- 510: <span class="ruby-keyword kw">end</span>
1688
- 511: <span class="ruby-identifier">cellsInInterval</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
1689
- 512:
1690
- 513: <span class="ruby-identifier">t</span> = <span class="ruby-identifier">nextT</span>
1691
- 514: <span class="ruby-keyword kw">end</span>
1692
- 515: <span class="ruby-comment cmt"># The the first upper scale cell how many trailing hidden cells are</span>
1693
- 516: <span class="ruby-comment cmt"># following.</span>
1694
- 517: <span class="ruby-identifier">firstColumn</span>.<span class="ruby-identifier">cell1</span>.<span class="ruby-identifier">columns</span> = <span class="ruby-identifier">cellsInInterval</span>
1695
- 518: <span class="ruby-keyword kw">end</span>
1696
- 519: <span class="ruby-keyword kw">end</span></pre>
1697
- </div>
1698
-
1699
- </div>
1700
-
1701
-
1702
-
1703
-
1704
- </div>
1705
-
1706
-
1707
- <div id="gen-al-hart-esource-ell-method" class="method-detail ">
1708
- <a name="method-i-genCalChartResourceCell"></a>
1709
-
1710
- <div class="method-heading">
1711
-
1712
- <span class="method-name">genCalChartResourceCell</span><span
1713
- class="method-args">(origQuery, line, columnDef, t, sameTimeNextFunc)</span>
1714
- <span class="method-click-advice">click to toggle source</span>
1715
-
1716
- </div>
1717
-
1718
- <div class="method-description">
1719
-
1720
- <p>
1721
- Generate the cells for the resource lines of a calendar column. These lines
1722
- do not directly belong to the @table object but to an embedded <a
1723
- href="ColumnTable.html">ColumnTable</a> object. Therefor a single @table
1724
- column usually has many cells on each single line. <em>scenarioIdx</em> is
1725
- the index of the scenario that is reported in this line. <em>line</em> is
1726
- the @table line. <em>t</em> is the start date for the calendar.
1727
- <em>sameTimeNextFunc</em> is the function that will move the date to the
1728
- next cell.
1729
- </p>
1730
-
1731
-
1732
-
1733
- <div class="method-source-code"
1734
- id="gen-al-hart-esource-ell-source">
1735
- <pre>
1736
- <span class="ruby-comment cmt"># File lib/taskjuggler/reports/TableReport.rb, line 808</span>
1737
- 808: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">genCalChartResourceCell</span>(<span class="ruby-identifier">origQuery</span>, <span class="ruby-identifier">line</span>, <span class="ruby-identifier">columnDef</span>, <span class="ruby-identifier">t</span>,
1738
- 809: <span class="ruby-identifier">sameTimeNextFunc</span>)
1739
- 810: <span class="ruby-comment cmt"># Find out if we have an enclosing task scope.</span>
1740
- 811: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">line</span>.<span class="ruby-identifier">scopeLine</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">line</span>.<span class="ruby-identifier">scopeLine</span>.<span class="ruby-identifier">property</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Task</span>)
1741
- 812: <span class="ruby-identifier">task</span> = <span class="ruby-identifier">line</span>.<span class="ruby-identifier">scopeLine</span>.<span class="ruby-identifier">property</span>
1742
- 813: <span class="ruby-comment cmt"># Get the interval of the task. In case a date is invalid due to a</span>
1743
- 814: <span class="ruby-comment cmt"># scheduling problem, we use the full project interval.</span>
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>]
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>]
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>
1855
- </div>
1856
-
1857
- </div>
1858
-
1859
-
1860
-
1861
-
1862
- </div>
1863
-
1864
-
1865
- <div id="gen-al-hart-ask-ell-method" class="method-detail ">
1866
- <a name="method-i-genCalChartTaskCell"></a>
1867
-
1868
- <div class="method-heading">
1869
-
1870
- <span class="method-name">genCalChartTaskCell</span><span
1871
- class="method-args">(origQuery, line, columnDef, t, sameTimeNextFunc)</span>
1872
- <span class="method-click-advice">click to toggle source</span>
1873
-
1874
- </div>
1875
-
1876
- <div class="method-description">
1877
-
1878
- <p>
1879
- Generate the cells for the task lines of a calendar column. These lines do
1880
- not directly belong to the @table object but to an embedded <a
1881
- href="ColumnTable.html">ColumnTable</a> object. Therefor a single @table
1882
- column usually has many cells on each single line. <em>scenarioIdx</em> is
1883
- the index of the scenario that is reported in this line. <em>line</em> is
1884
- the @table line. <em>t</em> is the start date for the calendar.
1885
- <em>sameTimeNextFunc</em> is the function that will move the date to the
1886
- next cell.
1887
- </p>
1888
-
1889
-
1890
-
1891
- <div class="method-source-code"
1892
- id="gen-al-hart-ask-ell-source">
1893
- <pre>
1894
- <span class="ruby-comment cmt"># File lib/taskjuggler/reports/TableReport.rb, line 726</span>
1895
- 726: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">genCalChartTaskCell</span>(<span class="ruby-identifier">origQuery</span>, <span class="ruby-identifier">line</span>, <span class="ruby-identifier">columnDef</span>, <span class="ruby-identifier">t</span>, <span class="ruby-identifier">sameTimeNextFunc</span>)
1896
- 727: <span class="ruby-identifier">task</span> = <span class="ruby-identifier">line</span>.<span class="ruby-identifier">property</span>
1897
- 728: <span class="ruby-comment cmt"># Find out if we have an enclosing resource scope.</span>
1898
- 729: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">line</span>.<span class="ruby-identifier">scopeLine</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">line</span>.<span class="ruby-identifier">scopeLine</span>.<span class="ruby-identifier">property</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Resource</span>)
1899
- 730: <span class="ruby-identifier">resource</span> = <span class="ruby-identifier">line</span>.<span class="ruby-identifier">scopeLine</span>.<span class="ruby-identifier">property</span>
1900
- 731: <span class="ruby-keyword kw">else</span>
1901
- 732: <span class="ruby-identifier">resource</span> = <span class="ruby-keyword kw">nil</span>
1902
- 733: <span class="ruby-keyword kw">end</span>
1903
- 734:
1904
- 735: <span class="ruby-comment cmt"># Get the interval of the task. In case a date is invalid due to a</span>
1905
- 736: <span class="ruby-comment cmt"># scheduling problem, we use the full project interval.</span>
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>]
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>]
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>)
1910
- 741:
1911
- 742: <span class="ruby-identifier">firstCell</span> = <span class="ruby-keyword kw">nil</span>
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>
1913
- 744: <span class="ruby-comment cmt"># We modify the start and end dates to match the cell boundaries. So</span>
1914
- 745: <span class="ruby-comment cmt"># we need to make sure we don't modify the original Query but our own</span>
1915
- 746: <span class="ruby-comment cmt"># copies.</span>
1916
- 747: <span class="ruby-identifier">query</span> = <span class="ruby-identifier">origQuery</span>.<span class="ruby-identifier">dup</span>
1917
- 748: <span class="ruby-comment cmt"># call TjTime::sameTimeNext... function</span>
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>)
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>)
1920
- 751: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">content</span>
1921
- 752: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'empty'</span>
1922
- 753: <span class="ruby-comment cmt"># Create a new cell</span>
1923
- 754: <span class="ruby-identifier">cell</span> = <span class="ruby-identifier">newCell</span>(<span class="ruby-identifier">query</span>, <span class="ruby-identifier">line</span>)
1924
- 755: <span class="ruby-comment cmt"># We only generate cells will different background colors.</span>
1925
- 756: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'load'</span>
1926
- 757: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">attributeId</span> = <span class="ruby-value str">'effort'</span>
1927
- 758: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">start</span> = <span class="ruby-identifier">t</span>
1928
- 759: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">end</span> = <span class="ruby-identifier">nextT</span>
1929
- 760: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">process</span>
1930
- 761:
1931
- 762: <span class="ruby-comment cmt"># Create a new cell</span>
1932
- 763: <span class="ruby-identifier">cell</span> = <span class="ruby-identifier">newCell</span>(<span class="ruby-identifier">query</span>, <span class="ruby-identifier">line</span>)
1933
- 764:
1934
- 765: <span class="ruby-comment cmt"># To increase readability, we don't show 0.0 values.</span>
1935
- 766: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">text</span> = <span class="ruby-identifier">query</span>.<span class="ruby-identifier">to_s</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">query</span>.<span class="ruby-identifier">to_num</span> <span class="ruby-operator">!=</span> <span class="ruby-value">0.0</span>
1936
- 767: <span class="ruby-keyword kw">else</span>
1937
- 768: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Unknown column content #{column.content}&quot;</span>
1938
- 769: <span class="ruby-keyword kw">end</span>
1939
- 770:
1940
- 771: <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>)
1941
- 772: <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>
1942
- 773:
1943
- 774: <span class="ruby-comment cmt"># Determine cell category (mostly the background color)</span>
1944
- 775: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">cellIv</span>.<span class="ruby-identifier">overlaps?</span>(<span class="ruby-identifier">taskIv</span>)
1945
- 776: <span class="ruby-comment cmt"># The cell is either a container or leaf task</span>
1946
- 777: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">category</span> = <span class="ruby-identifier">task</span>.<span class="ruby-identifier">container?</span> <span class="ruby-operator">?</span> <span class="ruby-value str">'calconttask'</span> <span class="ruby-operator">:</span> <span class="ruby-value str">'caltask'</span>
1947
- 778: <span class="ruby-comment cmt"># If the user has requested a custom tooltip, add it to each task cell.</span>
1948
- 779: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">tooltip</span> = <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">tooltip</span>.<span class="ruby-identifier">getPattern</span>(<span class="ruby-identifier">query</span>) <span class="ruby-operator">||</span> <span class="ruby-keyword kw">nil</span>
1949
- 780: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">showTooltipHint</span> = <span class="ruby-keyword kw">false</span>
1950
- 781: <span class="ruby-keyword kw">elsif</span> <span class="ruby-operator">!</span><span class="ruby-ivar">@project</span>.<span class="ruby-identifier">isWorkingTime</span>(<span class="ruby-identifier">cellIv</span>)
1951
- 782: <span class="ruby-comment cmt"># The cell is a vacation cell.</span>
1952
- 783: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">category</span> = <span class="ruby-value str">'offduty'</span>
1953
- 784: <span class="ruby-keyword kw">else</span>
1954
- 785: <span class="ruby-comment cmt"># The cell is just filled with the background color.</span>
1955
- 786: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">category</span> = <span class="ruby-value str">'taskcell'</span>
1956
- 787: <span class="ruby-keyword kw">end</span>
1957
- 788: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">category</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">line</span>.<span class="ruby-identifier">property</span>.<span class="ruby-identifier">get</span>(<span class="ruby-value str">'index'</span>) <span class="ruby-operator">%</span> <span class="ruby-value">2</span> <span class="ruby-operator">==</span> <span class="ruby-value">1</span> <span class="ruby-operator">?</span> <span class="ruby-value str">'1'</span> <span class="ruby-operator">:</span> <span class="ruby-value str">'2'</span>
1958
- 789:
1959
- 790: <span class="ruby-identifier">tryCellMerging</span>(<span class="ruby-identifier">cell</span>, <span class="ruby-identifier">line</span>, <span class="ruby-identifier">firstCell</span>)
1960
- 791:
1961
- 792: <span class="ruby-identifier">t</span> = <span class="ruby-identifier">nextT</span>
1962
- 793: <span class="ruby-identifier">firstCell</span> = <span class="ruby-identifier">cell</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">firstCell</span>
1963
- 794: <span class="ruby-keyword kw">end</span>
1964
- 795:
1965
- 796: <span class="ruby-identifier">legend</span>.<span class="ruby-identifier">addCalendarItem</span>(<span class="ruby-value str">'Container Task'</span>, <span class="ruby-value str">'calconttask1'</span>)
1966
- 797: <span class="ruby-identifier">legend</span>.<span class="ruby-identifier">addCalendarItem</span>(<span class="ruby-value str">'Task'</span>, <span class="ruby-value str">'caltask1'</span>)
1967
- 798: <span class="ruby-identifier">legend</span>.<span class="ruby-identifier">addCalendarItem</span>(<span class="ruby-value str">'Off duty time'</span>, <span class="ruby-value str">'offduty'</span>)
1968
- 799: <span class="ruby-keyword kw">end</span></pre>
1969
- </div>
1970
-
1971
- </div>
1972
-
1973
-
1974
-
1975
-
1976
- </div>
1977
-
1978
-
1979
- <div id="gen-alculated-ell-method" class="method-detail ">
1980
- <a name="method-i-genCalculatedCell"></a>
1981
-
1982
- <div class="method-heading">
1983
-
1984
- <span class="method-name">genCalculatedCell</span><span
1985
- class="method-args">(query, line, columnDef, property)</span>
1986
- <span class="method-click-advice">click to toggle source</span>
1987
-
1988
- </div>
1989
-
1990
- <div class="method-description">
1991
-
1992
- <p>
1993
- Generate a <a href="ReportTableCell.html">ReportTableCell</a> filled with a
1994
- calculted value from the property or other sources of information. It
1995
- returns true if the cell exists, false for a hidden cell. <em>query</em> is
1996
- the <a href="Query.html">Query</a> to get the cell value. <em>line</em> is
1997
- the <a href="ReportTableLine.html">ReportTableLine</a> of the cell.
1998
- <em>columnDef</em> is the <a
1999
- href="TableColumnDefinition.html">TableColumnDefinition</a> of the column.
2000
- <em>property</em> is the <a
2001
- href="PropertyTreeNode.html">PropertyTreeNode</a> that is reported in this
2002
- cell.
2003
- </p>
2004
-
2005
-
2006
-
2007
- <div class="method-source-code"
2008
- id="gen-alculated-ell-source">
2009
- <pre>
2010
- <span class="ruby-comment cmt"># File lib/taskjuggler/reports/TableReport.rb, line 652</span>
2011
- 652: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">genCalculatedCell</span>(<span class="ruby-identifier">query</span>, <span class="ruby-identifier">line</span>, <span class="ruby-identifier">columnDef</span>, <span class="ruby-identifier">property</span>)
2012
- 653: <span class="ruby-identifier">query</span> = <span class="ruby-identifier">query</span>.<span class="ruby-identifier">dup</span>
2013
- 654: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">listType</span> = <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">listType</span>
2014
- 655: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">listItem</span> = <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">listItem</span>
2015
- 656:
2016
- 657: <span class="ruby-comment cmt"># Create a new cell</span>
2017
- 658: <span class="ruby-identifier">cell</span> = <span class="ruby-identifier">newCell</span>(<span class="ruby-identifier">query</span>, <span class="ruby-identifier">line</span>)
2018
- 659:
2019
- 660: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">setScenarioSettings</span>(<span class="ruby-identifier">cell</span>, <span class="ruby-identifier">query</span>.<span class="ruby-identifier">scenarioIdx</span>,
2020
- 661: <span class="ruby-identifier">scenarioSpecific?</span>(<span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">id</span>))
2021
- 662: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
2022
- 663: <span class="ruby-keyword kw">end</span>
2023
- 664:
2024
- 665: <span class="ruby-identifier">setStandardCellAttributes</span>(<span class="ruby-identifier">cell</span>, <span class="ruby-identifier">columnDef</span>, <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">line</span>)
2025
- 666:
2026
- 667: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">query</span>.<span class="ruby-identifier">process</span>
2027
- 668: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">text</span> = (<span class="ruby-identifier">rti</span> = <span class="ruby-identifier">query</span>.<span class="ruby-identifier">to_rti</span>) <span class="ruby-operator">?</span> <span class="ruby-identifier">rti</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">query</span>.<span class="ruby-identifier">to_s</span>
2028
- 669: <span class="ruby-keyword kw">end</span>
2029
- 670:
2030
- 671: <span class="ruby-comment cmt"># Some columns need some extra care.</span>
2031
- 672: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">id</span>
2032
- 673: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'alert'</span>
2033
- 674: <span class="ruby-identifier">id</span> = <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">alertLevelId</span>(<span class="ruby-identifier">query</span>.<span class="ruby-identifier">to_num</span>)
2034
- 675: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">icon</span> = <span class="ruby-node">&quot;flag-#{id}&quot;</span>
2035
- 676: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">fontColor</span> = <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">alertLevelColor</span>(<span class="ruby-identifier">query</span>.<span class="ruby-identifier">to_sort</span>)
2036
- 677: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'alerttrend'</span>
2037
- 678: <span class="ruby-identifier">icons</span> = <span class="ruby-node">%( up flat down )</span>
2038
- 679: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">icon</span> = <span class="ruby-node">&quot;trend-#{icons[query.to_sort]}&quot;</span>
2039
- 680: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'line'</span>
2040
- 681: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">text</span> = <span class="ruby-identifier">line</span>.<span class="ruby-identifier">lineNo</span>.<span class="ruby-identifier">to_s</span>
2041
- 682: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'name'</span>
2042
- 683: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">icon</span> =
2043
- 684: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">property</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Task</span>)
2044
- 685: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">property</span>.<span class="ruby-identifier">container?</span>
2045
- 686: <span class="ruby-value str">'taskgroup'</span>
2046
- 687: <span class="ruby-keyword kw">else</span>
2047
- 688: <span class="ruby-value str">'task'</span>
2048
- 689: <span class="ruby-keyword kw">end</span>
2049
- 690: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">property</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Resource</span>)
2050
- 691: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">property</span>.<span class="ruby-identifier">container?</span>
2051
- 692: <span class="ruby-value str">'resourcegroup'</span>
2052
- 693: <span class="ruby-keyword kw">else</span>
2053
- 694: <span class="ruby-value str">'resource'</span>
2054
- 695: <span class="ruby-keyword kw">end</span>
2055
- 696: <span class="ruby-keyword kw">else</span>
2056
- 697: <span class="ruby-keyword kw">nil</span>
2057
- 698: <span class="ruby-keyword kw">end</span>
2058
- 699: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">iconTooltip</span> = <span class="ruby-constant">RichText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-node">&quot;'''ID:''' #{property.fullId}&quot;</span>).
2059
- 700: <span class="ruby-identifier">generateIntermediateFormat</span>
2060
- 701: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'no'</span>
2061
- 702: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">text</span> = <span class="ruby-identifier">line</span>.<span class="ruby-identifier">no</span>.<span class="ruby-identifier">to_s</span>
2062
- 703: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'bsi'</span>
2063
- 704: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">indent</span> = <span class="ruby-value">2</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">line</span>.<span class="ruby-identifier">scopeLine</span>
2064
- 705: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'scenario'</span>
2065
- 706: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">text</span> = <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">scenario</span>(<span class="ruby-identifier">query</span>.<span class="ruby-identifier">scenarioIdx</span>).<span class="ruby-identifier">name</span>
2066
- 707: <span class="ruby-keyword kw">end</span>
2067
- 708:
2068
- 709: <span class="ruby-comment cmt"># Replace the cell text if the user has requested a custom cell text.</span>
2069
- 710: <span class="ruby-identifier">cdText</span> = <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">cellText</span>.<span class="ruby-identifier">getPattern</span>(<span class="ruby-identifier">query</span>)
2070
- 711: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">text</span> = <span class="ruby-identifier">cdText</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">cdText</span>
2071
- 712:
2072
- 713: <span class="ruby-identifier">setCustomCellAttributes</span>(<span class="ruby-identifier">cell</span>, <span class="ruby-identifier">columnDef</span>, <span class="ruby-identifier">query</span>)
2073
- 714: <span class="ruby-identifier">checkCellText</span>(<span class="ruby-identifier">cell</span>)
2074
- 715:
2075
- 716: <span class="ruby-keyword kw">true</span>
2076
- 717: <span class="ruby-keyword kw">end</span></pre>
2077
- </div>
2078
-
2079
- </div>
2080
-
2081
-
2082
-
2083
-
2084
- </div>
2085
-
2086
-
2087
- <div id="gen-tandard-ell-method" class="method-detail ">
2088
- <a name="method-i-genStandardCell"></a>
2089
-
2090
- <div class="method-heading">
2091
-
2092
- <span class="method-name">genStandardCell</span><span
2093
- class="method-args">(query, line, columnDef)</span>
2094
- <span class="method-click-advice">click to toggle source</span>
2095
-
2096
- </div>
2097
-
2098
- <div class="method-description">
2099
-
2100
- <p>
2101
- Generate a <a href="ReportTableCell.html">ReportTableCell</a> filled the
2102
- value of an attribute of the property that line is for. It returns true if
2103
- the cell exists, false for a hidden cell.
2104
- </p>
2105
-
2106
-
2107
-
2108
- <div class="method-source-code"
2109
- id="gen-tandard-ell-source">
2110
- <pre>
2111
- <span class="ruby-comment cmt"># File lib/taskjuggler/reports/TableReport.rb, line 606</span>
2112
- 606: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">genStandardCell</span>(<span class="ruby-identifier">query</span>, <span class="ruby-identifier">line</span>, <span class="ruby-identifier">columnDef</span>)
2113
- 607: <span class="ruby-identifier">query</span> = <span class="ruby-identifier">query</span>.<span class="ruby-identifier">dup</span>
2114
- 608: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">listType</span> = <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">listType</span>
2115
- 609: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">listItem</span> = <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">listItem</span>
2116
- 610:
2117
- 611: <span class="ruby-comment cmt"># Find out, what type of PropertyTreeNode we are dealing with.</span>
2118
- 612: <span class="ruby-identifier">property</span> = <span class="ruby-identifier">line</span>.<span class="ruby-identifier">property</span>
2119
- 613: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">property</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Task</span>)
2120
- 614: <span class="ruby-identifier">propertyList</span> = <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">tasks</span>
2121
- 615: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">property</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Resource</span>)
2122
- 616: <span class="ruby-identifier">propertyList</span> = <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">resources</span>
2123
- 617: <span class="ruby-keyword kw">else</span>
2124
- 618: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Unknown property type #{property.class}&quot;</span>
2125
- 619: <span class="ruby-keyword kw">end</span>
2126
- 620:
2127
- 621: <span class="ruby-comment cmt"># Create a new cell</span>
2128
- 622: <span class="ruby-identifier">cell</span> = <span class="ruby-identifier">newCell</span>(<span class="ruby-identifier">query</span>, <span class="ruby-identifier">line</span>)
2129
- 623:
2130
- 624: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">setScenarioSettings</span>(<span class="ruby-identifier">cell</span>, <span class="ruby-identifier">query</span>.<span class="ruby-identifier">scenarioIdx</span>,
2131
- 625: <span class="ruby-identifier">propertyList</span>.<span class="ruby-identifier">scenarioSpecific?</span>(<span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">id</span>))
2132
- 626: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
2133
- 627: <span class="ruby-keyword kw">end</span>
2134
- 628:
2135
- 629: <span class="ruby-identifier">setStandardCellAttributes</span>(<span class="ruby-identifier">cell</span>, <span class="ruby-identifier">columnDef</span>,
2136
- 630: <span class="ruby-identifier">propertyList</span>.<span class="ruby-identifier">attributeType</span>(<span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">id</span>), <span class="ruby-identifier">line</span>)
2137
- 631:
2138
- 632: <span class="ruby-comment cmt"># If the user has requested a custom cell text, this will be used</span>
2139
- 633: <span class="ruby-comment cmt"># instead of the queried one.</span>
2140
- 634: <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">cdText</span> = <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">cellText</span>.<span class="ruby-identifier">getPattern</span>(<span class="ruby-identifier">query</span>))
2141
- 635: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">text</span> = <span class="ruby-identifier">cdText</span>
2142
- 636: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">query</span>.<span class="ruby-identifier">process</span>
2143
- 637: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">text</span> = (<span class="ruby-identifier">rti</span> = <span class="ruby-identifier">query</span>.<span class="ruby-identifier">to_rti</span>) <span class="ruby-operator">?</span> <span class="ruby-identifier">rti</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">query</span>.<span class="ruby-identifier">to_s</span>
2144
- 638: <span class="ruby-keyword kw">end</span>
2145
- 639:
2146
- 640: <span class="ruby-identifier">setCustomCellAttributes</span>(<span class="ruby-identifier">cell</span>, <span class="ruby-identifier">columnDef</span>, <span class="ruby-identifier">query</span>)
2147
- 641: <span class="ruby-identifier">checkCellText</span>(<span class="ruby-identifier">cell</span>)
2148
- 642:
2149
- 643: <span class="ruby-keyword kw">true</span>
2150
- 644: <span class="ruby-keyword kw">end</span></pre>
2151
- </div>
2152
-
2153
- </div>
2154
-
2155
-
2156
-
2157
-
2158
- </div>
2159
-
2160
-
2161
- <div id="generate-able-ell-method" class="method-detail ">
2162
- <a name="method-i-generateTableCell"></a>
2163
-
2164
- <div class="method-heading">
2165
-
2166
- <span class="method-name">generateTableCell</span><span
2167
- class="method-args">(line, property, columnDef, query)</span>
2168
- <span class="method-click-advice">click to toggle source</span>
2169
-
2170
- </div>
2171
-
2172
- <div class="method-description">
2173
-
2174
- <p>
2175
- Generate a cell of the table. <em>line</em> is the <a
2176
- href="ReportTableLine.html">ReportTableLine</a> that this cell should
2177
- belong to. <em>property</em> is the <a
2178
- href="PropertyTreeNode.html">PropertyTreeNode</a> that is reported in this
2179
- <em>line</em>. <em>columnDef</em> is the <a
2180
- href="TableColumnDefinition.html">TableColumnDefinition</a> of the column
2181
- this cell should belong to. <em>scenarioIdx</em> is the index of the
2182
- scenario that is reported in this <em>line</em>.
2183
- </p>
2184
- <p>
2185
- There are 4 kinds of cells. The most simple one is the standard cell. It
2186
- literally reports the value of a property attribute. Calculated cells are
2187
- more flexible. They contain computed values. The values are computed at
2188
- cell generation time. The calendar columns consist of multiple sub columns.
2189
- In such a case many cells are generated with a single call of this method.
2190
- The last kind of cell is actually not a cell. It just generates the chart
2191
- objects that belong to the property in this line.
2192
- </p>
2193
-
2194
-
2195
-
2196
- <div class="method-source-code"
2197
- id="generate-able-ell-source">
2198
- <pre>
2199
- <span class="ruby-comment cmt"># File lib/taskjuggler/reports/TableReport.rb, line 534</span>
2200
- 534: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateTableCell</span>(<span class="ruby-identifier">line</span>, <span class="ruby-identifier">property</span>, <span class="ruby-identifier">columnDef</span>, <span class="ruby-identifier">query</span>)
2201
- 535: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">start</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">end</span>
2202
- 536: <span class="ruby-comment cmt"># If the user has specified a new start or end time for this column,</span>
2203
- 537: <span class="ruby-comment cmt"># we have to duplicate the query before we modify it.</span>
2204
- 538: <span class="ruby-identifier">query</span> = <span class="ruby-identifier">query</span>.<span class="ruby-identifier">dup</span>
2205
- 539: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">start</span> = <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">start</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">start</span>
2206
- 540: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">end</span> = <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">end</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">end</span>
2207
- 541: <span class="ruby-keyword kw">end</span>
2208
- 542:
2209
- 543: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">id</span>
2210
- 544: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'chart'</span>
2211
- 545: <span class="ruby-comment cmt"># Generate a hidden cell. The real meat is in the actual chart object,</span>
2212
- 546: <span class="ruby-comment cmt"># not in this cell.</span>
2213
- 547: <span class="ruby-identifier">cell</span> = <span class="ruby-constant">ReportTableCell</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">line</span>, <span class="ruby-identifier">query</span>, <span class="ruby-value str">''</span>)
2214
- 548: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">hidden</span> = <span class="ruby-keyword kw">true</span>
2215
- 549: <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">text</span> = <span class="ruby-keyword kw">nil</span>
2216
- 550: <span class="ruby-comment cmt"># The GanttChart can be reached via the special variable of the column</span>
2217
- 551: <span class="ruby-comment cmt"># header.</span>
2218
- 552: <span class="ruby-identifier">chart</span> = <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">column</span>.<span class="ruby-identifier">cell1</span>.<span class="ruby-identifier">special</span>
2219
- 553: <span class="ruby-constant">GanttLine</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">chart</span>, <span class="ruby-identifier">query</span>, (<span class="ruby-identifier">line</span>.<span class="ruby-identifier">subLineNo</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>) * (<span class="ruby-identifier">line</span>.<span class="ruby-identifier">height</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>),
2220
- 554: <span class="ruby-identifier">line</span>.<span class="ruby-identifier">height</span>, <span class="ruby-identifier">a</span>(<span class="ruby-value str">'selfcontained'</span>) <span class="ruby-operator">?</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">tooltip</span>)
2221
- 555: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">true</span>
2222
- 556: <span class="ruby-comment cmt"># The calendar cells can be all generated by the same function. But we</span>
2223
- 557: <span class="ruby-comment cmt"># need to use different parameters.</span>
2224
- 558: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'hourly'</span>
2225
- 559: <span class="ruby-identifier">start</span> = <span class="ruby-ivar">@start</span>.<span class="ruby-identifier">midnight</span>
2226
- 560: <span class="ruby-identifier">sameTimeNextFunc</span> = <span class="ruby-value">:sameTimeNextHour</span>
2227
- 561: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'daily'</span>
2228
- 562: <span class="ruby-identifier">start</span> = <span class="ruby-ivar">@start</span>.<span class="ruby-identifier">midnight</span>
2229
- 563: <span class="ruby-identifier">sameTimeNextFunc</span> = <span class="ruby-value">:sameTimeNextDay</span>
2230
- 564: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'weekly'</span>
2231
- 565: <span class="ruby-identifier">start</span> = <span class="ruby-ivar">@start</span>.<span class="ruby-identifier">beginOfWeek</span>(<span class="ruby-identifier">a</span>(<span class="ruby-value str">'weekStartsMonday'</span>))
2232
- 566: <span class="ruby-identifier">sameTimeNextFunc</span> = <span class="ruby-value">:sameTimeNextWeek</span>
2233
- 567: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'monthly'</span>
2234
- 568: <span class="ruby-identifier">start</span> = <span class="ruby-ivar">@start</span>.<span class="ruby-identifier">beginOfMonth</span>
2235
- 569: <span class="ruby-identifier">sameTimeNextFunc</span> = <span class="ruby-value">:sameTimeNextMonth</span>
2236
- 570: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'quarterly'</span>
2237
- 571: <span class="ruby-identifier">start</span> = <span class="ruby-ivar">@start</span>.<span class="ruby-identifier">beginOfQuarter</span>
2238
- 572: <span class="ruby-identifier">sameTimeNextFunc</span> = <span class="ruby-value">:sameTimeNextQuarter</span>
2239
- 573: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'yearly'</span>
2240
- 574: <span class="ruby-identifier">start</span> = <span class="ruby-ivar">@start</span>.<span class="ruby-identifier">beginOfYear</span>
2241
- 575: <span class="ruby-identifier">sameTimeNextFunc</span> = <span class="ruby-value">:sameTimeNextYear</span>
2242
- 576: <span class="ruby-keyword kw">else</span>
2243
- 577: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">calculated?</span>(<span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">id</span>)
2244
- 578: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">genCalculatedCell</span>(<span class="ruby-identifier">query</span>, <span class="ruby-identifier">line</span>, <span class="ruby-identifier">columnDef</span>, <span class="ruby-identifier">property</span>)
2245
- 579: <span class="ruby-keyword kw">else</span>
2246
- 580: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">genStandardCell</span>(<span class="ruby-identifier">query</span>, <span class="ruby-identifier">line</span>, <span class="ruby-identifier">columnDef</span>)
2247
- 581: <span class="ruby-keyword kw">end</span>
2248
- 582: <span class="ruby-keyword kw">end</span>
2249
- 583:
2250
- 584: <span class="ruby-comment cmt"># The calendar cells don't live in this ReportTable but in an embedded</span>
2251
- 585: <span class="ruby-comment cmt"># ReportTable that can be reached via the column header special variable.</span>
2252
- 586: <span class="ruby-comment cmt"># For embedded column tables we need to create a new line.</span>
2253
- 587: <span class="ruby-identifier">tcLine</span> = <span class="ruby-constant">ReportTableLine</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">columnDef</span>.<span class="ruby-identifier">column</span>.<span class="ruby-identifier">cell1</span>.<span class="ruby-identifier">special</span>,
2254
- 588: <span class="ruby-identifier">line</span>.<span class="ruby-identifier">property</span>, <span class="ruby-identifier">line</span>.<span class="ruby-identifier">scopeLine</span>)
2255
- 589:
2256
- 590: <span class="ruby-constant">PlaceHolderCell</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">line</span>, <span class="ruby-identifier">tcLine</span>)
2257
- 591: <span class="ruby-comment cmt"># Depending on the property type we use different generator functions.</span>
2258
- 592: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">property</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Task</span>)
2259
- 593: <span class="ruby-identifier">genCalChartTaskCell</span>(<span class="ruby-identifier">query</span>, <span class="ruby-identifier">tcLine</span>, <span class="ruby-identifier">columnDef</span>, <span class="ruby-identifier">start</span>, <span class="ruby-identifier">sameTimeNextFunc</span>)
2260
- 594: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">property</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Resource</span>)
2261
- 595: <span class="ruby-identifier">genCalChartResourceCell</span>(<span class="ruby-identifier">query</span>, <span class="ruby-identifier">tcLine</span>, <span class="ruby-identifier">columnDef</span>, <span class="ruby-identifier">start</span>,
2262
- 596: <span class="ruby-identifier">sameTimeNextFunc</span>)
2263
- 597: <span class="ruby-keyword kw">else</span>
2264
- 598: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Unknown property type #{property.class}&quot;</span>
2265
- 599: <span class="ruby-keyword kw">end</span>
2266
- 600: <span class="ruby-keyword kw">true</span>
2267
- 601: <span class="ruby-keyword kw">end</span></pre>
2268
- </div>
2269
-
2270
- </div>
2271
-
2272
-
2273
-
2274
-
2275
- </div>
2276
-
2277
-
2278
- <div id="new-ell-method" class="method-detail ">
2279
- <a name="method-i-newCell"></a>
2280
-
2281
- <div class="method-heading">
2282
-
2283
- <span class="method-name">newCell</span><span
2284
- class="method-args">(query, line)</span>
2285
- <span class="method-click-advice">click to toggle source</span>
2286
-
2287
- </div>
2288
-
2289
- <div class="method-description">
2290
-
2291
- <p>
2292
- Create a new <a href="ReportTableCell.html">ReportTableCell</a> object and
2293
- initialize some common values.
2294
- </p>
2295
-
2296
-
2297
-
2298
- <div class="method-source-code"
2299
- id="new-ell-source">
2300
- <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>
2311
- </div>
2312
-
2313
- </div>
2314
-
2315
-
2316
-
2317
-
2318
- </div>
2319
-
2320
-
2321
- <div id="set-ustom-ell-ttributes-method" class="method-detail ">
2322
- <a name="method-i-setCustomCellAttributes"></a>
2323
-
2324
- <div class="method-heading">
2325
-
2326
- <span class="method-name">setCustomCellAttributes</span><span
2327
- class="method-args">(cell, columnDef, query)</span>
2328
- <span class="method-click-advice">click to toggle source</span>
2329
-
2330
- </div>
2331
-
2332
- <div class="method-description">
2333
-
2334
-
2335
-
2336
-
2337
-
2338
- <div class="method-source-code"
2339
- id="set-ustom-ell-ttributes-source">
2340
- <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>
2362
- </div>
2363
-
2364
- </div>
2365
-
2366
-
2367
-
2368
-
2369
- </div>
2370
-
2371
-
2372
- <div id="set-ndent-method" class="method-detail ">
2373
- <a name="method-i-setIndent"></a>
2374
-
2375
- <div class="method-heading">
2376
-
2377
- <span class="method-name">setIndent</span><span
2378
- class="method-args">(line, propertyRoot, treeMode)</span>
2379
- <span class="method-click-advice">click to toggle source</span>
2380
-
2381
- </div>
2382
-
2383
- <div class="method-description">
2384
-
2385
- <p>
2386
- Determine the indentation for this line.
2387
- </p>
2388
-
2389
-
2390
-
2391
- <div class="method-source-code"
2392
- id="set-ndent-source">
2393
- <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>
2407
- </div>
2408
-
2409
- </div>
2410
-
2411
-
2412
-
2413
-
2414
- </div>
2415
-
2416
-
2417
- <div id="set-cenario-ettings-method" class="method-detail ">
2418
- <a name="method-i-setScenarioSettings"></a>
2419
-
2420
- <div class="method-heading">
2421
-
2422
- <span class="method-name">setScenarioSettings</span><span
2423
- class="method-args">(cell, scenarioIdx, scenarioSpecific)</span>
2424
- <span class="method-click-advice">click to toggle source</span>
2425
-
2426
- </div>
2427
-
2428
- <div class="method-description">
2429
-
2430
-
2431
-
2432
-
2433
-
2434
- <div class="method-source-code"
2435
- id="set-cenario-ettings-source">
2436
- <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>
2456
- </div>
2457
-
2458
- </div>
2459
-
2460
-
2461
-
2462
-
2463
- </div>
2464
-
2465
-
2466
- <div id="set-tandard-ell-ttributes-method" class="method-detail ">
2467
- <a name="method-i-setStandardCellAttributes"></a>
2468
-
2469
- <div class="method-heading">
2470
-
2471
- <span class="method-name">setStandardCellAttributes</span><span
2472
- class="method-args">(cell, columnDef, attributeType, line)</span>
2473
- <span class="method-click-advice">click to toggle source</span>
2474
-
2475
- </div>
2476
-
2477
- <div class="method-description">
2478
-
2479
- <p>
2480
- This method takes care of often used cell attributes like indentation,
2481
- alignment and background color.
2482
- </p>
2483
-
2484
-
2485
-
2486
- <div class="method-source-code"
2487
- id="set-tandard-ell-ttributes-source">
2488
- <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>
2511
- </div>
2512
-
2513
- </div>
2514
-
2515
-
2516
-
2517
-
2518
- </div>
2519
-
2520
-
2521
- <div id="try-ell-erging-method" class="method-detail ">
2522
- <a name="method-i-tryCellMerging"></a>
2523
-
2524
- <div class="method-heading">
2525
-
2526
- <span class="method-name">tryCellMerging</span><span
2527
- class="method-args">(cell, line, firstCell)</span>
2528
- <span class="method-click-advice">click to toggle source</span>
2529
-
2530
- </div>
2531
-
2532
- <div class="method-description">
2533
-
2534
- <p>
2535
- Try to merge equal cells without text to multi-column cells.
2536
- </p>
2537
-
2538
-
2539
-
2540
- <div class="method-source-code"
2541
- id="try-ell-erging-source">
2542
- <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>
2550
- </div>
2551
-
2552
- </div>
2553
-
2554
-
2555
-
2556
-
2557
- </div>
2558
-
2559
-
2560
- </div>
2561
-
2562
-
2563
- </div>
2564
-
2565
-
2566
- <div id="rdoc-debugging-section-dump" class="debugging-section">
2567
-
2568
- <p>Disabled; run with --debug to generate this.</p>
2569
-
2570
- </div>
2571
-
2572
- <div id="validator-badges">
2573
- <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
2574
- <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
2575
- Rdoc Generator</a> 1.1.6</small>.</p>
2576
- </div>
2577
-
2578
- </body>
2579
- </html>
2580
-