taskjuggler 0.0.11 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (697) hide show
  1. data/CHANGELOG +6 -1550
  2. data/benchmarks/UTF-8-Strings.rb +58 -0
  3. data/benchmarks/profile.clt +36082 -0
  4. data/benchmarks/profile.html +58182 -0
  5. data/benchmarks/runbench.rb +2 -2
  6. data/data/css/tjmanual.css +0 -1
  7. data/doc/AppConfig.html +1491 -0
  8. data/doc/CHANGELOG.html +557 -0
  9. data/doc/COPYING.html +899 -0
  10. data/doc/Diff.html +1193 -0
  11. data/doc/Diff/Hunk.html +1026 -0
  12. data/doc/Diffable.html +684 -0
  13. data/doc/DiffableString.html +684 -0
  14. data/doc/Object.html +720 -0
  15. data/doc/README_rdoc.html +742 -0
  16. data/doc/RuntimeConfig.html +856 -0
  17. data/doc/String.html +1005 -0
  18. data/doc/TaskJuggler.html +2639 -0
  19. data/doc/TaskJuggler/Account.html +753 -0
  20. data/doc/TaskJuggler/AccountAttribute.html +769 -0
  21. data/doc/TaskJuggler/AccountScenario.html +712 -0
  22. data/doc/TaskJuggler/Allocation.html +963 -0
  23. data/doc/TaskJuggler/AllocationAttribute.html +799 -0
  24. data/doc/TaskJuggler/AttributeBase.html +1328 -0
  25. data/doc/TaskJuggler/AttributeDefinition.html +815 -0
  26. data/doc/TaskJuggler/AttributeOverwrite.html +606 -0
  27. data/doc/TaskJuggler/BatchProcessor.html +1178 -0
  28. data/doc/TaskJuggler/Booking.html +859 -0
  29. data/doc/TaskJuggler/BookingListAttribute.html +769 -0
  30. data/doc/TaskJuggler/BooleanAttribute.html +769 -0
  31. data/doc/TaskJuggler/CSVFile.html +1128 -0
  32. data/doc/TaskJuggler/CellSettingPattern.html +700 -0
  33. data/doc/TaskJuggler/CellSettingPatternList.html +749 -0
  34. data/doc/TaskJuggler/Charge.html +777 -0
  35. data/doc/TaskJuggler/ChargeListAttribute.html +733 -0
  36. data/doc/TaskJuggler/ChargeSet.html +949 -0
  37. data/doc/TaskJuggler/ChargeSetListAttribute.html +778 -0
  38. data/doc/TaskJuggler/CollisionDetector.html +1089 -0
  39. data/doc/TaskJuggler/ColumnListAttribute.html +733 -0
  40. data/doc/TaskJuggler/ColumnTable.html +763 -0
  41. data/doc/TaskJuggler/Daemon.html +819 -0
  42. data/doc/TaskJuggler/DataCache.html +1025 -0
  43. data/doc/TaskJuggler/DataCacheEntry.html +737 -0
  44. data/doc/TaskJuggler/DateAttribute.html +737 -0
  45. data/doc/TaskJuggler/DefinitionListAttribute.html +655 -0
  46. data/doc/TaskJuggler/DependencyListAttribute.html +773 -0
  47. data/doc/TaskJuggler/DurationAttribute.html +770 -0
  48. data/doc/TaskJuggler/FileList.html +793 -0
  49. data/doc/TaskJuggler/FileRecord.html +702 -0
  50. data/doc/TaskJuggler/FixnumAttribute.html +691 -0
  51. data/doc/TaskJuggler/FlagListAttribute.html +769 -0
  52. data/doc/TaskJuggler/FloatAttribute.html +733 -0
  53. data/doc/TaskJuggler/FormatListAttribute.html +697 -0
  54. data/doc/TaskJuggler/GanttChart.html +1487 -0
  55. data/doc/TaskJuggler/GanttContainer.html +945 -0
  56. data/doc/TaskJuggler/GanttHeader.html +948 -0
  57. data/doc/TaskJuggler/GanttHeaderScaleItem.html +762 -0
  58. data/doc/TaskJuggler/GanttLine.html +1325 -0
  59. data/doc/TaskJuggler/GanttLoadStack.html +828 -0
  60. data/doc/TaskJuggler/GanttMilestone.html +926 -0
  61. data/doc/TaskJuggler/GanttRouter.html +1136 -0
  62. data/doc/TaskJuggler/GanttTaskBar.html +948 -0
  63. data/doc/TaskJuggler/HTMLDocument.html +754 -0
  64. data/doc/TaskJuggler/HTMLElements.html +599 -0
  65. data/doc/TaskJuggler/HTMLGraphics.html +837 -0
  66. data/doc/TaskJuggler/Interval.html +1076 -0
  67. data/doc/TaskJuggler/IntervalList.html +797 -0
  68. data/doc/TaskJuggler/IntervalListAttribute.html +773 -0
  69. data/doc/TaskJuggler/JobInfo.html +943 -0
  70. data/doc/TaskJuggler/Journal.html +1248 -0
  71. data/doc/TaskJuggler/JournalEntry.html +860 -0
  72. data/doc/TaskJuggler/JournalEntryList.html +1229 -0
  73. data/doc/TaskJuggler/KeywordArray.html +696 -0
  74. data/doc/TaskJuggler/KeywordDocumentation.html +2250 -0
  75. data/doc/TaskJuggler/Limits.html +1036 -0
  76. data/doc/TaskJuggler/Limits/Limit.html +947 -0
  77. data/doc/TaskJuggler/LimitsAttribute.html +734 -0
  78. data/doc/TaskJuggler/ListAttributeBase.html +703 -0
  79. data/doc/TaskJuggler/Log.html +1163 -0
  80. data/doc/TaskJuggler/LogFile.html +980 -0
  81. data/doc/TaskJuggler/LogicalAttribute.html +760 -0
  82. data/doc/TaskJuggler/LogicalExpression.html +801 -0
  83. data/doc/TaskJuggler/LogicalExpressionAttribute.html +691 -0
  84. data/doc/TaskJuggler/LogicalExpressionListAttribute.html +691 -0
  85. data/doc/TaskJuggler/LogicalFlag.html +753 -0
  86. data/doc/TaskJuggler/LogicalFunction.html +1409 -0
  87. data/doc/TaskJuggler/LogicalOperation.html +1144 -0
  88. data/doc/TaskJuggler/ManagerResponsibilities.html +736 -0
  89. data/doc/TaskJuggler/ManagerStatusRecord.html +740 -0
  90. data/doc/TaskJuggler/Message.html +837 -0
  91. data/doc/TaskJuggler/MessageHandler.html +1056 -0
  92. data/doc/TaskJuggler/Navigator.html +943 -0
  93. data/doc/TaskJuggler/NavigatorElement.html +994 -0
  94. data/doc/TaskJuggler/NikuProject.html +724 -0
  95. data/doc/TaskJuggler/NikuReport.html +1470 -0
  96. data/doc/TaskJuggler/NikuResource.html +694 -0
  97. data/doc/TaskJuggler/NodeListAttribute.html +655 -0
  98. data/doc/TaskJuggler/PlaceHolderCell.html +748 -0
  99. data/doc/TaskJuggler/ProcessIntercom.html +1017 -0
  100. data/doc/TaskJuggler/ProcessIntercomIface.html +773 -0
  101. data/doc/TaskJuggler/Project.html +3478 -0
  102. data/doc/TaskJuggler/ProjectBroker.html +1676 -0
  103. data/doc/TaskJuggler/ProjectBrokerIface.html +851 -0
  104. data/doc/TaskJuggler/ProjectFileParser.html +2102 -0
  105. data/doc/TaskJuggler/ProjectFileScanner.html +1896 -0
  106. data/doc/TaskJuggler/ProjectRecord.html +978 -0
  107. data/doc/TaskJuggler/ProjectServer.html +1249 -0
  108. data/doc/TaskJuggler/ProjectServerIface.html +868 -0
  109. data/doc/TaskJuggler/PropertyAttribute.html +691 -0
  110. data/doc/TaskJuggler/PropertyList.html +1399 -0
  111. data/doc/TaskJuggler/PropertySet.html +1796 -0
  112. data/doc/TaskJuggler/PropertyTreeNode.html +2851 -0
  113. data/doc/TaskJuggler/Query.html +1756 -0
  114. data/doc/TaskJuggler/RTFHandlers.html +664 -0
  115. data/doc/TaskJuggler/RTFNavigator.html +792 -0
  116. data/doc/TaskJuggler/RTFQuery.html +1083 -0
  117. data/doc/TaskJuggler/RTFReport.html +820 -0
  118. data/doc/TaskJuggler/RTFReportLink.html +812 -0
  119. data/doc/TaskJuggler/RTFWithQuerySupport.html +702 -0
  120. data/doc/TaskJuggler/RealFormat.html +805 -0
  121. data/doc/TaskJuggler/RealFormatAttribute.html +655 -0
  122. data/doc/TaskJuggler/ReferenceAttribute.html +880 -0
  123. data/doc/TaskJuggler/Report.html +1501 -0
  124. data/doc/TaskJuggler/ReportBase.html +1266 -0
  125. data/doc/TaskJuggler/ReportContext.html +837 -0
  126. data/doc/TaskJuggler/ReportServer.html +1068 -0
  127. data/doc/TaskJuggler/ReportServerIface.html +902 -0
  128. data/doc/TaskJuggler/ReportServerRecord.html +781 -0
  129. data/doc/TaskJuggler/ReportServlet.html +1029 -0
  130. data/doc/TaskJuggler/ReportTable.html +1179 -0
  131. data/doc/TaskJuggler/ReportTableCell.html +1666 -0
  132. data/doc/TaskJuggler/ReportTableColumn.html +890 -0
  133. data/doc/TaskJuggler/ReportTableLegend.html +1060 -0
  134. data/doc/TaskJuggler/ReportTableLine.html +1067 -0
  135. data/doc/TaskJuggler/Resource.html +1004 -0
  136. data/doc/TaskJuggler/ResourceListAttribute.html +829 -0
  137. data/doc/TaskJuggler/ResourceListRE.html +737 -0
  138. data/doc/TaskJuggler/ResourceScenario.html +2549 -0
  139. data/doc/TaskJuggler/RichText.html +879 -0
  140. data/doc/TaskJuggler/RichTextAttribute.html +811 -0
  141. data/doc/TaskJuggler/RichTextDocument.html +1038 -0
  142. data/doc/TaskJuggler/RichTextElement.html +1780 -0
  143. data/doc/TaskJuggler/RichTextFunctionExample.html +799 -0
  144. data/doc/TaskJuggler/RichTextFunctionHandler.html +750 -0
  145. data/doc/TaskJuggler/RichTextImage.html +712 -0
  146. data/doc/TaskJuggler/RichTextIntermediate.html +1285 -0
  147. data/doc/TaskJuggler/RichTextParser.html +868 -0
  148. data/doc/TaskJuggler/RichTextScanner.html +1565 -0
  149. data/doc/TaskJuggler/RichTextSnip.html +1000 -0
  150. data/doc/TaskJuggler/RichTextSyntaxRules.html +2052 -0
  151. data/doc/TaskJuggler/Scenario.html +656 -0
  152. data/doc/TaskJuggler/ScenarioData.html +838 -0
  153. data/doc/TaskJuggler/ScenarioListAttribute.html +733 -0
  154. data/doc/TaskJuggler/Scoreboard.html +1201 -0
  155. data/doc/TaskJuggler/SheetHandlerBase.html +1297 -0
  156. data/doc/TaskJuggler/SheetReceiver.html +1398 -0
  157. data/doc/TaskJuggler/SheetSender.html +1168 -0
  158. data/doc/TaskJuggler/Shift.html +751 -0
  159. data/doc/TaskJuggler/ShiftAssignment.html +1008 -0
  160. data/doc/TaskJuggler/ShiftAssignments.html +1413 -0
  161. data/doc/TaskJuggler/ShiftAssignmentsAttribute.html +734 -0
  162. data/doc/TaskJuggler/ShiftScenario.html +782 -0
  163. data/doc/TaskJuggler/SimpleQueryExpander.html +732 -0
  164. data/doc/TaskJuggler/SortListAttribute.html +691 -0
  165. data/doc/TaskJuggler/StatusSheetReceiver.html +678 -0
  166. data/doc/TaskJuggler/StatusSheetReport.html +935 -0
  167. data/doc/TaskJuggler/StatusSheetSender.html +808 -0
  168. data/doc/TaskJuggler/StdIoWrapper.html +696 -0
  169. data/doc/TaskJuggler/StringAttribute.html +733 -0
  170. data/doc/TaskJuggler/SymbolAttribute.html +691 -0
  171. data/doc/TaskJuggler/SyntaxReference.html +1240 -0
  172. data/doc/TaskJuggler/TOCEntry.html +836 -0
  173. data/doc/TaskJuggler/TSResourceRecord.html +732 -0
  174. data/doc/TaskJuggler/TSTaskRecord.html +744 -0
  175. data/doc/TaskJuggler/TableColumnDefinition.html +949 -0
  176. data/doc/TaskJuggler/TableOfContents.html +790 -0
  177. data/doc/TaskJuggler/TableReport.html +2555 -0
  178. data/doc/TaskJuggler/Task.html +890 -0
  179. data/doc/TaskJuggler/TaskDepListAttribute.html +773 -0
  180. data/doc/TaskJuggler/TaskDependency.html +832 -0
  181. data/doc/TaskJuggler/TaskListAttribute.html +773 -0
  182. data/doc/TaskJuggler/TaskListRE.html +736 -0
  183. data/doc/TaskJuggler/TaskScenario.html +5180 -0
  184. data/doc/TaskJuggler/TernarySearchTree.html +1341 -0
  185. data/doc/TaskJuggler/TextFormatter.html +973 -0
  186. data/doc/TaskJuggler/TextParser.html +1862 -0
  187. data/doc/TaskJuggler/TextParser/Macro.html +708 -0
  188. data/doc/TaskJuggler/TextParser/MacroTable.html +832 -0
  189. data/doc/TaskJuggler/TextParser/Pattern.html +1743 -0
  190. data/doc/TaskJuggler/TextParser/Rule.html +1419 -0
  191. data/doc/TaskJuggler/TextParser/Scanner.html +1516 -0
  192. data/doc/TaskJuggler/TextParser/Scanner/BufferStreamHandle.html +661 -0
  193. data/doc/TaskJuggler/TextParser/Scanner/FileStreamHandle.html +727 -0
  194. data/doc/TaskJuggler/TextParser/Scanner/MacroStackEntry.html +724 -0
  195. data/doc/TaskJuggler/TextParser/Scanner/StreamHandle.html +1095 -0
  196. data/doc/TaskJuggler/TextParser/SourceFileInfo.html +760 -0
  197. data/doc/TaskJuggler/TextParser/StackElement.html +940 -0
  198. data/doc/TaskJuggler/TextParser/State.html +1015 -0
  199. data/doc/TaskJuggler/TextParser/StateTransition.html +808 -0
  200. data/doc/TaskJuggler/TextParser/TextParserResultArray.html +711 -0
  201. data/doc/TaskJuggler/TextParser/TokenDoc.html +742 -0
  202. data/doc/TaskJuggler/TextReport.html +921 -0
  203. data/doc/TaskJuggler/TimeSheet.html +1264 -0
  204. data/doc/TaskJuggler/TimeSheetReceiver.html +675 -0
  205. data/doc/TaskJuggler/TimeSheetRecord.html +1415 -0
  206. data/doc/TaskJuggler/TimeSheetReport.html +1013 -0
  207. data/doc/TaskJuggler/TimeSheetSender.html +700 -0
  208. data/doc/TaskJuggler/TimeSheetSummary.html +959 -0
  209. data/doc/TaskJuggler/TimeSheets.html +736 -0
  210. data/doc/TaskJuggler/Tj3.html +857 -0
  211. data/doc/TaskJuggler/Tj3AppBase.html +942 -0
  212. data/doc/TaskJuggler/Tj3Client.html +1510 -0
  213. data/doc/TaskJuggler/Tj3Daemon.html +870 -0
  214. data/doc/TaskJuggler/Tj3Man.html +768 -0
  215. data/doc/TaskJuggler/Tj3SheetAppBase.html +758 -0
  216. data/doc/TaskJuggler/Tj3SsReceiver.html +747 -0
  217. data/doc/TaskJuggler/Tj3SsSender.html +780 -0
  218. data/doc/TaskJuggler/Tj3TsReceiver.html +747 -0
  219. data/doc/TaskJuggler/Tj3TsSender.html +767 -0
  220. data/doc/TaskJuggler/Tj3TsSummary.html +775 -0
  221. data/doc/TaskJuggler/TjException.html +692 -0
  222. data/doc/TaskJuggler/TjRuntimeError.html +606 -0
  223. data/doc/TaskJuggler/TjTime.html +3117 -0
  224. data/doc/TaskJuggler/TjpExample.html +897 -0
  225. data/doc/TaskJuggler/TjpExportRE.html +1772 -0
  226. data/doc/TaskJuggler/TjpSyntaxRules.html +14329 -0
  227. data/doc/TaskJuggler/URLParameter.html +691 -0
  228. data/doc/TaskJuggler/UserManual.html +1224 -0
  229. data/doc/TaskJuggler/VimSyntax.html +1064 -0
  230. data/doc/TaskJuggler/WebServer.html +757 -0
  231. data/doc/TaskJuggler/WelcomePage.html +789 -0
  232. data/doc/TaskJuggler/WorkingHours.html +1218 -0
  233. data/doc/TaskJuggler/WorkingHoursAttribute.html +756 -0
  234. data/doc/TaskJuggler/XMLBlob.html +707 -0
  235. data/doc/TaskJuggler/XMLComment.html +702 -0
  236. data/doc/TaskJuggler/XMLDocument.html +803 -0
  237. data/doc/TaskJuggler/XMLElement.html +990 -0
  238. data/doc/TaskJuggler/XMLNamedText.html +663 -0
  239. data/doc/TaskJuggler/XMLText.html +717 -0
  240. data/doc/index.html +4518 -0
  241. data/doc/lib/taskjuggler/AccountScenario_rb.html +69 -0
  242. data/doc/lib/taskjuggler/Account_rb.html +71 -0
  243. data/doc/lib/taskjuggler/AlgorithmDiff_rb.html +67 -0
  244. data/doc/lib/taskjuggler/Allocation_rb.html +71 -0
  245. data/doc/lib/taskjuggler/AppConfig_rb.html +69 -0
  246. data/doc/lib/taskjuggler/AttributeBase_rb.html +69 -0
  247. data/doc/lib/taskjuggler/AttributeDefinition_rb.html +67 -0
  248. data/doc/lib/taskjuggler/Attributes_rb.html +83 -0
  249. data/doc/lib/taskjuggler/BatchProcessor_rb.html +71 -0
  250. data/doc/lib/taskjuggler/Booking_rb.html +67 -0
  251. data/doc/lib/taskjuggler/ChargeSet_rb.html +69 -0
  252. data/doc/lib/taskjuggler/Charge_rb.html +69 -0
  253. data/doc/lib/taskjuggler/DataCache_rb.html +71 -0
  254. data/doc/lib/taskjuggler/FileList_rb.html +67 -0
  255. data/doc/lib/taskjuggler/HTMLDocument_rb.html +71 -0
  256. data/doc/lib/taskjuggler/HTMLElements_rb.html +69 -0
  257. data/doc/lib/taskjuggler/IntervalList_rb.html +69 -0
  258. data/doc/lib/taskjuggler/Interval_rb.html +69 -0
  259. data/doc/lib/taskjuggler/Journal_rb.html +67 -0
  260. data/doc/lib/taskjuggler/KeywordArray_rb.html +67 -0
  261. data/doc/lib/taskjuggler/KeywordDocumentation_rb.html +77 -0
  262. data/doc/lib/taskjuggler/Limits_rb.html +69 -0
  263. data/doc/lib/taskjuggler/LogFile_rb.html +69 -0
  264. data/doc/lib/taskjuggler/Log_rb.html +71 -0
  265. data/doc/lib/taskjuggler/LogicalExpression_rb.html +73 -0
  266. data/doc/lib/taskjuggler/LogicalFunction_rb.html +69 -0
  267. data/doc/lib/taskjuggler/LogicalOperation_rb.html +69 -0
  268. data/doc/lib/taskjuggler/MessageHandler_rb.html +69 -0
  269. data/doc/lib/taskjuggler/ProjectFileParser_rb.html +77 -0
  270. data/doc/lib/taskjuggler/ProjectFileScanner_rb.html +69 -0
  271. data/doc/lib/taskjuggler/Project_rb.html +113 -0
  272. data/doc/lib/taskjuggler/PropertyList_rb.html +67 -0
  273. data/doc/lib/taskjuggler/PropertySet_rb.html +71 -0
  274. data/doc/lib/taskjuggler/PropertyTreeNode_rb.html +67 -0
  275. data/doc/lib/taskjuggler/Query_rb.html +69 -0
  276. data/doc/lib/taskjuggler/RealFormat_rb.html +67 -0
  277. data/doc/lib/taskjuggler/ResourceScenario_rb.html +69 -0
  278. data/doc/lib/taskjuggler/Resource_rb.html +71 -0
  279. data/doc/lib/taskjuggler/RichText/Document_rb.html +73 -0
  280. data/doc/lib/taskjuggler/RichText/Element_rb.html +75 -0
  281. data/doc/lib/taskjuggler/RichText/FunctionExample_rb.html +73 -0
  282. data/doc/lib/taskjuggler/RichText/FunctionHandler_rb.html +67 -0
  283. data/doc/lib/taskjuggler/RichText/Parser_rb.html +75 -0
  284. data/doc/lib/taskjuggler/RichText/RTFHandlers_rb.html +75 -0
  285. data/doc/lib/taskjuggler/RichText/RTFNavigator_rb.html +73 -0
  286. data/doc/lib/taskjuggler/RichText/RTFQuery_rb.html +73 -0
  287. data/doc/lib/taskjuggler/RichText/RTFReportLink_rb.html +75 -0
  288. data/doc/lib/taskjuggler/RichText/RTFReport_rb.html +71 -0
  289. data/doc/lib/taskjuggler/RichText/RTFWithQuerySupport_rb.html +69 -0
  290. data/doc/lib/taskjuggler/RichText/Scanner_rb.html +71 -0
  291. data/doc/lib/taskjuggler/RichText/Snip_rb.html +71 -0
  292. data/doc/lib/taskjuggler/RichText/SyntaxRules_rb.html +67 -0
  293. data/doc/lib/taskjuggler/RichText/TOCEntry_rb.html +71 -0
  294. data/doc/lib/taskjuggler/RichText/TableOfContents_rb.html +71 -0
  295. data/doc/lib/taskjuggler/RichText_rb.html +73 -0
  296. data/doc/lib/taskjuggler/RuntimeConfig_rb.html +69 -0
  297. data/doc/lib/taskjuggler/ScenarioData_rb.html +71 -0
  298. data/doc/lib/taskjuggler/Scenario_rb.html +69 -0
  299. data/doc/lib/taskjuggler/Scoreboard_rb.html +69 -0
  300. data/doc/lib/taskjuggler/SheetHandlerBase_rb.html +75 -0
  301. data/doc/lib/taskjuggler/SheetReceiver_rb.html +81 -0
  302. data/doc/lib/taskjuggler/SheetSender_rb.html +79 -0
  303. data/doc/lib/taskjuggler/ShiftAssignments_rb.html +71 -0
  304. data/doc/lib/taskjuggler/ShiftScenario_rb.html +69 -0
  305. data/doc/lib/taskjuggler/Shift_rb.html +71 -0
  306. data/doc/lib/taskjuggler/SimpleQueryExpander_rb.html +69 -0
  307. data/doc/lib/taskjuggler/StatusSheetReceiver_rb.html +69 -0
  308. data/doc/lib/taskjuggler/StatusSheetSender_rb.html +69 -0
  309. data/doc/lib/taskjuggler/StdIoWrapper_rb.html +67 -0
  310. data/doc/lib/taskjuggler/SyntaxReference_rb.html +75 -0
  311. data/doc/lib/taskjuggler/TableColumnDefinition_rb.html +67 -0
  312. data/doc/lib/taskjuggler/TaskDependency_rb.html +67 -0
  313. data/doc/lib/taskjuggler/TaskJuggler_rb.html +75 -0
  314. data/doc/lib/taskjuggler/TaskScenario_rb.html +71 -0
  315. data/doc/lib/taskjuggler/Task_rb.html +71 -0
  316. data/doc/lib/taskjuggler/TernarySearchTree_rb.html +69 -0
  317. data/doc/lib/taskjuggler/TextFormatter_rb.html +69 -0
  318. data/doc/lib/taskjuggler/TextParser/MacroTable_rb.html +67 -0
  319. data/doc/lib/taskjuggler/TextParser/Pattern_rb.html +71 -0
  320. data/doc/lib/taskjuggler/TextParser/Rule_rb.html +69 -0
  321. data/doc/lib/taskjuggler/TextParser/Scanner_rb.html +77 -0
  322. data/doc/lib/taskjuggler/TextParser/SourceFileInfo_rb.html +67 -0
  323. data/doc/lib/taskjuggler/TextParser/StackElement_rb.html +67 -0
  324. data/doc/lib/taskjuggler/TextParser/State_rb.html +67 -0
  325. data/doc/lib/taskjuggler/TextParser/TokenDoc_rb.html +67 -0
  326. data/doc/lib/taskjuggler/TextParser_rb.html +79 -0
  327. data/doc/lib/taskjuggler/TimeSheetReceiver_rb.html +69 -0
  328. data/doc/lib/taskjuggler/TimeSheetSender_rb.html +69 -0
  329. data/doc/lib/taskjuggler/TimeSheetSummary_rb.html +69 -0
  330. data/doc/lib/taskjuggler/TimeSheets_rb.html +67 -0
  331. data/doc/lib/taskjuggler/Tj3AppBase_rb.html +79 -0
  332. data/doc/lib/taskjuggler/Tj3Config_rb.html +71 -0
  333. data/doc/lib/taskjuggler/Tj3SheetAppBase_rb.html +69 -0
  334. data/doc/lib/taskjuggler/TjException_rb.html +67 -0
  335. data/doc/lib/taskjuggler/TjTime_rb.html +71 -0
  336. data/doc/lib/taskjuggler/TjpExample_rb.html +69 -0
  337. data/doc/lib/taskjuggler/TjpSyntaxRules_rb.html +67 -0
  338. data/doc/lib/taskjuggler/URLParameter_rb.html +69 -0
  339. data/doc/lib/taskjuggler/UTF8String_rb.html +69 -0
  340. data/doc/lib/taskjuggler/UserManual_rb.html +81 -0
  341. data/doc/lib/taskjuggler/VimSyntax_rb.html +69 -0
  342. data/doc/lib/taskjuggler/WorkingHours_rb.html +71 -0
  343. data/doc/lib/taskjuggler/XMLDocument_rb.html +69 -0
  344. data/doc/lib/taskjuggler/XMLElement_rb.html +69 -0
  345. data/doc/lib/taskjuggler/apps/Tj3Client_rb.html +75 -0
  346. data/doc/lib/taskjuggler/apps/Tj3Daemon_rb.html +75 -0
  347. data/doc/lib/taskjuggler/apps/Tj3Man_rb.html +75 -0
  348. data/doc/lib/taskjuggler/apps/Tj3SsReceiver_rb.html +71 -0
  349. data/doc/lib/taskjuggler/apps/Tj3SsSender_rb.html +71 -0
  350. data/doc/lib/taskjuggler/apps/Tj3TsReceiver_rb.html +71 -0
  351. data/doc/lib/taskjuggler/apps/Tj3TsSender_rb.html +71 -0
  352. data/doc/lib/taskjuggler/apps/Tj3TsSummary_rb.html +71 -0
  353. data/doc/lib/taskjuggler/apps/Tj3_rb.html +71 -0
  354. data/doc/lib/taskjuggler/daemon/Daemon_rb.html +69 -0
  355. data/doc/lib/taskjuggler/daemon/ProcessIntercom_rb.html +71 -0
  356. data/doc/lib/taskjuggler/daemon/ProjectBroker_rb.html +83 -0
  357. data/doc/lib/taskjuggler/daemon/ProjectServer_rb.html +85 -0
  358. data/doc/lib/taskjuggler/daemon/ReportServer_rb.html +73 -0
  359. data/doc/lib/taskjuggler/daemon/ReportServlet_rb.html +69 -0
  360. data/doc/lib/taskjuggler/daemon/WebServer_rb.html +81 -0
  361. data/doc/lib/taskjuggler/daemon/WelcomePage_rb.html +71 -0
  362. data/doc/lib/taskjuggler/deep_copy_rb.html +67 -0
  363. data/doc/lib/taskjuggler/reports/CSVFile_rb.html +69 -0
  364. data/doc/lib/taskjuggler/reports/CollisionDetector_rb.html +69 -0
  365. data/doc/lib/taskjuggler/reports/ColumnTable_rb.html +69 -0
  366. data/doc/lib/taskjuggler/reports/GanttChart_rb.html +75 -0
  367. data/doc/lib/taskjuggler/reports/GanttContainer_rb.html +69 -0
  368. data/doc/lib/taskjuggler/reports/GanttHeaderScaleItem_rb.html +67 -0
  369. data/doc/lib/taskjuggler/reports/GanttHeader_rb.html +69 -0
  370. data/doc/lib/taskjuggler/reports/GanttLine_rb.html +79 -0
  371. data/doc/lib/taskjuggler/reports/GanttLoadStack_rb.html +69 -0
  372. data/doc/lib/taskjuggler/reports/GanttMilestone_rb.html +69 -0
  373. data/doc/lib/taskjuggler/reports/GanttRouter_rb.html +69 -0
  374. data/doc/lib/taskjuggler/reports/GanttTaskBar_rb.html +69 -0
  375. data/doc/lib/taskjuggler/reports/HTMLGraphics_rb.html +67 -0
  376. data/doc/lib/taskjuggler/reports/Navigator_rb.html +69 -0
  377. data/doc/lib/taskjuggler/reports/NikuReport_rb.html +71 -0
  378. data/doc/lib/taskjuggler/reports/ReportBase_rb.html +67 -0
  379. data/doc/lib/taskjuggler/reports/ReportContext_rb.html +67 -0
  380. data/doc/lib/taskjuggler/reports/ReportTableCell_rb.html +67 -0
  381. data/doc/lib/taskjuggler/reports/ReportTableColumn_rb.html +67 -0
  382. data/doc/lib/taskjuggler/reports/ReportTableLegend_rb.html +67 -0
  383. data/doc/lib/taskjuggler/reports/ReportTableLine_rb.html +69 -0
  384. data/doc/lib/taskjuggler/reports/ReportTable_rb.html +71 -0
  385. data/doc/lib/taskjuggler/reports/Report_rb.html +93 -0
  386. data/doc/lib/taskjuggler/reports/ResourceListRE_rb.html +75 -0
  387. data/doc/lib/taskjuggler/reports/StatusSheetReport_rb.html +69 -0
  388. data/doc/lib/taskjuggler/reports/TableReport_rb.html +77 -0
  389. data/doc/lib/taskjuggler/reports/TaskListRE_rb.html +75 -0
  390. data/doc/lib/taskjuggler/reports/TextReport_rb.html +69 -0
  391. data/doc/lib/taskjuggler/reports/TimeSheetReport_rb.html +69 -0
  392. data/doc/lib/taskjuggler/reports/TjpExportRE_rb.html +69 -0
  393. data/doc/lib/tj3_rb.html +69 -0
  394. data/doc/lib/tj3client_rb.html +69 -0
  395. data/doc/lib/tj3d_rb.html +69 -0
  396. data/doc/lib/tj3man_rb.html +69 -0
  397. data/doc/lib/tj3ss_receiver_rb.html +69 -0
  398. data/doc/lib/tj3ss_sender_rb.html +69 -0
  399. data/doc/lib/tj3ts_receiver_rb.html +69 -0
  400. data/doc/lib/tj3ts_sender_rb.html +69 -0
  401. data/doc/lib/tj3ts_summary_rb.html +69 -0
  402. data/doc/rdoc.css +706 -0
  403. data/examples/tutorial.tjp +2 -1
  404. data/lib/taskjuggler/Attributes.rb +33 -12
  405. data/lib/taskjuggler/DataCache.rb +17 -0
  406. data/lib/taskjuggler/FileList.rb +9 -0
  407. data/lib/taskjuggler/HTMLDocument.rb +19 -21
  408. data/lib/taskjuggler/HTMLElements.rb +46 -0
  409. data/lib/taskjuggler/Journal.rb +95 -46
  410. data/lib/taskjuggler/KeywordDocumentation.rb +248 -185
  411. data/lib/taskjuggler/LogicalExpression.rb +2 -2
  412. data/lib/taskjuggler/LogicalFunction.rb +22 -1
  413. data/lib/taskjuggler/LogicalOperation.rb +15 -5
  414. data/lib/taskjuggler/Project.rb +73 -16
  415. data/lib/taskjuggler/ProjectFileParser.rb +1 -1
  416. data/lib/taskjuggler/ProjectFileScanner.rb +27 -0
  417. data/lib/taskjuggler/PropertySet.rb +22 -45
  418. data/lib/taskjuggler/PropertyTreeNode.rb +99 -128
  419. data/lib/taskjuggler/Query.rb +39 -8
  420. data/lib/taskjuggler/Resource.rb +15 -6
  421. data/lib/taskjuggler/RichText/Document.rb +3 -3
  422. data/lib/taskjuggler/RichText/RTFQuery.rb +4 -4
  423. data/lib/taskjuggler/SheetHandlerBase.rb +14 -12
  424. data/lib/taskjuggler/SheetReceiver.rb +17 -15
  425. data/lib/taskjuggler/SheetSender.rb +16 -10
  426. data/{spec/support → lib/taskjuggler}/StdIoWrapper.rb +17 -0
  427. data/lib/taskjuggler/SyntaxReference.rb +2 -2
  428. data/lib/taskjuggler/TableColumnDefinition.rb +4 -3
  429. data/lib/taskjuggler/Task.rb +7 -2
  430. data/lib/taskjuggler/TaskJuggler.rb +74 -0
  431. data/lib/taskjuggler/TaskScenario.rb +62 -83
  432. data/lib/taskjuggler/TextParser.rb +20 -13
  433. data/lib/taskjuggler/TextParser/Scanner.rb +17 -1
  434. data/lib/taskjuggler/TimeSheetSummary.rb +9 -5
  435. data/lib/taskjuggler/TimeSheets.rb +6 -1
  436. data/lib/taskjuggler/Tj3AppBase.rb +41 -18
  437. data/lib/taskjuggler/Tj3Config.rb +1 -1
  438. data/lib/taskjuggler/TjTime.rb +6 -1
  439. data/lib/taskjuggler/TjpSyntaxRules.rb +408 -227
  440. data/lib/taskjuggler/UTF8String.rb +10 -0
  441. data/lib/taskjuggler/UserManual.rb +89 -81
  442. data/lib/taskjuggler/WorkingHours.rb +2 -3
  443. data/lib/taskjuggler/XMLDocument.rb +13 -4
  444. data/lib/taskjuggler/XMLElement.rb +31 -3
  445. data/lib/taskjuggler/apps/Tj3.rb +53 -21
  446. data/lib/taskjuggler/apps/Tj3Client.rb +19 -17
  447. data/lib/taskjuggler/apps/Tj3Daemon.rb +24 -21
  448. data/lib/taskjuggler/{Tj3Man.rb → apps/Tj3Man.rb} +2 -2
  449. data/lib/taskjuggler/apps/Tj3SsReceiver.rb +14 -11
  450. data/lib/taskjuggler/apps/Tj3SsSender.rb +17 -14
  451. data/lib/taskjuggler/apps/Tj3TsReceiver.rb +14 -11
  452. data/lib/taskjuggler/apps/Tj3TsSender.rb +16 -13
  453. data/lib/taskjuggler/apps/Tj3TsSummary.rb +16 -13
  454. data/lib/taskjuggler/reports/GanttChart.rb +1 -1
  455. data/lib/taskjuggler/reports/GanttRouter.rb +0 -2
  456. data/lib/taskjuggler/reports/GanttTaskBar.rb +2 -1
  457. data/lib/taskjuggler/reports/Navigator.rb +2 -1
  458. data/lib/taskjuggler/reports/NikuReport.rb +11 -7
  459. data/lib/taskjuggler/reports/ReportContext.rb +1 -0
  460. data/lib/taskjuggler/reports/StatusSheetReport.rb +7 -2
  461. data/lib/taskjuggler/reports/TableReport.rb +6 -4
  462. data/lib/taskjuggler/reports/TimeSheetReport.rb +3 -0
  463. data/lib/taskjuggler/reports/TjpExportRE.rb +4 -4
  464. data/lib/tj3man.rb +1 -1
  465. data/manual/Day_To_Day_Juggling +134 -137
  466. data/manual/TaskJuggler_2x_Migration +39 -32
  467. data/manual/The_TaskJuggler_Syntax +6 -0
  468. data/prj_cfg.rb +2 -3
  469. data/spec/StatusSheets_spec.rb +314 -0
  470. data/spec/TimeSheets_spec.rb +237 -16
  471. data/spec/Tj3_spec.rb +1 -1
  472. data/spec/support/DaemonControl.rb +1 -1
  473. data/tasks/changelog.rake +13 -3
  474. data/tasks/manual.rake +1 -1
  475. data/test/TestSuite/CSV-Reports/refs/celltext.csv +1 -1
  476. data/test/TestSuite/CSV-Reports/refs/resourcereport.csv +1 -1
  477. data/test/TestSuite/CSV-Reports/refs/resourcereport_with_tasks.csv +1 -1
  478. data/test/TestSuite/CSV-Reports/refs/sortByTree.csv +1 -1
  479. data/test/TestSuite/CSV-Reports/refs/sortBy_effort.up.csv +1 -1
  480. data/test/TestSuite/CSV-Reports/refs/sortBy_plan.start.down.csv +1 -1
  481. data/test/TestSuite/CSV-Reports/refs/taskreport.csv +1 -1
  482. data/test/TestSuite/CSV-Reports/refs/taskreport_with_resources.csv +1 -1
  483. data/test/TestSuite/CSV-Reports/sortByTree.tjp +3 -1
  484. data/test/TestSuite/CSV-Reports/sortBy_duration.down.tjp +4 -1
  485. data/test/TestSuite/CSV-Reports/sortBy_effort.up.tjp +1 -1
  486. data/test/TestSuite/CSV-Reports/sortBy_plan.start.down.tjp +4 -1
  487. data/test/TestSuite/CSV-Reports/taskreport.tjp +3 -1
  488. data/test/TestSuite/CSV-Reports/taskreport_with_resources.tjp +3 -1
  489. data/test/TestSuite/CSV-Reports/weekly.tjp +1 -0
  490. data/test/TestSuite/Export-Reports/refs/Account.tjp +25 -30
  491. data/test/TestSuite/Export-Reports/refs/AdoptedTasks.tjp +1 -0
  492. data/test/TestSuite/Export-Reports/refs/Allocate-1.tjp +43 -72
  493. data/test/TestSuite/Export-Reports/refs/Alternative.tjp +17 -22
  494. data/test/TestSuite/Export-Reports/refs/AutoID.tjp +11 -10
  495. data/test/TestSuite/Export-Reports/refs/AutoMacros.tjp +1 -0
  496. data/test/TestSuite/Export-Reports/refs/Booking.tjp +16 -23
  497. data/test/TestSuite/Export-Reports/refs/Caption.tjp +13 -16
  498. data/test/TestSuite/Export-Reports/refs/Celltext.tjp +12 -16
  499. data/test/TestSuite/Export-Reports/refs/Comments.tjp +15 -19
  500. data/test/TestSuite/Export-Reports/refs/Complete.tjp +17 -26
  501. data/test/TestSuite/Export-Reports/refs/CompletedWork.tji.tjp +40 -0
  502. data/test/TestSuite/Export-Reports/refs/Currencyformat.tjp +1 -0
  503. data/test/TestSuite/Export-Reports/refs/CustomAttributes.tjp +1 -0
  504. data/test/TestSuite/Export-Reports/refs/Depends1.tjp +5 -4
  505. data/test/TestSuite/Export-Reports/refs/Durations.tjp +18 -27
  506. data/test/TestSuite/Export-Reports/refs/Efficiency.tjp +21 -20
  507. data/test/TestSuite/Export-Reports/refs/EnvVar.tjp +21 -0
  508. data/test/TestSuite/Export-Reports/refs/Flags.tjp +6 -5
  509. data/test/TestSuite/Export-Reports/refs/Gap.tjp +2 -1
  510. data/test/TestSuite/Export-Reports/refs/HtmlTaskReport.tjp +15 -19
  511. data/test/TestSuite/Export-Reports/refs/Include.tjp +21 -20
  512. data/test/TestSuite/Export-Reports/refs/Journal.tjp +6 -5
  513. data/test/TestSuite/Export-Reports/refs/Limits-1.tjp +92 -140
  514. data/test/TestSuite/Export-Reports/refs/LoadUnits.tjp +293 -566
  515. data/test/TestSuite/Export-Reports/refs/LogicalExpression.tjp +1 -0
  516. data/test/TestSuite/Export-Reports/refs/LogicalFunction.tjp +17 -22
  517. data/test/TestSuite/Export-Reports/refs/Macro-1.tjp +32 -53
  518. data/test/TestSuite/Export-Reports/refs/Macro-2.tjp +1 -0
  519. data/test/TestSuite/Export-Reports/refs/Macro-3.tjp +1 -0
  520. data/test/TestSuite/Export-Reports/refs/Manager.tjp +51 -50
  521. data/test/TestSuite/Export-Reports/refs/Mandatory.tjp +22 -31
  522. data/test/TestSuite/Export-Reports/refs/Milestone.tjp +1 -0
  523. data/test/TestSuite/Export-Reports/refs/MinMax.tjp +2 -1
  524. data/test/TestSuite/Export-Reports/refs/Niku.tjp +80 -139
  525. data/test/TestSuite/Export-Reports/refs/Numberformat.tjp +1 -0
  526. data/test/TestSuite/Export-Reports/refs/Period.tjp +1 -0
  527. data/test/TestSuite/Export-Reports/refs/Persistent.tjp +17 -21
  528. data/test/TestSuite/Export-Reports/refs/Precedes1.tjp +1 -0
  529. data/test/TestSuite/Export-Reports/refs/Priority.tjp +121 -107
  530. data/test/TestSuite/Export-Reports/refs/Project.tjp +1 -0
  531. data/test/TestSuite/Export-Reports/refs/ProjectIDs.tjp +1 -0
  532. data/test/TestSuite/Export-Reports/refs/Query.tjp +17 -26
  533. data/test/TestSuite/Export-Reports/refs/Reports.tjp +42 -61
  534. data/test/TestSuite/Export-Reports/refs/Resource.tjp +21 -20
  535. data/test/TestSuite/Export-Reports/refs/ResourcePrefix.tjp +16 -20
  536. data/test/TestSuite/Export-Reports/refs/ResourceRoot.tjp +36 -35
  537. data/test/TestSuite/Export-Reports/refs/Responsible.tjp +17 -21
  538. data/test/TestSuite/Export-Reports/refs/RollupResource.tjp +36 -35
  539. data/test/TestSuite/Export-Reports/refs/Scenario.tjp +3 -1
  540. data/test/TestSuite/Export-Reports/refs/Scheduling.tjp +1 -0
  541. data/test/TestSuite/Export-Reports/refs/Select.tjp +29 -43
  542. data/test/TestSuite/Export-Reports/refs/Shift.tjp +12 -11
  543. data/test/TestSuite/Export-Reports/refs/Simple.tjp +15 -19
  544. data/test/TestSuite/Export-Reports/refs/StatusSheet.tjp +33 -47
  545. data/test/TestSuite/Export-Reports/refs/String.tjp +9 -10
  546. data/test/TestSuite/Export-Reports/refs/Supplement.tjp +7 -8
  547. data/test/TestSuite/Export-Reports/refs/TaskPrefix.tjp +10 -11
  548. data/test/TestSuite/Export-Reports/refs/TaskRoot.tjp +10 -9
  549. data/test/TestSuite/Export-Reports/refs/TimeFrame.tjp +9 -9
  550. data/test/TestSuite/Export-Reports/refs/TimeSheet1.tjp +25 -37
  551. data/test/TestSuite/Export-Reports/refs/Timezone.tjp +1 -0
  552. data/test/TestSuite/Export-Reports/refs/Vacation.tjp +26 -25
  553. data/test/TestSuite/Export-Reports/refs/tutorial.tjp +453 -821
  554. data/test/TestSuite/HTML-Reports/Alerts.html +160 -412
  555. data/test/TestSuite/HTML-Reports/CellText.html +758 -0
  556. data/test/TestSuite/HTML-Reports/ColumnPeriods.html +156 -0
  557. data/test/TestSuite/HTML-Reports/IsOngoing.html +172 -0
  558. data/test/TestSuite/HTML-Reports/LogicalFunctions.html +245 -0
  559. data/test/TestSuite/HTML-Reports/Query.html +31 -0
  560. data/test/TestSuite/HTML-Reports/css/tjmanual.css +0 -20
  561. data/test/TestSuite/HTML-Reports/css/tjreport.css +6 -7
  562. data/test/TestSuite/HTML-Reports/depArrows.html +851 -0
  563. data/test/TestSuite/HTML-Reports/profile.html +37581 -0
  564. data/test/TestSuite/{ReportGenerator/Correct → HTML-Reports/scripts}/scripts/wz_tooltip.js +20 -20
  565. data/test/TestSuite/ReportGenerator/Correct/Journal.tjp +27 -3
  566. data/test/TestSuite/ReportGenerator/Correct/LogicalFunctions3.tjp +20 -0
  567. data/test/TestSuite/ReportGenerator/Correct/LogicalFunctions4.tjp +16 -0
  568. data/test/TestSuite/ReportGenerator/Correct/refs/DependencyList-1.csv +4 -0
  569. data/test/TestSuite/ReportGenerator/Correct/refs/Journal-1.csv +2 -0
  570. data/test/TestSuite/ReportGenerator/Correct/refs/Journal-2.csv +8 -0
  571. data/test/TestSuite/ReportGenerator/Correct/refs/LogicalFunctions3-1.csv +4 -0
  572. data/test/TestSuite/ReportGenerator/Correct/refs/LogicalFunctions4-1.csv +2 -0
  573. data/test/TestSuite/Scheduler/Correct/Allocate.tjp +3 -1
  574. data/test/TestSuite/Scheduler/Correct/Booking.tjp +8 -7
  575. data/test/TestSuite/Scheduler/Correct/Booking2.tjp +16 -9
  576. data/test/TestSuite/Scheduler/Correct/Booking3.tjp +28 -0
  577. data/test/TestSuite/Scheduler/Correct/Container.tjp +2 -2
  578. data/test/TestSuite/Scheduler/Correct/Depends.tjp +3 -3
  579. data/test/TestSuite/Scheduler/Correct/InheritStartEnd.tjp +4 -4
  580. data/test/TestSuite/Scheduler/Correct/Limits.tjp +3 -1
  581. data/test/TestSuite/Scheduler/Correct/Mandatory.tjp +2 -2
  582. data/test/TestSuite/Scheduler/Correct/MultipleMandatories.tjp +2 -2
  583. data/test/TestSuite/Scheduler/Correct/Optimize-1.tjp +2 -2
  584. data/test/TestSuite/Scheduler/Correct/Optimize-2.tjp +3 -3
  585. data/test/TestSuite/Scheduler/Correct/Optimize-3.tjp +3 -3
  586. data/test/TestSuite/Scheduler/Correct/Optimize-4.tjp +3 -3
  587. data/test/TestSuite/Scheduler/Correct/Optimize-5.tjp +7 -7
  588. data/test/TestSuite/Scheduler/Correct/Scenarios.tjp +2 -2
  589. data/test/TestSuite/Scheduler/Correct/Shift.tjp +7 -5
  590. data/test/TestSuite/Scheduler/Correct/Shift2.tjp +1 -1
  591. data/test/TestSuite/Scheduler/Correct/TimeSheet2.tjp +5 -2
  592. data/test/TestSuite/Scheduler/Errors/booking_no_duty.tjp +1 -1
  593. data/test/TestSuite/Scheduler/Errors/ts_alert1_more_details.tjp +4 -2
  594. data/test/TestSuite/Scheduler/Errors/ts_alert2_more_details.tjp +4 -2
  595. data/test/TestSuite/Scheduler/Errors/ts_no_expected_end.tjp +4 -2
  596. data/test/TestSuite/Scheduler/Errors/ts_no_headline1.tjp +4 -2
  597. data/test/TestSuite/Scheduler/Errors/ts_no_rem_or_end.tjp +4 -2
  598. data/test/TestSuite/Scheduler/Errors/ts_no_remaining.tjp +4 -2
  599. data/test/TestSuite/Scheduler/Errors/ts_no_status_work.tjp +4 -2
  600. data/test/TestSuite/Scheduler/Errors/ts_no_work.tjp +4 -2
  601. data/test/TestSuite/Scheduler/Errors/ts_res_new_task.tjp +5 -2
  602. data/test/TestSuite/Scheduler/Errors/ts_work_too_high.tjp +4 -2
  603. data/test/TestSuite/Scheduler/Errors/ts_work_too_low.tjp +4 -2
  604. data/test/TestSuite/StatusSheets/dev2.tji +22 -0
  605. data/test/TestSuite/StatusSheets/run +1 -1
  606. data/test/TestSuite/Syntax/Correct/Booking.tjp +0 -5
  607. data/test/TestSuite/Syntax/Correct/CompletedWork.tji.tjp +38 -0
  608. data/test/TestSuite/Syntax/Correct/EnvVar.tjp +12 -0
  609. data/test/TestSuite/Syntax/Correct/Freeze.tjp +1 -3
  610. data/test/TestSuite/Syntax/Correct/Limits-1.tjp +9 -5
  611. data/test/TestSuite/Syntax/Correct/Priority.tjp +22 -11
  612. data/test/TestSuite/Syntax/Correct/Scenario.tjp +1 -1
  613. data/test/TestSuite/Syntax/Correct/StatusSheet.tjp +2 -0
  614. data/test/TestSuite/Syntax/Correct/TimeSheet1.tjp +4 -4
  615. data/test/TestSuite/Syntax/Correct/css/tjmanual.css +20 -0
  616. data/test/TestSuite/Syntax/Correct/css/tjreport.css +7 -6
  617. data/test/TestSuite/Syntax/Correct/tutorial.tjp +2 -1
  618. data/test/TestSuite/Syntax/Errors/no_own_resource_booking.tjp +16 -0
  619. data/test/TestSuite/Syntax/Errors/no_own_task_booking.tjp +16 -0
  620. data/test/TestSuite/Syntax/Errors/resourceroot_leaf.tjp +10 -0
  621. data/test/TestSuite/Syntax/Errors/runaway_token.tjp +8 -0
  622. data/test/TestSuite/Syntax/Errors/sorting_bsi.tjp +11 -0
  623. data/test/TestSuite/Syntax/Errors/ss_no_tracking_scenario.tjp +14 -0
  624. data/test/TestSuite/Syntax/Errors/taskroot_leaf.tjp +8 -0
  625. data/test/TestSuite/Syntax/Errors/ts_bad_priority.tjp +4 -2
  626. data/test/TestSuite/Syntax/Errors/ts_default_details.tjp +4 -2
  627. data/test/TestSuite/Syntax/Errors/ts_default_summary.tjp +4 -2
  628. data/test/TestSuite/Syntax/Errors/ts_duplicate_task.tjp +4 -2
  629. data/test/TestSuite/Syntax/Errors/ts_end_too_early.tjp +4 -2
  630. data/test/TestSuite/Syntax/Errors/ts_headline_too_long.tjp +4 -2
  631. data/test/TestSuite/Syntax/Errors/ts_no_headline2.tjp +4 -2
  632. data/test/TestSuite/Syntax/Errors/ts_no_tracking_scenario.tjp +14 -0
  633. data/test/TestSuite/Syntax/Errors/ts_summary_too_long.tjp +4 -2
  634. data/test/TestSuite/Syntax/Errors/unknown_env_var.tjp +7 -0
  635. data/test/TestSuite/TimeSheets/resrep.tji +7 -0
  636. data/test/TestSuite/TimeSheets/ts.tji +351 -0
  637. data/test/TestSuite/TimeSheets/tsdef.tji +2 -0
  638. data/test/test_Export-Reports.rb +3 -0
  639. data/test/test_Journal.rb +4 -4
  640. data/test/test_PropertySet.rb +5 -5
  641. data/test/test_Syntax.rb +3 -0
  642. data/test/test_WorkingHours.rb +11 -18
  643. metadata +1012 -649
  644. data/lib/exchangebug.rb +0 -42
  645. data/lib/ruby-signal-bug.rb +0 -55
  646. data/spec/tj3client.log +0 -23
  647. data/test/TestSuite/CSV-Reports/alert.tjp +0 -9
  648. data/test/TestSuite/CSV-Reports/refs/alert.csv +0 -15
  649. data/test/TestSuite/Export-Reports/refs/CriticalPath.tjp +0 -41
  650. data/test/TestSuite/Export-Reports/refs/DST.tjp +0 -89
  651. data/test/TestSuite/Export-Reports/refs/ReleasePlan.tjp +0 -79
  652. data/test/TestSuite/HTML-Reports/TimeSheet.html +0 -79
  653. data/test/TestSuite/HTML-Reports/reference.html +0 -51
  654. data/test/TestSuite/ReportGenerator/Correct/Alerts-1.csv +0 -1
  655. data/test/TestSuite/ReportGenerator/Correct/Alerts-1.html +0 -78
  656. data/test/TestSuite/ReportGenerator/Correct/Journal-1.csv +0 -6
  657. data/test/TestSuite/ReportGenerator/Correct/LogicalFunctions2.csv +0 -3
  658. data/test/TestSuite/ReportGenerator/Correct/css/tjmanual.css +0 -66
  659. data/test/TestSuite/ReportGenerator/Correct/css/tjreport.css +0 -413
  660. data/test/TestSuite/ReportGenerator/Correct/icons/details.png +0 -0
  661. data/test/TestSuite/ReportGenerator/Correct/icons/flag-green.png +0 -0
  662. data/test/TestSuite/ReportGenerator/Correct/icons/flag-red.png +0 -0
  663. data/test/TestSuite/ReportGenerator/Correct/icons/flag-yellow.png +0 -0
  664. data/test/TestSuite/ReportGenerator/Correct/icons/resource.png +0 -0
  665. data/test/TestSuite/ReportGenerator/Correct/icons/resourcegroup.png +0 -0
  666. data/test/TestSuite/ReportGenerator/Correct/icons/task.png +0 -0
  667. data/test/TestSuite/ReportGenerator/Correct/icons/taskgroup.png +0 -0
  668. data/test/TestSuite/ReportGenerator/Correct/icons/trend-down.png +0 -0
  669. data/test/TestSuite/ReportGenerator/Correct/icons/trend-flat.png +0 -0
  670. data/test/TestSuite/ReportGenerator/Correct/icons/trend-up.png +0 -0
  671. data/test/TestSuite/ReportGenerator/Correct/opennodes-1.csv +0 -2
  672. data/test/TestSuite/ReportGenerator/Correct/opennodes.csv +0 -2
  673. data/test/TestSuite/ReportGenerator/Correct/opennodes.tjp +0 -26
  674. data/test/TestSuite/ReportGenerator/Correct/refs/opennodes-1.csv +0 -2
  675. data/test/TestSuite/Scheduler/Correct/css/tjmanual.css +0 -86
  676. data/test/TestSuite/Scheduler/Correct/css/tjreport.css +0 -413
  677. data/test/TestSuite/Scheduler/Correct/icons/details.png +0 -0
  678. data/test/TestSuite/Scheduler/Correct/icons/flag-green.png +0 -0
  679. data/test/TestSuite/Scheduler/Correct/icons/flag-red.png +0 -0
  680. data/test/TestSuite/Scheduler/Correct/icons/flag-yellow.png +0 -0
  681. data/test/TestSuite/Scheduler/Correct/icons/resource.png +0 -0
  682. data/test/TestSuite/Scheduler/Correct/icons/resourcegroup.png +0 -0
  683. data/test/TestSuite/Scheduler/Correct/icons/task.png +0 -0
  684. data/test/TestSuite/Scheduler/Correct/icons/taskgroup.png +0 -0
  685. data/test/TestSuite/Scheduler/Correct/icons/trend-down.png +0 -0
  686. data/test/TestSuite/Scheduler/Correct/icons/trend-flat.png +0 -0
  687. data/test/TestSuite/Scheduler/Correct/icons/trend-up.png +0 -0
  688. data/test/TestSuite/Scheduler/Correct/scripts/wz_tooltip.js +0 -1301
  689. data/test/TestSuite/StatusSheetTemplates/project.tji +0 -35
  690. data/test/TestSuite/StatusSheetTemplates/project.tjp +0 -56
  691. data/test/TestSuite/StatusSheets/TimeSheets/2002-03-01/resource1_2002-03-01.tji +0 -0
  692. data/test/TestSuite/Syntax/Correct/CriticalPath.tjp +0 -33
  693. data/test/TestSuite/Syntax/Correct/DST.tjp +0 -11
  694. data/test/TestSuite/Syntax/Correct/ReleasePlan.tjp +0 -32
  695. data/test/TestSuite/Syntax/Correct/niku.xml +0 -30
  696. data/test/TestSuite/Syntax/Errors/sorting_wbs.tjp +0 -11
  697. data/test/TestSuite/TimeSheets/uu.txt +0 -29
@@ -0,0 +1,1399 @@
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::PropertyList</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/PropertyList_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
42
+ class="thickbox" title="lib/taskjuggler/PropertyList.rb">lib/taskjuggler/PropertyList.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="../Object.html">Object</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-new">::new</a></li>
73
+
74
+ <li><a href="#method-i-addSortingCriteria">#addSortingCriteria</a></li>
75
+
76
+ <li><a href="#method-i-append">#append</a></li>
77
+
78
+ <li><a href="#method-i-index">#index</a></li>
79
+
80
+ <li><a href="#method-i-indexTree">#indexTree</a></li>
81
+
82
+ <li><a href="#method-i-itemIndex">#itemIndex</a></li>
83
+
84
+ <li><a href="#method-i-method_missing">#method_missing</a></li>
85
+
86
+ <li><a href="#method-i-resetSorting">#resetSorting</a></li>
87
+
88
+ <li><a href="#method-i-setSorting">#setSorting</a></li>
89
+
90
+ <li><a href="#method-i-sort%21">#sort!</a></li>
91
+
92
+ <li><a href="#method-i-sortInternal">#sortInternal</a></li>
93
+
94
+ <li><a href="#method-i-to_ary">#to_ary</a></li>
95
+
96
+ <li><a href="#method-i-treeMode%3F">#treeMode?</a></li>
97
+
98
+ </ul>
99
+ </div>
100
+
101
+
102
+ <!-- Included Modules -->
103
+
104
+ </div>
105
+
106
+ <div id="project-metadata">
107
+
108
+
109
+ <div id="fileindex-section" class="section project-section">
110
+ <h3 class="section-header">Files</h3>
111
+ <ul>
112
+
113
+ <li class="file"><a href="../CHANGELOG.html">CHANGELOG</a></li>
114
+
115
+ <li class="file"><a href="../COPYING.html">COPYING</a></li>
116
+
117
+ <li class="file"><a href="../README_rdoc.html">README.rdoc</a></li>
118
+
119
+ </ul>
120
+ </div>
121
+
122
+
123
+ <div id="classindex-section" class="section project-section">
124
+ <h3 class="section-header">Class Index
125
+ <span class="search-toggle"><img src="../images/find.png"
126
+ height="16" width="16" alt="[+]"
127
+ title="show/hide quicksearch" /></span></h3>
128
+ <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
129
+ <fieldset>
130
+ <legend>Quicksearch</legend>
131
+ <input type="text" name="quicksearch" value=""
132
+ class="quicksearch-field" />
133
+ </fieldset>
134
+ </form>
135
+
136
+ <ul class="link-list">
137
+
138
+ <li><a href="../TaskJuggler.html">TaskJuggler</a></li>
139
+
140
+ <li><a href="../TaskJuggler/Account.html">TaskJuggler::Account</a></li>
141
+
142
+ <li><a href="../TaskJuggler/AccountAttribute.html">TaskJuggler::AccountAttribute</a></li>
143
+
144
+ <li><a href="../TaskJuggler/AccountScenario.html">TaskJuggler::AccountScenario</a></li>
145
+
146
+ <li><a href="../TaskJuggler/Allocation.html">TaskJuggler::Allocation</a></li>
147
+
148
+ <li><a href="../TaskJuggler/AllocationAttribute.html">TaskJuggler::AllocationAttribute</a></li>
149
+
150
+ <li><a href="../TaskJuggler/AttributeBase.html">TaskJuggler::AttributeBase</a></li>
151
+
152
+ <li><a href="../TaskJuggler/AttributeDefinition.html">TaskJuggler::AttributeDefinition</a></li>
153
+
154
+ <li><a href="../TaskJuggler/AttributeOverwrite.html">TaskJuggler::AttributeOverwrite</a></li>
155
+
156
+ <li><a href="../TaskJuggler/BatchProcessor.html">TaskJuggler::BatchProcessor</a></li>
157
+
158
+ <li><a href="../TaskJuggler/Booking.html">TaskJuggler::Booking</a></li>
159
+
160
+ <li><a href="../TaskJuggler/BookingListAttribute.html">TaskJuggler::BookingListAttribute</a></li>
161
+
162
+ <li><a href="../TaskJuggler/BooleanAttribute.html">TaskJuggler::BooleanAttribute</a></li>
163
+
164
+ <li><a href="../TaskJuggler/CSVFile.html">TaskJuggler::CSVFile</a></li>
165
+
166
+ <li><a href="../TaskJuggler/CellSettingPattern.html">TaskJuggler::CellSettingPattern</a></li>
167
+
168
+ <li><a href="../TaskJuggler/CellSettingPatternList.html">TaskJuggler::CellSettingPatternList</a></li>
169
+
170
+ <li><a href="../TaskJuggler/Charge.html">TaskJuggler::Charge</a></li>
171
+
172
+ <li><a href="../TaskJuggler/ChargeListAttribute.html">TaskJuggler::ChargeListAttribute</a></li>
173
+
174
+ <li><a href="../TaskJuggler/ChargeSet.html">TaskJuggler::ChargeSet</a></li>
175
+
176
+ <li><a href="../TaskJuggler/ChargeSetListAttribute.html">TaskJuggler::ChargeSetListAttribute</a></li>
177
+
178
+ <li><a href="../TaskJuggler/CollisionDetector.html">TaskJuggler::CollisionDetector</a></li>
179
+
180
+ <li><a href="../TaskJuggler/ColumnListAttribute.html">TaskJuggler::ColumnListAttribute</a></li>
181
+
182
+ <li><a href="../TaskJuggler/ColumnTable.html">TaskJuggler::ColumnTable</a></li>
183
+
184
+ <li><a href="../TaskJuggler/Daemon.html">TaskJuggler::Daemon</a></li>
185
+
186
+ <li><a href="../TaskJuggler/DataCache.html">TaskJuggler::DataCache</a></li>
187
+
188
+ <li><a href="../TaskJuggler/DataCacheEntry.html">TaskJuggler::DataCacheEntry</a></li>
189
+
190
+ <li><a href="../TaskJuggler/DateAttribute.html">TaskJuggler::DateAttribute</a></li>
191
+
192
+ <li><a href="../TaskJuggler/DefinitionListAttribute.html">TaskJuggler::DefinitionListAttribute</a></li>
193
+
194
+ <li><a href="../TaskJuggler/DependencyListAttribute.html">TaskJuggler::DependencyListAttribute</a></li>
195
+
196
+ <li><a href="../TaskJuggler/DurationAttribute.html">TaskJuggler::DurationAttribute</a></li>
197
+
198
+ <li><a href="../TaskJuggler/FileList.html">TaskJuggler::FileList</a></li>
199
+
200
+ <li><a href="../TaskJuggler/FileRecord.html">TaskJuggler::FileRecord</a></li>
201
+
202
+ <li><a href="../TaskJuggler/FixnumAttribute.html">TaskJuggler::FixnumAttribute</a></li>
203
+
204
+ <li><a href="../TaskJuggler/FlagListAttribute.html">TaskJuggler::FlagListAttribute</a></li>
205
+
206
+ <li><a href="../TaskJuggler/FloatAttribute.html">TaskJuggler::FloatAttribute</a></li>
207
+
208
+ <li><a href="../TaskJuggler/FormatListAttribute.html">TaskJuggler::FormatListAttribute</a></li>
209
+
210
+ <li><a href="../TaskJuggler/GanttChart.html">TaskJuggler::GanttChart</a></li>
211
+
212
+ <li><a href="../TaskJuggler/GanttContainer.html">TaskJuggler::GanttContainer</a></li>
213
+
214
+ <li><a href="../TaskJuggler/GanttHeader.html">TaskJuggler::GanttHeader</a></li>
215
+
216
+ <li><a href="../TaskJuggler/GanttHeaderScaleItem.html">TaskJuggler::GanttHeaderScaleItem</a></li>
217
+
218
+ <li><a href="../TaskJuggler/GanttLine.html">TaskJuggler::GanttLine</a></li>
219
+
220
+ <li><a href="../TaskJuggler/GanttLoadStack.html">TaskJuggler::GanttLoadStack</a></li>
221
+
222
+ <li><a href="../TaskJuggler/GanttMilestone.html">TaskJuggler::GanttMilestone</a></li>
223
+
224
+ <li><a href="../TaskJuggler/GanttRouter.html">TaskJuggler::GanttRouter</a></li>
225
+
226
+ <li><a href="../TaskJuggler/GanttTaskBar.html">TaskJuggler::GanttTaskBar</a></li>
227
+
228
+ <li><a href="../TaskJuggler/HTMLDocument.html">TaskJuggler::HTMLDocument</a></li>
229
+
230
+ <li><a href="../TaskJuggler/HTMLElements.html">TaskJuggler::HTMLElements</a></li>
231
+
232
+ <li><a href="../TaskJuggler/HTMLGraphics.html">TaskJuggler::HTMLGraphics</a></li>
233
+
234
+ <li><a href="../TaskJuggler/Interval.html">TaskJuggler::Interval</a></li>
235
+
236
+ <li><a href="../TaskJuggler/IntervalList.html">TaskJuggler::IntervalList</a></li>
237
+
238
+ <li><a href="../TaskJuggler/IntervalListAttribute.html">TaskJuggler::IntervalListAttribute</a></li>
239
+
240
+ <li><a href="../TaskJuggler/JobInfo.html">TaskJuggler::JobInfo</a></li>
241
+
242
+ <li><a href="../TaskJuggler/Journal.html">TaskJuggler::Journal</a></li>
243
+
244
+ <li><a href="../TaskJuggler/JournalEntry.html">TaskJuggler::JournalEntry</a></li>
245
+
246
+ <li><a href="../TaskJuggler/JournalEntryList.html">TaskJuggler::JournalEntryList</a></li>
247
+
248
+ <li><a href="../TaskJuggler/KeywordArray.html">TaskJuggler::KeywordArray</a></li>
249
+
250
+ <li><a href="../TaskJuggler/KeywordDocumentation.html">TaskJuggler::KeywordDocumentation</a></li>
251
+
252
+ <li><a href="../TaskJuggler/Limits.html">TaskJuggler::Limits</a></li>
253
+
254
+ <li><a href="../TaskJuggler/Limits/Limit.html">TaskJuggler::Limits::Limit</a></li>
255
+
256
+ <li><a href="../TaskJuggler/LimitsAttribute.html">TaskJuggler::LimitsAttribute</a></li>
257
+
258
+ <li><a href="../TaskJuggler/ListAttributeBase.html">TaskJuggler::ListAttributeBase</a></li>
259
+
260
+ <li><a href="../TaskJuggler/Log.html">TaskJuggler::Log</a></li>
261
+
262
+ <li><a href="../TaskJuggler/LogFile.html">TaskJuggler::LogFile</a></li>
263
+
264
+ <li><a href="../TaskJuggler/LogicalAttribute.html">TaskJuggler::LogicalAttribute</a></li>
265
+
266
+ <li><a href="../TaskJuggler/LogicalExpression.html">TaskJuggler::LogicalExpression</a></li>
267
+
268
+ <li><a href="../TaskJuggler/LogicalExpressionAttribute.html">TaskJuggler::LogicalExpressionAttribute</a></li>
269
+
270
+ <li><a href="../TaskJuggler/LogicalExpressionListAttribute.html">TaskJuggler::LogicalExpressionListAttribute</a></li>
271
+
272
+ <li><a href="../TaskJuggler/LogicalFlag.html">TaskJuggler::LogicalFlag</a></li>
273
+
274
+ <li><a href="../TaskJuggler/LogicalFunction.html">TaskJuggler::LogicalFunction</a></li>
275
+
276
+ <li><a href="../TaskJuggler/LogicalOperation.html">TaskJuggler::LogicalOperation</a></li>
277
+
278
+ <li><a href="../TaskJuggler/ManagerResponsibilities.html">TaskJuggler::ManagerResponsibilities</a></li>
279
+
280
+ <li><a href="../TaskJuggler/ManagerStatusRecord.html">TaskJuggler::ManagerStatusRecord</a></li>
281
+
282
+ <li><a href="../TaskJuggler/Message.html">TaskJuggler::Message</a></li>
283
+
284
+ <li><a href="../TaskJuggler/MessageHandler.html">TaskJuggler::MessageHandler</a></li>
285
+
286
+ <li><a href="../TaskJuggler/Navigator.html">TaskJuggler::Navigator</a></li>
287
+
288
+ <li><a href="../TaskJuggler/NavigatorElement.html">TaskJuggler::NavigatorElement</a></li>
289
+
290
+ <li><a href="../TaskJuggler/NikuProject.html">TaskJuggler::NikuProject</a></li>
291
+
292
+ <li><a href="../TaskJuggler/NikuReport.html">TaskJuggler::NikuReport</a></li>
293
+
294
+ <li><a href="../TaskJuggler/NikuResource.html">TaskJuggler::NikuResource</a></li>
295
+
296
+ <li><a href="../TaskJuggler/NodeListAttribute.html">TaskJuggler::NodeListAttribute</a></li>
297
+
298
+ <li><a href="../TaskJuggler/PlaceHolderCell.html">TaskJuggler::PlaceHolderCell</a></li>
299
+
300
+ <li><a href="../TaskJuggler/ProcessIntercom.html">TaskJuggler::ProcessIntercom</a></li>
301
+
302
+ <li><a href="../TaskJuggler/ProcessIntercomIface.html">TaskJuggler::ProcessIntercomIface</a></li>
303
+
304
+ <li><a href="../TaskJuggler/Project.html">TaskJuggler::Project</a></li>
305
+
306
+ <li><a href="../TaskJuggler/ProjectBroker.html">TaskJuggler::ProjectBroker</a></li>
307
+
308
+ <li><a href="../TaskJuggler/ProjectBrokerIface.html">TaskJuggler::ProjectBrokerIface</a></li>
309
+
310
+ <li><a href="../TaskJuggler/ProjectFileParser.html">TaskJuggler::ProjectFileParser</a></li>
311
+
312
+ <li><a href="../TaskJuggler/ProjectFileScanner.html">TaskJuggler::ProjectFileScanner</a></li>
313
+
314
+ <li><a href="../TaskJuggler/ProjectRecord.html">TaskJuggler::ProjectRecord</a></li>
315
+
316
+ <li><a href="../TaskJuggler/ProjectServer.html">TaskJuggler::ProjectServer</a></li>
317
+
318
+ <li><a href="../TaskJuggler/ProjectServerIface.html">TaskJuggler::ProjectServerIface</a></li>
319
+
320
+ <li><a href="../TaskJuggler/PropertyAttribute.html">TaskJuggler::PropertyAttribute</a></li>
321
+
322
+ <li><a href="../TaskJuggler/PropertyList.html">TaskJuggler::PropertyList</a></li>
323
+
324
+ <li><a href="../TaskJuggler/PropertySet.html">TaskJuggler::PropertySet</a></li>
325
+
326
+ <li><a href="../TaskJuggler/PropertyTreeNode.html">TaskJuggler::PropertyTreeNode</a></li>
327
+
328
+ <li><a href="../TaskJuggler/Query.html">TaskJuggler::Query</a></li>
329
+
330
+ <li><a href="../TaskJuggler/RTFHandlers.html">TaskJuggler::RTFHandlers</a></li>
331
+
332
+ <li><a href="../TaskJuggler/RTFNavigator.html">TaskJuggler::RTFNavigator</a></li>
333
+
334
+ <li><a href="../TaskJuggler/RTFQuery.html">TaskJuggler::RTFQuery</a></li>
335
+
336
+ <li><a href="../TaskJuggler/RTFReport.html">TaskJuggler::RTFReport</a></li>
337
+
338
+ <li><a href="../TaskJuggler/RTFReportLink.html">TaskJuggler::RTFReportLink</a></li>
339
+
340
+ <li><a href="../TaskJuggler/RTFWithQuerySupport.html">TaskJuggler::RTFWithQuerySupport</a></li>
341
+
342
+ <li><a href="../TaskJuggler/RealFormat.html">TaskJuggler::RealFormat</a></li>
343
+
344
+ <li><a href="../TaskJuggler/RealFormatAttribute.html">TaskJuggler::RealFormatAttribute</a></li>
345
+
346
+ <li><a href="../TaskJuggler/ReferenceAttribute.html">TaskJuggler::ReferenceAttribute</a></li>
347
+
348
+ <li><a href="../TaskJuggler/Report.html">TaskJuggler::Report</a></li>
349
+
350
+ <li><a href="../TaskJuggler/ReportBase.html">TaskJuggler::ReportBase</a></li>
351
+
352
+ <li><a href="../TaskJuggler/ReportContext.html">TaskJuggler::ReportContext</a></li>
353
+
354
+ <li><a href="../TaskJuggler/ReportServer.html">TaskJuggler::ReportServer</a></li>
355
+
356
+ <li><a href="../TaskJuggler/ReportServerIface.html">TaskJuggler::ReportServerIface</a></li>
357
+
358
+ <li><a href="../TaskJuggler/ReportServerRecord.html">TaskJuggler::ReportServerRecord</a></li>
359
+
360
+ <li><a href="../TaskJuggler/ReportServlet.html">TaskJuggler::ReportServlet</a></li>
361
+
362
+ <li><a href="../TaskJuggler/ReportTable.html">TaskJuggler::ReportTable</a></li>
363
+
364
+ <li><a href="../TaskJuggler/ReportTableCell.html">TaskJuggler::ReportTableCell</a></li>
365
+
366
+ <li><a href="../TaskJuggler/ReportTableColumn.html">TaskJuggler::ReportTableColumn</a></li>
367
+
368
+ <li><a href="../TaskJuggler/ReportTableLegend.html">TaskJuggler::ReportTableLegend</a></li>
369
+
370
+ <li><a href="../TaskJuggler/ReportTableLine.html">TaskJuggler::ReportTableLine</a></li>
371
+
372
+ <li><a href="../TaskJuggler/Resource.html">TaskJuggler::Resource</a></li>
373
+
374
+ <li><a href="../TaskJuggler/ResourceListAttribute.html">TaskJuggler::ResourceListAttribute</a></li>
375
+
376
+ <li><a href="../TaskJuggler/ResourceListRE.html">TaskJuggler::ResourceListRE</a></li>
377
+
378
+ <li><a href="../TaskJuggler/ResourceScenario.html">TaskJuggler::ResourceScenario</a></li>
379
+
380
+ <li><a href="../TaskJuggler/RichText.html">TaskJuggler::RichText</a></li>
381
+
382
+ <li><a href="../TaskJuggler/RichTextAttribute.html">TaskJuggler::RichTextAttribute</a></li>
383
+
384
+ <li><a href="../TaskJuggler/RichTextDocument.html">TaskJuggler::RichTextDocument</a></li>
385
+
386
+ <li><a href="../TaskJuggler/RichTextElement.html">TaskJuggler::RichTextElement</a></li>
387
+
388
+ <li><a href="../TaskJuggler/RichTextFunctionExample.html">TaskJuggler::RichTextFunctionExample</a></li>
389
+
390
+ <li><a href="../TaskJuggler/RichTextFunctionHandler.html">TaskJuggler::RichTextFunctionHandler</a></li>
391
+
392
+ <li><a href="../TaskJuggler/RichTextImage.html">TaskJuggler::RichTextImage</a></li>
393
+
394
+ <li><a href="../TaskJuggler/RichTextIntermediate.html">TaskJuggler::RichTextIntermediate</a></li>
395
+
396
+ <li><a href="../TaskJuggler/RichTextParser.html">TaskJuggler::RichTextParser</a></li>
397
+
398
+ <li><a href="../TaskJuggler/RichTextScanner.html">TaskJuggler::RichTextScanner</a></li>
399
+
400
+ <li><a href="../TaskJuggler/RichTextSnip.html">TaskJuggler::RichTextSnip</a></li>
401
+
402
+ <li><a href="../TaskJuggler/RichTextSyntaxRules.html">TaskJuggler::RichTextSyntaxRules</a></li>
403
+
404
+ <li><a href="../TaskJuggler/Scenario.html">TaskJuggler::Scenario</a></li>
405
+
406
+ <li><a href="../TaskJuggler/ScenarioData.html">TaskJuggler::ScenarioData</a></li>
407
+
408
+ <li><a href="../TaskJuggler/ScenarioListAttribute.html">TaskJuggler::ScenarioListAttribute</a></li>
409
+
410
+ <li><a href="../TaskJuggler/Scoreboard.html">TaskJuggler::Scoreboard</a></li>
411
+
412
+ <li><a href="../TaskJuggler/SheetHandlerBase.html">TaskJuggler::SheetHandlerBase</a></li>
413
+
414
+ <li><a href="../TaskJuggler/SheetReceiver.html">TaskJuggler::SheetReceiver</a></li>
415
+
416
+ <li><a href="../TaskJuggler/SheetSender.html">TaskJuggler::SheetSender</a></li>
417
+
418
+ <li><a href="../TaskJuggler/Shift.html">TaskJuggler::Shift</a></li>
419
+
420
+ <li><a href="../TaskJuggler/ShiftAssignment.html">TaskJuggler::ShiftAssignment</a></li>
421
+
422
+ <li><a href="../TaskJuggler/ShiftAssignments.html">TaskJuggler::ShiftAssignments</a></li>
423
+
424
+ <li><a href="../TaskJuggler/ShiftAssignmentsAttribute.html">TaskJuggler::ShiftAssignmentsAttribute</a></li>
425
+
426
+ <li><a href="../TaskJuggler/ShiftScenario.html">TaskJuggler::ShiftScenario</a></li>
427
+
428
+ <li><a href="../TaskJuggler/SimpleQueryExpander.html">TaskJuggler::SimpleQueryExpander</a></li>
429
+
430
+ <li><a href="../TaskJuggler/SortListAttribute.html">TaskJuggler::SortListAttribute</a></li>
431
+
432
+ <li><a href="../TaskJuggler/StatusSheetReceiver.html">TaskJuggler::StatusSheetReceiver</a></li>
433
+
434
+ <li><a href="../TaskJuggler/StatusSheetReport.html">TaskJuggler::StatusSheetReport</a></li>
435
+
436
+ <li><a href="../TaskJuggler/StatusSheetSender.html">TaskJuggler::StatusSheetSender</a></li>
437
+
438
+ <li><a href="../TaskJuggler/StdIoWrapper.html">TaskJuggler::StdIoWrapper</a></li>
439
+
440
+ <li><a href="../TaskJuggler/StringAttribute.html">TaskJuggler::StringAttribute</a></li>
441
+
442
+ <li><a href="../TaskJuggler/SymbolAttribute.html">TaskJuggler::SymbolAttribute</a></li>
443
+
444
+ <li><a href="../TaskJuggler/SyntaxReference.html">TaskJuggler::SyntaxReference</a></li>
445
+
446
+ <li><a href="../TaskJuggler/TOCEntry.html">TaskJuggler::TOCEntry</a></li>
447
+
448
+ <li><a href="../TaskJuggler/TSResourceRecord.html">TaskJuggler::TSResourceRecord</a></li>
449
+
450
+ <li><a href="../TaskJuggler/TSTaskRecord.html">TaskJuggler::TSTaskRecord</a></li>
451
+
452
+ <li><a href="../TaskJuggler/TableColumnDefinition.html">TaskJuggler::TableColumnDefinition</a></li>
453
+
454
+ <li><a href="../TaskJuggler/TableOfContents.html">TaskJuggler::TableOfContents</a></li>
455
+
456
+ <li><a href="../TaskJuggler/TableReport.html">TaskJuggler::TableReport</a></li>
457
+
458
+ <li><a href="../TaskJuggler/Task.html">TaskJuggler::Task</a></li>
459
+
460
+ <li><a href="../TaskJuggler/TaskDepListAttribute.html">TaskJuggler::TaskDepListAttribute</a></li>
461
+
462
+ <li><a href="../TaskJuggler/TaskDependency.html">TaskJuggler::TaskDependency</a></li>
463
+
464
+ <li><a href="../TaskJuggler/TaskListAttribute.html">TaskJuggler::TaskListAttribute</a></li>
465
+
466
+ <li><a href="../TaskJuggler/TaskListRE.html">TaskJuggler::TaskListRE</a></li>
467
+
468
+ <li><a href="../TaskJuggler/TaskScenario.html">TaskJuggler::TaskScenario</a></li>
469
+
470
+ <li><a href="../TaskJuggler/TernarySearchTree.html">TaskJuggler::TernarySearchTree</a></li>
471
+
472
+ <li><a href="../TaskJuggler/TextFormatter.html">TaskJuggler::TextFormatter</a></li>
473
+
474
+ <li><a href="../TaskJuggler/TextParser.html">TaskJuggler::TextParser</a></li>
475
+
476
+ <li><a href="../TaskJuggler/TextParser/Macro.html">TaskJuggler::TextParser::Macro</a></li>
477
+
478
+ <li><a href="../TaskJuggler/TextParser/MacroTable.html">TaskJuggler::TextParser::MacroTable</a></li>
479
+
480
+ <li><a href="../TaskJuggler/TextParser/Pattern.html">TaskJuggler::TextParser::Pattern</a></li>
481
+
482
+ <li><a href="../TaskJuggler/TextParser/Rule.html">TaskJuggler::TextParser::Rule</a></li>
483
+
484
+ <li><a href="../TaskJuggler/TextParser/Scanner.html">TaskJuggler::TextParser::Scanner</a></li>
485
+
486
+ <li><a href="../TaskJuggler/TextParser/Scanner/BufferStreamHandle.html">TaskJuggler::TextParser::Scanner::BufferStreamHandle</a></li>
487
+
488
+ <li><a href="../TaskJuggler/TextParser/Scanner/FileStreamHandle.html">TaskJuggler::TextParser::Scanner::FileStreamHandle</a></li>
489
+
490
+ <li><a href="../TaskJuggler/TextParser/Scanner/MacroStackEntry.html">TaskJuggler::TextParser::Scanner::MacroStackEntry</a></li>
491
+
492
+ <li><a href="../TaskJuggler/TextParser/Scanner/StreamHandle.html">TaskJuggler::TextParser::Scanner::StreamHandle</a></li>
493
+
494
+ <li><a href="../TaskJuggler/TextParser/SourceFileInfo.html">TaskJuggler::TextParser::SourceFileInfo</a></li>
495
+
496
+ <li><a href="../TaskJuggler/TextParser/StackElement.html">TaskJuggler::TextParser::StackElement</a></li>
497
+
498
+ <li><a href="../TaskJuggler/TextParser/State.html">TaskJuggler::TextParser::State</a></li>
499
+
500
+ <li><a href="../TaskJuggler/TextParser/StateTransition.html">TaskJuggler::TextParser::StateTransition</a></li>
501
+
502
+ <li><a href="../TaskJuggler/TextParser/TextParserResultArray.html">TaskJuggler::TextParser::TextParserResultArray</a></li>
503
+
504
+ <li><a href="../TaskJuggler/TextParser/TokenDoc.html">TaskJuggler::TextParser::TokenDoc</a></li>
505
+
506
+ <li><a href="../TaskJuggler/TextReport.html">TaskJuggler::TextReport</a></li>
507
+
508
+ <li><a href="../TaskJuggler/TimeSheet.html">TaskJuggler::TimeSheet</a></li>
509
+
510
+ <li><a href="../TaskJuggler/TimeSheetReceiver.html">TaskJuggler::TimeSheetReceiver</a></li>
511
+
512
+ <li><a href="../TaskJuggler/TimeSheetRecord.html">TaskJuggler::TimeSheetRecord</a></li>
513
+
514
+ <li><a href="../TaskJuggler/TimeSheetReport.html">TaskJuggler::TimeSheetReport</a></li>
515
+
516
+ <li><a href="../TaskJuggler/TimeSheetSender.html">TaskJuggler::TimeSheetSender</a></li>
517
+
518
+ <li><a href="../TaskJuggler/TimeSheetSummary.html">TaskJuggler::TimeSheetSummary</a></li>
519
+
520
+ <li><a href="../TaskJuggler/TimeSheets.html">TaskJuggler::TimeSheets</a></li>
521
+
522
+ <li><a href="../TaskJuggler/Tj3.html">TaskJuggler::Tj3</a></li>
523
+
524
+ <li><a href="../TaskJuggler/Tj3AppBase.html">TaskJuggler::Tj3AppBase</a></li>
525
+
526
+ <li><a href="../TaskJuggler/Tj3Client.html">TaskJuggler::Tj3Client</a></li>
527
+
528
+ <li><a href="../TaskJuggler/Tj3Daemon.html">TaskJuggler::Tj3Daemon</a></li>
529
+
530
+ <li><a href="../TaskJuggler/Tj3Man.html">TaskJuggler::Tj3Man</a></li>
531
+
532
+ <li><a href="../TaskJuggler/Tj3SheetAppBase.html">TaskJuggler::Tj3SheetAppBase</a></li>
533
+
534
+ <li><a href="../TaskJuggler/Tj3SsReceiver.html">TaskJuggler::Tj3SsReceiver</a></li>
535
+
536
+ <li><a href="../TaskJuggler/Tj3SsSender.html">TaskJuggler::Tj3SsSender</a></li>
537
+
538
+ <li><a href="../TaskJuggler/Tj3TsReceiver.html">TaskJuggler::Tj3TsReceiver</a></li>
539
+
540
+ <li><a href="../TaskJuggler/Tj3TsSender.html">TaskJuggler::Tj3TsSender</a></li>
541
+
542
+ <li><a href="../TaskJuggler/Tj3TsSummary.html">TaskJuggler::Tj3TsSummary</a></li>
543
+
544
+ <li><a href="../TaskJuggler/TjException.html">TaskJuggler::TjException</a></li>
545
+
546
+ <li><a href="../TaskJuggler/TjRuntimeError.html">TaskJuggler::TjRuntimeError</a></li>
547
+
548
+ <li><a href="../TaskJuggler/TjTime.html">TaskJuggler::TjTime</a></li>
549
+
550
+ <li><a href="../TaskJuggler/TjpExample.html">TaskJuggler::TjpExample</a></li>
551
+
552
+ <li><a href="../TaskJuggler/TjpExportRE.html">TaskJuggler::TjpExportRE</a></li>
553
+
554
+ <li><a href="../TaskJuggler/TjpSyntaxRules.html">TaskJuggler::TjpSyntaxRules</a></li>
555
+
556
+ <li><a href="../TaskJuggler/URLParameter.html">TaskJuggler::URLParameter</a></li>
557
+
558
+ <li><a href="../TaskJuggler/UserManual.html">TaskJuggler::UserManual</a></li>
559
+
560
+ <li><a href="../TaskJuggler/VimSyntax.html">TaskJuggler::VimSyntax</a></li>
561
+
562
+ <li><a href="../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
563
+
564
+ <li><a href="../TaskJuggler/WelcomePage.html">TaskJuggler::WelcomePage</a></li>
565
+
566
+ <li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
567
+
568
+ <li><a href="../TaskJuggler/WorkingHoursAttribute.html">TaskJuggler::WorkingHoursAttribute</a></li>
569
+
570
+ <li><a href="../TaskJuggler/XMLBlob.html">TaskJuggler::XMLBlob</a></li>
571
+
572
+ <li><a href="../TaskJuggler/XMLComment.html">TaskJuggler::XMLComment</a></li>
573
+
574
+ <li><a href="../TaskJuggler/XMLDocument.html">TaskJuggler::XMLDocument</a></li>
575
+
576
+ <li><a href="../TaskJuggler/XMLElement.html">TaskJuggler::XMLElement</a></li>
577
+
578
+ <li><a href="../TaskJuggler/XMLNamedText.html">TaskJuggler::XMLNamedText</a></li>
579
+
580
+ <li><a href="../TaskJuggler/XMLText.html">TaskJuggler::XMLText</a></li>
581
+
582
+ <li><a href="../Diff.html">Diff</a></li>
583
+
584
+ <li><a href="../Diff/Hunk.html">Diff::Hunk</a></li>
585
+
586
+ <li><a href="../AppConfig.html">AppConfig</a></li>
587
+
588
+ <li><a href="../Diffable.html">Diffable</a></li>
589
+
590
+ <li><a href="../DiffableString.html">DiffableString</a></li>
591
+
592
+ <li><a href="../Object.html">Object</a></li>
593
+
594
+ <li><a href="../RuntimeConfig.html">RuntimeConfig</a></li>
595
+
596
+ <li><a href="../String.html">String</a></li>
597
+
598
+ </ul>
599
+ <div id="no-class-search-results" style="display: none;">No matching classes.</div>
600
+ </div>
601
+
602
+
603
+ </div>
604
+ </div>
605
+
606
+ <div id="documentation">
607
+ <h1 class="class">TaskJuggler::PropertyList</h1>
608
+
609
+ <div id="description">
610
+ <p>
611
+ The <a href="PropertyList.html">PropertyList</a> is a utility class that
612
+ can be used to hold a list of properties. It&#8217;s derived from an Array,
613
+ so it can hold the properties in a well defined order. The order can be
614
+ determined by an arbitrary number of sorting levels. A sorting level
615
+ specifies an attribute who&#8217;s value should be used for sorting, a
616
+ scenario index if necessary and the sorting direction (up/down). All nodes
617
+ in the <a href="PropertyList.html">PropertyList</a> must belong to the same
618
+ <a href="PropertySet.html">PropertySet</a>.
619
+ </p>
620
+
621
+ </div>
622
+
623
+ <!-- Constants -->
624
+
625
+
626
+ <!-- Attributes -->
627
+
628
+ <div id="attribute-method-details" class="method-section section">
629
+ <h3 class="section-header">Attributes</h3>
630
+
631
+
632
+ <div id="query-attribute-method" class="method-detail">
633
+ <a name="query"></a>
634
+
635
+ <a name="query="></a>
636
+
637
+ <div class="method-heading attribute-method-heading">
638
+ <span class="method-name">query</span><span
639
+ class="attribute-access-type">[W]</span>
640
+ </div>
641
+
642
+ <div class="method-description">
643
+
644
+
645
+
646
+ </div>
647
+ </div>
648
+
649
+ <div id="property-et-attribute-method" class="method-detail">
650
+ <a name="propertySet"></a>
651
+
652
+ <div class="method-heading attribute-method-heading">
653
+ <span class="method-name">propertySet</span><span
654
+ class="attribute-access-type">[R]</span>
655
+ </div>
656
+
657
+ <div class="method-description">
658
+
659
+
660
+
661
+ </div>
662
+ </div>
663
+
664
+ <div id="query-attribute-method" class="method-detail">
665
+ <a name="query"></a>
666
+
667
+ <div class="method-heading attribute-method-heading">
668
+ <span class="method-name">query</span><span
669
+ class="attribute-access-type">[R]</span>
670
+ </div>
671
+
672
+ <div class="method-description">
673
+
674
+
675
+
676
+ </div>
677
+ </div>
678
+
679
+ <div id="sorting-evels-attribute-method" class="method-detail">
680
+ <a name="sortingLevels"></a>
681
+
682
+ <div class="method-heading attribute-method-heading">
683
+ <span class="method-name">sortingLevels</span><span
684
+ class="attribute-access-type">[R]</span>
685
+ </div>
686
+
687
+ <div class="method-description">
688
+
689
+
690
+
691
+ </div>
692
+ </div>
693
+
694
+ <div id="sorting-riteria-attribute-method" class="method-detail">
695
+ <a name="sortingCriteria"></a>
696
+
697
+ <div class="method-heading attribute-method-heading">
698
+ <span class="method-name">sortingCriteria</span><span
699
+ class="attribute-access-type">[R]</span>
700
+ </div>
701
+
702
+ <div class="method-description">
703
+
704
+
705
+
706
+ </div>
707
+ </div>
708
+
709
+ <div id="sorting-p-attribute-method" class="method-detail">
710
+ <a name="sortingUp"></a>
711
+
712
+ <div class="method-heading attribute-method-heading">
713
+ <span class="method-name">sortingUp</span><span
714
+ class="attribute-access-type">[R]</span>
715
+ </div>
716
+
717
+ <div class="method-description">
718
+
719
+
720
+
721
+ </div>
722
+ </div>
723
+
724
+ <div id="scenario-dx-attribute-method" class="method-detail">
725
+ <a name="scenarioIdx"></a>
726
+
727
+ <div class="method-heading attribute-method-heading">
728
+ <span class="method-name">scenarioIdx</span><span
729
+ class="attribute-access-type">[R]</span>
730
+ </div>
731
+
732
+ <div class="method-description">
733
+
734
+
735
+
736
+ </div>
737
+ </div>
738
+
739
+ </div>
740
+
741
+
742
+ <!-- Methods -->
743
+
744
+ <div id="public-class-method-details" class="method-section section">
745
+ <h3 class="section-header">Public Class Methods</h3>
746
+
747
+
748
+ <div id="new-method" class="method-detail ">
749
+ <a name="method-c-new"></a>
750
+
751
+ <div class="method-heading">
752
+
753
+ <span class="method-name">new</span><span
754
+ class="method-args">(arg, copyItems = true)</span>
755
+ <span class="method-click-advice">click to toggle source</span>
756
+
757
+ </div>
758
+
759
+ <div class="method-description">
760
+
761
+ <p>
762
+ A <a href="PropertyList.html">PropertyList</a> is always bound to a certain
763
+ <a href="PropertySet.html">PropertySet</a>. All properties in the list must
764
+ be of that set.
765
+ </p>
766
+
767
+
768
+
769
+ <div class="method-source-code"
770
+ id="new-source">
771
+ <pre>
772
+ <span class="ruby-comment cmt"># File lib/taskjuggler/PropertyList.rb, line 31</span>
773
+ 31: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">arg</span>, <span class="ruby-identifier">copyItems</span> = <span class="ruby-keyword kw">true</span>)
774
+ 32: <span class="ruby-ivar">@items</span> = <span class="ruby-identifier">copyItems</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">arg</span>.<span class="ruby-identifier">to_ary</span> <span class="ruby-operator">:</span> []
775
+ 33: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">arg</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">PropertySet</span>)
776
+ 34: <span class="ruby-comment cmt"># Create a PropertyList from the given PropertySet.</span>
777
+ 35: <span class="ruby-ivar">@propertySet</span> = <span class="ruby-identifier">arg</span>
778
+ 36: <span class="ruby-comment cmt"># To keep the list sorted, we may have to access Property attributes.</span>
779
+ 37: <span class="ruby-comment cmt"># Pre-scheduling, we can only use static attributes. Post-scheduling,</span>
780
+ 38: <span class="ruby-comment cmt"># we can include dynamic attributes as well. This query template will</span>
781
+ 39: <span class="ruby-comment cmt"># be used to query attributes when it has been set. Otherwise the list</span>
782
+ 40: <span class="ruby-comment cmt"># can only be sorted by static attributes.</span>
783
+ 41: <span class="ruby-ivar">@query</span> = <span class="ruby-keyword kw">nil</span>
784
+ 42: <span class="ruby-identifier">resetSorting</span>
785
+ 43: <span class="ruby-identifier">addSortingCriteria</span>(<span class="ruby-value str">'seqno'</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-value">1</span>)
786
+ 44: <span class="ruby-identifier">sort!</span>
787
+ 45: <span class="ruby-keyword kw">else</span>
788
+ 46: <span class="ruby-comment cmt"># Create a PropertyList from a given other PropertyList.</span>
789
+ 47: <span class="ruby-ivar">@propertySet</span> = <span class="ruby-identifier">arg</span>.<span class="ruby-identifier">propertySet</span>
790
+ 48: <span class="ruby-ivar">@query</span> = <span class="ruby-identifier">arg</span>.<span class="ruby-identifier">query</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">arg</span>.<span class="ruby-identifier">query</span>.<span class="ruby-identifier">dup</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">nil</span>
791
+ 49: <span class="ruby-ivar">@sortingLevels</span> = <span class="ruby-identifier">arg</span>.<span class="ruby-identifier">sortingLevels</span>
792
+ 50: <span class="ruby-ivar">@sortingCriteria</span> = <span class="ruby-identifier">arg</span>.<span class="ruby-identifier">sortingCriteria</span>.<span class="ruby-identifier">dup</span>
793
+ 51: <span class="ruby-ivar">@sortingUp</span> = <span class="ruby-identifier">arg</span>.<span class="ruby-identifier">sortingUp</span>.<span class="ruby-identifier">dup</span>
794
+ 52: <span class="ruby-ivar">@scenarioIdx</span> = <span class="ruby-identifier">arg</span>.<span class="ruby-identifier">scenarioIdx</span>.<span class="ruby-identifier">dup</span>
795
+ 53: <span class="ruby-keyword kw">end</span>
796
+ 54: <span class="ruby-keyword kw">end</span></pre>
797
+ </div>
798
+
799
+ </div>
800
+
801
+
802
+
803
+
804
+ </div>
805
+
806
+
807
+ </div>
808
+
809
+ <div id="public-instance-method-details" class="method-section section">
810
+ <h3 class="section-header">Public Instance Methods</h3>
811
+
812
+
813
+ <div id="append-method" class="method-detail ">
814
+ <a name="method-i-append"></a>
815
+
816
+ <div class="method-heading">
817
+
818
+ <span class="method-name">append</span><span
819
+ class="method-args">(list)</span>
820
+ <span class="method-click-advice">click to toggle source</span>
821
+
822
+ </div>
823
+
824
+ <div class="method-description">
825
+
826
+ <p>
827
+ Append another Array of PropertyTreeNodes or a <a
828
+ href="PropertyList.html">PropertyList</a> to this. The list will be sorted
829
+ again.
830
+ </p>
831
+
832
+
833
+
834
+ <div class="method-source-code"
835
+ id="append-source">
836
+ <pre>
837
+ <span class="ruby-comment cmt"># File lib/taskjuggler/PropertyList.rb, line 85</span>
838
+ 85: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">append</span>(<span class="ruby-identifier">list</span>)
839
+ 86: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$DEBUG</span>
840
+ 87: <span class="ruby-identifier">list</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">node</span><span class="ruby-operator">|</span>
841
+ 88: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">node</span>.<span class="ruby-identifier">propertySet</span> <span class="ruby-operator">==</span> <span class="ruby-ivar">@propertySet</span>
842
+ 89: <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;Fatal Error: All nodes must belong to the same PropertySet.&quot;</span>
843
+ 90: <span class="ruby-keyword kw">end</span>
844
+ 91: <span class="ruby-keyword kw">end</span>
845
+ 92: <span class="ruby-keyword kw">end</span>
846
+ 93:
847
+ 94: <span class="ruby-ivar">@items</span>.<span class="ruby-identifier">concat</span>(<span class="ruby-identifier">list</span>)
848
+ 95: <span class="ruby-identifier">sort!</span>
849
+ 96: <span class="ruby-keyword kw">end</span></pre>
850
+ </div>
851
+
852
+ </div>
853
+
854
+
855
+
856
+
857
+ </div>
858
+
859
+
860
+ <div id="index-method" class="method-detail ">
861
+ <a name="method-i-index"></a>
862
+
863
+ <div class="method-heading">
864
+
865
+ <span class="method-name">index</span><span
866
+ class="method-args">()</span>
867
+ <span class="method-click-advice">click to toggle source</span>
868
+
869
+ </div>
870
+
871
+ <div class="method-description">
872
+
873
+ <p>
874
+ This function sets the index attribute of all the properties in the list.
875
+ The index starts with 0 and increases for each property.
876
+ </p>
877
+
878
+
879
+
880
+ <div class="method-source-code"
881
+ id="index-source">
882
+ <pre>
883
+ <span class="ruby-comment cmt"># File lib/taskjuggler/PropertyList.rb, line 147</span>
884
+ 147: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">index</span>
885
+ 148: <span class="ruby-identifier">i</span> = <span class="ruby-value">0</span>
886
+ 149: <span class="ruby-ivar">@items</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">p</span><span class="ruby-operator">|</span>
887
+ 150: <span class="ruby-identifier">p</span>.<span class="ruby-identifier">set</span>(<span class="ruby-value str">'index'</span>, <span class="ruby-identifier">i</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>)
888
+ 151: <span class="ruby-keyword kw">end</span>
889
+ 152: <span class="ruby-keyword kw">end</span></pre>
890
+ </div>
891
+
892
+ </div>
893
+
894
+
895
+
896
+
897
+ </div>
898
+
899
+
900
+ <div id="item-ndex-method" class="method-detail ">
901
+ <a name="method-i-itemIndex"></a>
902
+
903
+ <div class="method-heading">
904
+
905
+ <span class="method-name">itemIndex</span><span
906
+ class="method-args">(item)</span>
907
+ <span class="method-click-advice">click to toggle source</span>
908
+
909
+ </div>
910
+
911
+ <div class="method-description">
912
+
913
+ <p>
914
+ Return the Array index of <em>item</em> or nil.
915
+ </p>
916
+
917
+
918
+
919
+ <div class="method-source-code"
920
+ id="item-ndex-source">
921
+ <pre>
922
+ <span class="ruby-comment cmt"># File lib/taskjuggler/PropertyList.rb, line 141</span>
923
+ 141: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">itemIndex</span>(<span class="ruby-identifier">item</span>)
924
+ 142: <span class="ruby-ivar">@items</span>.<span class="ruby-identifier">index</span>(<span class="ruby-identifier">item</span>)
925
+ 143: <span class="ruby-keyword kw">end</span></pre>
926
+ </div>
927
+
928
+ </div>
929
+
930
+
931
+
932
+
933
+ </div>
934
+
935
+
936
+ <div id="method-missing-method" class="method-detail ">
937
+ <a name="method-i-method_missing"></a>
938
+
939
+ <div class="method-heading">
940
+
941
+ <span class="method-name">method_missing</span><span
942
+ class="method-args">(func, *args, &block)</span>
943
+ <span class="method-click-advice">click to toggle source</span>
944
+
945
+ </div>
946
+
947
+ <div class="method-description">
948
+
949
+ <p>
950
+ This class should be a derived class of Array. But since it re-defines
951
+ sort!() and still needs to call Array::sort!() I took a different route.
952
+ All missing methods will be propagated to the @items Array.
953
+ </p>
954
+
955
+
956
+
957
+ <div class="method-source-code"
958
+ id="method-missing-source">
959
+ <pre>
960
+ <span class="ruby-comment cmt"># File lib/taskjuggler/PropertyList.rb, line 59</span>
961
+ 59: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">method_missing</span>(<span class="ruby-identifier">func</span>, *<span class="ruby-identifier">args</span>, &amp;<span class="ruby-identifier">block</span>)
962
+ 60: <span class="ruby-ivar">@items</span>.<span class="ruby-identifier">method</span>(<span class="ruby-identifier">func</span>).<span class="ruby-identifier">call</span>(*<span class="ruby-identifier">args</span>, &amp;<span class="ruby-identifier">block</span>)
963
+ 61: <span class="ruby-keyword kw">end</span></pre>
964
+ </div>
965
+
966
+ </div>
967
+
968
+
969
+
970
+
971
+ </div>
972
+
973
+
974
+ <div id="reset-orting-method" class="method-detail ">
975
+ <a name="method-i-resetSorting"></a>
976
+
977
+ <div class="method-heading">
978
+
979
+ <span class="method-name">resetSorting</span><span
980
+ class="method-args">()</span>
981
+ <span class="method-click-advice">click to toggle source</span>
982
+
983
+ </div>
984
+
985
+ <div class="method-description">
986
+
987
+ <p>
988
+ Clear all sorting levels.
989
+ </p>
990
+
991
+
992
+
993
+ <div class="method-source-code"
994
+ id="reset-orting-source">
995
+ <pre>
996
+ <span class="ruby-comment cmt"># File lib/taskjuggler/PropertyList.rb, line 76</span>
997
+ 76: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">resetSorting</span>
998
+ 77: <span class="ruby-ivar">@sortingLevels</span> = <span class="ruby-value">0</span>
999
+ 78: <span class="ruby-ivar">@sortingCriteria</span> = []
1000
+ 79: <span class="ruby-ivar">@sortingUp</span> = []
1001
+ 80: <span class="ruby-ivar">@scenarioIdx</span> = []
1002
+ 81: <span class="ruby-keyword kw">end</span></pre>
1003
+ </div>
1004
+
1005
+ </div>
1006
+
1007
+
1008
+
1009
+
1010
+ </div>
1011
+
1012
+
1013
+ <div id="set-orting-method" class="method-detail ">
1014
+ <a name="method-i-setSorting"></a>
1015
+
1016
+ <div class="method-heading">
1017
+
1018
+ <span class="method-name">setSorting</span><span
1019
+ class="method-args">(modes)</span>
1020
+ <span class="method-click-advice">click to toggle source</span>
1021
+
1022
+ </div>
1023
+
1024
+ <div class="method-description">
1025
+
1026
+ <p>
1027
+ Set all sorting levels as Array of triplets.
1028
+ </p>
1029
+
1030
+
1031
+
1032
+ <div class="method-source-code"
1033
+ id="set-orting-source">
1034
+ <pre>
1035
+ <span class="ruby-comment cmt"># File lib/taskjuggler/PropertyList.rb, line 68</span>
1036
+ 68: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">setSorting</span>(<span class="ruby-identifier">modes</span>)
1037
+ 69: <span class="ruby-identifier">resetSorting</span>
1038
+ 70: <span class="ruby-identifier">modes</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">mode</span><span class="ruby-operator">|</span>
1039
+ 71: <span class="ruby-identifier">addSortingCriteria</span>(*<span class="ruby-identifier">mode</span>)
1040
+ 72: <span class="ruby-keyword kw">end</span>
1041
+ 73: <span class="ruby-keyword kw">end</span></pre>
1042
+ </div>
1043
+
1044
+ </div>
1045
+
1046
+
1047
+
1048
+
1049
+ </div>
1050
+
1051
+
1052
+ <div id="sort--method" class="method-detail ">
1053
+ <a name="method-i-sort%21"></a>
1054
+
1055
+ <div class="method-heading">
1056
+
1057
+ <span class="method-name">sort!</span><span
1058
+ class="method-args">()</span>
1059
+ <span class="method-click-advice">click to toggle source</span>
1060
+
1061
+ </div>
1062
+
1063
+ <div class="method-description">
1064
+
1065
+ <p>
1066
+ Sort the properties according to the currently defined sorting criteria.
1067
+ </p>
1068
+
1069
+
1070
+
1071
+ <div class="method-source-code"
1072
+ id="sort--source">
1073
+ <pre>
1074
+ <span class="ruby-comment cmt"># File lib/taskjuggler/PropertyList.rb, line 106</span>
1075
+ 106: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sort!</span>
1076
+ 107: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">treeMode?</span>
1077
+ 108: <span class="ruby-comment cmt"># Tree sorting is somewhat complex. It will be based on the 'tree'</span>
1078
+ 109: <span class="ruby-comment cmt"># attribute of the PropertyTreeNodes but we have to update them first</span>
1079
+ 110: <span class="ruby-comment cmt"># based on the other sorting criteria.</span>
1080
+ 111:
1081
+ 112: <span class="ruby-comment cmt"># Remove the tree sorting mode first.</span>
1082
+ 113: <span class="ruby-identifier">sc</span> = <span class="ruby-ivar">@sortingCriteria</span>.<span class="ruby-identifier">delete_at</span>(<span class="ruby-value">0</span>)
1083
+ 114: <span class="ruby-identifier">su</span> = <span class="ruby-ivar">@sortingUp</span>.<span class="ruby-identifier">delete_at</span>(<span class="ruby-value">0</span>)
1084
+ 115: <span class="ruby-identifier">si</span> = <span class="ruby-ivar">@scenarioIdx</span>.<span class="ruby-identifier">delete_at</span>(<span class="ruby-value">0</span>)
1085
+ 116: <span class="ruby-ivar">@sortingLevels</span> <span class="ruby-operator">-=</span> <span class="ruby-value">1</span>
1086
+ 117:
1087
+ 118: <span class="ruby-comment cmt"># Sort the list based on the rest of the modes.</span>
1088
+ 119: <span class="ruby-identifier">sortInternal</span>
1089
+ 120: <span class="ruby-comment cmt"># The update the 'index' attributes of the PropertyTreeNodes.</span>
1090
+ 121: <span class="ruby-identifier">index</span>
1091
+ 122: <span class="ruby-comment cmt"># An then the 'tree' attributes.</span>
1092
+ 123: <span class="ruby-identifier">indexTree</span>
1093
+ 124:
1094
+ 125: <span class="ruby-comment cmt"># Restore the 'tree' sorting mode again.</span>
1095
+ 126: <span class="ruby-ivar">@sortingCriteria</span>.<span class="ruby-identifier">insert</span>(<span class="ruby-value">0</span>, <span class="ruby-identifier">sc</span>)
1096
+ 127: <span class="ruby-ivar">@sortingUp</span>.<span class="ruby-identifier">insert</span>(<span class="ruby-value">0</span>, <span class="ruby-identifier">su</span>)
1097
+ 128: <span class="ruby-ivar">@scenarioIdx</span>.<span class="ruby-identifier">insert</span>(<span class="ruby-value">0</span>, <span class="ruby-identifier">si</span>)
1098
+ 129: <span class="ruby-ivar">@sortingLevels</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
1099
+ 130:
1100
+ 131: <span class="ruby-comment cmt"># Sort again, now based on the updated 'tree' attributes.</span>
1101
+ 132: <span class="ruby-identifier">sortInternal</span>
1102
+ 133: <span class="ruby-keyword kw">else</span>
1103
+ 134: <span class="ruby-identifier">sortInternal</span>
1104
+ 135: <span class="ruby-keyword kw">end</span>
1105
+ 136: <span class="ruby-comment cmt"># Update indexes.</span>
1106
+ 137: <span class="ruby-identifier">index</span>
1107
+ 138: <span class="ruby-keyword kw">end</span></pre>
1108
+ </div>
1109
+
1110
+ </div>
1111
+
1112
+
1113
+
1114
+
1115
+ </div>
1116
+
1117
+
1118
+ <div id="to-ary-method" class="method-detail ">
1119
+ <a name="method-i-to_ary"></a>
1120
+
1121
+ <div class="method-heading">
1122
+
1123
+ <span class="method-name">to_ary</span><span
1124
+ class="method-args">()</span>
1125
+ <span class="method-click-advice">click to toggle source</span>
1126
+
1127
+ </div>
1128
+
1129
+ <div class="method-description">
1130
+
1131
+
1132
+
1133
+
1134
+
1135
+ <div class="method-source-code"
1136
+ id="to-ary-source">
1137
+ <pre>
1138
+ <span class="ruby-comment cmt"># File lib/taskjuggler/PropertyList.rb, line 63</span>
1139
+ 63: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_ary</span>
1140
+ 64: <span class="ruby-ivar">@items</span>.<span class="ruby-identifier">dup</span>
1141
+ 65: <span class="ruby-keyword kw">end</span></pre>
1142
+ </div>
1143
+
1144
+ </div>
1145
+
1146
+
1147
+
1148
+
1149
+ </div>
1150
+
1151
+
1152
+ <div id="tree-ode--method" class="method-detail ">
1153
+ <a name="method-i-treeMode%3F"></a>
1154
+
1155
+ <div class="method-heading">
1156
+
1157
+ <span class="method-name">treeMode?</span><span
1158
+ class="method-args">()</span>
1159
+ <span class="method-click-advice">click to toggle source</span>
1160
+
1161
+ </div>
1162
+
1163
+ <div class="method-description">
1164
+
1165
+ <p>
1166
+ If the first sorting level is &#8216;tree&#8217; the breakdown structure of
1167
+ the list is preserved. This is a somewhat special mode and this function
1168
+ returns true if the mode is set.
1169
+ </p>
1170
+
1171
+
1172
+
1173
+ <div class="method-source-code"
1174
+ id="tree-ode--source">
1175
+ <pre>
1176
+ <span class="ruby-comment cmt"># File lib/taskjuggler/PropertyList.rb, line 101</span>
1177
+ 101: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">treeMode?</span>
1178
+ 102: <span class="ruby-ivar">@sortingLevels</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@sortingCriteria</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">==</span> <span class="ruby-value str">'tree'</span>
1179
+ 103: <span class="ruby-keyword kw">end</span></pre>
1180
+ </div>
1181
+
1182
+ </div>
1183
+
1184
+
1185
+
1186
+
1187
+ </div>
1188
+
1189
+
1190
+ </div>
1191
+
1192
+ <div id="private-instance-method-details" class="method-section section">
1193
+ <h3 class="section-header">Private Instance Methods</h3>
1194
+
1195
+
1196
+ <div id="add-orting-riteria-method" class="method-detail ">
1197
+ <a name="method-i-addSortingCriteria"></a>
1198
+
1199
+ <div class="method-heading">
1200
+
1201
+ <span class="method-name">addSortingCriteria</span><span
1202
+ class="method-args">(criteria, up, scIdx)</span>
1203
+ <span class="method-click-advice">click to toggle source</span>
1204
+
1205
+ </div>
1206
+
1207
+ <div class="method-description">
1208
+
1209
+ <p>
1210
+ Append a new sorting level to the existing levels.
1211
+ </p>
1212
+
1213
+
1214
+
1215
+ <div class="method-source-code"
1216
+ id="add-orting-riteria-source">
1217
+ <pre>
1218
+ <span class="ruby-comment cmt"># File lib/taskjuggler/PropertyList.rb, line 169</span>
1219
+ 169: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">addSortingCriteria</span>(<span class="ruby-identifier">criteria</span>, <span class="ruby-identifier">up</span>, <span class="ruby-identifier">scIdx</span>)
1220
+ 170: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@propertySet</span>.<span class="ruby-identifier">knownAttribute?</span>(<span class="ruby-identifier">criteria</span>) <span class="ruby-operator">||</span>
1221
+ 171: <span class="ruby-ivar">@propertySet</span>.<span class="ruby-identifier">hasQuery?</span>(<span class="ruby-identifier">criteria</span>, <span class="ruby-identifier">scIdx</span>)
1222
+ 172: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TjException</span>.<span class="ruby-identifier">new</span>,
1223
+ 173: <span class="ruby-node">&quot;Unknown attribute #{criteria} used for sorting criterium&quot;</span>
1224
+ 174: <span class="ruby-keyword kw">end</span>
1225
+ 175: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">scIdx</span> <span class="ruby-operator">==</span> <span class="ruby-value">1</span>
1226
+ 176: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@propertySet</span>.<span class="ruby-identifier">scenarioSpecific?</span>(<span class="ruby-identifier">criteria</span>)
1227
+ 177: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TjException</span>.<span class="ruby-identifier">new</span>,
1228
+ 178: <span class="ruby-node">&quot;Attribute #{criteria} is scenario specific.&quot;</span> <span class="ruby-operator">+</span>
1229
+ 179: <span class="ruby-value str">&quot;You must specify a scenario id.&quot;</span>
1230
+ 180: <span class="ruby-keyword kw">end</span>
1231
+ 181: <span class="ruby-keyword kw">else</span>
1232
+ 182: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@propertySet</span>.<span class="ruby-identifier">project</span>.<span class="ruby-identifier">scenario</span>(<span class="ruby-identifier">scIdx</span>).<span class="ruby-identifier">nil?</span>
1233
+ 183: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TjException</span>.<span class="ruby-identifier">new</span>, <span class="ruby-node">&quot;Unknown scenario index #{scIdx} used.&quot;</span>
1234
+ 184: <span class="ruby-keyword kw">end</span>
1235
+ 185: <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-ivar">@propertySet</span>.<span class="ruby-identifier">scenarioSpecific?</span>(<span class="ruby-identifier">criteria</span>)
1236
+ 186: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TjException</span>.<span class="ruby-identifier">new</span>, <span class="ruby-node">&quot;Attribute #{criteria} is not scenario specific&quot;</span>
1237
+ 187: <span class="ruby-keyword kw">end</span>
1238
+ 188: <span class="ruby-keyword kw">end</span>
1239
+ 189: <span class="ruby-ivar">@sortingCriteria</span>.<span class="ruby-identifier">push</span>(<span class="ruby-identifier">criteria</span>)
1240
+ 190: <span class="ruby-ivar">@sortingUp</span>.<span class="ruby-identifier">push</span>(<span class="ruby-identifier">up</span>)
1241
+ 191: <span class="ruby-ivar">@scenarioIdx</span>.<span class="ruby-identifier">push</span>(<span class="ruby-identifier">scIdx</span>)
1242
+ 192: <span class="ruby-ivar">@sortingLevels</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
1243
+ 193: <span class="ruby-keyword kw">end</span></pre>
1244
+ </div>
1245
+
1246
+ </div>
1247
+
1248
+
1249
+
1250
+
1251
+ </div>
1252
+
1253
+
1254
+ <div id="index-ree-method" class="method-detail ">
1255
+ <a name="method-i-indexTree"></a>
1256
+
1257
+ <div class="method-heading">
1258
+
1259
+ <span class="method-name">indexTree</span><span
1260
+ class="method-args">()</span>
1261
+ <span class="method-click-advice">click to toggle source</span>
1262
+
1263
+ </div>
1264
+
1265
+ <div class="method-description">
1266
+
1267
+ <p>
1268
+ Update the &#8216;tree&#8217; indicies that are needed for the
1269
+ &#8216;tree&#8217; sorting mode.
1270
+ </p>
1271
+
1272
+
1273
+
1274
+ <div class="method-source-code"
1275
+ id="index-ree-source">
1276
+ <pre>
1277
+ <span class="ruby-comment cmt"># File lib/taskjuggler/PropertyList.rb, line 196</span>
1278
+ 196: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">indexTree</span>
1279
+ 197: <span class="ruby-ivar">@items</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">property</span><span class="ruby-operator">|</span>
1280
+ 198: <span class="ruby-comment cmt"># The indicies are an Array if the 'index' attributes for this</span>
1281
+ 199: <span class="ruby-comment cmt"># property and all its parents.</span>
1282
+ 200: <span class="ruby-identifier">treeIdcs</span> = <span class="ruby-identifier">property</span>.<span class="ruby-identifier">getIndicies</span>
1283
+ 201: <span class="ruby-comment cmt"># Now convert them to a String.</span>
1284
+ 202: <span class="ruby-identifier">tree</span> = <span class="ruby-value str">''</span>
1285
+ 203: <span class="ruby-identifier">treeIdcs</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">idx</span><span class="ruby-operator">|</span>
1286
+ 204: <span class="ruby-comment cmt"># Prefix the level index with zeros so that we always have a 6</span>
1287
+ 205: <span class="ruby-comment cmt"># digit long String. 6 digits should be large enough for all</span>
1288
+ 206: <span class="ruby-comment cmt"># real-world projects.</span>
1289
+ 207: <span class="ruby-identifier">tree</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">idx</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">rjust</span>(<span class="ruby-value">6</span>, <span class="ruby-value str">'0'</span>)
1290
+ 208: <span class="ruby-keyword kw">end</span>
1291
+ 209: <span class="ruby-identifier">property</span>.<span class="ruby-identifier">set</span>(<span class="ruby-value str">'tree'</span>, <span class="ruby-identifier">tree</span>)
1292
+ 210: <span class="ruby-keyword kw">end</span>
1293
+ 211: <span class="ruby-keyword kw">end</span></pre>
1294
+ </div>
1295
+
1296
+ </div>
1297
+
1298
+
1299
+
1300
+
1301
+ </div>
1302
+
1303
+
1304
+ <div id="sort-nternal-method" class="method-detail ">
1305
+ <a name="method-i-sortInternal"></a>
1306
+
1307
+ <div class="method-heading">
1308
+
1309
+ <span class="method-name">sortInternal</span><span
1310
+ class="method-args">()</span>
1311
+ <span class="method-click-advice">click to toggle source</span>
1312
+
1313
+ </div>
1314
+
1315
+ <div class="method-description">
1316
+
1317
+
1318
+
1319
+
1320
+
1321
+ <div class="method-source-code"
1322
+ id="sort-nternal-source">
1323
+ <pre>
1324
+ <span class="ruby-comment cmt"># File lib/taskjuggler/PropertyList.rb, line 213</span>
1325
+ 213: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sortInternal</span>
1326
+ 214: <span class="ruby-ivar">@items</span>.<span class="ruby-identifier">sort!</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">a</span>, <span class="ruby-identifier">b</span><span class="ruby-operator">|</span>
1327
+ 215: <span class="ruby-identifier">res</span> = <span class="ruby-value">0</span>
1328
+ 216: <span class="ruby-ivar">@sortingLevels</span>.<span class="ruby-identifier">times</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
1329
+ 217: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@query</span>
1330
+ 218: <span class="ruby-comment cmt"># In case we have a Query reference, we get the two values with this</span>
1331
+ 219: <span class="ruby-comment cmt"># query.</span>
1332
+ 220: <span class="ruby-ivar">@query</span>.<span class="ruby-identifier">scenarioIdx</span> = <span class="ruby-ivar">@scenarioIdx</span>[<span class="ruby-identifier">i</span>] <span class="ruby-operator">&lt;</span> <span class="ruby-value">0</span> <span class="ruby-operator">?</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-operator">:</span> <span class="ruby-ivar">@scenarioIdx</span>[<span class="ruby-identifier">i</span>]
1333
+ 221: <span class="ruby-ivar">@query</span>.<span class="ruby-identifier">attributeId</span> = <span class="ruby-ivar">@sortingCriteria</span>[<span class="ruby-identifier">i</span>]
1334
+ 222:
1335
+ 223: <span class="ruby-ivar">@query</span>.<span class="ruby-identifier">property</span> = <span class="ruby-identifier">a</span>
1336
+ 224: <span class="ruby-ivar">@query</span>.<span class="ruby-identifier">process</span>
1337
+ 225: <span class="ruby-identifier">aVal</span> = <span class="ruby-ivar">@query</span>.<span class="ruby-identifier">to_sort</span>
1338
+ 226:
1339
+ 227: <span class="ruby-ivar">@query</span>.<span class="ruby-identifier">property</span> = <span class="ruby-identifier">b</span>
1340
+ 228: <span class="ruby-ivar">@query</span>.<span class="ruby-identifier">process</span>
1341
+ 229: <span class="ruby-identifier">bVal</span> = <span class="ruby-ivar">@query</span>.<span class="ruby-identifier">to_sort</span>
1342
+ 230: <span class="ruby-keyword kw">else</span>
1343
+ 231: <span class="ruby-comment cmt"># In case we don't have a query, we use the static mechanism.</span>
1344
+ 232: <span class="ruby-comment cmt"># If the scenario index is negative we have a non-scenario-specific</span>
1345
+ 233: <span class="ruby-comment cmt"># attribute.</span>
1346
+ 234: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@scenarioIdx</span>[<span class="ruby-identifier">i</span>] <span class="ruby-operator">&lt;</span> <span class="ruby-value">0</span>
1347
+ 235: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@sortingCriteria</span>[<span class="ruby-identifier">i</span>] <span class="ruby-operator">==</span> <span class="ruby-value str">'id'</span>
1348
+ 236: <span class="ruby-identifier">aVal</span> = <span class="ruby-identifier">a</span>.<span class="ruby-identifier">fullId</span>
1349
+ 237: <span class="ruby-identifier">bVal</span> = <span class="ruby-identifier">b</span>.<span class="ruby-identifier">fullId</span>
1350
+ 238: <span class="ruby-keyword kw">else</span>
1351
+ 239: <span class="ruby-identifier">aVal</span> = <span class="ruby-identifier">a</span>.<span class="ruby-identifier">get</span>(<span class="ruby-ivar">@sortingCriteria</span>[<span class="ruby-identifier">i</span>])
1352
+ 240: <span class="ruby-identifier">bVal</span> = <span class="ruby-identifier">b</span>.<span class="ruby-identifier">get</span>(<span class="ruby-ivar">@sortingCriteria</span>[<span class="ruby-identifier">i</span>])
1353
+ 241: <span class="ruby-keyword kw">end</span>
1354
+ 242: <span class="ruby-keyword kw">else</span>
1355
+ 243: <span class="ruby-identifier">aVal</span> = <span class="ruby-identifier">a</span>[<span class="ruby-ivar">@sortingCriteria</span>[<span class="ruby-identifier">i</span>], <span class="ruby-ivar">@scenarioIdx</span>[<span class="ruby-identifier">i</span>]]
1356
+ 244: <span class="ruby-identifier">bVal</span> = <span class="ruby-identifier">b</span>[<span class="ruby-ivar">@sortingCriteria</span>[<span class="ruby-identifier">i</span>], <span class="ruby-ivar">@scenarioIdx</span>[<span class="ruby-identifier">i</span>]]
1357
+ 245: <span class="ruby-keyword kw">end</span>
1358
+ 246: <span class="ruby-keyword kw">end</span>
1359
+ 247: <span class="ruby-identifier">res</span> = <span class="ruby-identifier">aVal</span> <span class="ruby-operator">&lt;=&gt;</span> <span class="ruby-identifier">bVal</span>
1360
+ 248: <span class="ruby-comment cmt"># Invert the result if we have to sort in decreasing order.</span>
1361
+ 249: <span class="ruby-identifier">res</span> = <span class="ruby-operator">-</span><span class="ruby-identifier">res</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@sortingUp</span>[<span class="ruby-identifier">i</span>]
1362
+ 250: <span class="ruby-comment cmt"># If the two elements are equal on this compare level we try the next</span>
1363
+ 251: <span class="ruby-comment cmt"># level.</span>
1364
+ 252: <span class="ruby-keyword kw">break</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">res</span> <span class="ruby-operator">!=</span> <span class="ruby-value">0</span>
1365
+ 253: <span class="ruby-keyword kw">end</span>
1366
+ 254: <span class="ruby-identifier">res</span>
1367
+ 255: <span class="ruby-keyword kw">end</span>
1368
+ 256: <span class="ruby-keyword kw">end</span></pre>
1369
+ </div>
1370
+
1371
+ </div>
1372
+
1373
+
1374
+
1375
+
1376
+ </div>
1377
+
1378
+
1379
+ </div>
1380
+
1381
+
1382
+ </div>
1383
+
1384
+
1385
+ <div id="rdoc-debugging-section-dump" class="debugging-section">
1386
+
1387
+ <p>Disabled; run with --debug to generate this.</p>
1388
+
1389
+ </div>
1390
+
1391
+ <div id="validator-badges">
1392
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
1393
+ <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
1394
+ Rdoc Generator</a> 1.1.6</small>.</p>
1395
+ </div>
1396
+
1397
+ </body>
1398
+ </html>
1399
+