Пример создания компонента TreeGantDiagram

Для выполнения примера необходимо создать html-страницу и выполнить следующие действия:

1. Добавить ссылку на css-файл PP.css.

Также нужно добавить ссылки на следующие js-файлы: PP.js, PP.Other.js и resources.ru.js.

2. В теге <body> добавим контейнер для диаграммы и код диаграммы:

<div id="TreeGantHolder" style="width: 800px; height: 300px; padding: 20px 0 0 20px"></div>
<script type="text/jscript">
	var treeGantHolder = document.getElementById("TreeGantHolder");
	// предполагаемые столбцы в дереве - операция/начало/окончание/длительность/память
	var columns = [{
		Caption: "#",
		Width: 92,
		MinWidth: 20,
		Hideable: false,
		Visible: true
	}, {
		Caption: "Operation",
		Width: 120,
		MinWidth: 20,
		Hideable: false,
		Visible: true
	}, {
		Caption: "Begin",
		Width: 62,
		MinWidth: 10,
		Visible: true
	}, { Caption: "End",
		Width: 62,
		MinWidth: 10,
		Visible: true
	}, { Caption: "Time ms",
		Width: 60,
		MinWidth: 10,
		Visible: true
	}, { Caption: "Memory",
		Width: 60,
		MinWidth: 10,
		Visible: true
	}];
	// value содержит информацию для построения строки диаграммы
	// обязательные поля в value - Operation/StartTime/Duration - Операция/Время начала/Длительность (ms)
	var testData = [{
		Text: "1",
		Columns: ["CreateObject 1", "10:4:11 670", "10:4:13 474", "1804", "1732M"],
		Selected: false,
		CanSelect: false,
		Value: {"Operation": "CreateObject 1","StartTime": "2012-10-24T10:04:11.670", "Duration": 1804 ,"Mem": 1773507},
		Expanded: true,
		Checked: false,
		Nodes: [{
			Text: "1.1",
			Columns: ["CreateObject 1.1", "10:4:11 670", "10:4:13 274", "1604", "1624M"],
			Selected: false,
			CanSelect: false,
			Value: { "Operation": "CreateObject 1.1", "StartTime": "2012-10-24T10:04:11.670", "Duration": 1604, "Mem": 162445 },
			Expanded: true,
			Checked: false,
			Nodes: [{
				Text: "1.1.1",
				Columns: ["CreateObject 1.1.1", "10:4:11 670", "10:4:11 720", "50", "64k"],
				Selected: false,
				CanSelect: false,
				Value: { "Operation": "CreateObject 1.1.1", "StartTime": "2012-10-24T10:04:11.670", "Duration": 50, "Mem": 63856 },
				Expanded: true,
				Checked: false
			}, {
				Text: "1.1.2",
				Columns: ["CreateObject 1.1.2", "10:4:11 720", "10:4:11 810", "90", "134k"],
				ImageUrl: null,
				Selected: false,
				CanSelect: false,
				Value: { "Operation": "CreateObject 1.1.2", "StartTime": "2012-10-24T10:04:11.720", "Duration": 90, "Mem": 134158 },
				Expanded: true,
				Checked: false
			}, {
				Text: "1.1.3",
				Columns: ["CreateObject 1.1.3", "10:4:11 810", "10:4:11 855", "45", "34k"],
				Selected: false,
				CanSelect: false,
				Value: { "Operation": "CreateObject 1.1.3", "StartTime": "2012-10-24T10:04:11.810", "Duration": 45, "Mem": 33847 },
				Expanded: true,
				Checked: false
			}, {
				Text: "1.1.4",
				Columns: ["CreateObject 1.1.4", "10:4:11 855", "10:4:12 333", "478", "11M"],
				Selected: false,
				CanSelect: false,
				Value: { "Operation": "CreateObject 1.1.4", "StartTime": "2012-10-24T10:04:11.855", "Duration": 478, "Mem": 11286 },
				Expanded: true,
				Checked: false,
			}, {
				Text: "1.1.5",
				Columns: ["CreateObject 1.1.5", "10:4:12 333", "10:4:14 334", "2001", "41M"],
				Selected: false,
				CanSelect: false,
				Value: { "Operation": "CreateObject 1.1.5", "StartTime": "2012-10-24T10:04:12.333", "Duration": 2001, "Mem": 41023456 },
				Expanded: true,
				Checked: true
			}]
		}, {
			Text: "1.2",
			Columns: ["CreateObject 1.2", "10:4:14 334", "10:4:15 830", "1496", "132M"],
			Selected: false,
			CanSelect: false,
			Value: { "Operation": "CreateObject 1.2", "StartTime": "2012-10-24T10:04:14.334", "Duration": 1496, "Mem": 132987789 },
			Expanded: true,
			Checked: false,
			Nodes: [{
				Text: "1.2.1",
				Columns: ["CreateObject 1.2.1", "10:4:14 334", "10:4:14 634", "300", "3M"],
				Selected: false,
				CanSelect: false,
				Value: { "Operation": "CreateObject 1.2.1", "StartTime": "2012-10-24T10:04:14.334", "Duration": 300, "Mem": 3022541 },
				Expanded: true,
				Checked: false
			}, {
				Text: "1.2.2",
				Columns: ["CreateObject 1.2.2", "10:4:14 634", "10:4:14 940", "306", "3M"],
				ImageIndex: 1,
				Selected: false,
				CanSelect: false,
				Value: { "Operation": "CreateObject 1.2.2", "StartTime": "2012-10-24T10:04:14.634", "Duration": 306, "Mem": 3027894 },
				Expanded: true,
				Checked: false
			}, {
				Text: "1.2.3",
				Columns: ["CreateObject 1.2.3", "10:4:14 940", "10:4:15 830", "890", "14M"],
				Selected: false,
				CanSelect: false,
				Value: { "Operation": "CreateObject 2.3", "StartTime": "2012-10-24T10:04:14.940", "Duration": 890, "Mem": 14235987 },
				Expanded: true,
				Checked: false
			}]
		}, {
			Text: "1.3",
			Columns: ["CreateObject 1.3", "10:4:15 930", "10:4:16 540", "610", "8M"],
			Selected: false,
			CanSelect: false,
			Value: { "Operation": "CreateObject 1.3", "StartTime": "2012-10-24T10:04:15.930", "Duration": 610, "Mem": 8345774 },
			Expanded: true,
			Checked: false,
			Nodes: [{
				Text: "1.3.1",
				Columns: ["CreateObject 1.3.1", "10:4:15 930", "10:4:16 380", "450", "6M"],
				Selected: false,
				CanSelect: false,
				Value: { "Operation": "CreateObject 1.3.1", "StartTime": "2012-10-24T10:04:15.930", "Duration": 450, "Mem": 6343375 },
				Expanded: true,
				Checked: false
			}, {
				Text: "1.3.2",
				Columns: ["CreateObject 1.3.2", "10:4:16 380", "10:4:16 540", "160", "2M"],
				Selected: false,
				CanSelect: false,
				Value: { "Operation": "CreateObject 1.3.2", "StartTime": "2012-10-24T10:04:16.380", "Duration": 160, "Mem": 2121375 },
				Expanded: true,
				Checked: false
			}]
		}]
		}, {
			Text: "2",
			Columns: ["CreateObject 2", "10:4:16 540", "10:4:16 540", "0", "68K"],
			Selected: false,
			CanSelect: false,
			Value: { "Operation": "CreateObject 2", "StartTime": "2012-10-24T10:04:16.540", "Duration": 0, "Mem": 68234 },
			Expanded: true,
			Checked: false,
			Nodes: [{
				Text: "2.1",
				Columns: ["CreateObject 2.1", "10:4:11 670", "10:4:11 720", "50", "64k"],
				Selected: false,
				CanSelect: false,
				Value: { "Operation": "CreateObject 2.1", "StartTime": "2012-10-24T10:04:11.670", "Duration": 50, "Mem": 63856 },
				Expanded: true,
				Checked: false
			}, {
				Text: "2.2",
				Columns: ["CreateObject 2.2", "10:4:11 720", "10:4:11 810", "90", "134k"],
				Selected: false,
				CanSelect: false,
				Value: { "Operation": "CreateObject 2.2", "StartTime": "2012-10-24T10:04:11.720", "Duration": 90, "Mem": 134158 },
				Expanded: true,
				Checked: false
			}, {
				Text: "2.3",
				Columns: ["CreateObject 2.3", "10:4:11 810", "10:4:11 855", "45", "34k"],
				Selected: false,
				CanSelect: false,
				Value: { "Operation": "CreateObject 2.3", "StartTime": "2012-10-24T10:04:11.810", "Duration": 45, "Mem": 33847 },
				Expanded: true,
				Checked: false
			}, {
				Text: "2.4",
				Columns: ["CreateObject 2.4", "10:4:11 855", "10:4:12 333", "478", "11M"],
				Selected: false,
				CanSelect: false,
				Value: { "Operation": "CreateObject 2.4", "StartTime": "2012-10-24T10:04:11.855", "Duration": 478, "Mem": 11286 },
				Expanded: true,
				Checked: false,
				Highlighted: true
			}, {
				Text: "2.5",
				Columns: ["CreateObject 2.5", "10:4:12 333", "10:4:14 334", "2001", "41M"],
				Selected: false,
				CanSelect: false,
				Value: { "Operation": "CreateObject 2.5", "StartTime": "2012-10-24T10:04:12.333", "Duration": 2001, "Mem": 41023456 },
				Expanded: true,
				Checked: true
			}]
		}];
	var GantD = new PP.Ui.TreeGantDiagram({
		Height: 270,
		Width: 800,
		DTimelineStartTime: PP.Date.parse("2012-10-24T10:04:11.000"),
		DTimelineEndTime: PP.Date.parse("2012-10-24T10:04:21.000"),
		ParentNode: treeGantHolder,
		TColumns: columns,
		Style: "border: 1px solid gray"
	});
	Diag = GantD.getDiagram();
	Diag.setTimeAxisShift(20);
	Diag.setDiagramShift(false);
	Diag.setShowStartTimeLabel(false);
	GantD.loadFrom(testData);
</script>

В результате выполнения примера на html-странице будет размещен компонент TreeGantDiagram.

См. также:

TreeGantDiagram