mirror of
				https://gitlab.com/freepascal.org/lazarus/lazarus.git
				synced 2025-10-31 10:02:30 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			161 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			ObjectPascal
		
	
	
	
	
	
			
		
		
	
	
			161 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			ObjectPascal
		
	
	
	
	
	
| unit frmsqldbrestselectconn;
 | |
| 
 | |
| {$mode objfpc}{$H+}
 | |
| 
 | |
| interface
 | |
| 
 | |
| uses
 | |
|   Classes, SysUtils, Forms, Controls, Graphics, Dialogs, ButtonPanel, ExtCtrls,
 | |
|   StdCtrls, sqldbrestschema, sqldbrestbridge;
 | |
| 
 | |
| type
 | |
| 
 | |
|   { TSelectRestConnectionForm }
 | |
| 
 | |
|   TSelectRestConnectionForm = class(TForm)
 | |
|     BPSelect: TButtonPanel;
 | |
|     CGFieldOPtions: TCheckGroup;
 | |
|     CBAllTables: TCheckBox;
 | |
|     RGConnection: TRadioGroup;
 | |
|   private
 | |
|     FShowOptions: Boolean;
 | |
|     procedure SetShowOptions(AValue: Boolean);
 | |
|   public
 | |
|     Procedure Init(aList : TSQLDBRestConnectionList); overload;
 | |
|     Procedure Init(aList : TStrings); overload;
 | |
|     Property ShowOptions : Boolean Read FShowOptions Write SetShowOptions;
 | |
|     Function SelectedConnection : TSQLDBRestConnection;
 | |
|     Function SelectedOptions : TRestFieldOptions;
 | |
|     Function AllTables : Boolean;
 | |
|   end;
 | |
| 
 | |
| Function SelectRestConnection(aList : TSQLDBRestConnectionList) : TSQLDBRestConnection;
 | |
| Function SelectRestConnection(aList : TStrings; out aOptions: TRestFieldOptions; Out aAllTables : Boolean) : TSQLDBRestConnection;
 | |
| Function SelectRestConnection(aList : TSQLDBRestConnectionList; out aOptions: TRestFieldOptions; Out aAllTables : Boolean) : TSQLDBRestConnection;
 | |
| 
 | |
| var
 | |
|   SelectRestConnectionForm: TSelectRestConnectionForm;
 | |
| 
 | |
| implementation
 | |
| 
 | |
| {$R *.lfm}
 | |
| 
 | |
| Function SelectRestConnection(aList : TStrings; out aOptions: TRestFieldOptions; Out aAllTables : Boolean) : TSQLDBRestConnection;
 | |
| begin
 | |
|   Result:=Nil;
 | |
|   if Alist.Count<>0 then
 | |
|     With TSelectRestConnectionForm.Create(Application) do
 | |
|       try
 | |
|         Init(aList);
 | |
|         ShowOptions:=True;
 | |
|         if ShowModal=mrOK then
 | |
|           begin
 | |
|           Result:=SelectedConnection;
 | |
|           aOptions:=SelectedOptions;
 | |
|           aAllTables:=AllTables;
 | |
|           end;
 | |
|       finally
 | |
|         Free;
 | |
|       end;
 | |
| end;
 | |
| Function DoSelectRestConnection(aList : TSQLDBRestConnectionList; withOpts : Boolean; out aOptions: TRestFieldOptions; Out aAllTables : Boolean) : TSQLDBRestConnection;
 | |
| 
 | |
| begin
 | |
|   Result:=Nil;
 | |
|   if Alist.Count<>0 then
 | |
|     With TSelectRestConnectionForm.Create(Application) do
 | |
|       try
 | |
|         Init(aList);
 | |
|         ShowOptions:=WithOpts;
 | |
|         if ShowModal=mrOK then
 | |
|           begin
 | |
|           Result:=SelectedConnection;
 | |
|           if WithOpts then
 | |
|             aOptions:=SelectedOptions;
 | |
|           aAllTables:=AllTables;
 | |
|           end;
 | |
|       finally
 | |
|         Free;
 | |
|       end;
 | |
| end;
 | |
| 
 | |
| Function SelectRestConnection(aList : TSQLDBRestConnectionList; out aOptions: TRestFieldOptions; Out aAllTables : Boolean) : TSQLDBRestConnection;
 | |
| 
 | |
| begin
 | |
|   Result:=DoSelectRestConnection(alIst,True,aOptions,aAllTables);
 | |
| end;
 | |
| 
 | |
| Function SelectRestConnection(aList : TSQLDBRestConnectionList) : TSQLDBRestConnection;
 | |
| 
 | |
| Var
 | |
|   aOptions: TRestFieldOptions;
 | |
|   B : Boolean;
 | |
| 
 | |
| begin
 | |
|   Result:=DoSelectRestConnection(alIst,False,aOptions,B);
 | |
| end;
 | |
| 
 | |
| 
 | |
| { TSelectRestConnectionForm }
 | |
| 
 | |
| procedure TSelectRestConnectionForm.SetShowOptions(AValue: Boolean);
 | |
| begin
 | |
|   if FShowOptions=AValue then Exit;
 | |
|   FShowOptions:=AValue;
 | |
|   if Not FShowOptions then
 | |
|     begin
 | |
|     CGFieldOptions.Visible:=False;
 | |
|     RGConnection.Width:=CGFieldOptions.Left+CGFieldOptions.Width;
 | |
|     end;
 | |
| end;
 | |
| 
 | |
| procedure TSelectRestConnectionForm.Init(aList: TSQLDBRestConnectionList);
 | |
| 
 | |
| Var
 | |
|   I : integer;
 | |
| 
 | |
| begin
 | |
|   For I:=0 to aList.Count-1 do
 | |
|     RGConnection.Items.AddObject(aList[I].Name,aList[i]);
 | |
| end;
 | |
| 
 | |
| procedure TSelectRestConnectionForm.Init(aList: TStrings);
 | |
| begin
 | |
|   RGConnection.Items.Assign(aList);
 | |
| end;
 | |
| 
 | |
| function TSelectRestConnectionForm.SelectedConnection: TSQLDBRestConnection;
 | |
| begin
 | |
|   With RGConnection do
 | |
|     if ItemIndex=-1 then
 | |
|       Result:=Nil
 | |
|     else
 | |
|       Result:=TSQLDBRestConnection(Items.Objects[ItemIndex]);
 | |
| end;
 | |
| 
 | |
| function TSelectRestConnectionForm.SelectedOptions: TRestFieldOptions;
 | |
| 
 | |
|   Procedure Add(I : integer; V : TRestFieldOption);
 | |
|   begin
 | |
|     if CGFieldOPtions.Checked[I] then
 | |
|       Include(Result,V);
 | |
|   end;
 | |
| 
 | |
| begin
 | |
|   Result:=[];
 | |
|   Add(0,foFilter);
 | |
|   Add(1,foOrderBy);
 | |
|   Add(2,foOrderByDesc);
 | |
|   Add(3,foInInsert);
 | |
|   Add(4,foInUpdate);
 | |
|   Add(5,foRequired);
 | |
| end;
 | |
| 
 | |
| function TSelectRestConnectionForm.AllTables: Boolean;
 | |
| begin
 | |
|   Result:=CBAllTables.Checked;
 | |
| end;
 | |
| 
 | |
| end.
 | |
| 
 | 
