taskjuggler 0.0.8 → 0.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGELOG +1144 -2047
- data/README +1 -1
- data/Rakefile +6 -6
- data/data/css/tjmanual.css +20 -0
- data/data/css/tjreport.css +7 -6
- data/doc/AppConfig.html +136 -130
- data/doc/Arguments.html +46 -40
- data/doc/CHANGELOG.html +1162 -2057
- data/doc/COPYING.html +8 -2
- data/doc/Object.html +205 -199
- data/doc/README.html +9 -3
- data/doc/RuntimeConfig.html +75 -69
- data/doc/String.html +69 -63
- data/doc/TaskJuggler.html +350 -291
- data/doc/TaskJuggler/Account.html +26 -20
- data/doc/TaskJuggler/AccountAttribute.html +24 -18
- data/doc/TaskJuggler/AccountScenario.html +24 -18
- data/doc/TaskJuggler/Allocation.html +74 -68
- data/doc/TaskJuggler/AllocationAttribute.html +54 -48
- data/doc/TaskJuggler/AttributeBase.html +172 -93
- data/doc/TaskJuggler/AttributeDefinition.html +22 -16
- data/doc/TaskJuggler/AttributeOverwrite.html +586 -0
- data/doc/TaskJuggler/BatchProcessor.html +263 -257
- data/doc/TaskJuggler/Booking.html +44 -38
- data/doc/TaskJuggler/BookingListAttribute.html +25 -21
- data/doc/TaskJuggler/BooleanAttribute.html +24 -18
- data/doc/TaskJuggler/CSVFile.html +193 -187
- data/doc/TaskJuggler/CellSettingPattern.html +13 -7
- data/doc/TaskJuggler/CellSettingPatternList.html +25 -19
- data/doc/TaskJuggler/Charge.html +49 -43
- data/doc/TaskJuggler/ChargeListAttribute.html +21 -15
- data/doc/TaskJuggler/ChargeSet.html +94 -88
- data/doc/TaskJuggler/ChargeSetListAttribute.html +29 -25
- data/doc/TaskJuggler/CollisionDetector.html +142 -136
- data/doc/TaskJuggler/ColumnListAttribute.html +21 -17
- data/doc/TaskJuggler/ColumnTable.html +50 -44
- data/doc/TaskJuggler/Daemon.html +71 -50
- data/doc/TaskJuggler/DataCache.html +110 -58
- data/doc/TaskJuggler/DataCacheEntry.html +22 -16
- data/doc/TaskJuggler/DateAttribute.html +24 -18
- data/doc/TaskJuggler/DefinitionListAttribute.html +12 -6
- data/doc/TaskJuggler/DependencyListAttribute.html +29 -25
- data/doc/TaskJuggler/DurationAttribute.html +25 -19
- data/doc/TaskJuggler/FileList.html +25 -19
- data/doc/TaskJuggler/FileRecord.html +17 -11
- data/doc/TaskJuggler/FixnumAttribute.html +16 -10
- data/doc/TaskJuggler/FlagListAttribute.html +25 -21
- data/doc/TaskJuggler/FloatAttribute.html +20 -14
- data/doc/TaskJuggler/FormatListAttribute.html +17 -11
- data/doc/TaskJuggler/GanttChart.html +242 -236
- data/doc/TaskJuggler/GanttContainer.html +71 -67
- data/doc/TaskJuggler/GanttHeader.html +113 -107
- data/doc/TaskJuggler/GanttHeaderScaleItem.html +26 -20
- data/doc/TaskJuggler/GanttLine.html +217 -210
- data/doc/TaskJuggler/GanttLoadStack.html +89 -83
- data/doc/TaskJuggler/GanttMilestone.html +11 -6
- data/doc/TaskJuggler/GanttRouter.html +194 -186
- data/doc/TaskJuggler/GanttTaskBar.html +41 -34
- data/doc/TaskJuggler/HTMLDocument.html +52 -46
- data/doc/TaskJuggler/HTMLGraphics.html +58 -52
- data/doc/TaskJuggler/Interval.html +90 -84
- data/doc/TaskJuggler/IntervalList.html +777 -0
- data/doc/TaskJuggler/IntervalListAttribute.html +29 -25
- data/doc/TaskJuggler/JobInfo.html +36 -30
- data/doc/TaskJuggler/Journal.html +188 -177
- data/doc/TaskJuggler/JournalEntry.html +36 -30
- data/doc/TaskJuggler/JournalEntryList.html +88 -82
- data/doc/TaskJuggler/KeywordArray.html +12 -6
- data/doc/TaskJuggler/KeywordDocumentation.html +512 -503
- data/doc/TaskJuggler/Limits.html +111 -105
- data/doc/TaskJuggler/Limits/Limit.html +71 -65
- data/doc/TaskJuggler/LimitsAttribute.html +21 -15
- data/doc/TaskJuggler/ListAttributeBase.html +16 -10
- data/doc/TaskJuggler/Log.html +111 -105
- data/doc/TaskJuggler/LogFile.html +54 -48
- data/doc/TaskJuggler/LogicalAttribute.html +35 -29
- data/doc/TaskJuggler/LogicalExpression.html +32 -26
- data/doc/TaskJuggler/LogicalExpressionAttribute.html +16 -10
- data/doc/TaskJuggler/LogicalExpressionListAttribute.html +671 -0
- data/doc/TaskJuggler/LogicalFlag.html +24 -18
- data/doc/TaskJuggler/LogicalFunction.html +164 -158
- data/doc/TaskJuggler/LogicalOperation.html +138 -132
- data/doc/TaskJuggler/Macro.html +14 -8
- data/doc/TaskJuggler/MacroTable.html +42 -36
- data/doc/TaskJuggler/ManagerResponsibilities.html +19 -13
- data/doc/TaskJuggler/ManagerStatusRecord.html +23 -17
- data/doc/TaskJuggler/Message.html +56 -50
- data/doc/TaskJuggler/MessageHandler.html +73 -67
- data/doc/TaskJuggler/Navigator.html +92 -86
- data/doc/TaskJuggler/NavigatorElement.html +88 -82
- data/doc/TaskJuggler/NikuProject.html +15 -9
- data/doc/TaskJuggler/NikuReport.html +405 -370
- data/doc/TaskJuggler/NikuResource.html +13 -7
- data/doc/TaskJuggler/NodeListAttribute.html +13 -9
- data/doc/TaskJuggler/PlaceHolderCell.html +22 -16
- data/doc/TaskJuggler/ProcessIntercom.html +116 -110
- data/doc/TaskJuggler/ProcessIntercomIface.html +39 -33
- data/doc/TaskJuggler/Project.html +1064 -895
- data/doc/TaskJuggler/ProjectBroker.html +439 -366
- data/doc/TaskJuggler/ProjectBrokerIface.html +63 -53
- data/doc/TaskJuggler/ProjectFileParser.html +329 -319
- data/doc/TaskJuggler/ProjectFileScanner.html +351 -345
- data/doc/TaskJuggler/ProjectRecord.html +66 -60
- data/doc/TaskJuggler/ProjectServer.html +287 -280
- data/doc/TaskJuggler/ProjectServerIface.html +43 -37
- data/doc/TaskJuggler/PropertyAttribute.html +16 -10
- data/doc/TaskJuggler/PropertyList.html +205 -199
- data/doc/TaskJuggler/PropertySet.html +264 -296
- data/doc/TaskJuggler/PropertyTreeNode.html +455 -505
- data/doc/TaskJuggler/Query.html +309 -524
- data/doc/TaskJuggler/RTFHandlers.html +17 -11
- data/doc/TaskJuggler/RTFNavigator.html +33 -27
- data/doc/TaskJuggler/RTFQuery.html +135 -129
- data/doc/TaskJuggler/RTFReport.html +63 -57
- data/doc/TaskJuggler/RTFReportLink.html +55 -49
- data/doc/TaskJuggler/RTFWithQuerySupport.html +17 -11
- data/doc/TaskJuggler/RealFormat.html +64 -58
- data/doc/TaskJuggler/RealFormatAttribute.html +12 -6
- data/doc/TaskJuggler/ReferenceAttribute.html +35 -29
- data/doc/TaskJuggler/Report.html +294 -249
- data/doc/TaskJuggler/ReportBase.html +229 -223
- data/doc/TaskJuggler/ReportContext.html +52 -46
- data/doc/TaskJuggler/ReportServer.html +143 -137
- data/doc/TaskJuggler/ReportServerIface.html +51 -43
- data/doc/TaskJuggler/ReportServerRecord.html +36 -30
- data/doc/TaskJuggler/ReportServlet.html +167 -140
- data/doc/TaskJuggler/ReportTable.html +137 -131
- data/doc/TaskJuggler/ReportTableCell.html +332 -292
- data/doc/TaskJuggler/ReportTableColumn.html +46 -40
- data/doc/TaskJuggler/ReportTableLegend.html +43 -38
- data/doc/TaskJuggler/ReportTableLine.html +66 -60
- data/doc/TaskJuggler/Resource.html +166 -160
- data/doc/TaskJuggler/ResourceListAttribute.html +54 -32
- data/doc/TaskJuggler/ResourceListRE.html +47 -41
- data/doc/TaskJuggler/ResourceScenario.html +671 -644
- data/doc/TaskJuggler/RichText.html +51 -45
- data/doc/TaskJuggler/RichTextAttribute.html +28 -22
- data/doc/TaskJuggler/RichTextDocument.html +96 -90
- data/doc/TaskJuggler/RichTextElement.html +503 -497
- data/doc/TaskJuggler/RichTextFunctionExample.html +41 -35
- data/doc/TaskJuggler/RichTextFunctionHandler.html +19 -13
- data/doc/TaskJuggler/RichTextImage.html +14 -8
- data/doc/TaskJuggler/RichTextIntermediate.html +86 -80
- data/doc/TaskJuggler/RichTextParser.html +59 -53
- data/doc/TaskJuggler/RichTextScanner.html +184 -178
- data/doc/TaskJuggler/RichTextSnip.html +69 -63
- data/doc/TaskJuggler/RichTextSyntaxRules.html +416 -410
- data/doc/TaskJuggler/Scenario.html +13 -7
- data/doc/TaskJuggler/ScenarioData.html +40 -34
- data/doc/TaskJuggler/ScenarioListAttribute.html +21 -15
- data/doc/TaskJuggler/Scoreboard.html +129 -107
- data/doc/TaskJuggler/SheetHandlerBase.html +245 -239
- data/doc/TaskJuggler/SheetReceiver.html +333 -327
- data/doc/TaskJuggler/SheetSender.html +227 -221
- data/doc/TaskJuggler/Shift.html +26 -20
- data/doc/TaskJuggler/ShiftAssignment.html +45 -39
- data/doc/TaskJuggler/ShiftAssignments.html +178 -172
- data/doc/TaskJuggler/ShiftAssignmentsAttribute.html +21 -15
- data/doc/TaskJuggler/ShiftScenario.html +29 -23
- data/doc/TaskJuggler/SimpleQueryExpander.html +36 -30
- data/doc/TaskJuggler/SortListAttribute.html +17 -13
- data/doc/TaskJuggler/SourceFileInfo.html +19 -13
- data/doc/TaskJuggler/StatusSheetReceiver.html +31 -25
- data/doc/TaskJuggler/StatusSheetReport.html +166 -159
- data/doc/TaskJuggler/StatusSheetSender.html +80 -74
- data/doc/TaskJuggler/StringAttribute.html +20 -14
- data/doc/TaskJuggler/SymbolAttribute.html +16 -10
- data/doc/TaskJuggler/SyntaxReference.html +231 -225
- data/doc/TaskJuggler/TOCEntry.html +46 -40
- data/doc/TaskJuggler/TSResourceRecord.html +15 -9
- data/doc/TaskJuggler/TSTaskRecord.html +16 -10
- data/doc/TaskJuggler/TableColumnDefinition.html +84 -39
- data/doc/TaskJuggler/TableOfContents.html +28 -22
- data/doc/TaskJuggler/TableReport.html +906 -866
- data/doc/TaskJuggler/Task.html +99 -93
- data/doc/TaskJuggler/TaskDependency.html +24 -18
- data/doc/TaskJuggler/TaskListAttribute.html +29 -25
- data/doc/TaskJuggler/TaskListRE.html +46 -39
- data/doc/TaskJuggler/TaskScenario.html +2218 -1965
- data/doc/TaskJuggler/TextFormatter.html +154 -148
- data/doc/TaskJuggler/TextParser.html +362 -348
- data/doc/TaskJuggler/TextParser/Pattern.html +313 -307
- data/doc/TaskJuggler/TextParser/Rule.html +147 -141
- data/doc/TaskJuggler/TextParser/StackElement.html +58 -52
- data/doc/TaskJuggler/TextParser/State.html +88 -82
- data/doc/TaskJuggler/TextParser/StateTransition.html +42 -36
- data/doc/TaskJuggler/TextParser/TextParserResultArray.html +20 -14
- data/doc/TaskJuggler/TextParser/TokenDoc.html +19 -13
- data/doc/TaskJuggler/TextReport.html +80 -74
- data/doc/TaskJuggler/TextScanner.html +284 -272
- data/doc/TaskJuggler/TextScanner/BufferStreamHandle.html +14 -8
- data/doc/TaskJuggler/TextScanner/FileStreamHandle.html +21 -15
- data/doc/TaskJuggler/TextScanner/MacroStackEntry.html +15 -9
- data/doc/TaskJuggler/TextScanner/StreamHandle.html +102 -96
- data/doc/TaskJuggler/TimeSheet.html +123 -117
- data/doc/TaskJuggler/TimeSheetReceiver.html +28 -22
- data/doc/TaskJuggler/TimeSheetRecord.html +212 -206
- data/doc/TaskJuggler/TimeSheetReport.html +206 -199
- data/doc/TaskJuggler/TimeSheetSender.html +27 -21
- data/doc/TaskJuggler/TimeSheetSummary.html +140 -134
- data/doc/TaskJuggler/TimeSheets.html +20 -14
- data/doc/TaskJuggler/Tj3AppBase.html +100 -94
- data/doc/TaskJuggler/Tj3Client.html +407 -483
- data/doc/TaskJuggler/Tj3Daemon.html +116 -107
- data/doc/TaskJuggler/Tj3SheetAppBase.html +45 -39
- data/doc/TaskJuggler/Tj3SsReceiver.html +31 -25
- data/doc/TaskJuggler/Tj3SsSender.html +64 -58
- data/doc/TaskJuggler/Tj3TsReceiver.html +31 -25
- data/doc/TaskJuggler/Tj3TsSender.html +51 -45
- data/doc/TaskJuggler/Tj3TsSummary.html +59 -53
- data/doc/TaskJuggler/TjException.html +13 -7
- data/doc/TaskJuggler/TjTime.html +444 -438
- data/doc/TaskJuggler/TjpExample.html +84 -78
- data/doc/TaskJuggler/TjpExportRE.html +356 -349
- data/doc/TaskJuggler/TjpSyntaxRules.html +4279 -4151
- data/doc/TaskJuggler/URLParameter.html +16 -10
- data/doc/TaskJuggler/UserManual.html +185 -179
- data/doc/TaskJuggler/VimSyntax.html +144 -138
- data/doc/TaskJuggler/WebServer.html +46 -39
- data/doc/TaskJuggler/WelcomePage.html +769 -0
- data/doc/TaskJuggler/WorkingHours.html +185 -179
- data/doc/TaskJuggler/WorkingHoursAttribute.html +42 -36
- data/doc/TaskJuggler/XMLBlob.html +21 -15
- data/doc/TaskJuggler/XMLComment.html +17 -11
- data/doc/TaskJuggler/XMLDocument.html +33 -27
- data/doc/TaskJuggler/XMLElement.html +97 -91
- data/doc/TaskJuggler/XMLNamedText.html +13 -7
- data/doc/TaskJuggler/XMLText.html +32 -26
- data/doc/index.html +601 -563
- data/doc/lib/AccountScenario_rb.html +5 -3
- data/doc/lib/Account_rb.html +5 -3
- data/doc/lib/Allocation_rb.html +5 -3
- data/doc/lib/AppConfig_rb.html +5 -3
- data/doc/lib/AttributeBase_rb.html +5 -3
- data/doc/lib/AttributeDefinition_rb.html +5 -3
- data/doc/lib/Attributes_rb.html +5 -3
- data/doc/lib/BatchProcessor_rb.html +5 -3
- data/doc/lib/Booking_rb.html +5 -3
- data/doc/lib/ChargeSet_rb.html +5 -3
- data/doc/lib/Charge_rb.html +5 -3
- data/doc/lib/DataCache_rb.html +5 -3
- data/doc/lib/FileList_rb.html +5 -3
- data/doc/lib/HTMLDocument_rb.html +5 -3
- data/doc/lib/IntervalList_rb.html +69 -0
- data/doc/lib/Interval_rb.html +5 -3
- data/doc/lib/Journal_rb.html +5 -3
- data/doc/lib/KeywordArray_rb.html +5 -3
- data/doc/lib/KeywordDocumentation_rb.html +5 -3
- data/doc/lib/Limits_rb.html +5 -3
- data/doc/lib/LogFile_rb.html +5 -3
- data/doc/lib/Log_rb.html +5 -3
- data/doc/lib/LogicalExpression_rb.html +5 -3
- data/doc/lib/LogicalFunction_rb.html +5 -3
- data/doc/lib/LogicalOperation_rb.html +5 -3
- data/doc/lib/MacroTable_rb.html +5 -3
- data/doc/lib/MessageHandler_rb.html +5 -3
- data/doc/lib/ProjectFileParser_rb.html +5 -3
- data/doc/lib/ProjectFileScanner_rb.html +5 -3
- data/doc/lib/Project_rb.html +5 -3
- data/doc/lib/PropertyList_rb.html +5 -3
- data/doc/lib/PropertySet_rb.html +5 -3
- data/doc/lib/PropertyTreeNode_rb.html +5 -3
- data/doc/lib/Query_rb.html +5 -3
- data/doc/lib/RTFHandlers_rb.html +5 -3
- data/doc/lib/RTFNavigator_rb.html +5 -3
- data/doc/lib/RTFQuery_rb.html +5 -3
- data/doc/lib/RTFReportLink_rb.html +5 -3
- data/doc/lib/RTFReport_rb.html +5 -3
- data/doc/lib/RTFWithQuerySupport_rb.html +5 -3
- data/doc/lib/RealFormat_rb.html +5 -3
- data/doc/lib/ResourceScenario_rb.html +5 -3
- data/doc/lib/Resource_rb.html +5 -3
- data/doc/lib/RichTextDocument_rb.html +5 -3
- data/doc/lib/RichTextElement_rb.html +5 -3
- data/doc/lib/RichTextFunctionExample_rb.html +5 -3
- data/doc/lib/RichTextFunctionHandler_rb.html +5 -3
- data/doc/lib/RichTextParser_rb.html +5 -3
- data/doc/lib/RichTextScanner_rb.html +5 -3
- data/doc/lib/RichTextSnip_rb.html +5 -3
- data/doc/lib/RichTextSyntaxRules_rb.html +5 -3
- data/doc/lib/RichText_rb.html +5 -3
- data/doc/lib/RuntimeConfig_rb.html +5 -3
- data/doc/lib/ScenarioData_rb.html +5 -3
- data/doc/lib/Scenario_rb.html +5 -3
- data/doc/lib/Scoreboard_rb.html +7 -3
- data/doc/lib/SheetHandlerBase_rb.html +5 -3
- data/doc/lib/SheetReceiver_rb.html +5 -3
- data/doc/lib/SheetSender_rb.html +5 -3
- data/doc/lib/ShiftAssignments_rb.html +5 -3
- data/doc/lib/ShiftScenario_rb.html +5 -3
- data/doc/lib/Shift_rb.html +5 -3
- data/doc/lib/SimpleQueryExpander_rb.html +5 -3
- data/doc/lib/SourceFileInfo_rb.html +5 -3
- data/doc/lib/StatusSheetReceiver_rb.html +5 -3
- data/doc/lib/StatusSheetSender_rb.html +5 -3
- data/doc/lib/SyntaxReference_rb.html +5 -3
- data/doc/lib/TOCEntry_rb.html +5 -3
- data/doc/lib/TableColumnDefinition_rb.html +5 -3
- data/doc/lib/TableOfContents_rb.html +5 -3
- data/doc/lib/TaskDependency_rb.html +5 -3
- data/doc/lib/TaskJuggler_rb.html +5 -3
- data/doc/lib/TaskScenario_rb.html +5 -3
- data/doc/lib/Task_rb.html +5 -3
- data/doc/lib/TextFormatter_rb.html +6 -4
- data/doc/lib/TextParser/Pattern_rb.html +5 -3
- data/doc/lib/TextParser/Rule_rb.html +5 -3
- data/doc/lib/TextParser/StackElement_rb.html +5 -3
- data/doc/lib/TextParser/State_rb.html +6 -4
- data/doc/lib/TextParser/TokenDoc_rb.html +5 -3
- data/doc/lib/TextParser_rb.html +5 -3
- data/doc/lib/TextScanner_rb.html +5 -3
- data/doc/lib/TimeSheetReceiver_rb.html +5 -3
- data/doc/lib/TimeSheetSender_rb.html +5 -3
- data/doc/lib/TimeSheetSummary_rb.html +6 -4
- data/doc/lib/TimeSheets_rb.html +5 -3
- data/doc/lib/Tj3AppBase_rb.html +5 -3
- data/doc/lib/Tj3Config_rb.html +5 -3
- data/doc/lib/Tj3SheetAppBase_rb.html +5 -3
- data/doc/lib/TjException_rb.html +5 -3
- data/doc/lib/TjTime_rb.html +5 -3
- data/doc/lib/TjpExample_rb.html +5 -3
- data/doc/lib/TjpSyntaxRules_rb.html +5 -3
- data/doc/lib/URLParameter_rb.html +5 -3
- data/doc/lib/UTF8String_rb.html +5 -3
- data/doc/lib/UserManual_rb.html +5 -3
- data/doc/lib/VimSyntax_rb.html +6 -4
- data/doc/lib/WorkingHours_rb.html +5 -3
- data/doc/lib/XMLDocument_rb.html +5 -3
- data/doc/lib/XMLElement_rb.html +5 -3
- data/doc/lib/daemon/Daemon_rb.html +5 -3
- data/doc/lib/daemon/ProcessIntercom_rb.html +7 -3
- data/doc/lib/daemon/ProjectBroker_rb.html +5 -3
- data/doc/lib/daemon/ProjectServer_rb.html +5 -3
- data/doc/lib/daemon/ReportServer_rb.html +5 -3
- data/doc/lib/daemon/ReportServlet_rb.html +69 -0
- data/doc/lib/daemon/WebServer_rb.html +9 -3
- data/doc/lib/daemon/WelcomePage_rb.html +71 -0
- data/doc/lib/deep_copy_rb.html +5 -3
- data/doc/lib/reports/CSVFile_rb.html +5 -3
- data/doc/lib/reports/CollisionDetector_rb.html +5 -3
- data/doc/lib/reports/ColumnTable_rb.html +5 -3
- data/doc/lib/reports/GanttChart_rb.html +5 -3
- data/doc/lib/reports/GanttContainer_rb.html +5 -3
- data/doc/lib/reports/GanttHeaderScaleItem_rb.html +5 -3
- data/doc/lib/reports/GanttHeader_rb.html +5 -3
- data/doc/lib/reports/GanttLine_rb.html +5 -3
- data/doc/lib/reports/GanttLoadStack_rb.html +5 -3
- data/doc/lib/reports/GanttMilestone_rb.html +5 -3
- data/doc/lib/reports/GanttRouter_rb.html +5 -3
- data/doc/lib/reports/GanttTaskBar_rb.html +5 -3
- data/doc/lib/reports/HTMLGraphics_rb.html +5 -3
- data/doc/lib/reports/Navigator_rb.html +5 -3
- data/doc/lib/reports/NikuReport_rb.html +5 -3
- data/doc/lib/reports/ReportBase_rb.html +5 -3
- data/doc/lib/reports/ReportContext_rb.html +5 -3
- data/doc/lib/reports/ReportTableCell_rb.html +5 -3
- data/doc/lib/reports/ReportTableColumn_rb.html +5 -3
- data/doc/lib/reports/ReportTableLegend_rb.html +5 -3
- data/doc/lib/reports/ReportTableLine_rb.html +5 -3
- data/doc/lib/reports/ReportTable_rb.html +5 -3
- data/doc/lib/reports/Report_rb.html +5 -3
- data/doc/lib/reports/ResourceListRE_rb.html +5 -3
- data/doc/lib/reports/StatusSheetReport_rb.html +5 -3
- data/doc/lib/reports/TableReport_rb.html +5 -3
- data/doc/lib/reports/TaskListRE_rb.html +5 -3
- data/doc/lib/reports/TextReport_rb.html +5 -3
- data/doc/lib/reports/TimeSheetReport_rb.html +5 -3
- data/doc/lib/reports/TjpExportRE_rb.html +5 -3
- data/doc/lib/{taskjuggler3_rb.html → tj3_rb.html} +7 -5
- data/doc/lib/tj3client_rb.html +5 -3
- data/doc/lib/tj3d_rb.html +6 -4
- data/doc/lib/tj3man_rb.html +5 -3
- data/doc/lib/tj3ss_receiver_rb.html +5 -3
- data/doc/lib/tj3ss_sender_rb.html +5 -3
- data/doc/lib/tj3ts_receiver_rb.html +5 -3
- data/doc/lib/tj3ts_sender_rb.html +5 -3
- data/doc/lib/tj3ts_summary_rb.html +5 -3
- data/examples/tutorial.tjp +13 -5
- data/gem_spec.rb +3 -0
- data/lib/Account.rb +2 -1
- data/lib/AccountScenario.rb +2 -1
- data/lib/Allocation.rb +2 -1
- data/lib/AppConfig.rb +2 -1
- data/lib/AttributeBase.rb +19 -5
- data/lib/AttributeDefinition.rb +2 -1
- data/lib/Attributes.rb +49 -38
- data/lib/BatchProcessor.rb +2 -1
- data/lib/Booking.rb +2 -1
- data/lib/Charge.rb +2 -1
- data/lib/ChargeSet.rb +2 -1
- data/lib/DataCache.rb +15 -1
- data/lib/FileList.rb +2 -1
- data/lib/HTMLDocument.rb +2 -1
- data/lib/Interval.rb +2 -1
- data/lib/IntervalList.rb +100 -0
- data/lib/Journal.rb +8 -2
- data/lib/KeywordArray.rb +2 -1
- data/lib/KeywordDocumentation.rb +10 -6
- data/lib/Limits.rb +2 -1
- data/lib/Log.rb +3 -2
- data/lib/LogFile.rb +2 -1
- data/lib/LogicalExpression.rb +2 -1
- data/lib/LogicalFunction.rb +2 -1
- data/lib/LogicalOperation.rb +2 -1
- data/lib/MacroTable.rb +2 -1
- data/lib/MessageHandler.rb +2 -1
- data/lib/Project.rb +92 -25
- data/lib/ProjectFileParser.rb +7 -2
- data/lib/ProjectFileScanner.rb +2 -1
- data/lib/PropertyList.rb +2 -1
- data/lib/PropertySet.rb +2 -6
- data/lib/PropertyTreeNode.rb +22 -44
- data/lib/Query.rb +32 -13
- data/lib/RTFHandlers.rb +2 -1
- data/lib/RTFNavigator.rb +2 -1
- data/lib/RTFQuery.rb +3 -2
- data/lib/RTFReport.rb +2 -1
- data/lib/RTFReportLink.rb +2 -1
- data/lib/RTFWithQuerySupport.rb +2 -1
- data/lib/RealFormat.rb +2 -1
- data/lib/Resource.rb +2 -1
- data/lib/ResourceScenario.rb +35 -14
- data/lib/RichText.rb +2 -1
- data/lib/RichTextDocument.rb +2 -1
- data/lib/RichTextElement.rb +2 -1
- data/lib/RichTextFunctionExample.rb +2 -1
- data/lib/RichTextFunctionHandler.rb +2 -1
- data/lib/RichTextParser.rb +2 -1
- data/lib/RichTextScanner.rb +2 -1
- data/lib/RichTextSnip.rb +2 -1
- data/lib/RichTextSyntaxRules.rb +2 -1
- data/lib/RuntimeConfig.rb +2 -1
- data/lib/Scenario.rb +2 -1
- data/lib/ScenarioData.rb +2 -1
- data/lib/Scoreboard.rb +27 -8
- data/lib/SheetHandlerBase.rb +2 -1
- data/lib/SheetReceiver.rb +2 -1
- data/lib/SheetSender.rb +2 -1
- data/lib/Shift.rb +2 -1
- data/lib/ShiftAssignments.rb +2 -1
- data/lib/ShiftScenario.rb +2 -1
- data/lib/SimpleQueryExpander.rb +2 -1
- data/lib/SourceFileInfo.rb +2 -1
- data/lib/StatusSheetReceiver.rb +2 -1
- data/lib/StatusSheetSender.rb +2 -1
- data/lib/SyntaxReference.rb +2 -1
- data/lib/TOCEntry.rb +2 -1
- data/lib/TableColumnDefinition.rb +9 -2
- data/lib/TableOfContents.rb +2 -1
- data/lib/Task.rb +2 -1
- data/lib/TaskDependency.rb +2 -1
- data/lib/TaskJuggler.rb +8 -6
- data/lib/TaskScenario.rb +337 -153
- data/lib/TextFormatter.rb +3 -2
- data/lib/TextParser.rb +7 -2
- data/lib/TextParser/Pattern.rb +2 -1
- data/lib/TextParser/Rule.rb +2 -1
- data/lib/TextParser/StackElement.rb +2 -1
- data/lib/TextParser/State.rb +3 -2
- data/lib/TextParser/TokenDoc.rb +2 -1
- data/lib/TextScanner.rb +12 -5
- data/lib/TimeSheetReceiver.rb +2 -1
- data/lib/TimeSheetSender.rb +2 -1
- data/lib/TimeSheetSummary.rb +3 -2
- data/lib/TimeSheets.rb +2 -1
- data/lib/Tj3AppBase.rb +6 -5
- data/lib/Tj3Config.rb +5 -4
- data/lib/Tj3SheetAppBase.rb +2 -1
- data/lib/TjException.rb +2 -1
- data/lib/TjTime.rb +2 -1
- data/lib/TjpExample.rb +2 -1
- data/lib/TjpSyntaxRules.rb +264 -65
- data/lib/URLParameter.rb +2 -1
- data/lib/UTF8String.rb +2 -1
- data/lib/UserManual.rb +2 -1
- data/lib/VimSyntax.rb +3 -2
- data/lib/WorkingHours.rb +2 -1
- data/lib/XMLDocument.rb +2 -1
- data/lib/XMLElement.rb +2 -1
- data/lib/daemon/Daemon.rb +3 -1
- data/lib/daemon/ProcessIntercom.rb +3 -1
- data/lib/daemon/ProjectBroker.rb +84 -32
- data/lib/daemon/ProjectServer.rb +5 -3
- data/lib/daemon/ReportServer.rb +8 -5
- data/lib/daemon/ReportServlet.rb +166 -0
- data/lib/daemon/WebServer.rb +6 -150
- data/lib/daemon/WelcomePage.rb +80 -0
- data/lib/deep_copy.rb +2 -1
- data/lib/reports/CSVFile.rb +2 -1
- data/lib/reports/CollisionDetector.rb +2 -1
- data/lib/reports/ColumnTable.rb +2 -1
- data/lib/reports/GanttChart.rb +2 -1
- data/lib/reports/GanttContainer.rb +3 -4
- data/lib/reports/GanttHeader.rb +2 -1
- data/lib/reports/GanttHeaderScaleItem.rb +2 -1
- data/lib/reports/GanttLine.rb +12 -10
- data/lib/reports/GanttLoadStack.rb +2 -1
- data/lib/reports/GanttMilestone.rb +3 -3
- data/lib/reports/GanttRouter.rb +4 -1
- data/lib/reports/GanttTaskBar.rb +9 -7
- data/lib/reports/HTMLGraphics.rb +2 -1
- data/lib/reports/Navigator.rb +2 -1
- data/lib/reports/NikuReport.rb +79 -49
- data/lib/reports/Report.rb +42 -10
- data/lib/reports/ReportBase.rb +2 -1
- data/lib/reports/ReportContext.rb +2 -1
- data/lib/reports/ReportTable.rb +2 -1
- data/lib/reports/ReportTableCell.rb +63 -28
- data/lib/reports/ReportTableColumn.rb +2 -1
- data/lib/reports/ReportTableLegend.rb +5 -5
- data/lib/reports/ReportTableLine.rb +2 -1
- data/lib/reports/ResourceListRE.rb +2 -1
- data/lib/reports/StatusSheetReport.rb +4 -2
- data/lib/reports/TableReport.rb +42 -38
- data/lib/reports/TaskListRE.rb +4 -2
- data/lib/reports/TextReport.rb +2 -1
- data/lib/reports/TimeSheetReport.rb +4 -2
- data/lib/reports/TjpExportRE.rb +4 -2
- data/lib/{taskjuggler3.rb → tj3.rb} +6 -5
- data/lib/tj3client.rb +19 -36
- data/lib/tj3d.rb +6 -2
- data/lib/tj3man.rb +4 -3
- data/lib/tj3ss_receiver.rb +2 -1
- data/lib/tj3ss_sender.rb +2 -1
- data/lib/tj3ts_receiver.rb +2 -1
- data/lib/tj3ts_sender.rb +2 -1
- data/lib/tj3ts_summary.rb +2 -1
- data/manual/Day_To_Day_Juggling +36 -0
- data/manual/How_To_Contribute +9 -4
- data/manual/Installation +10 -3
- data/manual/TaskJuggler_Internals +0 -2
- data/manual/Tutorial +25 -3
- data/prj_cfg.rb +4 -2
- data/spec/IntervalList_spec.rb +138 -0
- data/spec/ProjectBroker_spec.rb +133 -0
- data/tasks/changelog.rake +41 -24
- data/tasks/csts.rake +1 -0
- data/tasks/gem.rake +1 -0
- data/tasks/rcov.rake +1 -1
- data/tasks/spec.rake +7 -0
- data/tasks/test.rake +1 -0
- data/test/MessageChecker.rb +2 -1
- data/test/TestSuite/CSV-Reports/niku.tjp +70 -0
- data/test/TestSuite/CSV-Reports/{celltext-Reference.csv → refs/celltext.csv} +0 -0
- data/test/TestSuite/CSV-Reports/refs/niku.csv +5 -0
- data/test/TestSuite/CSV-Reports/{resourcereport-Reference.csv → refs/resourcereport.csv} +0 -0
- data/test/TestSuite/CSV-Reports/{resourcereport_with_tasks-Reference.csv → refs/resourcereport_with_tasks.csv} +0 -0
- data/test/TestSuite/CSV-Reports/{sortByTree-Reference.csv → refs/sortByTree.csv} +0 -0
- data/test/TestSuite/CSV-Reports/{sortBy_duration.down-Reference.csv → refs/sortBy_duration.down.csv} +0 -0
- data/test/TestSuite/CSV-Reports/{sortBy_effort.up-Reference.csv → refs/sortBy_effort.up.csv} +0 -0
- data/test/TestSuite/CSV-Reports/{sortBy_plan.start.down-Reference.csv → refs/sortBy_plan.start.down.csv} +0 -0
- data/test/TestSuite/CSV-Reports/{taskreport-Reference.csv → refs/taskreport.csv} +0 -0
- data/test/TestSuite/CSV-Reports/{taskreport_with_resources-Reference.csv → refs/taskreport_with_resources.csv} +0 -0
- data/test/TestSuite/CSV-Reports/{weekly-Reference.csv → refs/weekly.csv} +0 -0
- data/test/TestSuite/HTML-Reports/Alerts.tjp +12 -0
- data/test/TestSuite/Scheduler/Correct/Allocate.tjp +2 -2
- data/test/TestSuite/Scheduler/Correct/Container-2.tjp +1 -2
- data/test/TestSuite/Scheduler/Correct/InheritedAttributes.tjp +77 -0
- data/test/TestSuite/Scheduler/Correct/WeakDeps.tjp +40 -0
- data/test/TestSuite/Scheduler/Errors/loop_detected_12.tjp +2 -2
- data/test/TestSuite/Scheduler/Errors/loop_detected_13.tjp +3 -4
- data/test/TestSuite/Scheduler/Errors/loop_detected_3.tjp +2 -2
- data/test/TestSuite/Scheduler/Errors/loop_detected_6.tjp +8 -7
- data/test/TestSuite/Scheduler/Errors/onend_wrong_direction.tjp +19 -0
- data/test/TestSuite/Scheduler/Errors/onstart_wrong_direction.tjp +18 -0
- data/test/TestSuite/Scheduler/Errors/task_depend_multi.tjp +1 -2
- data/test/TestSuite/StatusSheets/StatusSheetTemplates/2002-03-02/boss_2002-03-02.tji +46 -0
- data/test/TestSuite/StatusSheets/StatusSheetTemplates/2002-03-02/dev2_2002-03-02.tji +22 -0
- data/test/TestSuite/StatusSheets/StatusSheetTemplates/2002-03-02/resources.yml +11 -0
- data/test/TestSuite/StatusSheets/StatusSheetTemplates/acceptable_intervals +1 -0
- data/test/TestSuite/StatusSheets/sender.log +256 -0
- data/test/TestSuite/StatusSheets/statussheets.log +9 -0
- data/test/TestSuite/StatusSheets/tj3d.log +395 -0
- data/test/TestSuite/Syntax/Correct/Limits-1.tjp +2 -0
- data/test/TestSuite/Syntax/Correct/Niku.tjp +6 -1
- data/test/TestSuite/Syntax/Correct/Scenario.tjp +4 -1
- data/test/TestSuite/Syntax/Correct/Supplement.tjp +12 -5
- data/test/TestSuite/Syntax/Correct/TaskPrefix.tji +3 -0
- data/test/TestSuite/Syntax/Correct/TaskPrefix.tjp +24 -0
- data/test/TestSuite/Syntax/Correct/css/tjreport.css +7 -2
- data/test/TestSuite/Syntax/Correct/tutorial.tjp +15 -5
- data/test/all.rb +2 -4
- data/test/test_BatchProcessor.rb +2 -1
- data/test/test_CSV-Reports.rb +34 -23
- data/test/test_CSVFile.rb +2 -1
- data/test/test_CollisionDetector.rb +3 -2
- data/test/test_Journal.rb +2 -1
- data/test/test_Limits.rb +2 -1
- data/test/test_LogicalExpression.rb +2 -1
- data/test/test_MacroTable.rb +2 -1
- data/test/test_Project.rb +3 -2
- data/test/test_ProjectFileScanner.rb +2 -1
- data/test/test_PropertySet.rb +2 -1
- data/test/test_Query.rb +2 -1
- data/test/test_RealFormat.rb +2 -1
- data/test/test_ReportGenerator.rb +2 -1
- data/test/test_RichText.rb +2 -1
- data/test/test_Scheduler.rb +2 -1
- data/test/test_ShiftAssignments.rb +2 -1
- data/test/test_SimpleQueryExpander.rb +2 -1
- data/test/test_Syntax.rb +2 -1
- data/test/test_TextFormatter.rb +3 -2
- data/test/test_TjTime.rb +2 -1
- data/test/test_TjpExample.rb +2 -1
- data/test/test_URLParameter.rb +2 -1
- data/test/test_UTF8String.rb +2 -1
- data/test/test_WorkingHours.rb +2 -1
- data/test/test_deep_copy.rb +2 -1
- metadata +74 -20
- data/doc/StringIO.html +0 -595
- data/test/TestSuite/Scheduler/Errors/loop_detected_7.tjp +0 -46
- data/test/TestSuite/Scheduler/Errors/loop_detected_8.tjp +0 -51
- data/test/TestSuite/Scheduler/Errors/multiple_durations.tjp +0 -11
|
@@ -142,6 +142,8 @@
|
|
|
142
142
|
|
|
143
143
|
<li><a href="../TaskJuggler/AttributeDefinition.html">TaskJuggler::AttributeDefinition</a></li>
|
|
144
144
|
|
|
145
|
+
<li><a href="../TaskJuggler/AttributeOverwrite.html">TaskJuggler::AttributeOverwrite</a></li>
|
|
146
|
+
|
|
145
147
|
<li><a href="../TaskJuggler/BatchProcessor.html">TaskJuggler::BatchProcessor</a></li>
|
|
146
148
|
|
|
147
149
|
<li><a href="../TaskJuggler/Booking.html">TaskJuggler::Booking</a></li>
|
|
@@ -220,6 +222,8 @@
|
|
|
220
222
|
|
|
221
223
|
<li><a href="../TaskJuggler/Interval.html">TaskJuggler::Interval</a></li>
|
|
222
224
|
|
|
225
|
+
<li><a href="../TaskJuggler/IntervalList.html">TaskJuggler::IntervalList</a></li>
|
|
226
|
+
|
|
223
227
|
<li><a href="../TaskJuggler/IntervalListAttribute.html">TaskJuggler::IntervalListAttribute</a></li>
|
|
224
228
|
|
|
225
229
|
<li><a href="../TaskJuggler/JobInfo.html">TaskJuggler::JobInfo</a></li>
|
|
@@ -252,6 +256,8 @@
|
|
|
252
256
|
|
|
253
257
|
<li><a href="../TaskJuggler/LogicalExpressionAttribute.html">TaskJuggler::LogicalExpressionAttribute</a></li>
|
|
254
258
|
|
|
259
|
+
<li><a href="../TaskJuggler/LogicalExpressionListAttribute.html">TaskJuggler::LogicalExpressionListAttribute</a></li>
|
|
260
|
+
|
|
255
261
|
<li><a href="../TaskJuggler/LogicalFlag.html">TaskJuggler::LogicalFlag</a></li>
|
|
256
262
|
|
|
257
263
|
<li><a href="../TaskJuggler/LogicalFunction.html">TaskJuggler::LogicalFunction</a></li>
|
|
@@ -532,6 +538,8 @@
|
|
|
532
538
|
|
|
533
539
|
<li><a href="../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
|
|
534
540
|
|
|
541
|
+
<li><a href="../TaskJuggler/WelcomePage.html">TaskJuggler::WelcomePage</a></li>
|
|
542
|
+
|
|
535
543
|
<li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
|
|
536
544
|
|
|
537
545
|
<li><a href="../TaskJuggler/WorkingHoursAttribute.html">TaskJuggler::WorkingHoursAttribute</a></li>
|
|
@@ -558,8 +566,6 @@
|
|
|
558
566
|
|
|
559
567
|
<li><a href="../String.html">String</a></li>
|
|
560
568
|
|
|
561
|
-
<li><a href="../StringIO.html">StringIO</a></li>
|
|
562
|
-
|
|
563
569
|
</ul>
|
|
564
570
|
<div id="no-class-search-results" style="display: none;">No matching classes.</div>
|
|
565
571
|
</div>
|
|
@@ -619,43 +625,43 @@ each of the values.
|
|
|
619
625
|
<div class="method-source-code"
|
|
620
626
|
id="new-source">
|
|
621
627
|
<pre>
|
|
622
|
-
<span class="ruby-comment cmt"># File lib/reports/GanttLoadStack.rb, line
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
628
|
+
<span class="ruby-comment cmt"># File lib/reports/GanttLoadStack.rb, line 28</span>
|
|
629
|
+
28: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">line</span>, <span class="ruby-identifier">x</span>, <span class="ruby-identifier">w</span>, <span class="ruby-identifier">values</span>, <span class="ruby-identifier">categories</span>)
|
|
630
|
+
29: <span class="ruby-ivar">@line</span> = <span class="ruby-identifier">line</span>
|
|
631
|
+
30: <span class="ruby-ivar">@lineHeight</span> = <span class="ruby-identifier">line</span>.<span class="ruby-identifier">height</span>
|
|
632
|
+
31: <span class="ruby-ivar">@x</span> = <span class="ruby-identifier">x</span>
|
|
633
|
+
32: <span class="ruby-ivar">@y</span> = <span class="ruby-ivar">@line</span>.<span class="ruby-identifier">y</span>
|
|
634
|
+
33: <span class="ruby-ivar">@w</span> = <span class="ruby-identifier">w</span>
|
|
635
|
+
34: <span class="ruby-ivar">@drawFrame</span> = <span class="ruby-keyword kw">false</span>
|
|
636
|
+
35: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">values</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">categories</span>.<span class="ruby-identifier">length</span>
|
|
637
|
+
36: <span class="ruby-identifier">raise</span> <span class="ruby-value str">"Values and categories must have the same number of entries!"</span>
|
|
638
|
+
37: <span class="ruby-keyword kw">end</span>
|
|
639
|
+
38: <span class="ruby-ivar">@categories</span> = <span class="ruby-identifier">categories</span>
|
|
640
|
+
39: <span class="ruby-identifier">i</span> = <span class="ruby-value">0</span>
|
|
641
|
+
40: <span class="ruby-ivar">@categories</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">cat</span><span class="ruby-operator">|</span>
|
|
642
|
+
41: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">cat</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">&&</span> <span class="ruby-identifier">values</span>[<span class="ruby-identifier">i</span>] <span class="ruby-operator">></span> <span class="ruby-value">0</span>
|
|
643
|
+
42: <span class="ruby-ivar">@drawFrame</span> = <span class="ruby-keyword kw">true</span>
|
|
644
|
+
43: <span class="ruby-keyword kw">break</span>
|
|
645
|
+
44: <span class="ruby-keyword kw">end</span>
|
|
646
|
+
45: <span class="ruby-identifier">i</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
|
|
647
|
+
46: <span class="ruby-keyword kw">end</span>
|
|
648
|
+
47:
|
|
649
|
+
48: <span class="ruby-comment cmt"># Convert the values to chart Y coordinates and store them in yLevels.</span>
|
|
650
|
+
49: <span class="ruby-identifier">sum</span> = <span class="ruby-value">0</span>
|
|
651
|
+
50: <span class="ruby-identifier">values</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">v</span><span class="ruby-operator">|</span> <span class="ruby-identifier">sum</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">v</span> }
|
|
652
|
+
51: <span class="ruby-comment cmt"># If the sum is 0, all yLevels values must be 0 as well.</span>
|
|
653
|
+
52: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">sum</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
|
|
654
|
+
53: <span class="ruby-ivar">@yLevels</span> = <span class="ruby-keyword kw">nil</span>
|
|
655
|
+
54: <span class="ruby-ivar">@drawFrame</span> = <span class="ruby-keyword kw">true</span>
|
|
656
|
+
55: <span class="ruby-keyword kw">else</span>
|
|
657
|
+
56: <span class="ruby-ivar">@yLevels</span> = []
|
|
658
|
+
57: <span class="ruby-identifier">values</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">v</span><span class="ruby-operator">|</span>
|
|
659
|
+
58: <span class="ruby-comment cmt"># We leave 1 pixel to the top and bottom of the line and need 1 pixel</span>
|
|
660
|
+
59: <span class="ruby-comment cmt"># for the frame.</span>
|
|
661
|
+
60: <span class="ruby-ivar">@yLevels</span> <span class="ruby-operator"><<</span> (<span class="ruby-ivar">@lineHeight</span> <span class="ruby-operator">-</span> <span class="ruby-value">4</span>) * <span class="ruby-identifier">v</span> <span class="ruby-operator">/</span> <span class="ruby-identifier">sum</span>
|
|
662
|
+
61: <span class="ruby-keyword kw">end</span>
|
|
663
|
+
62: <span class="ruby-keyword kw">end</span>
|
|
664
|
+
63: <span class="ruby-keyword kw">end</span></pre>
|
|
659
665
|
</div>
|
|
660
666
|
|
|
661
667
|
</div>
|
|
@@ -692,11 +698,11 @@ each of the values.
|
|
|
692
698
|
<div class="method-source-code"
|
|
693
699
|
id="add-locked-ones-source">
|
|
694
700
|
<pre>
|
|
695
|
-
<span class="ruby-comment cmt"># File lib/reports/GanttLoadStack.rb, line
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
701
|
+
<span class="ruby-comment cmt"># File lib/reports/GanttLoadStack.rb, line 65</span>
|
|
702
|
+
65: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">addBlockedZones</span>(<span class="ruby-identifier">router</span>)
|
|
703
|
+
66: <span class="ruby-comment cmt"># Horizontal block</span>
|
|
704
|
+
67: <span class="ruby-identifier">router</span>.<span class="ruby-identifier">addZone</span>(<span class="ruby-ivar">@x</span> <span class="ruby-operator">-</span> <span class="ruby-value">2</span>, <span class="ruby-ivar">@y</span>, <span class="ruby-ivar">@w</span> <span class="ruby-operator">+</span> <span class="ruby-value">4</span>, <span class="ruby-ivar">@lineHeight</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>)
|
|
705
|
+
68: <span class="ruby-keyword kw">end</span></pre>
|
|
700
706
|
</div>
|
|
701
707
|
|
|
702
708
|
</div>
|
|
@@ -730,45 +736,45 @@ href="GanttLoadStack.html">GanttLoadStack</a> into HTML elements.
|
|
|
730
736
|
<div class="method-source-code"
|
|
731
737
|
id="to-html-source">
|
|
732
738
|
<pre>
|
|
733
|
-
<span class="ruby-comment cmt"># File lib/reports/GanttLoadStack.rb, line
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
739
|
+
<span class="ruby-comment cmt"># File lib/reports/GanttLoadStack.rb, line 72</span>
|
|
740
|
+
72: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_html</span>
|
|
741
|
+
73: <span class="ruby-comment cmt"># Draw nothing if all values are 0.</span>
|
|
742
|
+
74: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@yLevels</span>
|
|
743
|
+
75:
|
|
744
|
+
76: <span class="ruby-identifier">html</span> = []
|
|
745
|
+
77: <span class="ruby-comment cmt"># Draw a background rectable to create a frame. In case the frame is not</span>
|
|
746
|
+
78: <span class="ruby-comment cmt"># fully filled by the stack, we need to draw a real frame to keep the</span>
|
|
747
|
+
79: <span class="ruby-comment cmt"># background.</span>
|
|
748
|
+
80: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@drawFrame</span>
|
|
749
|
+
81: <span class="ruby-comment cmt"># Top frame line</span>
|
|
750
|
+
82: <span class="ruby-identifier">html</span> <span class="ruby-operator"><<</span> <span class="ruby-ivar">@line</span>.<span class="ruby-identifier">lineToHTML</span>(<span class="ruby-ivar">@x</span>, <span class="ruby-value">1</span>, <span class="ruby-ivar">@x</span> <span class="ruby-operator">+</span> <span class="ruby-ivar">@w</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>, <span class="ruby-value">1</span>, <span class="ruby-value str">'loadstackframe'</span>)
|
|
751
|
+
83: <span class="ruby-comment cmt"># Bottom frame line</span>
|
|
752
|
+
84: <span class="ruby-identifier">html</span> <span class="ruby-operator"><<</span> <span class="ruby-ivar">@line</span>.<span class="ruby-identifier">lineToHTML</span>(<span class="ruby-ivar">@x</span>, <span class="ruby-ivar">@lineHeight</span> <span class="ruby-operator">-</span> <span class="ruby-value">2</span>, <span class="ruby-ivar">@x</span> <span class="ruby-operator">+</span> <span class="ruby-ivar">@w</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>,
|
|
753
|
+
85: <span class="ruby-ivar">@lineHeight</span> <span class="ruby-operator">-</span> <span class="ruby-value">2</span>, <span class="ruby-value str">'loadstackframe'</span>)
|
|
754
|
+
86: <span class="ruby-comment cmt"># Left frame line</span>
|
|
755
|
+
87: <span class="ruby-identifier">html</span> <span class="ruby-operator"><<</span> <span class="ruby-ivar">@line</span>.<span class="ruby-identifier">lineToHTML</span>(<span class="ruby-ivar">@x</span>, <span class="ruby-value">1</span>, <span class="ruby-ivar">@x</span>, <span class="ruby-ivar">@lineHeight</span> <span class="ruby-operator">-</span> <span class="ruby-value">2</span>, <span class="ruby-value str">'loadstackframe'</span>)
|
|
756
|
+
88: <span class="ruby-comment cmt"># Right frame line</span>
|
|
757
|
+
89: <span class="ruby-identifier">html</span> <span class="ruby-operator"><<</span> <span class="ruby-ivar">@line</span>.<span class="ruby-identifier">lineToHTML</span>(<span class="ruby-ivar">@x</span> <span class="ruby-operator">+</span> <span class="ruby-ivar">@w</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>, <span class="ruby-value">1</span>, <span class="ruby-ivar">@x</span> <span class="ruby-operator">+</span> <span class="ruby-ivar">@w</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>, <span class="ruby-ivar">@lineHeight</span> <span class="ruby-operator">-</span> <span class="ruby-value">2</span>,
|
|
758
|
+
90: <span class="ruby-value str">'loadstackframe'</span>)
|
|
759
|
+
91: <span class="ruby-keyword kw">else</span>
|
|
760
|
+
92: <span class="ruby-identifier">html</span> <span class="ruby-operator"><<</span> <span class="ruby-ivar">@line</span>.<span class="ruby-identifier">rectToHTML</span>(<span class="ruby-ivar">@x</span>, <span class="ruby-value">1</span>, <span class="ruby-ivar">@w</span>, <span class="ruby-ivar">@lineHeight</span> <span class="ruby-operator">-</span> <span class="ruby-value">2</span>,
|
|
761
|
+
93: <span class="ruby-value str">'loadstackframe'</span>)
|
|
762
|
+
94: <span class="ruby-keyword kw">end</span>
|
|
763
|
+
95:
|
|
764
|
+
96: <span class="ruby-identifier">yPos</span> = <span class="ruby-value">2</span>
|
|
765
|
+
97: <span class="ruby-comment cmt"># Than draw the slighly narrower bars as a pile ontop of it.</span>
|
|
766
|
+
98: (<span class="ruby-ivar">@yLevels</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>).<span class="ruby-identifier">downto</span>(<span class="ruby-value">0</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
|
|
767
|
+
99: <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@yLevels</span>[<span class="ruby-identifier">i</span>] <span class="ruby-operator"><=</span> <span class="ruby-value">0</span>
|
|
768
|
+
100: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@categories</span>[<span class="ruby-identifier">i</span>]
|
|
769
|
+
101: <span class="ruby-identifier">html</span> <span class="ruby-operator"><<</span> <span class="ruby-ivar">@line</span>.<span class="ruby-identifier">rectToHTML</span>(<span class="ruby-ivar">@x</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>, <span class="ruby-identifier">yPos</span>.<span class="ruby-identifier">to_i</span>, <span class="ruby-ivar">@w</span> <span class="ruby-operator">-</span> <span class="ruby-value">2</span>,
|
|
770
|
+
102: (<span class="ruby-identifier">yPos</span> <span class="ruby-operator">+</span> <span class="ruby-ivar">@yLevels</span>[<span class="ruby-identifier">i</span>]).<span class="ruby-identifier">to_i</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">yPos</span>.<span class="ruby-identifier">to_i</span>,
|
|
771
|
+
103: <span class="ruby-ivar">@categories</span>[<span class="ruby-identifier">i</span>])
|
|
772
|
+
104: <span class="ruby-keyword kw">end</span>
|
|
773
|
+
105: <span class="ruby-identifier">yPos</span> <span class="ruby-operator">+=</span> <span class="ruby-ivar">@yLevels</span>[<span class="ruby-identifier">i</span>]
|
|
774
|
+
106: <span class="ruby-keyword kw">end</span>
|
|
775
|
+
107:
|
|
776
|
+
108: <span class="ruby-identifier">html</span>
|
|
777
|
+
109: <span class="ruby-keyword kw">end</span></pre>
|
|
772
778
|
</div>
|
|
773
779
|
|
|
774
780
|
</div>
|
|
@@ -150,6 +150,8 @@
|
|
|
150
150
|
|
|
151
151
|
<li><a href="../TaskJuggler/AttributeDefinition.html">TaskJuggler::AttributeDefinition</a></li>
|
|
152
152
|
|
|
153
|
+
<li><a href="../TaskJuggler/AttributeOverwrite.html">TaskJuggler::AttributeOverwrite</a></li>
|
|
154
|
+
|
|
153
155
|
<li><a href="../TaskJuggler/BatchProcessor.html">TaskJuggler::BatchProcessor</a></li>
|
|
154
156
|
|
|
155
157
|
<li><a href="../TaskJuggler/Booking.html">TaskJuggler::Booking</a></li>
|
|
@@ -228,6 +230,8 @@
|
|
|
228
230
|
|
|
229
231
|
<li><a href="../TaskJuggler/Interval.html">TaskJuggler::Interval</a></li>
|
|
230
232
|
|
|
233
|
+
<li><a href="../TaskJuggler/IntervalList.html">TaskJuggler::IntervalList</a></li>
|
|
234
|
+
|
|
231
235
|
<li><a href="../TaskJuggler/IntervalListAttribute.html">TaskJuggler::IntervalListAttribute</a></li>
|
|
232
236
|
|
|
233
237
|
<li><a href="../TaskJuggler/JobInfo.html">TaskJuggler::JobInfo</a></li>
|
|
@@ -260,6 +264,8 @@
|
|
|
260
264
|
|
|
261
265
|
<li><a href="../TaskJuggler/LogicalExpressionAttribute.html">TaskJuggler::LogicalExpressionAttribute</a></li>
|
|
262
266
|
|
|
267
|
+
<li><a href="../TaskJuggler/LogicalExpressionListAttribute.html">TaskJuggler::LogicalExpressionListAttribute</a></li>
|
|
268
|
+
|
|
263
269
|
<li><a href="../TaskJuggler/LogicalFlag.html">TaskJuggler::LogicalFlag</a></li>
|
|
264
270
|
|
|
265
271
|
<li><a href="../TaskJuggler/LogicalFunction.html">TaskJuggler::LogicalFunction</a></li>
|
|
@@ -540,6 +546,8 @@
|
|
|
540
546
|
|
|
541
547
|
<li><a href="../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
|
|
542
548
|
|
|
549
|
+
<li><a href="../TaskJuggler/WelcomePage.html">TaskJuggler::WelcomePage</a></li>
|
|
550
|
+
|
|
543
551
|
<li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
|
|
544
552
|
|
|
545
553
|
<li><a href="../TaskJuggler/WorkingHoursAttribute.html">TaskJuggler::WorkingHoursAttribute</a></li>
|
|
@@ -566,8 +574,6 @@
|
|
|
566
574
|
|
|
567
575
|
<li><a href="../String.html">String</a></li>
|
|
568
576
|
|
|
569
|
-
<li><a href="../StringIO.html">StringIO</a></li>
|
|
570
|
-
|
|
571
577
|
</ul>
|
|
572
578
|
<div id="no-class-search-results" style="display: none;">No matching classes.</div>
|
|
573
579
|
</div>
|
|
@@ -605,7 +611,7 @@ task.
|
|
|
605
611
|
<div class="method-heading">
|
|
606
612
|
|
|
607
613
|
<span class="method-name">new</span><span
|
|
608
|
-
class="method-args">(
|
|
614
|
+
class="method-args">(lineHeight, x, y)</span>
|
|
609
615
|
<span class="method-click-advice">click to toggle source</span>
|
|
610
616
|
|
|
611
617
|
</div>
|
|
@@ -626,9 +632,8 @@ href="GanttChart.html">GanttChart</a>.
|
|
|
626
632
|
<div class="method-source-code"
|
|
627
633
|
id="new-source">
|
|
628
634
|
<pre>
|
|
629
|
-
<span class="ruby-comment cmt"># File lib/reports/GanttMilestone.rb, line
|
|
630
|
-
|
|
631
|
-
30: <span class="ruby-ivar">@task</span> = <span class="ruby-identifier">task</span>
|
|
635
|
+
<span class="ruby-comment cmt"># File lib/reports/GanttMilestone.rb, line 30</span>
|
|
636
|
+
30: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">lineHeight</span>, <span class="ruby-identifier">x</span>, <span class="ruby-identifier">y</span>)
|
|
632
637
|
31: <span class="ruby-ivar">@lineHeight</span> = <span class="ruby-identifier">lineHeight</span>
|
|
633
638
|
32: <span class="ruby-ivar">@x</span> = <span class="ruby-identifier">x</span>
|
|
634
639
|
33: <span class="ruby-ivar">@y</span> = <span class="ruby-identifier">y</span>
|
|
@@ -141,6 +141,8 @@
|
|
|
141
141
|
|
|
142
142
|
<li><a href="../TaskJuggler/AttributeDefinition.html">TaskJuggler::AttributeDefinition</a></li>
|
|
143
143
|
|
|
144
|
+
<li><a href="../TaskJuggler/AttributeOverwrite.html">TaskJuggler::AttributeOverwrite</a></li>
|
|
145
|
+
|
|
144
146
|
<li><a href="../TaskJuggler/BatchProcessor.html">TaskJuggler::BatchProcessor</a></li>
|
|
145
147
|
|
|
146
148
|
<li><a href="../TaskJuggler/Booking.html">TaskJuggler::Booking</a></li>
|
|
@@ -219,6 +221,8 @@
|
|
|
219
221
|
|
|
220
222
|
<li><a href="../TaskJuggler/Interval.html">TaskJuggler::Interval</a></li>
|
|
221
223
|
|
|
224
|
+
<li><a href="../TaskJuggler/IntervalList.html">TaskJuggler::IntervalList</a></li>
|
|
225
|
+
|
|
222
226
|
<li><a href="../TaskJuggler/IntervalListAttribute.html">TaskJuggler::IntervalListAttribute</a></li>
|
|
223
227
|
|
|
224
228
|
<li><a href="../TaskJuggler/JobInfo.html">TaskJuggler::JobInfo</a></li>
|
|
@@ -251,6 +255,8 @@
|
|
|
251
255
|
|
|
252
256
|
<li><a href="../TaskJuggler/LogicalExpressionAttribute.html">TaskJuggler::LogicalExpressionAttribute</a></li>
|
|
253
257
|
|
|
258
|
+
<li><a href="../TaskJuggler/LogicalExpressionListAttribute.html">TaskJuggler::LogicalExpressionListAttribute</a></li>
|
|
259
|
+
|
|
254
260
|
<li><a href="../TaskJuggler/LogicalFlag.html">TaskJuggler::LogicalFlag</a></li>
|
|
255
261
|
|
|
256
262
|
<li><a href="../TaskJuggler/LogicalFunction.html">TaskJuggler::LogicalFunction</a></li>
|
|
@@ -531,6 +537,8 @@
|
|
|
531
537
|
|
|
532
538
|
<li><a href="../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
|
|
533
539
|
|
|
540
|
+
<li><a href="../TaskJuggler/WelcomePage.html">TaskJuggler::WelcomePage</a></li>
|
|
541
|
+
|
|
534
542
|
<li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
|
|
535
543
|
|
|
536
544
|
<li><a href="../TaskJuggler/WorkingHoursAttribute.html">TaskJuggler::WorkingHoursAttribute</a></li>
|
|
@@ -557,8 +565,6 @@
|
|
|
557
565
|
|
|
558
566
|
<li><a href="../String.html">String</a></li>
|
|
559
567
|
|
|
560
|
-
<li><a href="../StringIO.html">StringIO</a></li>
|
|
561
|
-
|
|
562
568
|
</ul>
|
|
563
569
|
<div id="no-class-search-results" style="display: none;">No matching classes.</div>
|
|
564
570
|
</div>
|
|
@@ -641,13 +647,13 @@ is operating on.
|
|
|
641
647
|
<div class="method-source-code"
|
|
642
648
|
id="new-source">
|
|
643
649
|
<pre>
|
|
644
|
-
<span class="ruby-comment cmt"># File lib/reports/GanttRouter.rb, line
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
650
|
+
<span class="ruby-comment cmt"># File lib/reports/GanttRouter.rb, line 35</span>
|
|
651
|
+
35: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">width</span>, <span class="ruby-identifier">height</span>)
|
|
652
|
+
36: <span class="ruby-ivar">@width</span> = <span class="ruby-identifier">width</span>.<span class="ruby-identifier">to_i</span>
|
|
653
|
+
37: <span class="ruby-ivar">@height</span> = <span class="ruby-identifier">height</span>.<span class="ruby-identifier">to_i</span>
|
|
654
|
+
38:
|
|
655
|
+
39: <span class="ruby-ivar">@detector</span> = <span class="ruby-constant">CollisionDetector</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@width</span>, <span class="ruby-ivar">@height</span>)
|
|
656
|
+
40: <span class="ruby-keyword kw">end</span></pre>
|
|
651
657
|
</div>
|
|
652
658
|
|
|
653
659
|
</div>
|
|
@@ -684,10 +690,10 @@ is operating on.
|
|
|
684
690
|
<div class="method-source-code"
|
|
685
691
|
id="add-one-source">
|
|
686
692
|
<pre>
|
|
687
|
-
<span class="ruby-comment cmt"># File lib/reports/GanttRouter.rb, line
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
693
|
+
<span class="ruby-comment cmt"># File lib/reports/GanttRouter.rb, line 42</span>
|
|
694
|
+
42: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">addZone</span>(<span class="ruby-identifier">x</span>, <span class="ruby-identifier">y</span>, <span class="ruby-identifier">w</span>, <span class="ruby-identifier">h</span>, <span class="ruby-identifier">horiz</span>, <span class="ruby-identifier">vert</span>)
|
|
695
|
+
43: <span class="ruby-ivar">@detector</span>.<span class="ruby-identifier">addBlockedZone</span>(<span class="ruby-identifier">x</span>, <span class="ruby-identifier">y</span>, <span class="ruby-identifier">w</span>, <span class="ruby-identifier">h</span>, <span class="ruby-identifier">horiz</span>, <span class="ruby-identifier">vert</span>)
|
|
696
|
+
44: <span class="ruby-keyword kw">end</span></pre>
|
|
691
697
|
</div>
|
|
692
698
|
|
|
693
699
|
</div>
|
|
@@ -726,74 +732,74 @@ element.
|
|
|
726
732
|
<div class="method-source-code"
|
|
727
733
|
id="route-source">
|
|
728
734
|
<pre>
|
|
729
|
-
<span class="ruby-comment cmt"># File lib/reports/GanttRouter.rb, line
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
735
|
+
<span class="ruby-comment cmt"># File lib/reports/GanttRouter.rb, line 97</span>
|
|
736
|
+
97: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">route</span>(<span class="ruby-identifier">startX</span>, <span class="ruby-identifier">startY</span>, <span class="ruby-identifier">endX</span>, <span class="ruby-identifier">endY</span>)
|
|
737
|
+
98: <span class="ruby-identifier">points</span> = [ [ <span class="ruby-identifier">startX</span>, <span class="ruby-identifier">startY</span> ] ]
|
|
738
|
+
99: <span class="ruby-identifier">startGap</span> = <span class="ruby-constant">MinStartGap</span>
|
|
739
|
+
100: <span class="ruby-identifier">endGap</span> = <span class="ruby-constant">MinEndGap</span>
|
|
740
|
+
101:
|
|
741
|
+
102: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">endX</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">startX</span> <span class="ruby-operator">></span> <span class="ruby-identifier">startGap</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">endGap</span> <span class="ruby-operator">+</span> <span class="ruby-value">2</span>
|
|
742
|
+
103: <span class="ruby-comment cmt"># If the horizontal distance between start and end point is large enough</span>
|
|
743
|
+
104: <span class="ruby-comment cmt"># we can try a direct route.</span>
|
|
744
|
+
105: <span class="ruby-comment cmt">#</span>
|
|
745
|
+
106: <span class="ruby-comment cmt"># xSeg</span>
|
|
746
|
+
107: <span class="ruby-comment cmt"># |startGap|</span>
|
|
747
|
+
108: <span class="ruby-comment cmt"># startX/endX X--------1</span>
|
|
748
|
+
109: <span class="ruby-comment cmt"># |</span>
|
|
749
|
+
110: <span class="ruby-comment cmt"># |</span>
|
|
750
|
+
111: <span class="ruby-comment cmt"># 2------X endX/endY</span>
|
|
751
|
+
112: <span class="ruby-comment cmt"># |endGap|</span>
|
|
752
|
+
113: <span class="ruby-comment cmt">#</span>
|
|
753
|
+
114: <span class="ruby-identifier">xSeg</span> = <span class="ruby-identifier">placeLine</span>([ <span class="ruby-identifier">startY</span> <span class="ruby-operator">+</span> (<span class="ruby-identifier">startY</span> <span class="ruby-operator"><</span> <span class="ruby-identifier">endY</span> <span class="ruby-operator">?</span> <span class="ruby-value">1</span> <span class="ruby-operator">:</span> <span class="ruby-value">1</span>), <span class="ruby-identifier">endY</span> ],
|
|
754
|
+
115: <span class="ruby-keyword kw">false</span>, <span class="ruby-identifier">startX</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">startGap</span>, <span class="ruby-value">1</span>)
|
|
755
|
+
116: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">xSeg</span> <span class="ruby-operator">&&</span> <span class="ruby-identifier">xSeg</span> <span class="ruby-operator"><</span> <span class="ruby-identifier">endX</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">endGap</span>
|
|
756
|
+
117: <span class="ruby-comment cmt"># The simple version works. Add the lines.</span>
|
|
757
|
+
118: <span class="ruby-identifier">addLineTo</span>(<span class="ruby-identifier">points</span>, <span class="ruby-identifier">xSeg</span>, <span class="ruby-identifier">startY</span>) <span class="ruby-comment cmt"># Point 1</span>
|
|
758
|
+
119: <span class="ruby-identifier">addLineTo</span>(<span class="ruby-identifier">points</span>, <span class="ruby-identifier">xSeg</span>, <span class="ruby-identifier">endY</span>) <span class="ruby-comment cmt"># Point 2</span>
|
|
759
|
+
120: <span class="ruby-identifier">addLineTo</span>(<span class="ruby-identifier">points</span>, <span class="ruby-identifier">endX</span>, <span class="ruby-identifier">endY</span>)
|
|
760
|
+
121: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">points</span>
|
|
761
|
+
122: <span class="ruby-keyword kw">end</span>
|
|
762
|
+
123: <span class="ruby-keyword kw">end</span>
|
|
763
|
+
124:
|
|
764
|
+
125: <span class="ruby-comment cmt"># If the simple approach above fails, the try a more complex routing</span>
|
|
765
|
+
126: <span class="ruby-comment cmt"># strategy.</span>
|
|
766
|
+
127: <span class="ruby-comment cmt">#</span>
|
|
767
|
+
128: <span class="ruby-comment cmt"># x1</span>
|
|
768
|
+
129: <span class="ruby-comment cmt"># |startGap|</span>
|
|
769
|
+
130: <span class="ruby-comment cmt"># startX/startY X--------1 yLS</span>
|
|
770
|
+
131: <span class="ruby-comment cmt"># |</span>
|
|
771
|
+
132: <span class="ruby-comment cmt"># 3---------------2 ySeg</span>
|
|
772
|
+
133: <span class="ruby-comment cmt"># |</span>
|
|
773
|
+
134: <span class="ruby-comment cmt"># 4------X endX/endY</span>
|
|
774
|
+
135: <span class="ruby-comment cmt"># |endGap|</span>
|
|
775
|
+
136: <span class="ruby-comment cmt"># x2</span>
|
|
776
|
+
137:
|
|
777
|
+
138: <span class="ruby-comment cmt"># Place horizontal segue. We don't know the width yet, so we have to</span>
|
|
778
|
+
139: <span class="ruby-comment cmt"># assume full width. That's acceptable for horizontal lines.</span>
|
|
779
|
+
140: <span class="ruby-identifier">deltaY</span> = <span class="ruby-identifier">startY</span> <span class="ruby-operator"><</span> <span class="ruby-identifier">endY</span> <span class="ruby-operator">?</span> <span class="ruby-value">1</span> <span class="ruby-operator">:</span> <span class="ruby-value">1</span>
|
|
780
|
+
141: <span class="ruby-identifier">ySeg</span> = <span class="ruby-identifier">placeLine</span>([ <span class="ruby-value">0</span>, <span class="ruby-ivar">@width</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span> ], <span class="ruby-keyword kw">true</span>, <span class="ruby-identifier">startY</span> <span class="ruby-operator">+</span> <span class="ruby-value">2</span> * <span class="ruby-identifier">deltaY</span>, <span class="ruby-identifier">deltaY</span>)
|
|
781
|
+
142: <span class="ruby-identifier">raise</span> <span class="ruby-value str">"Routing failed"</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">ySeg</span>
|
|
782
|
+
143:
|
|
783
|
+
144: <span class="ruby-comment cmt"># Place 1st vertical</span>
|
|
784
|
+
145: <span class="ruby-identifier">x1</span> = <span class="ruby-identifier">placeLine</span>([ <span class="ruby-identifier">startY</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">deltaY</span>, <span class="ruby-identifier">ySeg</span> ], <span class="ruby-keyword kw">false</span>, <span class="ruby-identifier">startX</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">startGap</span>, <span class="ruby-value">1</span>)
|
|
785
|
+
146: <span class="ruby-identifier">raise</span> <span class="ruby-value str">"Routing failed"</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">x1</span>
|
|
786
|
+
147:
|
|
787
|
+
148: <span class="ruby-comment cmt"># Place 2nd vertical</span>
|
|
788
|
+
149: <span class="ruby-identifier">x2</span> = <span class="ruby-identifier">placeLine</span>([ <span class="ruby-identifier">ySeg</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">deltaY</span>, <span class="ruby-identifier">endY</span> ], <span class="ruby-keyword kw">false</span>, <span class="ruby-identifier">endX</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">endGap</span>, <span class="ruby-value">1</span>)
|
|
789
|
+
150: <span class="ruby-identifier">raise</span> <span class="ruby-value str">"Routing failed"</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">x2</span>
|
|
790
|
+
151:
|
|
791
|
+
152: <span class="ruby-comment cmt"># Now add the points 1 - 4 to the list and mark the zones around them. For</span>
|
|
792
|
+
153: <span class="ruby-comment cmt"># vertical lines, we only mark vertical zones and vice versa.</span>
|
|
793
|
+
154: <span class="ruby-identifier">addLineTo</span>(<span class="ruby-identifier">points</span>, <span class="ruby-identifier">x1</span>, <span class="ruby-identifier">startY</span>) <span class="ruby-comment cmt"># Point 1</span>
|
|
794
|
+
155: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">x1</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">x2</span>
|
|
795
|
+
156: <span class="ruby-identifier">addLineTo</span>(<span class="ruby-identifier">points</span>, <span class="ruby-identifier">x1</span>, <span class="ruby-identifier">ySeg</span>) <span class="ruby-comment cmt"># Point 2</span>
|
|
796
|
+
157: <span class="ruby-identifier">addLineTo</span>(<span class="ruby-identifier">points</span>, <span class="ruby-identifier">x2</span>, <span class="ruby-identifier">ySeg</span>) <span class="ruby-comment cmt"># Point 3</span>
|
|
797
|
+
158: <span class="ruby-keyword kw">end</span>
|
|
798
|
+
159: <span class="ruby-identifier">addLineTo</span>(<span class="ruby-identifier">points</span>, <span class="ruby-identifier">x2</span>, <span class="ruby-identifier">endY</span>) <span class="ruby-comment cmt"># Point 4</span>
|
|
799
|
+
160: <span class="ruby-identifier">addLineTo</span>(<span class="ruby-identifier">points</span>, <span class="ruby-identifier">endX</span>, <span class="ruby-identifier">endY</span>)
|
|
800
|
+
161:
|
|
801
|
+
162: <span class="ruby-identifier">points</span>
|
|
802
|
+
163: <span class="ruby-keyword kw">end</span></pre>
|
|
797
803
|
</div>
|
|
798
804
|
|
|
799
805
|
</div>
|
|
@@ -824,49 +830,51 @@ element.
|
|
|
824
830
|
<div class="method-source-code"
|
|
825
831
|
id="route-ines-source">
|
|
826
832
|
<pre>
|
|
827
|
-
<span class="ruby-comment cmt"># File lib/reports/GanttRouter.rb, line
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
833
|
+
<span class="ruby-comment cmt"># File lib/reports/GanttRouter.rb, line 46</span>
|
|
834
|
+
46: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">routeLines</span>(<span class="ruby-identifier">fromToPoints</span>)
|
|
835
|
+
47: <span class="ruby-comment cmt"># We first convert the fromToPoints list into a more readable list of</span>
|
|
836
|
+
48: <span class="ruby-comment cmt"># Hash objects.</span>
|
|
837
|
+
49: <span class="ruby-identifier">routes</span> = []
|
|
838
|
+
50: <span class="ruby-identifier">fromToPoints</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">touple</span><span class="ruby-operator">|</span>
|
|
839
|
+
51: <span class="ruby-comment cmt"># Ignore lines where start is after end.</span>
|
|
840
|
+
52: <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">touple</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">></span> <span class="ruby-identifier">touple</span>[<span class="ruby-value">2</span>]
|
|
841
|
+
53: <span class="ruby-identifier">routes</span> <span class="ruby-operator"><<</span> {
|
|
842
|
+
54: <span class="ruby-value">:startX</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">touple</span>[<span class="ruby-value">0</span>],
|
|
843
|
+
55: <span class="ruby-value">:startY</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">touple</span>[<span class="ruby-value">1</span>],
|
|
844
|
+
56: <span class="ruby-value">:endX</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">touple</span>[<span class="ruby-value">2</span>],
|
|
845
|
+
57: <span class="ruby-value">:endY</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">touple</span>[<span class="ruby-value">3</span>],
|
|
846
|
+
58: <span class="ruby-value">:id</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">touple</span>[<span class="ruby-value">4</span>]
|
|
847
|
+
59: }
|
|
848
|
+
60: <span class="ruby-keyword kw">end</span>
|
|
849
|
+
61:
|
|
850
|
+
62: <span class="ruby-comment cmt"># To make sure that we minimize the crossings of arrows that</span>
|
|
851
|
+
63: <span class="ruby-comment cmt"># originate from the same position, we sort the arrows by the</span>
|
|
852
|
+
64: <span class="ruby-comment cmt"># smallest angle between the vertical line through the task end</span>
|
|
853
|
+
65: <span class="ruby-comment cmt"># and the line between the start and end of the arrow.</span>
|
|
854
|
+
66: <span class="ruby-identifier">routes</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">r</span><span class="ruby-operator">|</span>
|
|
855
|
+
67: <span class="ruby-identifier">adjLeg</span> = (<span class="ruby-identifier">r</span>[<span class="ruby-value">:endX</span>] <span class="ruby-operator">-</span> <span class="ruby-constant">MinEndGap</span>) <span class="ruby-operator">-</span> (<span class="ruby-identifier">r</span>[<span class="ruby-value">:startX</span>] <span class="ruby-operator">+</span> <span class="ruby-constant">MinStartGap</span>)
|
|
856
|
+
68: <span class="ruby-identifier">oppLeg</span> = (<span class="ruby-identifier">r</span>[<span class="ruby-value">:startY</span>] <span class="ruby-operator">-</span> <span class="ruby-identifier">r</span>[<span class="ruby-value">:endY</span>]).<span class="ruby-identifier">abs</span>
|
|
857
|
+
69: <span class="ruby-identifier">r</span>[<span class="ruby-value">:distance</span>] = <span class="ruby-constant">Math</span>.<span class="ruby-identifier">sqrt</span>(<span class="ruby-identifier">adjLeg</span> <span class="ruby-operator">**</span> <span class="ruby-value">2</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">oppLeg</span> <span class="ruby-operator">**</span> <span class="ruby-value">2</span>)
|
|
858
|
+
70: <span class="ruby-comment cmt"># We can now calculate the sinus values of the angle between the</span>
|
|
859
|
+
71: <span class="ruby-comment cmt"># vertical and a line through the coordinates.</span>
|
|
860
|
+
72: <span class="ruby-identifier">sinus</span> = <span class="ruby-identifier">oppLeg</span>.<span class="ruby-identifier">abs</span> <span class="ruby-operator">/</span> <span class="ruby-identifier">r</span>[<span class="ruby-value">:distance</span>]
|
|
861
|
+
73: <span class="ruby-identifier">r</span>[<span class="ruby-value">:angle</span>] = (<span class="ruby-identifier">adjLeg</span> <span class="ruby-operator"><</span> <span class="ruby-value">0</span> <span class="ruby-operator">?</span> <span class="ruby-constant">Math</span><span class="ruby-operator">::</span><span class="ruby-constant">PI</span> <span class="ruby-operator">/</span> <span class="ruby-value">2</span> <span class="ruby-operator">+</span> <span class="ruby-constant">Math</span>.<span class="ruby-identifier">asin</span>(<span class="ruby-constant">Math</span><span class="ruby-operator">::</span><span class="ruby-constant">PI</span><span class="ruby-operator">/</span><span class="ruby-value">2</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">sinus</span>) <span class="ruby-operator">:</span>
|
|
862
|
+
74: <span class="ruby-constant">Math</span>.<span class="ruby-identifier">asin</span>(<span class="ruby-identifier">sinus</span>)) <span class="ruby-operator">/</span> (<span class="ruby-constant">Math</span><span class="ruby-operator">::</span><span class="ruby-constant">PI</span> <span class="ruby-operator">/</span> (<span class="ruby-value">2</span> * <span class="ruby-value">90</span>))
|
|
863
|
+
75: <span class="ruby-keyword kw">end</span>
|
|
864
|
+
76: <span class="ruby-comment cmt"># We sort the arrows from small to a large angle. In case the angle is</span>
|
|
865
|
+
77: <span class="ruby-comment cmt"># identical, we use the length of the line as second criteria.</span>
|
|
866
|
+
78: <span class="ruby-identifier">routes</span>.<span class="ruby-identifier">sort!</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">r1</span>, <span class="ruby-identifier">r2</span><span class="ruby-operator">|</span> (<span class="ruby-identifier">r1</span>[<span class="ruby-value">:angle</span>] <span class="ruby-operator">/</span> <span class="ruby-value">5</span>).<span class="ruby-identifier">to_i</span> <span class="ruby-operator">==</span> (<span class="ruby-identifier">r2</span>[<span class="ruby-value">:angle</span>] <span class="ruby-operator">/</span> <span class="ruby-value">5</span>).<span class="ruby-identifier">to_i</span> <span class="ruby-operator">?</span>
|
|
867
|
+
79: <span class="ruby-operator">-</span>(<span class="ruby-identifier">r1</span>[<span class="ruby-value">:distance</span>] <span class="ruby-operator"><=></span> <span class="ruby-identifier">r2</span>[<span class="ruby-value">:distance</span>]) <span class="ruby-operator">:</span>
|
|
868
|
+
80: <span class="ruby-operator">-</span>(<span class="ruby-identifier">r1</span>[<span class="ruby-value">:angle</span>] <span class="ruby-operator"><=></span> <span class="ruby-identifier">r2</span>[<span class="ruby-value">:angle</span>]) }
|
|
869
|
+
81:
|
|
870
|
+
82: <span class="ruby-comment cmt"># Now that the routes are in proper order, we can actually lay the</span>
|
|
871
|
+
83: <span class="ruby-comment cmt"># routes.</span>
|
|
872
|
+
84: <span class="ruby-identifier">routePoints</span> = []
|
|
873
|
+
85: <span class="ruby-identifier">routes</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">r</span><span class="ruby-operator">|</span>
|
|
874
|
+
86: <span class="ruby-identifier">routePoints</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">route</span>(<span class="ruby-identifier">r</span>[<span class="ruby-value">:startX</span>], <span class="ruby-identifier">r</span>[<span class="ruby-value">:startY</span>], <span class="ruby-identifier">r</span>[<span class="ruby-value">:endX</span>], <span class="ruby-identifier">r</span>[<span class="ruby-value">:endY</span>])
|
|
875
|
+
87: <span class="ruby-keyword kw">end</span>
|
|
876
|
+
88: <span class="ruby-identifier">routePoints</span>
|
|
877
|
+
89: <span class="ruby-keyword kw">end</span></pre>
|
|
870
878
|
</div>
|
|
871
879
|
|
|
872
880
|
</div>
|
|
@@ -900,10 +908,10 @@ vertical or horizontal zones in the chart.
|
|
|
900
908
|
<div class="method-source-code"
|
|
901
909
|
id="to-html-source">
|
|
902
910
|
<pre>
|
|
903
|
-
<span class="ruby-comment cmt"># File lib/reports/GanttRouter.rb, line
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
911
|
+
<span class="ruby-comment cmt"># File lib/reports/GanttRouter.rb, line 167</span>
|
|
912
|
+
167: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_html</span>
|
|
913
|
+
168: <span class="ruby-ivar">@detector</span>.<span class="ruby-identifier">to_html</span>
|
|
914
|
+
169: <span class="ruby-keyword kw">end</span></pre>
|
|
907
915
|
</div>
|
|
908
916
|
|
|
909
917
|
</div>
|
|
@@ -945,25 +953,25 @@ the chart.
|
|
|
945
953
|
<div class="method-source-code"
|
|
946
954
|
id="add-ine-o-source">
|
|
947
955
|
<pre>
|
|
948
|
-
<span class="ruby-comment cmt"># File lib/reports/GanttRouter.rb, line
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
210:
|
|
952
|
-
211: <span class="ruby-identifier">x1</span>, <span class="ruby-identifier">y1</span> = <span class="ruby-identifier">points</span>[<span class="ruby-value">1</span>]
|
|
953
|
-
212: <span class="ruby-identifier">points</span> <span class="ruby-operator"><<</span> [ <span class="ruby-identifier">x2</span>, <span class="ruby-identifier">y2</span> ]
|
|
956
|
+
<span class="ruby-comment cmt"># File lib/reports/GanttRouter.rb, line 211</span>
|
|
957
|
+
211: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">addLineTo</span>(<span class="ruby-identifier">points</span>, <span class="ruby-identifier">x2</span>, <span class="ruby-identifier">y2</span>)
|
|
958
|
+
212: <span class="ruby-identifier">raise</span> <span class="ruby-value str">"Point list may not be empty"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">points</span>.<span class="ruby-identifier">empty?</span>
|
|
954
959
|
213:
|
|
955
|
-
214: <span class="ruby-
|
|
956
|
-
215:
|
|
957
|
-
216:
|
|
958
|
-
217:
|
|
959
|
-
218: <span class="ruby-
|
|
960
|
-
219:
|
|
961
|
-
220: <span class="ruby-
|
|
962
|
-
221: <span class="ruby-
|
|
963
|
-
222:
|
|
964
|
-
223: <span class="ruby-
|
|
965
|
-
224:
|
|
966
|
-
225:
|
|
960
|
+
214: <span class="ruby-identifier">x1</span>, <span class="ruby-identifier">y1</span> = <span class="ruby-identifier">points</span>[<span class="ruby-value">1</span>]
|
|
961
|
+
215: <span class="ruby-identifier">points</span> <span class="ruby-operator"><<</span> [ <span class="ruby-identifier">x2</span>, <span class="ruby-identifier">y2</span> ]
|
|
962
|
+
216:
|
|
963
|
+
217: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">x1</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">x2</span>
|
|
964
|
+
218: <span class="ruby-comment cmt"># vertical line</span>
|
|
965
|
+
219: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">x1</span> <span class="ruby-operator"><</span> <span class="ruby-value">0</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">x1</span> <span class="ruby-operator">>=</span> <span class="ruby-ivar">@width</span>
|
|
966
|
+
220: <span class="ruby-identifier">x</span>, <span class="ruby-identifier">y</span>, <span class="ruby-identifier">w</span>, <span class="ruby-identifier">h</span> = <span class="ruby-identifier">justify</span>(<span class="ruby-identifier">x1</span> <span class="ruby-operator">-</span> <span class="ruby-value">2</span>, <span class="ruby-identifier">y1</span>, <span class="ruby-value">5</span>, <span class="ruby-identifier">y2</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">y1</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>)
|
|
967
|
+
221: <span class="ruby-identifier">addZone</span>(<span class="ruby-identifier">x</span>, <span class="ruby-identifier">y</span>, <span class="ruby-identifier">w</span>, <span class="ruby-identifier">h</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>)
|
|
968
|
+
222: <span class="ruby-keyword kw">else</span>
|
|
969
|
+
223: <span class="ruby-comment cmt"># horizontal line</span>
|
|
970
|
+
224: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">y1</span> <span class="ruby-operator"><</span> <span class="ruby-value">0</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">x1</span> <span class="ruby-operator">>=</span> <span class="ruby-ivar">@height</span>
|
|
971
|
+
225: <span class="ruby-identifier">x</span>, <span class="ruby-identifier">y</span>, <span class="ruby-identifier">w</span>, <span class="ruby-identifier">h</span> = <span class="ruby-identifier">justify</span>(<span class="ruby-identifier">x1</span>, <span class="ruby-identifier">y1</span> <span class="ruby-operator">-</span> <span class="ruby-value">2</span>, <span class="ruby-identifier">x2</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">x1</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>, <span class="ruby-value">5</span>)
|
|
972
|
+
226: <span class="ruby-identifier">addZone</span>(<span class="ruby-identifier">x</span>, <span class="ruby-identifier">y</span>, <span class="ruby-identifier">w</span>, <span class="ruby-identifier">h</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>)
|
|
973
|
+
227: <span class="ruby-keyword kw">end</span>
|
|
974
|
+
228: <span class="ruby-keyword kw">end</span></pre>
|
|
967
975
|
</div>
|
|
968
976
|
|
|
969
977
|
</div>
|
|
@@ -999,19 +1007,19 @@ the same rectangle with all positive coordinates.
|
|
|
999
1007
|
<div class="method-source-code"
|
|
1000
1008
|
id="justify-source">
|
|
1001
1009
|
<pre>
|
|
1002
|
-
<span class="ruby-comment cmt"># File lib/reports/GanttRouter.rb, line
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
1010
|
+
<span class="ruby-comment cmt"># File lib/reports/GanttRouter.rb, line 234</span>
|
|
1011
|
+
234: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">justify</span>(<span class="ruby-identifier">x</span>, <span class="ruby-identifier">y</span>, <span class="ruby-identifier">w</span>, <span class="ruby-identifier">h</span>)
|
|
1012
|
+
235: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">w</span> <span class="ruby-operator"><</span> <span class="ruby-value">0</span>
|
|
1013
|
+
236: <span class="ruby-identifier">w</span> = <span class="ruby-operator">-</span><span class="ruby-identifier">w</span>
|
|
1014
|
+
237: <span class="ruby-identifier">x</span> = <span class="ruby-identifier">x</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">w</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>
|
|
1015
|
+
238: <span class="ruby-keyword kw">end</span>
|
|
1016
|
+
239: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">h</span> <span class="ruby-operator"><</span> <span class="ruby-value">0</span>
|
|
1017
|
+
240: <span class="ruby-identifier">h</span> = <span class="ruby-operator">-</span><span class="ruby-identifier">h</span>
|
|
1018
|
+
241: <span class="ruby-identifier">y</span> = <span class="ruby-identifier">y</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">h</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>
|
|
1019
|
+
242: <span class="ruby-keyword kw">end</span>
|
|
1020
|
+
243: <span class="ruby-comment cmt"># Return the potentially adjusted rectangle coordinates.</span>
|
|
1021
|
+
244: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">x</span>, <span class="ruby-identifier">y</span>, <span class="ruby-identifier">w</span>, <span class="ruby-identifier">h</span>
|
|
1022
|
+
245: <span class="ruby-keyword kw">end</span></pre>
|
|
1015
1023
|
</div>
|
|
1016
1024
|
|
|
1017
1025
|
</div>
|
|
@@ -1050,33 +1058,33 @@ collision free coordinate or the outside edge of the routing area.
|
|
|
1050
1058
|
<div class="method-source-code"
|
|
1051
1059
|
id="place-ine-source">
|
|
1052
1060
|
<pre>
|
|
1053
|
-
<span class="ruby-comment cmt"># File lib/reports/GanttRouter.rb, line
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
|
|
1057
|
-
|
|
1058
|
-
|
|
1059
|
-
|
|
1060
|
-
|
|
1061
|
-
|
|
1062
|
-
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
|
|
1069
|
-
|
|
1070
|
-
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1061
|
+
<span class="ruby-comment cmt"># File lib/reports/GanttRouter.rb, line 180</span>
|
|
1062
|
+
180: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">placeLine</span>(<span class="ruby-identifier">segment</span>, <span class="ruby-identifier">horizontal</span>, <span class="ruby-identifier">start</span>, <span class="ruby-identifier">delta</span>)
|
|
1063
|
+
181: <span class="ruby-identifier">raise</span> <span class="ruby-value str">"delta may not be 0"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">delta</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
|
|
1064
|
+
182: <span class="ruby-comment cmt"># Start must be an integer and lie within the routing area.</span>
|
|
1065
|
+
183: <span class="ruby-identifier">pos</span> = <span class="ruby-identifier">start</span>.<span class="ruby-identifier">to_i</span>
|
|
1066
|
+
184: <span class="ruby-identifier">pos</span> = <span class="ruby-value">0</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">pos</span> <span class="ruby-operator"><</span> <span class="ruby-value">0</span>
|
|
1067
|
+
185: <span class="ruby-identifier">max</span> = (<span class="ruby-identifier">horizontal</span> <span class="ruby-operator">?</span> <span class="ruby-ivar">@height</span><span class="ruby-operator">:</span> <span class="ruby-ivar">@width</span>) <span class="ruby-operator">-</span> <span class="ruby-value">1</span>
|
|
1068
|
+
186: <span class="ruby-identifier">pos</span> = <span class="ruby-identifier">max</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">pos</span> <span class="ruby-operator">></span> <span class="ruby-identifier">max</span>
|
|
1069
|
+
187:
|
|
1070
|
+
188: <span class="ruby-comment cmt"># Make sure that the segment coordinates are in ascending order.</span>
|
|
1071
|
+
189: <span class="ruby-identifier">segment</span>.<span class="ruby-identifier">sort!</span>
|
|
1072
|
+
190: <span class="ruby-comment cmt"># TODO: Remove this check once the code becomes stable.</span>
|
|
1073
|
+
191: <span class="ruby-comment cmt">#checkLines(lines)</span>
|
|
1074
|
+
192: <span class="ruby-keyword kw">while</span> <span class="ruby-ivar">@detector</span>.<span class="ruby-identifier">collision?</span>(<span class="ruby-identifier">pos</span>, <span class="ruby-identifier">segment</span>, <span class="ruby-identifier">horizontal</span>)
|
|
1075
|
+
193: <span class="ruby-identifier">pos</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">delta</span>
|
|
1076
|
+
194: <span class="ruby-comment cmt"># Check if we have exceded the chart area towards top/left.</span>
|
|
1077
|
+
195: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">delta</span> <span class="ruby-operator"><</span> <span class="ruby-value">0</span>
|
|
1078
|
+
196: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">pos</span> <span class="ruby-operator"><</span> <span class="ruby-value">0</span>
|
|
1079
|
+
197: <span class="ruby-keyword kw">break</span>
|
|
1080
|
+
198: <span class="ruby-keyword kw">end</span>
|
|
1081
|
+
199: <span class="ruby-keyword kw">else</span>
|
|
1082
|
+
200: <span class="ruby-comment cmt"># And towards right/bottom.</span>
|
|
1083
|
+
201: <span class="ruby-keyword kw">break</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">pos</span> <span class="ruby-operator">>=</span> (<span class="ruby-identifier">horizontal</span> <span class="ruby-operator">?</span> <span class="ruby-ivar">@height</span> <span class="ruby-operator">:</span> <span class="ruby-ivar">@width</span>)
|
|
1084
|
+
202: <span class="ruby-keyword kw">end</span>
|
|
1085
|
+
203: <span class="ruby-keyword kw">end</span>
|
|
1086
|
+
204: <span class="ruby-identifier">pos</span>
|
|
1087
|
+
205: <span class="ruby-keyword kw">end</span></pre>
|
|
1080
1088
|
</div>
|
|
1081
1089
|
|
|
1082
1090
|
</div>
|