-
Notifications
You must be signed in to change notification settings - Fork 0
/
Gantt-Timeline.uml
110 lines (85 loc) · 2.86 KB
/
Gantt-Timeline.uml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
@startuml Gantt-Timeline.png
namespace GanttTimeline {
class Presenter {
display()
}
class Timeline_P implements Presenter {
Timeline timeline
void display_entry(TimelineEntry)
}
Timeline_P -> Timeline
class TimelineEntry {
-DateTime start
-DateTime end
-list<TimelineEntry> predecessors
-list<TimelineEntry> successors
-TaskItem task_item
+DateTime earliestStart(TimelineEntry& b)
+DateTime earliestEnd(TimelineEntry& b)
+DateTime latestStart(TimelineEntry& b)
+DateTime latestEnd(TimelineEntry& b)
+Bool isStartLaterThanStart(TimelineEntry& b)
+Bool isStartLaterThanEnd(TimelineEntry& b)
+Bool isEndLaterThanStart(TimelineEntry& b)
+Bool isEndLaterThanEnd(TimelineEntry& b)
+Bool isStartEarlierThanStart(TimelineEntry& b)
+Bool isStartEarlierThanEnd(TimelineEntry& b)
+Bool isEndEarlierThanStart(TimelineEntry& b)
+Bool isEndEarlierThanEnd(TimelineEntry& b)
+Bool isStartEqualStart(TimelineEntry& b)
+Bool isStartEqualEnd(TimelineEntry& b)
+Bool isEndEqualStart(TimelineEntry& b)
+Bool isEndEqualEnd(TimelineEntry& b)
+Bool hasOverlap(TimelineEntry& b)
+TimelineEntry& Overlap(TimelineEntry& b)
+setTaskItem(TaskItem& ti)
+DateTime getStart()
-void setStart(DateTime dt)
+DateTime getEnd()
-void setEnd(DateTime dt)
}
class TaskItem {
-DateTime start
-DateTime end
-DateTime::Duration duration
-list<Dependency> dependencies
+void addDependency(Dependency d)
+void addDependency(TaskItem& item, DependencyType type)
+void delDependency(Dependency d)
+void setStart(DateTime start)
+void setEnd(DateTime end)
-void calculateEnd()
-void calculateStart()
-void calculateDuration()
+DateTime getStart()
+DateTime getEnd()
}
class Dependency {
-TaskItem& task_item
-DependencyType type
+void setTaskItem(TaskItem& ti)
+void setDependencyType(DependencyType type)
+TaskItem getTaskItem()
+DependencyType getDependencyType()
}
' NB: Timeline::addTask also adds the wrapping TimelineEntry and puts it in the entries list
class Timeline {
-list<TimelineEntry> entries
+TaskItem addTask(DateTime start, DateTime end)
+TaskItem getTask(index i)
+Int getTaskCount()
+void sequenceTasks()
}
class DependencyType {
-enum eDependencyType { endtostart, starttostart, starttoend, endtoend }
-eDependencyType type
+eDependencyType getType()
+void setType(eDependencyType type)
}
Timeline "1" *-- "*" TimelineEntry
TimelineEntry -- TaskItem
TaskItem "1" *-- "*" Dependency
Dependency "1" *-- DependencyType
Dependency "1" -- "1" TaskItem
}
@enduml