taskjuggler 0.0.6 → 0.0.7

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 (545) hide show
  1. data/CHANGELOG +160 -0
  2. data/benchmarks/UTF-8-Strings.rb +58 -0
  3. data/data/css/tjreport.css +7 -2
  4. data/doc/AppConfig.html +10 -4
  5. data/doc/Arguments.html +10 -4
  6. data/doc/CHANGELOG.html +171 -5
  7. data/doc/COPYING.html +10 -4
  8. data/doc/Object.html +11 -107
  9. data/doc/README.html +10 -4
  10. data/doc/RuntimeConfig.html +10 -4
  11. data/doc/String.html +16 -11
  12. data/doc/StringIO.html +10 -4
  13. data/doc/TaskJuggler.html +506 -435
  14. data/doc/TaskJuggler/Account.html +10 -4
  15. data/doc/TaskJuggler/AccountAttribute.html +10 -4
  16. data/doc/TaskJuggler/AccountScenario.html +10 -4
  17. data/doc/TaskJuggler/Allocation.html +69 -60
  18. data/doc/TaskJuggler/AllocationAttribute.html +10 -4
  19. data/doc/TaskJuggler/AttributeBase.html +10 -4
  20. data/doc/TaskJuggler/AttributeDefinition.html +10 -4
  21. data/doc/TaskJuggler/BatchProcessor.html +202 -192
  22. data/doc/TaskJuggler/Booking.html +10 -4
  23. data/doc/TaskJuggler/BookingListAttribute.html +10 -4
  24. data/doc/TaskJuggler/BooleanAttribute.html +10 -4
  25. data/doc/TaskJuggler/CSVFile.html +10 -4
  26. data/doc/TaskJuggler/CellSettingPattern.html +10 -4
  27. data/doc/TaskJuggler/CellSettingPatternList.html +10 -4
  28. data/doc/TaskJuggler/Charge.html +10 -4
  29. data/doc/TaskJuggler/ChargeListAttribute.html +10 -4
  30. data/doc/TaskJuggler/ChargeSet.html +10 -4
  31. data/doc/TaskJuggler/ChargeSetListAttribute.html +10 -4
  32. data/doc/TaskJuggler/ColumnListAttribute.html +10 -4
  33. data/doc/TaskJuggler/ColumnTable.html +10 -4
  34. data/doc/TaskJuggler/Daemon.html +71 -52
  35. data/doc/TaskJuggler/DateAttribute.html +10 -4
  36. data/doc/TaskJuggler/DefinitionListAttribute.html +10 -4
  37. data/doc/TaskJuggler/DependencyListAttribute.html +10 -4
  38. data/doc/TaskJuggler/DurationAttribute.html +10 -4
  39. data/doc/TaskJuggler/{MacroParser.html → FileList.html} +58 -173
  40. data/doc/TaskJuggler/{RichTextException.html → FileRecord.html} +59 -80
  41. data/doc/TaskJuggler/FixnumAttribute.html +10 -4
  42. data/doc/TaskJuggler/FlagListAttribute.html +10 -4
  43. data/doc/TaskJuggler/FloatAttribute.html +10 -4
  44. data/doc/TaskJuggler/FormatListAttribute.html +10 -4
  45. data/doc/TaskJuggler/GanttChart.html +10 -4
  46. data/doc/TaskJuggler/GanttContainer.html +14 -8
  47. data/doc/TaskJuggler/GanttHeader.html +10 -4
  48. data/doc/TaskJuggler/GanttHeaderScaleItem.html +10 -4
  49. data/doc/TaskJuggler/GanttLine.html +29 -24
  50. data/doc/TaskJuggler/GanttLoadStack.html +10 -4
  51. data/doc/TaskJuggler/GanttMilestone.html +10 -4
  52. data/doc/TaskJuggler/GanttRouter.html +10 -4
  53. data/doc/TaskJuggler/GanttTaskBar.html +20 -10
  54. data/doc/TaskJuggler/HTMLDocument.html +10 -4
  55. data/doc/TaskJuggler/HTMLGraphics.html +10 -4
  56. data/doc/TaskJuggler/Interval.html +10 -4
  57. data/doc/TaskJuggler/IntervalListAttribute.html +10 -4
  58. data/doc/TaskJuggler/JobInfo.html +10 -4
  59. data/doc/TaskJuggler/Journal.html +227 -160
  60. data/doc/TaskJuggler/JournalEntry.html +10 -4
  61. data/doc/TaskJuggler/JournalEntryList.html +158 -72
  62. data/doc/TaskJuggler/KeywordArray.html +21 -9
  63. data/doc/TaskJuggler/KeywordDocumentation.html +612 -475
  64. data/doc/TaskJuggler/Limits.html +13 -8
  65. data/doc/TaskJuggler/Limits/Limit.html +10 -4
  66. data/doc/TaskJuggler/LimitsAttribute.html +10 -4
  67. data/doc/TaskJuggler/ListAttributeBase.html +10 -4
  68. data/doc/TaskJuggler/Log.html +10 -4
  69. data/doc/TaskJuggler/LogFile.html +10 -4
  70. data/doc/TaskJuggler/LogicalAttribute.html +10 -4
  71. data/doc/TaskJuggler/LogicalExpression.html +11 -5
  72. data/doc/TaskJuggler/LogicalExpressionAttribute.html +10 -4
  73. data/doc/TaskJuggler/LogicalFlag.html +10 -4
  74. data/doc/TaskJuggler/LogicalFunction.html +132 -124
  75. data/doc/TaskJuggler/LogicalOperation.html +10 -4
  76. data/doc/TaskJuggler/Macro.html +16 -10
  77. data/doc/TaskJuggler/MacroTable.html +44 -38
  78. data/doc/TaskJuggler/ManagerResponsibilities.html +10 -4
  79. data/doc/TaskJuggler/ManagerStatusRecord.html +10 -4
  80. data/doc/TaskJuggler/Message.html +92 -68
  81. data/doc/TaskJuggler/MessageHandler.html +349 -28
  82. data/doc/TaskJuggler/Navigator.html +10 -4
  83. data/doc/TaskJuggler/NavigatorElement.html +10 -4
  84. data/doc/TaskJuggler/NikuProject.html +10 -4
  85. data/doc/TaskJuggler/NikuReport.html +10 -4
  86. data/doc/TaskJuggler/NikuResource.html +10 -4
  87. data/doc/TaskJuggler/NodeListAttribute.html +10 -4
  88. data/doc/TaskJuggler/OnShiftCache.html +10 -4
  89. data/doc/TaskJuggler/ProcessIntercom.html +118 -111
  90. data/doc/TaskJuggler/ProcessIntercomIface.html +75 -22
  91. data/doc/TaskJuggler/Project.html +886 -913
  92. data/doc/TaskJuggler/ProjectBroker.html +442 -331
  93. data/doc/TaskJuggler/ProjectBrokerIface.html +95 -38
  94. data/doc/TaskJuggler/ProjectFileParser.html +320 -317
  95. data/doc/TaskJuggler/ProjectFileScanner.html +336 -339
  96. data/doc/TaskJuggler/ProjectRecord.html +119 -56
  97. data/doc/TaskJuggler/ProjectServer.html +282 -237
  98. data/doc/TaskJuggler/ProjectServerIface.html +45 -39
  99. data/doc/TaskJuggler/PropertyAttribute.html +10 -4
  100. data/doc/TaskJuggler/PropertyList.html +177 -173
  101. data/doc/TaskJuggler/PropertySet.html +11 -5
  102. data/doc/TaskJuggler/PropertyTreeNode.html +194 -191
  103. data/doc/TaskJuggler/Query.html +280 -256
  104. data/doc/TaskJuggler/RTFHandlers.html +10 -4
  105. data/doc/TaskJuggler/RTFNavigator.html +33 -26
  106. data/doc/TaskJuggler/RTFQuery.html +135 -169
  107. data/doc/TaskJuggler/RTFReport.html +63 -56
  108. data/doc/TaskJuggler/RTFReportLink.html +58 -47
  109. data/doc/TaskJuggler/RTFWithQuerySupport.html +666 -0
  110. data/doc/TaskJuggler/RealFormat.html +10 -4
  111. data/doc/TaskJuggler/RealFormatAttribute.html +10 -4
  112. data/doc/TaskJuggler/ReferenceAttribute.html +10 -4
  113. data/doc/TaskJuggler/Report.html +333 -290
  114. data/doc/TaskJuggler/ReportBase.html +182 -174
  115. data/doc/TaskJuggler/ReportContext.html +10 -4
  116. data/doc/TaskJuggler/ReportServer.html +144 -126
  117. data/doc/TaskJuggler/ReportServerIface.html +50 -44
  118. data/doc/TaskJuggler/ReportServerRecord.html +38 -32
  119. data/doc/TaskJuggler/ReportServlet.html +144 -137
  120. data/doc/TaskJuggler/ReportTable.html +10 -4
  121. data/doc/TaskJuggler/ReportTableCell.html +169 -164
  122. data/doc/TaskJuggler/ReportTableColumn.html +10 -4
  123. data/doc/TaskJuggler/ReportTableLegend.html +10 -4
  124. data/doc/TaskJuggler/ReportTableLine.html +10 -4
  125. data/doc/TaskJuggler/Resource.html +121 -115
  126. data/doc/TaskJuggler/ResourceListAttribute.html +10 -4
  127. data/doc/TaskJuggler/ResourceListRE.html +10 -4
  128. data/doc/TaskJuggler/ResourceScenario.html +13 -7
  129. data/doc/TaskJuggler/RichText.html +61 -37
  130. data/doc/TaskJuggler/RichTextAttribute.html +10 -4
  131. data/doc/TaskJuggler/RichTextDocument.html +91 -81
  132. data/doc/TaskJuggler/RichTextElement.html +378 -317
  133. data/doc/TaskJuggler/RichTextFunctionExample.html +10 -4
  134. data/doc/TaskJuggler/RichTextFunctionHandler.html +16 -11
  135. data/doc/TaskJuggler/RichTextImage.html +10 -4
  136. data/doc/TaskJuggler/RichTextIntermediate.html +138 -70
  137. data/doc/TaskJuggler/RichTextParser.html +48 -40
  138. data/doc/TaskJuggler/RichTextScanner.html +328 -906
  139. data/doc/TaskJuggler/RichTextSnip.html +59 -57
  140. data/doc/TaskJuggler/RichTextSyntaxRules.html +458 -369
  141. data/doc/TaskJuggler/Scenario.html +10 -4
  142. data/doc/TaskJuggler/ScenarioData.html +33 -30
  143. data/doc/TaskJuggler/ScenarioListAttribute.html +10 -4
  144. data/doc/TaskJuggler/Scoreboard.html +10 -4
  145. data/doc/TaskJuggler/SheetHandlerBase.html +315 -191
  146. data/doc/TaskJuggler/SheetReceiver.html +334 -313
  147. data/doc/TaskJuggler/SheetSender.html +10 -4
  148. data/doc/TaskJuggler/Shift.html +10 -4
  149. data/doc/TaskJuggler/ShiftAssignment.html +10 -4
  150. data/doc/TaskJuggler/ShiftAssignments.html +10 -4
  151. data/doc/TaskJuggler/ShiftAssignmentsAttribute.html +10 -4
  152. data/doc/TaskJuggler/ShiftScenario.html +10 -4
  153. data/doc/TaskJuggler/SimpleQueryExpander.html +697 -0
  154. data/doc/TaskJuggler/SortListAttribute.html +10 -4
  155. data/doc/TaskJuggler/SourceFileInfo.html +10 -4
  156. data/doc/TaskJuggler/StatusSheetReceiver.html +10 -4
  157. data/doc/TaskJuggler/StatusSheetReport.html +10 -4
  158. data/doc/TaskJuggler/StatusSheetSender.html +10 -4
  159. data/doc/TaskJuggler/StringAttribute.html +10 -4
  160. data/doc/TaskJuggler/SymbolAttribute.html +10 -4
  161. data/doc/TaskJuggler/SyntaxReference.html +260 -230
  162. data/doc/TaskJuggler/TOCEntry.html +99 -42
  163. data/doc/TaskJuggler/TSResourceRecord.html +10 -4
  164. data/doc/TaskJuggler/TSTaskRecord.html +10 -4
  165. data/doc/TaskJuggler/TableColumnDefinition.html +10 -4
  166. data/doc/TaskJuggler/TableOfContents.html +54 -12
  167. data/doc/TaskJuggler/TableReport.html +877 -872
  168. data/doc/TaskJuggler/Task.html +117 -68
  169. data/doc/TaskJuggler/TaskDependency.html +10 -4
  170. data/doc/TaskJuggler/TaskListAttribute.html +10 -4
  171. data/doc/TaskJuggler/TaskListRE.html +10 -4
  172. data/doc/TaskJuggler/TaskScenario.html +1681 -1563
  173. data/doc/TaskJuggler/TextFormatter.html +10 -4
  174. data/doc/TaskJuggler/TextParser.html +567 -534
  175. data/doc/TaskJuggler/TextParser/Pattern.html +128 -118
  176. data/doc/TaskJuggler/TextParser/Rule.html +26 -15
  177. data/doc/TaskJuggler/TextParser/StackElement.html +10 -4
  178. data/doc/TaskJuggler/TextParser/TextParserResultArray.html +22 -16
  179. data/doc/TaskJuggler/TextParser/TokenDoc.html +10 -4
  180. data/doc/TaskJuggler/TextReport.html +15 -6
  181. data/doc/TaskJuggler/TextScanner.html +319 -287
  182. data/doc/TaskJuggler/TextScanner/BufferStreamHandle.html +16 -10
  183. data/doc/TaskJuggler/TextScanner/FileStreamHandle.html +23 -17
  184. data/doc/TaskJuggler/TextScanner/MacroStackEntry.html +17 -11
  185. data/doc/TaskJuggler/TextScanner/StreamHandle.html +102 -96
  186. data/doc/TaskJuggler/TimeSheet.html +138 -175
  187. data/doc/TaskJuggler/TimeSheetReceiver.html +10 -4
  188. data/doc/TaskJuggler/TimeSheetRecord.html +65 -58
  189. data/doc/TaskJuggler/TimeSheetReport.html +47 -42
  190. data/doc/TaskJuggler/TimeSheetSender.html +10 -4
  191. data/doc/TaskJuggler/TimeSheetSummary.html +91 -83
  192. data/doc/TaskJuggler/TimeSheets.html +22 -16
  193. data/doc/TaskJuggler/Tj3AppBase.html +10 -4
  194. data/doc/TaskJuggler/Tj3Client.html +399 -365
  195. data/doc/TaskJuggler/Tj3Daemon.html +107 -94
  196. data/doc/TaskJuggler/Tj3SheetAppBase.html +10 -4
  197. data/doc/TaskJuggler/Tj3SsReceiver.html +10 -4
  198. data/doc/TaskJuggler/Tj3SsSender.html +10 -4
  199. data/doc/TaskJuggler/Tj3TsReceiver.html +10 -4
  200. data/doc/TaskJuggler/Tj3TsSender.html +10 -4
  201. data/doc/TaskJuggler/Tj3TsSummary.html +10 -4
  202. data/doc/TaskJuggler/TjException.html +10 -4
  203. data/doc/TaskJuggler/TjTime.html +145 -140
  204. data/doc/TaskJuggler/TjpExample.html +10 -4
  205. data/doc/TaskJuggler/TjpExportRE.html +122 -118
  206. data/doc/TaskJuggler/TjpSyntaxRules.html +4065 -4052
  207. data/doc/TaskJuggler/URLParameter.html +10 -4
  208. data/doc/TaskJuggler/UserManual.html +162 -155
  209. data/doc/TaskJuggler/VimSyntax.html +1028 -0
  210. data/doc/TaskJuggler/WebServer.html +45 -27
  211. data/doc/TaskJuggler/WorkingHours.html +10 -4
  212. data/doc/TaskJuggler/WorkingHoursAttribute.html +10 -4
  213. data/doc/TaskJuggler/XMLBlob.html +10 -4
  214. data/doc/TaskJuggler/XMLComment.html +10 -4
  215. data/doc/TaskJuggler/XMLDocument.html +10 -4
  216. data/doc/TaskJuggler/XMLElement.html +10 -4
  217. data/doc/TaskJuggler/XMLNamedText.html +10 -4
  218. data/doc/TaskJuggler/XMLText.html +10 -4
  219. data/doc/index.html +735 -677
  220. data/doc/lib/AccountScenario_rb.html +1 -1
  221. data/doc/lib/Account_rb.html +1 -1
  222. data/doc/lib/Allocation_rb.html +1 -1
  223. data/doc/lib/AppConfig_rb.html +1 -1
  224. data/doc/lib/AttributeBase_rb.html +1 -1
  225. data/doc/lib/AttributeDefinition_rb.html +1 -1
  226. data/doc/lib/Attributes_rb.html +1 -1
  227. data/doc/lib/BatchProcessor_rb.html +1 -1
  228. data/doc/lib/Booking_rb.html +1 -1
  229. data/doc/lib/ChargeSet_rb.html +1 -1
  230. data/doc/lib/Charge_rb.html +1 -1
  231. data/doc/lib/{Message_rb.html → FileList_rb.html} +3 -5
  232. data/doc/lib/HTMLDocument_rb.html +1 -1
  233. data/doc/lib/Interval_rb.html +1 -1
  234. data/doc/lib/Journal_rb.html +1 -1
  235. data/doc/lib/KeywordArray_rb.html +1 -1
  236. data/doc/lib/KeywordDocumentation_rb.html +1 -1
  237. data/doc/lib/Limits_rb.html +1 -1
  238. data/doc/lib/LogFile_rb.html +1 -1
  239. data/doc/lib/Log_rb.html +1 -1
  240. data/doc/lib/LogicalExpression_rb.html +1 -1
  241. data/doc/lib/LogicalFunction_rb.html +1 -1
  242. data/doc/lib/LogicalOperation_rb.html +1 -1
  243. data/doc/lib/MacroTable_rb.html +1 -3
  244. data/doc/lib/MessageHandler_rb.html +1 -1
  245. data/doc/lib/ProjectFileParser_rb.html +1 -1
  246. data/doc/lib/ProjectFileScanner_rb.html +1 -1
  247. data/doc/lib/Project_rb.html +4 -2
  248. data/doc/lib/PropertyList_rb.html +1 -1
  249. data/doc/lib/PropertySet_rb.html +1 -1
  250. data/doc/lib/PropertyTreeNode_rb.html +1 -1
  251. data/doc/lib/Query_rb.html +1 -1
  252. data/doc/lib/RTFHandlers_rb.html +1 -1
  253. data/doc/lib/RTFNavigator_rb.html +1 -1
  254. data/doc/lib/RTFQuery_rb.html +2 -2
  255. data/doc/lib/RTFReportLink_rb.html +4 -2
  256. data/doc/lib/RTFReport_rb.html +1 -1
  257. data/doc/lib/{MacroParser_rb.html → RTFWithQuerySupport_rb.html} +4 -6
  258. data/doc/lib/RealFormat_rb.html +1 -1
  259. data/doc/lib/ResourceScenario_rb.html +1 -1
  260. data/doc/lib/Resource_rb.html +1 -1
  261. data/doc/lib/RichTextDocument_rb.html +1 -1
  262. data/doc/lib/RichTextElement_rb.html +1 -1
  263. data/doc/lib/RichTextFunctionExample_rb.html +1 -1
  264. data/doc/lib/RichTextFunctionHandler_rb.html +1 -1
  265. data/doc/lib/RichTextParser_rb.html +1 -1
  266. data/doc/lib/RichTextScanner_rb.html +3 -1
  267. data/doc/lib/RichTextSnip_rb.html +1 -1
  268. data/doc/lib/RichTextSyntaxRules_rb.html +1 -1
  269. data/doc/lib/RichText_rb.html +3 -1
  270. data/doc/lib/RuntimeConfig_rb.html +1 -1
  271. data/doc/lib/ScenarioData_rb.html +2 -2
  272. data/doc/lib/Scenario_rb.html +1 -1
  273. data/doc/lib/Scoreboard_rb.html +1 -1
  274. data/doc/lib/SheetHandlerBase_rb.html +5 -1
  275. data/doc/lib/SheetReceiver_rb.html +3 -1
  276. data/doc/lib/SheetSender_rb.html +1 -1
  277. data/doc/lib/ShiftAssignments_rb.html +1 -1
  278. data/doc/lib/ShiftScenario_rb.html +1 -1
  279. data/doc/lib/Shift_rb.html +1 -1
  280. data/doc/lib/SimpleQueryExpander_rb.html +67 -0
  281. data/doc/lib/SourceFileInfo_rb.html +1 -1
  282. data/doc/lib/StatusSheetReceiver_rb.html +1 -1
  283. data/doc/lib/StatusSheetSender_rb.html +1 -1
  284. data/doc/lib/SyntaxReference_rb.html +1 -1
  285. data/doc/lib/TOCEntry_rb.html +1 -1
  286. data/doc/lib/TableColumnDefinition_rb.html +1 -1
  287. data/doc/lib/TableOfContents_rb.html +1 -1
  288. data/doc/lib/TaskDependency_rb.html +1 -1
  289. data/doc/lib/TaskJuggler_rb.html +1 -1
  290. data/doc/lib/TaskScenario_rb.html +1 -1
  291. data/doc/lib/Task_rb.html +1 -1
  292. data/doc/lib/TextFormatter_rb.html +1 -1
  293. data/doc/lib/TextParser/Pattern_rb.html +1 -1
  294. data/doc/lib/TextParser/Rule_rb.html +1 -1
  295. data/doc/lib/TextParser/StackElement_rb.html +1 -1
  296. data/doc/lib/TextParser/TokenDoc_rb.html +1 -1
  297. data/doc/lib/TextParser_rb.html +3 -1
  298. data/doc/lib/TextScanner_rb.html +1 -3
  299. data/doc/lib/TimeSheetReceiver_rb.html +1 -1
  300. data/doc/lib/TimeSheetSender_rb.html +1 -1
  301. data/doc/lib/TimeSheetSummary_rb.html +1 -1
  302. data/doc/lib/TimeSheets_rb.html +1 -1
  303. data/doc/lib/Tj3AppBase_rb.html +1 -1
  304. data/doc/lib/Tj3Config_rb.html +1 -1
  305. data/doc/lib/Tj3SheetAppBase_rb.html +1 -1
  306. data/doc/lib/TjException_rb.html +1 -1
  307. data/doc/lib/TjTime_rb.html +1 -1
  308. data/doc/lib/TjpExample_rb.html +1 -1
  309. data/doc/lib/TjpSyntaxRules_rb.html +1 -1
  310. data/doc/lib/URLParameter_rb.html +1 -1
  311. data/doc/lib/UTF8String_rb.html +1 -1
  312. data/doc/lib/UserManual_rb.html +1 -1
  313. data/doc/lib/{ruby-signal-bug_rb.html → VimSyntax_rb.html} +17 -4
  314. data/doc/lib/WorkingHours_rb.html +1 -1
  315. data/doc/lib/XMLDocument_rb.html +1 -1
  316. data/doc/lib/XMLElement_rb.html +1 -1
  317. data/doc/lib/daemon/Daemon_rb.html +1 -1
  318. data/doc/lib/daemon/ProcessIntercom_rb.html +1 -1
  319. data/doc/lib/daemon/ProjectBroker_rb.html +1 -1
  320. data/doc/lib/daemon/ProjectServer_rb.html +1 -1
  321. data/doc/lib/daemon/ReportServer_rb.html +1 -3
  322. data/doc/lib/daemon/WebServer_rb.html +1 -1
  323. data/doc/lib/deep_copy_rb.html +1 -1
  324. data/doc/lib/reports/CSVFile_rb.html +1 -1
  325. data/doc/lib/reports/ColumnTable_rb.html +1 -1
  326. data/doc/lib/reports/GanttChart_rb.html +1 -1
  327. data/doc/lib/reports/GanttContainer_rb.html +1 -1
  328. data/doc/lib/reports/GanttHeaderScaleItem_rb.html +1 -1
  329. data/doc/lib/reports/GanttHeader_rb.html +1 -1
  330. data/doc/lib/reports/GanttLine_rb.html +1 -1
  331. data/doc/lib/reports/GanttLoadStack_rb.html +1 -1
  332. data/doc/lib/reports/GanttMilestone_rb.html +1 -1
  333. data/doc/lib/reports/GanttRouter_rb.html +1 -1
  334. data/doc/lib/reports/GanttTaskBar_rb.html +1 -1
  335. data/doc/lib/reports/HTMLGraphics_rb.html +1 -1
  336. data/doc/lib/reports/Navigator_rb.html +1 -1
  337. data/doc/lib/reports/NikuReport_rb.html +1 -1
  338. data/doc/lib/reports/ReportBase_rb.html +1 -1
  339. data/doc/lib/reports/ReportContext_rb.html +1 -1
  340. data/doc/lib/reports/ReportTableCell_rb.html +1 -1
  341. data/doc/lib/reports/ReportTableColumn_rb.html +1 -1
  342. data/doc/lib/reports/ReportTableLegend_rb.html +1 -1
  343. data/doc/lib/reports/ReportTableLine_rb.html +1 -1
  344. data/doc/lib/reports/ReportTable_rb.html +1 -1
  345. data/doc/lib/reports/Report_rb.html +1 -1
  346. data/doc/lib/reports/ResourceListRE_rb.html +1 -1
  347. data/doc/lib/reports/StatusSheetReport_rb.html +1 -1
  348. data/doc/lib/reports/TableReport_rb.html +1 -1
  349. data/doc/lib/reports/TaskListRE_rb.html +1 -1
  350. data/doc/lib/reports/TextReport_rb.html +1 -1
  351. data/doc/lib/reports/TimeSheetReport_rb.html +1 -1
  352. data/doc/lib/reports/TjpExportRE_rb.html +1 -1
  353. data/doc/lib/taskjuggler3_rb.html +1 -1
  354. data/doc/lib/tj3client_rb.html +1 -1
  355. data/doc/lib/tj3d_rb.html +1 -1
  356. data/doc/lib/tj3man_rb.html +1 -1
  357. data/doc/lib/tj3ss_receiver_rb.html +1 -1
  358. data/doc/lib/tj3ss_sender_rb.html +1 -1
  359. data/doc/lib/tj3ts_receiver_rb.html +1 -1
  360. data/doc/lib/tj3ts_sender_rb.html +1 -1
  361. data/doc/lib/tj3ts_summary_rb.html +1 -1
  362. data/lib/Allocation.rb +8 -5
  363. data/lib/BatchProcessor.rb +7 -3
  364. data/lib/FileList.rb +58 -0
  365. data/lib/Journal.rb +73 -33
  366. data/lib/KeywordArray.rb +4 -0
  367. data/lib/KeywordDocumentation.rb +45 -11
  368. data/lib/Limits.rb +0 -1
  369. data/lib/LogicalExpression.rb +1 -1
  370. data/lib/LogicalFunction.rb +14 -12
  371. data/lib/MacroTable.rb +3 -4
  372. data/lib/MessageHandler.rb +136 -7
  373. data/lib/Project.rb +72 -86
  374. data/lib/ProjectFileParser.rb +30 -33
  375. data/lib/ProjectFileScanner.rb +7 -16
  376. data/lib/PropertyList.rb +25 -27
  377. data/lib/PropertySet.rb +1 -1
  378. data/lib/PropertyTreeNode.rb +9 -12
  379. data/lib/Query.rb +5 -4
  380. data/lib/RTFNavigator.rb +2 -1
  381. data/lib/RTFQuery.rb +4 -11
  382. data/lib/RTFReport.rb +2 -1
  383. data/lib/RTFReportLink.rb +10 -4
  384. data/lib/RTFWithQuerySupport.rb +45 -0
  385. data/lib/Resource.rb +20 -20
  386. data/lib/ResourceScenario.rb +3 -3
  387. data/lib/RichText.rb +15 -7
  388. data/lib/RichTextDocument.rb +8 -4
  389. data/lib/RichTextElement.rb +35 -12
  390. data/lib/RichTextFunctionHandler.rb +11 -12
  391. data/lib/RichTextParser.rb +5 -3
  392. data/lib/RichTextScanner.rb +144 -565
  393. data/lib/RichTextSnip.rb +3 -7
  394. data/lib/RichTextSyntaxRules.rb +51 -32
  395. data/lib/ScenarioData.rb +16 -25
  396. data/lib/SheetHandlerBase.rb +59 -2
  397. data/lib/SheetReceiver.rb +36 -18
  398. data/lib/SimpleQueryExpander.rb +58 -0
  399. data/lib/SyntaxReference.rb +9 -5
  400. data/lib/TOCEntry.rb +2 -0
  401. data/lib/TableOfContents.rb +4 -0
  402. data/lib/Task.rb +23 -12
  403. data/lib/TaskJuggler.rb +72 -33
  404. data/lib/TaskScenario.rb +131 -53
  405. data/lib/TextParser.rb +43 -30
  406. data/lib/TextParser/Pattern.rb +17 -13
  407. data/lib/TextParser/Rule.rb +5 -0
  408. data/lib/TextScanner.rb +46 -25
  409. data/lib/TimeSheetSummary.rb +9 -7
  410. data/lib/TimeSheets.rb +14 -23
  411. data/lib/Tj3Config.rb +1 -1
  412. data/lib/TjTime.rb +1 -2
  413. data/lib/TjpSyntaxRules.rb +128 -104
  414. data/lib/UTF8String.rb +0 -1
  415. data/lib/UserManual.rb +5 -4
  416. data/lib/VimSyntax.rb +223 -0
  417. data/lib/daemon/Daemon.rb +9 -0
  418. data/lib/daemon/ProcessIntercom.rb +19 -4
  419. data/lib/daemon/ProjectBroker.rb +149 -68
  420. data/lib/daemon/ProjectServer.rb +119 -79
  421. data/lib/daemon/ReportServer.rb +42 -31
  422. data/lib/daemon/WebServer.rb +21 -2
  423. data/lib/deep_copy.rb +1 -1
  424. data/lib/reports/GanttContainer.rb +2 -2
  425. data/lib/reports/GanttLine.rb +2 -3
  426. data/lib/reports/GanttTaskBar.rb +7 -3
  427. data/lib/reports/Report.rb +62 -57
  428. data/lib/reports/ReportBase.rb +6 -4
  429. data/lib/reports/ReportTableCell.rb +13 -14
  430. data/lib/reports/TableReport.rb +2 -1
  431. data/lib/reports/TextReport.rb +3 -0
  432. data/lib/reports/TimeSheetReport.rb +2 -3
  433. data/lib/reports/TjpExportRE.rb +0 -2
  434. data/lib/tj3client.rb +31 -3
  435. data/lib/tj3d.rb +8 -1
  436. data/manual/Day_To_Day_Juggling +2 -95
  437. data/manual/How_To_Contribute +2 -1
  438. data/manual/Rich_Text_Attributes +37 -3
  439. data/manual/Software +203 -0
  440. data/test/MessageChecker.rb +4 -4
  441. data/test/TestSuite/HTML-Reports/Alerts.html +172 -0
  442. data/test/TestSuite/HTML-Reports/CellText.html +758 -0
  443. data/test/TestSuite/HTML-Reports/ColumnPeriods.html +156 -0
  444. data/test/TestSuite/HTML-Reports/IsOngoing.html +172 -0
  445. data/test/TestSuite/HTML-Reports/LogicalFunctions.html +245 -0
  446. data/test/TestSuite/HTML-Reports/Query.html +31 -0
  447. data/test/TestSuite/HTML-Reports/css/tjmanual.css +14 -0
  448. data/test/TestSuite/HTML-Reports/css/tjreport.css +233 -21
  449. data/test/TestSuite/HTML-Reports/depArrows.html +842 -0
  450. data/test/TestSuite/HTML-Reports/scripts/scripts/wz_tooltip.js +1301 -0
  451. data/test/TestSuite/HTML-Reports/scripts/wz_tooltip.js +20 -20
  452. data/test/TestSuite/ReportGenerator/Correct/Alerts.tjp +48 -0
  453. data/test/TestSuite/ReportGenerator/Correct/Macros.tjp +57 -0
  454. data/test/TestSuite/ReportGenerator/Correct/refs/Alerts-1.csv +386 -0
  455. data/test/TestSuite/ReportGenerator/Correct/refs/Macros-1.csv +6 -0
  456. data/test/TestSuite/ReportGenerator/{Correct → Errors}/css/tjmanual.css +0 -0
  457. data/test/TestSuite/ReportGenerator/{Correct → Errors}/css/tjreport.css +0 -0
  458. data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/details.png +0 -0
  459. data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/flag-green.png +0 -0
  460. data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/flag-red.png +0 -0
  461. data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/flag-yellow.png +0 -0
  462. data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/resource.png +0 -0
  463. data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/resourcegroup.png +0 -0
  464. data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/task.png +0 -0
  465. data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/taskgroup.png +0 -0
  466. data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/trend-down.png +0 -0
  467. data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/trend-flat.png +0 -0
  468. data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/trend-up.png +0 -0
  469. data/test/TestSuite/ReportGenerator/Errors/rtp_report_recursion.html +26 -0
  470. data/test/TestSuite/ReportGenerator/{Correct → Errors}/scripts/wz_tooltip.js +0 -0
  471. data/test/TestSuite/Scheduler/Correct/Allocate.html +3210 -0
  472. data/test/TestSuite/Scheduler/Correct/Allocate.tjp +19 -0
  473. data/test/TestSuite/Scheduler/Correct/Container.html +22 -22
  474. data/test/TestSuite/Scheduler/Correct/Limits.html +4964 -0
  475. data/test/TestSuite/Scheduler/Correct/Shift.html +1707 -417
  476. data/test/TestSuite/Scheduler/Correct/Shift2.html +9 -9
  477. data/test/TestSuite/Scheduler/Correct/css/tjreport.css +6 -2
  478. data/test/TestSuite/Scheduler/Errors/css/tjmanual.css +66 -0
  479. data/test/TestSuite/Scheduler/Errors/css/tjreport.css +407 -0
  480. data/test/TestSuite/Scheduler/Errors/icons/details.png +0 -0
  481. data/test/TestSuite/Scheduler/Errors/icons/flag-green.png +0 -0
  482. data/test/TestSuite/Scheduler/Errors/icons/flag-red.png +0 -0
  483. data/test/TestSuite/Scheduler/Errors/icons/flag-yellow.png +0 -0
  484. data/test/TestSuite/Scheduler/Errors/icons/resource.png +0 -0
  485. data/test/TestSuite/Scheduler/Errors/icons/resourcegroup.png +0 -0
  486. data/test/TestSuite/Scheduler/Errors/icons/task.png +0 -0
  487. data/test/TestSuite/Scheduler/Errors/icons/taskgroup.png +0 -0
  488. data/test/TestSuite/Scheduler/Errors/icons/trend-down.png +0 -0
  489. data/test/TestSuite/Scheduler/Errors/icons/trend-flat.png +0 -0
  490. data/test/TestSuite/Scheduler/Errors/icons/trend-up.png +0 -0
  491. data/test/TestSuite/Scheduler/Errors/loop_detected_1.tjp +1 -1
  492. data/test/TestSuite/Scheduler/Errors/loop_detected_10.tjp +1 -1
  493. data/test/TestSuite/Scheduler/Errors/loop_detected_11.tjp +1 -1
  494. data/test/TestSuite/Scheduler/Errors/loop_detected_12.tjp +1 -1
  495. data/test/TestSuite/Scheduler/Errors/loop_detected_13.tjp +1 -1
  496. data/test/TestSuite/Scheduler/Errors/loop_detected_14.tjp +1 -1
  497. data/test/TestSuite/Scheduler/Errors/loop_detected_2.tjp +1 -1
  498. data/test/TestSuite/Scheduler/Errors/loop_detected_3.tjp +1 -1
  499. data/test/TestSuite/Scheduler/Errors/loop_detected_4.tjp +1 -1
  500. data/test/TestSuite/Scheduler/Errors/loop_detected_5.tjp +1 -1
  501. data/test/TestSuite/Scheduler/Errors/loop_detected_6.tjp +1 -1
  502. data/test/TestSuite/Scheduler/Errors/loop_detected_7.tjp +1 -1
  503. data/test/TestSuite/Scheduler/Errors/loop_detected_8.tjp +1 -1
  504. data/test/TestSuite/Scheduler/Errors/loop_detected_9.tjp +1 -1
  505. data/test/TestSuite/Scheduler/Errors/scripts/wz_tooltip.js +1301 -0
  506. data/test/TestSuite/Scheduler/Errors/task_pred_before.tjp +11 -0
  507. data/test/TestSuite/Scheduler/Errors/task_pred_before_gd.tjp +11 -0
  508. data/test/TestSuite/Scheduler/Errors/task_pred_before_gl.tjp +11 -0
  509. data/test/TestSuite/Scheduler/Errors/task_succ_after.tjp +12 -0
  510. data/test/TestSuite/Scheduler/Errors/task_succ_after_gd.tjp +12 -0
  511. data/test/TestSuite/Scheduler/Errors/task_succ_after_gl.tjp +12 -0
  512. data/test/TestSuite/StatusSheets/dev2.tji +22 -0
  513. data/test/TestSuite/StatusSheets/resrep.tji +7 -0
  514. data/test/TestSuite/StatusSheets/run +6 -4
  515. data/test/TestSuite/StatusSheets/tj3d.log +312 -0
  516. data/test/TestSuite/Syntax/Correct/Managers.html +263 -0
  517. data/test/TestSuite/Syntax/Correct/tutorial.tjp +1 -2
  518. data/test/TestSuite/Syntax/Errors/empty.tjp +1 -1
  519. data/test/TestSuite/Syntax/Errors/macro_stack_overflow.tjp +1 -1
  520. data/test/TestSuite/TimeSheets/acceptable_intervals +1 -0
  521. data/test/TestSuite/TimeSheets/resrep.tji +7 -0
  522. data/test/TestSuite/TimeSheets/run +6 -5
  523. data/test/TestSuite/TimeSheets/statussheets.log +1 -0
  524. data/test/TestSuite/TimeSheets/ts.tji +351 -0
  525. data/test/TestSuite/TimeSheets/tsdef.tji +2 -0
  526. data/test/test_PropertySet.rb +2 -2
  527. data/test/test_RichText.rb +178 -387
  528. data/test/test_SimpleQueryExpander.rb +55 -0
  529. data/test/test_deep_copy.rb +2 -2
  530. metadata +854 -834
  531. data/lib/MacroParser.rb +0 -77
  532. data/lib/Message.rb +0 -56
  533. data/lib/ruby-signal-bug.rb +0 -43
  534. data/test/TestSuite/HTML-Reports/TimeSheet.html +0 -79
  535. data/test/TestSuite/HTML-Reports/reference.html +0 -51
  536. data/test/TestSuite/ReportGenerator/Correct/Journal.html +0 -63
  537. data/test/TestSuite/ReportGenerator/Correct/LogicalFunctions2.csv +0 -3
  538. data/test/TestSuite/ReportGenerator/Correct/opennodes.csv +0 -2
  539. data/test/TestSuite/ReportGenerator/Correct/opennodes.tjp +0 -26
  540. data/test/TestSuite/ReportGenerator/Correct/refs/opennodes-1.csv +0 -2
  541. data/test/TestSuite/Scheduler/Correct/Booking2.html +0 -603
  542. data/test/TestSuite/Scheduler/Correct/TimeSheet2.html +0 -108
  543. data/test/TestSuite/StatusSheetTemplates/project.tji +0 -35
  544. data/test/TestSuite/StatusSheetTemplates/project.tjp +0 -56
  545. data/test/TestSuite/Syntax/Correct/ResourcePrefix.html +0 -32
@@ -184,6 +184,10 @@
184
184
 
185
185
  <li><a href="../TaskJuggler/DurationAttribute.html">TaskJuggler::DurationAttribute</a></li>
186
186
 
187
+ <li><a href="../TaskJuggler/FileList.html">TaskJuggler::FileList</a></li>
188
+
189
+ <li><a href="../TaskJuggler/FileRecord.html">TaskJuggler::FileRecord</a></li>
190
+
187
191
  <li><a href="../TaskJuggler/FixnumAttribute.html">TaskJuggler::FixnumAttribute</a></li>
188
192
 
189
193
  <li><a href="../TaskJuggler/FlagListAttribute.html">TaskJuggler::FlagListAttribute</a></li>
@@ -256,8 +260,6 @@
256
260
 
257
261
  <li><a href="../TaskJuggler/Macro.html">TaskJuggler::Macro</a></li>
258
262
 
259
- <li><a href="../TaskJuggler/MacroParser.html">TaskJuggler::MacroParser</a></li>
260
-
261
263
  <li><a href="../TaskJuggler/MacroTable.html">TaskJuggler::MacroTable</a></li>
262
264
 
263
265
  <li><a href="../TaskJuggler/ManagerResponsibilities.html">TaskJuggler::ManagerResponsibilities</a></li>
@@ -322,6 +324,8 @@
322
324
 
323
325
  <li><a href="../TaskJuggler/RTFReportLink.html">TaskJuggler::RTFReportLink</a></li>
324
326
 
327
+ <li><a href="../TaskJuggler/RTFWithQuerySupport.html">TaskJuggler::RTFWithQuerySupport</a></li>
328
+
325
329
  <li><a href="../TaskJuggler/RealFormat.html">TaskJuggler::RealFormat</a></li>
326
330
 
327
331
  <li><a href="../TaskJuggler/RealFormatAttribute.html">TaskJuggler::RealFormatAttribute</a></li>
@@ -368,8 +372,6 @@
368
372
 
369
373
  <li><a href="../TaskJuggler/RichTextElement.html">TaskJuggler::RichTextElement</a></li>
370
374
 
371
- <li><a href="../TaskJuggler/RichTextException.html">TaskJuggler::RichTextException</a></li>
372
-
373
375
  <li><a href="../TaskJuggler/RichTextFunctionExample.html">TaskJuggler::RichTextFunctionExample</a></li>
374
376
 
375
377
  <li><a href="../TaskJuggler/RichTextFunctionHandler.html">TaskJuggler::RichTextFunctionHandler</a></li>
@@ -410,6 +412,8 @@
410
412
 
411
413
  <li><a href="../TaskJuggler/ShiftScenario.html">TaskJuggler::ShiftScenario</a></li>
412
414
 
415
+ <li><a href="../TaskJuggler/SimpleQueryExpander.html">TaskJuggler::SimpleQueryExpander</a></li>
416
+
413
417
  <li><a href="../TaskJuggler/SortListAttribute.html">TaskJuggler::SortListAttribute</a></li>
414
418
 
415
419
  <li><a href="../TaskJuggler/SourceFileInfo.html">TaskJuggler::SourceFileInfo</a></li>
@@ -520,6 +524,8 @@
520
524
 
521
525
  <li><a href="../TaskJuggler/UserManual.html">TaskJuggler::UserManual</a></li>
522
526
 
527
+ <li><a href="../TaskJuggler/VimSyntax.html">TaskJuggler::VimSyntax</a></li>
528
+
523
529
  <li><a href="../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
524
530
 
525
531
  <li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
@@ -602,10 +608,10 @@ authenticated with the proper key.
602
608
  <div class="method-source-code"
603
609
  id="new-source">
604
610
  <pre>
605
- <span class="ruby-comment cmt"># File lib/daemon/ProjectServer.rb, line 301</span>
606
- 301: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">server</span>)
607
- 302: <span class="ruby-ivar">@server</span> = <span class="ruby-identifier">server</span>
608
- 303: <span class="ruby-keyword kw">end</span></pre>
611
+ <span class="ruby-comment cmt"># File lib/daemon/ProjectServer.rb, line 341</span>
612
+ 341: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">server</span>)
613
+ 342: <span class="ruby-ivar">@server</span> = <span class="ruby-identifier">server</span>
614
+ 343: <span class="ruby-keyword kw">end</span></pre>
609
615
  </div>
610
616
 
611
617
  </div>
@@ -642,12 +648,12 @@ authenticated with the proper key.
642
648
  <div class="method-source-code"
643
649
  id="get-roject-ame-source">
644
650
  <pre>
645
- <span class="ruby-comment cmt"># File lib/daemon/ProjectServer.rb, line 311</span>
646
- 311: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">getProjectName</span>(<span class="ruby-identifier">authKey</span>)
647
- 312: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@server</span>.<span class="ruby-identifier">checkKey</span>(<span class="ruby-identifier">authKey</span>, <span class="ruby-value str">'getReportServer'</span>)
648
- 313:
649
- 314: <span class="ruby-ivar">@server</span>.<span class="ruby-identifier">getProjectName</span>
650
- 315: <span class="ruby-keyword kw">end</span></pre>
651
+ <span class="ruby-comment cmt"># File lib/daemon/ProjectServer.rb, line 351</span>
652
+ 351: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">getProjectName</span>(<span class="ruby-identifier">authKey</span>)
653
+ 352: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@server</span>.<span class="ruby-identifier">checkKey</span>(<span class="ruby-identifier">authKey</span>, <span class="ruby-value str">'getReportServer'</span>)
654
+ 353:
655
+ 354: <span class="ruby-identifier">trap</span> { <span class="ruby-ivar">@server</span>.<span class="ruby-identifier">getProjectName</span> }
656
+ 355: <span class="ruby-keyword kw">end</span></pre>
651
657
  </div>
652
658
 
653
659
  </div>
@@ -678,12 +684,12 @@ authenticated with the proper key.
678
684
  <div class="method-source-code"
679
685
  id="get-eport-ist-source">
680
686
  <pre>
681
- <span class="ruby-comment cmt"># File lib/daemon/ProjectServer.rb, line 317</span>
682
- 317: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">getReportList</span>(<span class="ruby-identifier">authKey</span>)
683
- 318: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@server</span>.<span class="ruby-identifier">checkKey</span>(<span class="ruby-identifier">authKey</span>, <span class="ruby-value str">'getReportServer'</span>)
684
- 319:
685
- 320: <span class="ruby-ivar">@server</span>.<span class="ruby-identifier">getReportList</span>
686
- 321: <span class="ruby-keyword kw">end</span></pre>
687
+ <span class="ruby-comment cmt"># File lib/daemon/ProjectServer.rb, line 357</span>
688
+ 357: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">getReportList</span>(<span class="ruby-identifier">authKey</span>)
689
+ 358: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@server</span>.<span class="ruby-identifier">checkKey</span>(<span class="ruby-identifier">authKey</span>, <span class="ruby-value str">'getReportServer'</span>)
690
+ 359:
691
+ 360: <span class="ruby-identifier">trap</span> { <span class="ruby-ivar">@server</span>.<span class="ruby-identifier">getReportList</span> }
692
+ 361: <span class="ruby-keyword kw">end</span></pre>
687
693
  </div>
688
694
 
689
695
  </div>
@@ -714,12 +720,12 @@ authenticated with the proper key.
714
720
  <div class="method-source-code"
715
721
  id="get-eport-erver-source">
716
722
  <pre>
717
- <span class="ruby-comment cmt"># File lib/daemon/ProjectServer.rb, line 323</span>
718
- 323: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">getReportServer</span>(<span class="ruby-identifier">authKey</span>)
719
- 324: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@server</span>.<span class="ruby-identifier">checkKey</span>(<span class="ruby-identifier">authKey</span>, <span class="ruby-value str">'getReportServer'</span>)
720
- 325:
721
- 326: <span class="ruby-ivar">@server</span>.<span class="ruby-identifier">getReportServer</span>
722
- 327: <span class="ruby-keyword kw">end</span></pre>
723
+ <span class="ruby-comment cmt"># File lib/daemon/ProjectServer.rb, line 363</span>
724
+ 363: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">getReportServer</span>(<span class="ruby-identifier">authKey</span>)
725
+ 364: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@server</span>.<span class="ruby-identifier">checkKey</span>(<span class="ruby-identifier">authKey</span>, <span class="ruby-value str">'getReportServer'</span>)
726
+ 365:
727
+ 366: <span class="ruby-identifier">trap</span> { <span class="ruby-ivar">@server</span>.<span class="ruby-identifier">getReportServer</span> }
728
+ 367: <span class="ruby-keyword kw">end</span></pre>
723
729
  </div>
724
730
 
725
731
  </div>
@@ -750,12 +756,12 @@ authenticated with the proper key.
750
756
  <div class="method-source-code"
751
757
  id="load-roject-source">
752
758
  <pre>
753
- <span class="ruby-comment cmt"># File lib/daemon/ProjectServer.rb, line 305</span>
754
- 305: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">loadProject</span>(<span class="ruby-identifier">authKey</span>, <span class="ruby-identifier">args</span>)
755
- 306: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@server</span>.<span class="ruby-identifier">checkKey</span>(<span class="ruby-identifier">authKey</span>, <span class="ruby-value str">'loadProject'</span>)
756
- 307:
757
- 308: <span class="ruby-ivar">@server</span>.<span class="ruby-identifier">loadProject</span>(<span class="ruby-identifier">args</span>)
758
- 309: <span class="ruby-keyword kw">end</span></pre>
759
+ <span class="ruby-comment cmt"># File lib/daemon/ProjectServer.rb, line 345</span>
760
+ 345: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">loadProject</span>(<span class="ruby-identifier">authKey</span>, <span class="ruby-identifier">args</span>)
761
+ 346: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@server</span>.<span class="ruby-identifier">checkKey</span>(<span class="ruby-identifier">authKey</span>, <span class="ruby-value str">'loadProject'</span>)
762
+ 347:
763
+ 348: <span class="ruby-identifier">trap</span> { <span class="ruby-ivar">@server</span>.<span class="ruby-identifier">loadProject</span>(<span class="ruby-identifier">args</span>) }
764
+ 349: <span class="ruby-keyword kw">end</span></pre>
759
765
  </div>
760
766
 
761
767
  </div>
@@ -786,13 +792,13 @@ authenticated with the proper key.
786
792
  <div class="method-source-code"
787
793
  id="ping-source">
788
794
  <pre>
789
- <span class="ruby-comment cmt"># File lib/daemon/ProjectServer.rb, line 329</span>
790
- 329: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">ping</span>(<span class="ruby-identifier">authKey</span>)
791
- 330: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@server</span>.<span class="ruby-identifier">checkKey</span>(<span class="ruby-identifier">authKey</span>, <span class="ruby-value str">'ping'</span>)
792
- 331:
793
- 332: <span class="ruby-ivar">@server</span>.<span class="ruby-identifier">ping</span>
794
- 333: <span class="ruby-keyword kw">true</span>
795
- 334: <span class="ruby-keyword kw">end</span></pre>
795
+ <span class="ruby-comment cmt"># File lib/daemon/ProjectServer.rb, line 369</span>
796
+ 369: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">ping</span>(<span class="ruby-identifier">authKey</span>)
797
+ 370: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@server</span>.<span class="ruby-identifier">checkKey</span>(<span class="ruby-identifier">authKey</span>, <span class="ruby-value str">'ping'</span>)
798
+ 371:
799
+ 372: <span class="ruby-identifier">trap</span> { <span class="ruby-ivar">@server</span>.<span class="ruby-identifier">ping</span> }
800
+ 373: <span class="ruby-keyword kw">true</span>
801
+ 374: <span class="ruby-keyword kw">end</span></pre>
796
802
  </div>
797
803
 
798
804
  </div>
@@ -165,6 +165,10 @@
165
165
 
166
166
  <li><a href="../TaskJuggler/DurationAttribute.html">TaskJuggler::DurationAttribute</a></li>
167
167
 
168
+ <li><a href="../TaskJuggler/FileList.html">TaskJuggler::FileList</a></li>
169
+
170
+ <li><a href="../TaskJuggler/FileRecord.html">TaskJuggler::FileRecord</a></li>
171
+
168
172
  <li><a href="../TaskJuggler/FixnumAttribute.html">TaskJuggler::FixnumAttribute</a></li>
169
173
 
170
174
  <li><a href="../TaskJuggler/FlagListAttribute.html">TaskJuggler::FlagListAttribute</a></li>
@@ -237,8 +241,6 @@
237
241
 
238
242
  <li><a href="../TaskJuggler/Macro.html">TaskJuggler::Macro</a></li>
239
243
 
240
- <li><a href="../TaskJuggler/MacroParser.html">TaskJuggler::MacroParser</a></li>
241
-
242
244
  <li><a href="../TaskJuggler/MacroTable.html">TaskJuggler::MacroTable</a></li>
243
245
 
244
246
  <li><a href="../TaskJuggler/ManagerResponsibilities.html">TaskJuggler::ManagerResponsibilities</a></li>
@@ -303,6 +305,8 @@
303
305
 
304
306
  <li><a href="../TaskJuggler/RTFReportLink.html">TaskJuggler::RTFReportLink</a></li>
305
307
 
308
+ <li><a href="../TaskJuggler/RTFWithQuerySupport.html">TaskJuggler::RTFWithQuerySupport</a></li>
309
+
306
310
  <li><a href="../TaskJuggler/RealFormat.html">TaskJuggler::RealFormat</a></li>
307
311
 
308
312
  <li><a href="../TaskJuggler/RealFormatAttribute.html">TaskJuggler::RealFormatAttribute</a></li>
@@ -349,8 +353,6 @@
349
353
 
350
354
  <li><a href="../TaskJuggler/RichTextElement.html">TaskJuggler::RichTextElement</a></li>
351
355
 
352
- <li><a href="../TaskJuggler/RichTextException.html">TaskJuggler::RichTextException</a></li>
353
-
354
356
  <li><a href="../TaskJuggler/RichTextFunctionExample.html">TaskJuggler::RichTextFunctionExample</a></li>
355
357
 
356
358
  <li><a href="../TaskJuggler/RichTextFunctionHandler.html">TaskJuggler::RichTextFunctionHandler</a></li>
@@ -391,6 +393,8 @@
391
393
 
392
394
  <li><a href="../TaskJuggler/ShiftScenario.html">TaskJuggler::ShiftScenario</a></li>
393
395
 
396
+ <li><a href="../TaskJuggler/SimpleQueryExpander.html">TaskJuggler::SimpleQueryExpander</a></li>
397
+
394
398
  <li><a href="../TaskJuggler/SortListAttribute.html">TaskJuggler::SortListAttribute</a></li>
395
399
 
396
400
  <li><a href="../TaskJuggler/SourceFileInfo.html">TaskJuggler::SourceFileInfo</a></li>
@@ -501,6 +505,8 @@
501
505
 
502
506
  <li><a href="../TaskJuggler/UserManual.html">TaskJuggler::UserManual</a></li>
503
507
 
508
+ <li><a href="../TaskJuggler/VimSyntax.html">TaskJuggler::VimSyntax</a></li>
509
+
504
510
  <li><a href="../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
505
511
 
506
512
  <li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
@@ -187,6 +187,10 @@
187
187
 
188
188
  <li><a href="../TaskJuggler/DurationAttribute.html">TaskJuggler::DurationAttribute</a></li>
189
189
 
190
+ <li><a href="../TaskJuggler/FileList.html">TaskJuggler::FileList</a></li>
191
+
192
+ <li><a href="../TaskJuggler/FileRecord.html">TaskJuggler::FileRecord</a></li>
193
+
190
194
  <li><a href="../TaskJuggler/FixnumAttribute.html">TaskJuggler::FixnumAttribute</a></li>
191
195
 
192
196
  <li><a href="../TaskJuggler/FlagListAttribute.html">TaskJuggler::FlagListAttribute</a></li>
@@ -259,8 +263,6 @@
259
263
 
260
264
  <li><a href="../TaskJuggler/Macro.html">TaskJuggler::Macro</a></li>
261
265
 
262
- <li><a href="../TaskJuggler/MacroParser.html">TaskJuggler::MacroParser</a></li>
263
-
264
266
  <li><a href="../TaskJuggler/MacroTable.html">TaskJuggler::MacroTable</a></li>
265
267
 
266
268
  <li><a href="../TaskJuggler/ManagerResponsibilities.html">TaskJuggler::ManagerResponsibilities</a></li>
@@ -325,6 +327,8 @@
325
327
 
326
328
  <li><a href="../TaskJuggler/RTFReportLink.html">TaskJuggler::RTFReportLink</a></li>
327
329
 
330
+ <li><a href="../TaskJuggler/RTFWithQuerySupport.html">TaskJuggler::RTFWithQuerySupport</a></li>
331
+
328
332
  <li><a href="../TaskJuggler/RealFormat.html">TaskJuggler::RealFormat</a></li>
329
333
 
330
334
  <li><a href="../TaskJuggler/RealFormatAttribute.html">TaskJuggler::RealFormatAttribute</a></li>
@@ -371,8 +375,6 @@
371
375
 
372
376
  <li><a href="../TaskJuggler/RichTextElement.html">TaskJuggler::RichTextElement</a></li>
373
377
 
374
- <li><a href="../TaskJuggler/RichTextException.html">TaskJuggler::RichTextException</a></li>
375
-
376
378
  <li><a href="../TaskJuggler/RichTextFunctionExample.html">TaskJuggler::RichTextFunctionExample</a></li>
377
379
 
378
380
  <li><a href="../TaskJuggler/RichTextFunctionHandler.html">TaskJuggler::RichTextFunctionHandler</a></li>
@@ -413,6 +415,8 @@
413
415
 
414
416
  <li><a href="../TaskJuggler/ShiftScenario.html">TaskJuggler::ShiftScenario</a></li>
415
417
 
418
+ <li><a href="../TaskJuggler/SimpleQueryExpander.html">TaskJuggler::SimpleQueryExpander</a></li>
419
+
416
420
  <li><a href="../TaskJuggler/SortListAttribute.html">TaskJuggler::SortListAttribute</a></li>
417
421
 
418
422
  <li><a href="../TaskJuggler/SourceFileInfo.html">TaskJuggler::SourceFileInfo</a></li>
@@ -523,6 +527,8 @@
523
527
 
524
528
  <li><a href="../TaskJuggler/UserManual.html">TaskJuggler::UserManual</a></li>
525
529
 
530
+ <li><a href="../TaskJuggler/VimSyntax.html">TaskJuggler::VimSyntax</a></li>
531
+
526
532
  <li><a href="../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
527
533
 
528
534
  <li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
@@ -768,64 +774,6 @@ be of that set.
768
774
  <h3 class="section-header">Public Instance Methods</h3>
769
775
 
770
776
 
771
- <div id="add-orting-riteria-method" class="method-detail ">
772
- <a name="method-i-addSortingCriteria"></a>
773
-
774
- <div class="method-heading">
775
-
776
- <span class="method-name">addSortingCriteria</span><span
777
- class="method-args">(criteria, up, scIdx)</span>
778
- <span class="method-click-advice">click to toggle source</span>
779
-
780
- </div>
781
-
782
- <div class="method-description">
783
-
784
- <p>
785
- Append a new sorting level to the existing levels.
786
- </p>
787
-
788
-
789
-
790
- <div class="method-source-code"
791
- id="add-orting-riteria-source">
792
- <pre>
793
- <span class="ruby-comment cmt"># File lib/PropertyList.rb, line 98</span>
794
- 98: <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>)
795
- 99: <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>
796
- 100: <span class="ruby-ivar">@propertySet</span>.<span class="ruby-identifier">hasQuery?</span>(<span class="ruby-identifier">criteria</span>, <span class="ruby-identifier">scIdx</span>)
797
- 101: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TjException</span>.<span class="ruby-identifier">new</span>, <span class="ruby-node">&quot;Unknown attribute #{criteria} used for &quot;</span> <span class="ruby-operator">+</span>
798
- 102: <span class="ruby-value str">'sorting criterium'</span>
799
- 103: <span class="ruby-keyword kw">end</span>
800
- 104: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">scIdx</span> <span class="ruby-operator">==</span> <span class="ruby-value">1</span>
801
- 105: <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>)
802
- 106: <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 scenario specific.&quot;</span> <span class="ruby-operator">+</span>
803
- 107: <span class="ruby-value str">&quot;You must specify a scenario id.&quot;</span>
804
- 108: <span class="ruby-keyword kw">end</span>
805
- 109: <span class="ruby-keyword kw">else</span>
806
- 110: <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>
807
- 111: <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>
808
- 112: <span class="ruby-keyword kw">end</span>
809
- 113: <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>)
810
- 114: <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 &quot;</span> <span class="ruby-operator">+</span>
811
- 115: <span class="ruby-value str">&quot;specific&quot;</span>
812
- 116: <span class="ruby-keyword kw">end</span>
813
- 117: <span class="ruby-keyword kw">end</span>
814
- 118: <span class="ruby-ivar">@sortingCriteria</span>.<span class="ruby-identifier">push</span>(<span class="ruby-identifier">criteria</span>)
815
- 119: <span class="ruby-ivar">@sortingUp</span>.<span class="ruby-identifier">push</span>(<span class="ruby-identifier">up</span>)
816
- 120: <span class="ruby-ivar">@scenarioIdx</span>.<span class="ruby-identifier">push</span>(<span class="ruby-identifier">scIdx</span>)
817
- 121: <span class="ruby-ivar">@sortingLevels</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
818
- 122: <span class="ruby-keyword kw">end</span></pre>
819
- </div>
820
-
821
- </div>
822
-
823
-
824
-
825
-
826
- </div>
827
-
828
-
829
777
  <div id="append-method" class="method-detail ">
830
778
  <a name="method-i-append"></a>
831
779
 
@@ -896,13 +844,13 @@ The index starts with 0 and increases for each property.
896
844
  <div class="method-source-code"
897
845
  id="index-source">
898
846
  <pre>
899
- <span class="ruby-comment cmt"># File lib/PropertyList.rb, line 173</span>
900
- 173: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">index</span>
901
- 174: <span class="ruby-identifier">i</span> = <span class="ruby-value">0</span>
902
- 175: <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>
903
- 176: <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>)
904
- 177: <span class="ruby-keyword kw">end</span>
905
- 178: <span class="ruby-keyword kw">end</span></pre>
847
+ <span class="ruby-comment cmt"># File lib/PropertyList.rb, line 146</span>
848
+ 146: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">index</span>
849
+ 147: <span class="ruby-identifier">i</span> = <span class="ruby-value">0</span>
850
+ 148: <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>
851
+ 149: <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>)
852
+ 150: <span class="ruby-keyword kw">end</span>
853
+ 151: <span class="ruby-keyword kw">end</span></pre>
906
854
  </div>
907
855
 
908
856
  </div>
@@ -935,10 +883,10 @@ Return the Array index of <em>item</em> or nil.
935
883
  <div class="method-source-code"
936
884
  id="item-ndex-source">
937
885
  <pre>
938
- <span class="ruby-comment cmt"># File lib/PropertyList.rb, line 167</span>
939
- 167: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">itemIndex</span>(<span class="ruby-identifier">item</span>)
940
- 168: <span class="ruby-ivar">@items</span>.<span class="ruby-identifier">index</span>(<span class="ruby-identifier">item</span>)
941
- 169: <span class="ruby-keyword kw">end</span></pre>
886
+ <span class="ruby-comment cmt"># File lib/PropertyList.rb, line 140</span>
887
+ 140: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">itemIndex</span>(<span class="ruby-identifier">item</span>)
888
+ 141: <span class="ruby-ivar">@items</span>.<span class="ruby-identifier">index</span>(<span class="ruby-identifier">item</span>)
889
+ 142: <span class="ruby-keyword kw">end</span></pre>
942
890
  </div>
943
891
 
944
892
  </div>
@@ -1087,40 +1035,40 @@ Sort the properties according to the currently defined sorting criteria.
1087
1035
  <div class="method-source-code"
1088
1036
  id="sort--source">
1089
1037
  <pre>
1090
- <span class="ruby-comment cmt"># File lib/PropertyList.rb, line 132</span>
1091
- 132: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sort!</span>
1092
- 133: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">treeMode?</span>
1093
- 134: <span class="ruby-comment cmt"># Tree sorting is somewhat complex. It will be based on the 'tree'</span>
1094
- 135: <span class="ruby-comment cmt"># attribute of the PropertyTreeNodes but we have to update them first</span>
1095
- 136: <span class="ruby-comment cmt"># based on the other sorting criteria.</span>
1096
- 137:
1097
- 138: <span class="ruby-comment cmt"># Remove the tree sorting mode first.</span>
1098
- 139: <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>)
1099
- 140: <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>)
1100
- 141: <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>)
1101
- 142: <span class="ruby-ivar">@sortingLevels</span> <span class="ruby-operator">-=</span> <span class="ruby-value">1</span>
1102
- 143:
1103
- 144: <span class="ruby-comment cmt"># Sort the list based on the rest of the modes.</span>
1104
- 145: <span class="ruby-identifier">sortInternal</span>
1105
- 146: <span class="ruby-comment cmt"># The update the 'index' attributes of the PropertyTreeNodes.</span>
1106
- 147: <span class="ruby-identifier">index</span>
1107
- 148: <span class="ruby-comment cmt"># An then the 'tree' attributes.</span>
1108
- 149: <span class="ruby-identifier">indexTree</span>
1109
- 150:
1110
- 151: <span class="ruby-comment cmt"># Restore the 'tree' sorting mode again.</span>
1111
- 152: <span class="ruby-ivar">@sortingCriteria</span>.<span class="ruby-identifier">insert</span>(<span class="ruby-value">0</span>, <span class="ruby-identifier">sc</span>)
1112
- 153: <span class="ruby-ivar">@sortingUp</span>.<span class="ruby-identifier">insert</span>(<span class="ruby-value">0</span>, <span class="ruby-identifier">su</span>)
1113
- 154: <span class="ruby-ivar">@scenarioIdx</span>.<span class="ruby-identifier">insert</span>(<span class="ruby-value">0</span>, <span class="ruby-identifier">si</span>)
1114
- 155: <span class="ruby-ivar">@sortingLevels</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
1115
- 156:
1116
- 157: <span class="ruby-comment cmt"># Sort again, now based on the updated 'tree' attributes.</span>
1117
- 158: <span class="ruby-identifier">sortInternal</span>
1118
- 159: <span class="ruby-keyword kw">else</span>
1119
- 160: <span class="ruby-identifier">sortInternal</span>
1120
- 161: <span class="ruby-keyword kw">end</span>
1121
- 162: <span class="ruby-comment cmt"># Update indexes.</span>
1122
- 163: <span class="ruby-identifier">index</span>
1123
- 164: <span class="ruby-keyword kw">end</span></pre>
1038
+ <span class="ruby-comment cmt"># File lib/PropertyList.rb, line 105</span>
1039
+ 105: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sort!</span>
1040
+ 106: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">treeMode?</span>
1041
+ 107: <span class="ruby-comment cmt"># Tree sorting is somewhat complex. It will be based on the 'tree'</span>
1042
+ 108: <span class="ruby-comment cmt"># attribute of the PropertyTreeNodes but we have to update them first</span>
1043
+ 109: <span class="ruby-comment cmt"># based on the other sorting criteria.</span>
1044
+ 110:
1045
+ 111: <span class="ruby-comment cmt"># Remove the tree sorting mode first.</span>
1046
+ 112: <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>)
1047
+ 113: <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>)
1048
+ 114: <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>)
1049
+ 115: <span class="ruby-ivar">@sortingLevels</span> <span class="ruby-operator">-=</span> <span class="ruby-value">1</span>
1050
+ 116:
1051
+ 117: <span class="ruby-comment cmt"># Sort the list based on the rest of the modes.</span>
1052
+ 118: <span class="ruby-identifier">sortInternal</span>
1053
+ 119: <span class="ruby-comment cmt"># The update the 'index' attributes of the PropertyTreeNodes.</span>
1054
+ 120: <span class="ruby-identifier">index</span>
1055
+ 121: <span class="ruby-comment cmt"># An then the 'tree' attributes.</span>
1056
+ 122: <span class="ruby-identifier">indexTree</span>
1057
+ 123:
1058
+ 124: <span class="ruby-comment cmt"># Restore the 'tree' sorting mode again.</span>
1059
+ 125: <span class="ruby-ivar">@sortingCriteria</span>.<span class="ruby-identifier">insert</span>(<span class="ruby-value">0</span>, <span class="ruby-identifier">sc</span>)
1060
+ 126: <span class="ruby-ivar">@sortingUp</span>.<span class="ruby-identifier">insert</span>(<span class="ruby-value">0</span>, <span class="ruby-identifier">su</span>)
1061
+ 127: <span class="ruby-ivar">@scenarioIdx</span>.<span class="ruby-identifier">insert</span>(<span class="ruby-value">0</span>, <span class="ruby-identifier">si</span>)
1062
+ 128: <span class="ruby-ivar">@sortingLevels</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
1063
+ 129:
1064
+ 130: <span class="ruby-comment cmt"># Sort again, now based on the updated 'tree' attributes.</span>
1065
+ 131: <span class="ruby-identifier">sortInternal</span>
1066
+ 132: <span class="ruby-keyword kw">else</span>
1067
+ 133: <span class="ruby-identifier">sortInternal</span>
1068
+ 134: <span class="ruby-keyword kw">end</span>
1069
+ 135: <span class="ruby-comment cmt"># Update indexes.</span>
1070
+ 136: <span class="ruby-identifier">index</span>
1071
+ 137: <span class="ruby-keyword kw">end</span></pre>
1124
1072
  </div>
1125
1073
 
1126
1074
  </div>
@@ -1189,10 +1137,10 @@ returns true if the mode is set.
1189
1137
  <div class="method-source-code"
1190
1138
  id="tree-ode--source">
1191
1139
  <pre>
1192
- <span class="ruby-comment cmt"># File lib/PropertyList.rb, line 127</span>
1193
- 127: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">treeMode?</span>
1194
- 128: <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>
1195
- 129: <span class="ruby-keyword kw">end</span></pre>
1140
+ <span class="ruby-comment cmt"># File lib/PropertyList.rb, line 100</span>
1141
+ 100: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">treeMode?</span>
1142
+ 101: <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>
1143
+ 102: <span class="ruby-keyword kw">end</span></pre>
1196
1144
  </div>
1197
1145
 
1198
1146
  </div>
@@ -1209,6 +1157,62 @@ returns true if the mode is set.
1209
1157
  <h3 class="section-header">Private Instance Methods</h3>
1210
1158
 
1211
1159
 
1160
+ <div id="add-orting-riteria-method" class="method-detail ">
1161
+ <a name="method-i-addSortingCriteria"></a>
1162
+
1163
+ <div class="method-heading">
1164
+
1165
+ <span class="method-name">addSortingCriteria</span><span
1166
+ class="method-args">(criteria, up, scIdx)</span>
1167
+ <span class="method-click-advice">click to toggle source</span>
1168
+
1169
+ </div>
1170
+
1171
+ <div class="method-description">
1172
+
1173
+ <p>
1174
+ Append a new sorting level to the existing levels.
1175
+ </p>
1176
+
1177
+
1178
+
1179
+ <div class="method-source-code"
1180
+ id="add-orting-riteria-source">
1181
+ <pre>
1182
+ <span class="ruby-comment cmt"># File lib/PropertyList.rb, line 168</span>
1183
+ 168: <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>)
1184
+ 169: <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>
1185
+ 170: <span class="ruby-ivar">@propertySet</span>.<span class="ruby-identifier">hasQuery?</span>(<span class="ruby-identifier">criteria</span>, <span class="ruby-identifier">scIdx</span>)
1186
+ 171: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Unknown attribute #{criteria} used for sorting criterium&quot;</span>
1187
+ 172: <span class="ruby-keyword kw">end</span>
1188
+ 173: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">scIdx</span> <span class="ruby-operator">==</span> <span class="ruby-value">1</span>
1189
+ 174: <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>)
1190
+ 175: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Attribute #{criteria} is scenario specific.&quot;</span> <span class="ruby-operator">+</span>
1191
+ 176: <span class="ruby-value str">&quot;You must specify a scenario id.&quot;</span>
1192
+ 177: <span class="ruby-keyword kw">end</span>
1193
+ 178: <span class="ruby-keyword kw">else</span>
1194
+ 179: <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>
1195
+ 180: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Unknown scenario index #{scIdx} used.&quot;</span>
1196
+ 181: <span class="ruby-keyword kw">end</span>
1197
+ 182: <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>)
1198
+ 183: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Attribute #{criteria} is not scenario specific&quot;</span>
1199
+ 184: <span class="ruby-keyword kw">end</span>
1200
+ 185: <span class="ruby-keyword kw">end</span>
1201
+ 186: <span class="ruby-ivar">@sortingCriteria</span>.<span class="ruby-identifier">push</span>(<span class="ruby-identifier">criteria</span>)
1202
+ 187: <span class="ruby-ivar">@sortingUp</span>.<span class="ruby-identifier">push</span>(<span class="ruby-identifier">up</span>)
1203
+ 188: <span class="ruby-ivar">@scenarioIdx</span>.<span class="ruby-identifier">push</span>(<span class="ruby-identifier">scIdx</span>)
1204
+ 189: <span class="ruby-ivar">@sortingLevels</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
1205
+ 190: <span class="ruby-keyword kw">end</span></pre>
1206
+ </div>
1207
+
1208
+ </div>
1209
+
1210
+
1211
+
1212
+
1213
+ </div>
1214
+
1215
+
1212
1216
  <div id="index-ree-method" class="method-detail ">
1213
1217
  <a name="method-i-indexTree"></a>
1214
1218
 
@@ -1232,23 +1236,23 @@ Update the &#8216;tree&#8217; indicies that are needed for the
1232
1236
  <div class="method-source-code"
1233
1237
  id="index-ree-source">
1234
1238
  <pre>
1235
- <span class="ruby-comment cmt"># File lib/PropertyList.rb, line 195</span>
1236
- 195: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">indexTree</span>
1237
- 196: <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>
1238
- 197: <span class="ruby-comment cmt"># The indicies are an Array if the 'index' attributes for this</span>
1239
- 198: <span class="ruby-comment cmt"># property and all its parents.</span>
1240
- 199: <span class="ruby-identifier">treeIdcs</span> = <span class="ruby-identifier">property</span>.<span class="ruby-identifier">getIndicies</span>
1241
- 200: <span class="ruby-comment cmt"># Now convert them to a String.</span>
1242
- 201: <span class="ruby-identifier">tree</span> = <span class="ruby-value str">''</span>
1243
- 202: <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>
1244
- 203: <span class="ruby-comment cmt"># Prefix the level index with zeros so that we always have a 6</span>
1245
- 204: <span class="ruby-comment cmt"># digit long String. 6 digits should be large enough for all</span>
1246
- 205: <span class="ruby-comment cmt"># real-world projects.</span>
1247
- 206: <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>)
1248
- 207: <span class="ruby-keyword kw">end</span>
1249
- 208: <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>)
1250
- 209: <span class="ruby-keyword kw">end</span>
1251
- 210: <span class="ruby-keyword kw">end</span></pre>
1239
+ <span class="ruby-comment cmt"># File lib/PropertyList.rb, line 193</span>
1240
+ 193: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">indexTree</span>
1241
+ 194: <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>
1242
+ 195: <span class="ruby-comment cmt"># The indicies are an Array if the 'index' attributes for this</span>
1243
+ 196: <span class="ruby-comment cmt"># property and all its parents.</span>
1244
+ 197: <span class="ruby-identifier">treeIdcs</span> = <span class="ruby-identifier">property</span>.<span class="ruby-identifier">getIndicies</span>
1245
+ 198: <span class="ruby-comment cmt"># Now convert them to a String.</span>
1246
+ 199: <span class="ruby-identifier">tree</span> = <span class="ruby-value str">''</span>
1247
+ 200: <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>
1248
+ 201: <span class="ruby-comment cmt"># Prefix the level index with zeros so that we always have a 6</span>
1249
+ 202: <span class="ruby-comment cmt"># digit long String. 6 digits should be large enough for all</span>
1250
+ 203: <span class="ruby-comment cmt"># real-world projects.</span>
1251
+ 204: <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>)
1252
+ 205: <span class="ruby-keyword kw">end</span>
1253
+ 206: <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>)
1254
+ 207: <span class="ruby-keyword kw">end</span>
1255
+ 208: <span class="ruby-keyword kw">end</span></pre>
1252
1256
  </div>
1253
1257
 
1254
1258
  </div>
@@ -1279,51 +1283,51 @@ Update the &#8216;tree&#8217; indicies that are needed for the
1279
1283
  <div class="method-source-code"
1280
1284
  id="sort-nternal-source">
1281
1285
  <pre>
1282
- <span class="ruby-comment cmt"># File lib/PropertyList.rb, line 212</span>
1283
- 212: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sortInternal</span>
1284
- 213: <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>
1285
- 214: <span class="ruby-identifier">res</span> = <span class="ruby-value">0</span>
1286
- 215: <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>
1287
- 216: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@query</span>
1288
- 217: <span class="ruby-comment cmt"># In case we have a Query reference, we get the two values with this</span>
1289
- 218: <span class="ruby-comment cmt"># query.</span>
1290
- 219: <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>]
1291
- 220: <span class="ruby-ivar">@query</span>.<span class="ruby-identifier">attributeId</span> = <span class="ruby-ivar">@sortingCriteria</span>[<span class="ruby-identifier">i</span>]
1292
- 221:
1293
- 222: <span class="ruby-ivar">@query</span>.<span class="ruby-identifier">property</span> = <span class="ruby-identifier">a</span>
1294
- 223: <span class="ruby-ivar">@query</span>.<span class="ruby-identifier">process</span>
1295
- 224: <span class="ruby-identifier">aVal</span> = <span class="ruby-ivar">@query</span>.<span class="ruby-identifier">to_sort</span>
1296
- 225:
1297
- 226: <span class="ruby-ivar">@query</span>.<span class="ruby-identifier">property</span> = <span class="ruby-identifier">b</span>
1298
- 227: <span class="ruby-ivar">@query</span>.<span class="ruby-identifier">process</span>
1299
- 228: <span class="ruby-identifier">bVal</span> = <span class="ruby-ivar">@query</span>.<span class="ruby-identifier">to_sort</span>
1300
- 229: <span class="ruby-keyword kw">else</span>
1301
- 230: <span class="ruby-comment cmt"># In case we don't have a query, we use the static mechanism.</span>
1302
- 231: <span class="ruby-comment cmt"># If the scenario index is negative we have a non-scenario-specific</span>
1303
- 232: <span class="ruby-comment cmt"># attribute.</span>
1304
- 233: <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>
1305
- 234: <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>
1306
- 235: <span class="ruby-identifier">aVal</span> = <span class="ruby-identifier">a</span>.<span class="ruby-identifier">fullId</span>
1307
- 236: <span class="ruby-identifier">bVal</span> = <span class="ruby-identifier">b</span>.<span class="ruby-identifier">fullId</span>
1308
- 237: <span class="ruby-keyword kw">else</span>
1309
- 238: <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>])
1310
- 239: <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>])
1311
- 240: <span class="ruby-keyword kw">end</span>
1312
- 241: <span class="ruby-keyword kw">else</span>
1313
- 242: <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>]]
1314
- 243: <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>]]
1315
- 244: <span class="ruby-keyword kw">end</span>
1316
- 245: <span class="ruby-keyword kw">end</span>
1317
- 246: <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>
1318
- 247: <span class="ruby-comment cmt"># Invert the result if we have to sort in decreasing order.</span>
1319
- 248: <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>]
1320
- 249: <span class="ruby-comment cmt"># If the two elements are equal on this compare level we try the next</span>
1321
- 250: <span class="ruby-comment cmt"># level.</span>
1322
- 251: <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>
1323
- 252: <span class="ruby-keyword kw">end</span>
1324
- 253: <span class="ruby-identifier">res</span>
1325
- 254: <span class="ruby-keyword kw">end</span>
1326
- 255: <span class="ruby-keyword kw">end</span></pre>
1286
+ <span class="ruby-comment cmt"># File lib/PropertyList.rb, line 210</span>
1287
+ 210: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sortInternal</span>
1288
+ 211: <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>
1289
+ 212: <span class="ruby-identifier">res</span> = <span class="ruby-value">0</span>
1290
+ 213: <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>
1291
+ 214: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@query</span>
1292
+ 215: <span class="ruby-comment cmt"># In case we have a Query reference, we get the two values with this</span>
1293
+ 216: <span class="ruby-comment cmt"># query.</span>
1294
+ 217: <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>]
1295
+ 218: <span class="ruby-ivar">@query</span>.<span class="ruby-identifier">attributeId</span> = <span class="ruby-ivar">@sortingCriteria</span>[<span class="ruby-identifier">i</span>]
1296
+ 219:
1297
+ 220: <span class="ruby-ivar">@query</span>.<span class="ruby-identifier">property</span> = <span class="ruby-identifier">a</span>
1298
+ 221: <span class="ruby-ivar">@query</span>.<span class="ruby-identifier">process</span>
1299
+ 222: <span class="ruby-identifier">aVal</span> = <span class="ruby-ivar">@query</span>.<span class="ruby-identifier">to_sort</span>
1300
+ 223:
1301
+ 224: <span class="ruby-ivar">@query</span>.<span class="ruby-identifier">property</span> = <span class="ruby-identifier">b</span>
1302
+ 225: <span class="ruby-ivar">@query</span>.<span class="ruby-identifier">process</span>
1303
+ 226: <span class="ruby-identifier">bVal</span> = <span class="ruby-ivar">@query</span>.<span class="ruby-identifier">to_sort</span>
1304
+ 227: <span class="ruby-keyword kw">else</span>
1305
+ 228: <span class="ruby-comment cmt"># In case we don't have a query, we use the static mechanism.</span>
1306
+ 229: <span class="ruby-comment cmt"># If the scenario index is negative we have a non-scenario-specific</span>
1307
+ 230: <span class="ruby-comment cmt"># attribute.</span>
1308
+ 231: <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>
1309
+ 232: <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>
1310
+ 233: <span class="ruby-identifier">aVal</span> = <span class="ruby-identifier">a</span>.<span class="ruby-identifier">fullId</span>
1311
+ 234: <span class="ruby-identifier">bVal</span> = <span class="ruby-identifier">b</span>.<span class="ruby-identifier">fullId</span>
1312
+ 235: <span class="ruby-keyword kw">else</span>
1313
+ 236: <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>])
1314
+ 237: <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>])
1315
+ 238: <span class="ruby-keyword kw">end</span>
1316
+ 239: <span class="ruby-keyword kw">else</span>
1317
+ 240: <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>]]
1318
+ 241: <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>]]
1319
+ 242: <span class="ruby-keyword kw">end</span>
1320
+ 243: <span class="ruby-keyword kw">end</span>
1321
+ 244: <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>
1322
+ 245: <span class="ruby-comment cmt"># Invert the result if we have to sort in decreasing order.</span>
1323
+ 246: <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>]
1324
+ 247: <span class="ruby-comment cmt"># If the two elements are equal on this compare level we try the next</span>
1325
+ 248: <span class="ruby-comment cmt"># level.</span>
1326
+ 249: <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>
1327
+ 250: <span class="ruby-keyword kw">end</span>
1328
+ 251: <span class="ruby-identifier">res</span>
1329
+ 252: <span class="ruby-keyword kw">end</span>
1330
+ 253: <span class="ruby-keyword kw">end</span></pre>
1327
1331
  </div>
1328
1332
 
1329
1333
  </div>