-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathLMS.TreeView.Courses.pas
118 lines (91 loc) · 2.51 KB
/
LMS.TreeView.Courses.pas
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
111
112
113
114
115
116
117
118
unit LMS.TreeView.Courses;
interface
uses
System.SysUtils,
System.Classes,
Generics.Collections,
VirtualTrees,
LMS.Helper.Log,
LMS.TreeView.Custom,
LMS._interface.LMS;
type
TLMSCoursesTreeView = class(TLMSCustomLMSVirtualStringTree)
private
fLMS: ILMS;
procedure SetLMS(const Value: ILMS);
protected
procedure DoInitNode(Parent, Node: PVirtualNode;
var InitStates: TVirtualNodeInitStates); override;
procedure MyDoGetText(Sender: TBaseVirtualTree; Node: PVirtualNode;
Column: TColumnIndex; TextType: TVSTTextType; var CellText: string);
protected
procedure DoDblClkCourse(const Course: ICourse); override;
public
constructor Create(Owner: TComponent); override;
property LMS: ILMS read fLMS write SetLMS;
end;
implementation
uses
LMS.Helper.FormFactory,
LMS.Helper.Utils;
constructor TLMSCoursesTreeView.Create(Owner: TComponent);
begin
inherited;
OnGetText := MyDoGetText;
with Header do
begin
Columns.Clear;
Columns.Add.text := 'Shortname';
Columns.Add.text := 'Fullname';
Columns.Add.text := 'Start Date';
Columns.Add.text := 'End Date';
Columns.Add.text := 'Time Created';
Columns.Add.text := 'Time Modified';
Options := Options + [hovisible, hoAutoSpring, hoAutoResize];
AutoSizeIndex := Columns.GetLastVisibleColumn;
end;
end;
procedure TLMSCoursesTreeView.DoDblClkCourse(const Course: ICourse);
begin
inherited;
ViewForm(Course);
end;
procedure TLMSCoursesTreeView.DoInitNode(Parent, Node: PVirtualNode;
var InitStates: TVirtualNodeInitStates);
var
data: PTreeData;
begin
inherited;
data := GetNodeData(Node);
data^.node_type := ntCourse;
data^.Course := fLMS.FlatCourses[Node.Index];
end;
procedure TLMSCoursesTreeView.MyDoGetText(Sender: TBaseVirtualTree;
Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType;
var CellText: string);
var
data: PTreeData;
begin
data := GetNodeData(Node);
case Column of
0:
CellText := data^.Course.shortname;
1:
CellText := data^.Course.FullName;
2:
CellText := FormatDateTimeBlank(data^.Course.StartDate);
3:
CellText := FormatDateTimeBlank(data^.Course.EndDate);
4:
CellText := FormatDateTimeBlank(data^.Course.TimeCreated);
5:
CellText := FormatDateTimeBlank(data^.Course.TimeModified);
end;
end;
procedure TLMSCoursesTreeView.SetLMS(const Value: ILMS);
begin
fLMS := Value;
RootNodeCount := fLMS.FlatCourses.Count;
Header.AutoFitColumns(false, smaAllColumns, 0);
end;
end.