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.
|