1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- unit TemplateManagerHelper;
- // Export Templates To View
- interface
- uses
- ReportManager, ComCtrls, SysUtils;
- type
- TTemplateManagerHelper = class
- private
- function FindClassTreeNode(ATreeView: TTreeView; AParent: TTreeNode; const AName: string): TTreeNode;
- function AddClassTreeNode(ATreeView: TTreeView; AParent: TTreeNode; const AName: string): TTreeNode;
- function GetClassTreeNode(ATreeView: TTreeView; AParent: TTreeNode; const AName: string): TTreeNode;
- procedure AddTemplateToTreeView(ATreeView: TTreeView; ATemplate: TTemplateNode);
- public
- procedure ExportToTreeView(ATreeView: TTreeView; ATemplates: TTemplateManager);
- end;
- implementation
- { TTemplateManagerHelper }
- function TTemplateManagerHelper.AddClassTreeNode(ATreeView: TTreeView;
- AParent: TTreeNode; const AName: string): TTreeNode;
- begin
- Result := ATreeView.Items.AddChildObject(AParent, AName, Pointer(nil));
- Result.ImageIndex := -1;
- Result.SelectedIndex := -1;
- end;
- procedure TTemplateManagerHelper.AddTemplateToTreeView(
- ATreeView: TTreeView; ATemplate: TTemplateNode);
- var
- vClassNode, vNode: TTreeNode;
- begin
- vClassNode := GetClassTreeNode(ATreeView, nil, ATemplate.ClassNum + '.' + ATemplate.ClassName);
- if ATemplate.SubClassNum <> '' then
- vClassNode := GetClassTreeNode(ATreeView, vClassNode, ATemplate.SubClassNum + '.' + ATemplate.SubClassName);
- vNode := ATreeView.Items.AddChildObject(vClassNode, ATemplate.TemplateName, Pointer(ATemplate));
- vNode.ImageIndex := -1;
- vNode.SelectedIndex := -1;
- end;
- procedure TTemplateManagerHelper.ExportToTreeView(
- ATreeView: TTreeView; ATemplates: TTemplateManager);
- var
- iTemplate: Integer;
- TemplateNode: TTemplateNode;
- ClassNode: TTreeNode;
- begin
- ATreeView.Items.Clear;
- for iTemplate := 0 to ATemplates.Count - 1 do
- begin
- TemplateNode := ATemplates.Template[iTemplate];
- AddTemplateToTreeView(ATreeView, TemplateNode);
- end;
- ATreeView.Items.AlphaSort(True);
- end;
- function TTemplateManagerHelper.FindClassTreeNode(ATreeView: TTreeView;
- AParent: TTreeNode; const AName: string): TTreeNode;
- var
- I: Integer;
- vNode: TTreeNode;
- begin
- Result := nil;
- if Assigned(AParent) then
- vNode := AParent.getFirstChild
- else
- vNode := ATreeView.Items.GetFirstNode;
- while not Assigned(Result) and Assigned(vNode) do
- begin
- if SameText(vNode.Text, AName) then
- Result := vNode;
- vNode := vNode.getNextSibling;
- end;
- end;
- function TTemplateManagerHelper.GetClassTreeNode(ATreeView: TTreeView;
- AParent: TTreeNode; const AName: string): TTreeNode;
- begin
- Result := FindClassTreeNode(ATreeView, AParent, AName);
- if not Assigned(Result) then
- Result := AddClassTreeNode(ATreeView, AParent, AName);
- end;
- end.
|