HTMLcopy
1
<div id="container"></div>
CSScopy
6
1
html, body, #container {
2
width: 100%;
3
height: 100%;
4
margin: 0;
5
padding: 0;
6
}
JavaScriptcopy
x
1
anychart.onDocumentReady(function () {
2
3
// create data
4
var data = [
5
{
6
id: "1",
7
name: "Tasks",
8
actualStart: "2018-02-02",
9
actualEnd: "2018-02-25",
10
children: [
11
{
12
id: "1_1",
13
name: "Task 1",
14
actualStart: "2018-02-02",
15
actualEnd: "2018-02-07",
16
connectTo: "1_2",
17
connectorType: "finish-start"
18
},
19
{
20
id: "1_2",
21
name: "Task 2",
22
actualStart: "2018-02-09",
23
actualEnd: "2018-02-09",
24
connectTo: "1_5",
25
connectorType: "start-start"
26
},
27
{
28
id: "1_3",
29
name: "Task 3",
30
actualStart: "2018-02-11",
31
actualEnd: "2018-02-23",
32
connectTo: "1_4",
33
connectorType: "finish-finish"
34
},
35
{
36
id: "1_4",
37
name: "Task 4",
38
actualStart: "2018-02-18",
39
actualEnd: "2018-02-25",
40
connectTo: "1_5",
41
connectorType: "start-finish"
42
},
43
{
44
id: "1_5",
45
name: "Task 5",
46
actualStart: "2018-02-15",
47
actualEnd: "2018-02-21"
48
}
49
]}
50
];
51
52
// create a data tree
53
var treeData = anychart.data.tree(data, "as-tree");
54
55
// create a chart
56
var chart = anychart.ganttProject();
57
58
// set the data
59
chart.data(treeData);
60
61
// configure the scale
62
chart.getTimeline().scale().maximum("2018-02-27");
63
64
// disable labels of elements
65
chart.getTimeline().elements().labels(false);
66
67
// configure connectors
68
var connectors = chart.getTimeline().connectors();
69
connectors.normal().stroke("3 #455a64");
70
connectors.selected().stroke("3 #ffa000");
71
72
// allow editing the chart
73
chart.edit(true);
74
75
// set the chart title
76
chart.title().useHtml(true);
77
chart.title("Events: Connectors<br><br>");
78
chart.title().padding(10);
79
80
/* listen to the connectorMouseOver event
81
and update the chart title */
82
chart.listen("connectorMouseOver", function (e) {
83
var sourceName = e.fromItem.get("name");
84
var targetName = e.toItem.get("name");
85
var type = e.connType;
86
chart.title("Events: Connectors<br><br>" +
87
"< <span style = 'color:#990000'>" +
88
sourceName + " - " + targetName +
89
" (" + type + ")</span>: connectorMouseOver >");
90
});
91
92
/* listen to the connectorClick event
93
and update the chart title */
94
chart.listen("connectorClick", function (e) {
95
var sourceName = e.fromItem.get("name");
96
var targetName = e.toItem.get("name");
97
var type = e.connType;
98
chart.title("Events: Connectors<br><br>" +
99
"< <span style = 'color:#990000'>" +
100
sourceName + " - " + targetName +
101
" (" + type + ")</span>: connectorClick >");
102
});
103
104
/* listen to the connectorDblClick event
105
and update the chart title */
106
chart.listen("connectorDblClick", function (e) {
107
var sourceName = e.fromItem.get("name");
108
var targetName = e.toItem.get("name");
109
var type = e.connType;
110
chart.title("Events: Connectors<br><br>" +
111
"< <span style = 'color:#990000'>" +
112
sourceName + " - " + targetName +
113
" (" + type + ")</span>: connectorDblClick >");
114
});
115
116
/* listen to the beforeCreateConnector event
117
and update the chart title */
118
chart.listen("beforeCreateConnector", function (e) {
119
var sourceName = e.source.get("name");
120
var targetName = e.target.get("name");
121
var type = e.connectorType;
122
chart.title("Events: Connectors<br><br>" +
123
"< <span style = 'color:#990000'>" +
124
sourceName + " - " + targetName +
125
" (" + type + ")</span>: beforeCreateConnector >");
126
});
127
128
// set the container id
129
chart.container("container");
130
131
// initiate drawing the chart
132
chart.draw();
133
134
// fit elements to the width of the timeline
135
chart.fitAll();
136
});