File: frasqldbresourceparams.pp

package info (click to toggle)
lazarus 4.0%2Bdfsg-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 275,760 kB
  • sloc: pascal: 2,341,904; xml: 509,420; makefile: 348,726; cpp: 93,608; sh: 3,387; java: 609; perl: 297; sql: 222; ansic: 137
file content (133 lines) | stat: -rw-r--r-- 3,078 bytes parent folder | download | duplicates (3)
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
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
unit frasqldbresourceparams;

{$mode objfpc}{$H+}
{}
interface

uses
  Classes, SysUtils, Forms, Controls, ComCtrls, DB, sqldbrestschema, sqldbschemaedittools;

type
  { TResourceParametersEditFrame }

  TResourceParametersEditFrame = class(TBaseEditFrame)
    ILParameters: TImageList;
    LVParameters: TListView;
    procedure LVParametersDblClick(Sender: TObject);
  private
    FOnSelectParameter: TNotifyEvent;
    FResource: TSQLDBRestResource;
    procedure AddParameterToList(Param: TSQLDBRestParam);
    procedure SetResource(AValue: TSQLDBRestResource);
    procedure ShowParameter(LI: TListItem; Param: TSQLDBRestParam);
  Protected
    procedure SetFrameData(aData: TObject); override;
  public
    Procedure ShowResource;
    Function Modified : Boolean; override;
    Procedure SaveData; override;
    Function FrameCaption : String; override;
    Property Resource : TSQLDBRestResource Read FResource Write SetResource;
    Property OnSelectParameter : TNotifyEvent Read FOnSelectParameter Write FOnSelectParameter;
  end;

implementation

uses typinfo, sqldbrestconst;

{$R *.lfm}

Const
  idxParameters    = 0;
  idxParameter     = 1;

{ TResourceParametersEditFrame }

procedure TResourceParametersEditFrame.SetResource(AValue: TSQLDBRestResource);
begin
  if FResource=AValue then Exit;
  FResource:=AValue;
  ShowResource;
end;

procedure TResourceParametersEditFrame.SetFrameData(aData: TObject);
begin
  Resource:=aData as TSQLDBRestResource;
end;

procedure TResourceParametersEditFrame.ShowParameter(LI: TListItem; Param: TSQLDBRestParam);

Var
  i : Integer;
  S : String;

begin
  LI.Data:=Param;
  LI.ImageIndex:=idxParameter;
  LI.Caption:=Param.Name;
  for I:=0 to LVParameters.ColumnCount-1 do
    LI.SubItems.Add('');
  S:=GetEnumName(TypeInfo(TFieldType),Ord(Param.DataType));
  LI.SubItems[0]:=S;
  LI.SubItems[1]:=Param.DefaultValue;
end;

procedure TResourceParametersEditFrame.LVParametersDblClick(Sender: TObject);
begin
  if Assigned(OnSelectParameter) and Assigned(LVParameters.Selected) And Assigned(LVParameters.Selected.Data) then
    OnSelectParameter(TSQLDBRestResource(LVParameters.Selected.Data));
end;

procedure TResourceParametersEditFrame.AddParameterToList(Param: TSQLDBRestParam
  );

Var
  LI : TListItem;

begin
  LI:=LVParameters.Items.Add;
  ShowParameter(LI,Param);
end;

procedure TResourceParametersEditFrame.ShowResource;

Var
  I : Integer;

begin
  With LVParameters.Items do
    begin
    BeginUpdate;
    try
      Clear;
      if Not assigned(Resource) then
        exit;
      For I:=0 to Resource.Parameters.Count-1 do
        AddParameterToList(Resource.Parameters[I]);
    finally
      EndUpdate;
    end;
    end;
end;

function TResourceParametersEditFrame.Modified: Boolean;
begin
  Result:=False;
end;

procedure TResourceParametersEditFrame.SaveData;
begin
  // nothing to do
end;

function TResourceParametersEditFrame.FrameCaption: String;
begin
  if FResource=Nil then
    Result:=SUnknownObject
  else
    Result:=Resource.ResourceName;
  Result:=Format(SEditObjectParameter,[Result]);
end;

end.