mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-05-02 23:43:40 +02:00
174 lines
4.6 KiB
ObjectPascal
174 lines
4.6 KiB
ObjectPascal
unit frasqldbfullrestschemaaditor;
|
|
|
|
{$mode objfpc}{$H+}
|
|
|
|
interface
|
|
|
|
uses
|
|
Classes, SysUtils, Forms, Controls, ExtCtrls, PropertyStorage, fraconnections, sqldb, sqldbrestschema, sqldbschemaedittools,
|
|
fraSQLDBRestSchemaEditor, sqldbrestbridge;
|
|
|
|
type
|
|
|
|
{ TSchemaEditorFrame }
|
|
|
|
TSchemaEditorFrame = class(TFrame)
|
|
fraConn: TfraConnections;
|
|
splConnection: TSplitter;
|
|
fraSchema: TSQLDBRestSchemaEditorFrame;
|
|
private
|
|
FOnSchemaChanged: TNotifyEvent;
|
|
procedure DoImportSchema(Sender: TObject);
|
|
procedure DoSchemaChanged(Sender: TObject);
|
|
function GetConnections: TSQLDBRestConnectionList;
|
|
function GetConnectionsFileName: String;
|
|
function GetConnectionsModified: Boolean;
|
|
function GetModified: Boolean;
|
|
function GetSchema: TSQLDBRestSchema;
|
|
procedure SetConnections(AValue: TSQLDBRestConnectionList);
|
|
procedure SetSchema(AValue: TSQLDBRestSchema);
|
|
public
|
|
Constructor Create(aOwner : TComponent);override;
|
|
Procedure ClearSchema;
|
|
Function CheckSave : Boolean;
|
|
Procedure LoadSchema(Const aFileName : String);
|
|
Procedure SaveSchema(Const aFileName : String);
|
|
Procedure LoadConnections(Const aFileName : String);
|
|
Procedure SaveConnections(Const aFileName : String);
|
|
Procedure LoadSession(aStorage : TCustomPropertyStorage);
|
|
Procedure SaveSession(aStorage : TCustomPropertyStorage);
|
|
Property ConnectionsFileName : String Read GetConnectionsFileName;
|
|
Property SchemaModified : Boolean Read GetModified;
|
|
Property ConnectionsModified : Boolean Read GetConnectionsModified;
|
|
Property OnSchemaChanged : TNotifyEvent Read FOnSchemaChanged Write FOnSchemaChanged;
|
|
Property Schema : TSQLDBRestSchema Read GetSchema Write SetSchema;
|
|
Property Connections : TSQLDBRestConnectionList Read GetConnections Write SetConnections;
|
|
end;
|
|
|
|
implementation
|
|
|
|
uses dlgrestfieldoptions;
|
|
|
|
{$R *.lfm}
|
|
|
|
{ TSchemaEditorFrame }
|
|
|
|
procedure TSchemaEditorFrame.DoImportSchema(Sender: TObject);
|
|
|
|
Var
|
|
RFO : TRestFieldOptions;
|
|
Conn : TSQLConnection;
|
|
|
|
begin
|
|
Conn:=(Sender as TMySQLDBRestConnection).MyConnection;
|
|
RFO:=fraSchema.ImportOpts;
|
|
if GetRestFieldOptions(RFO) then
|
|
FraSchema.Schema.PopulateResources(Conn,Nil,RFO);
|
|
end;
|
|
|
|
procedure TSchemaEditorFrame.DoSchemaChanged(Sender: TObject);
|
|
begin
|
|
if Assigned(FOnSchemaChanged) then
|
|
FOnSchemaChanged(Sender);
|
|
end;
|
|
|
|
function TSchemaEditorFrame.GetConnections: TSQLDBRestConnectionList;
|
|
begin
|
|
Result:=fraConn.Connections;
|
|
end;
|
|
|
|
function TSchemaEditorFrame.GetConnectionsFileName: String;
|
|
begin
|
|
Result:=fraConn.FileName;
|
|
end;
|
|
|
|
function TSchemaEditorFrame.GetConnectionsModified: Boolean;
|
|
begin
|
|
Result:=fraConn.Modified
|
|
end;
|
|
|
|
function TSchemaEditorFrame.GetModified: Boolean;
|
|
begin
|
|
Result:=fraSchema.Modified;
|
|
end;
|
|
|
|
function TSchemaEditorFrame.GetSchema: TSQLDBRestSchema;
|
|
begin
|
|
Result:=fraSchema.Schema;
|
|
end;
|
|
|
|
procedure TSchemaEditorFrame.SetConnections(AValue: TSQLDBRestConnectionList);
|
|
begin
|
|
FraConn.Connections:=aValue;
|
|
end;
|
|
|
|
procedure TSchemaEditorFrame.SetSchema(AValue: TSQLDBRestSchema);
|
|
begin
|
|
if Assigned(aValue) then
|
|
begin
|
|
Schema.Name:=aValue.Name;
|
|
Schema.Resources.Assign(aValue.Resources);
|
|
fraSchema.ShowResources;
|
|
end;
|
|
end;
|
|
|
|
|
|
constructor TSchemaEditorFrame.Create(aOwner: TComponent);
|
|
begin
|
|
inherited Create(aOwner);
|
|
fraConn.OnImportSchema:=@DoImportSchema;
|
|
fraSchema.ConnectionPane:=fraConn;
|
|
fraSchema.Connections:=fraConn.Connections;
|
|
fraSchema.OnChanged:=@DoSchemaChanged;
|
|
end;
|
|
|
|
procedure TSchemaEditorFrame.ClearSchema;
|
|
begin
|
|
FraSchema.ClearSchema;
|
|
end;
|
|
|
|
function TSchemaEditorFrame.CheckSave: Boolean;
|
|
begin
|
|
Result:=FraSchema.CheckSave;
|
|
end;
|
|
|
|
procedure TSchemaEditorFrame.LoadSchema(const aFileName: String);
|
|
begin
|
|
fraSchema.LoadFromFile(aFileName);
|
|
end;
|
|
|
|
procedure TSchemaEditorFrame.SaveSchema(const aFileName: String);
|
|
begin
|
|
fraSchema.SaveToFile(aFileName);
|
|
end;
|
|
|
|
procedure TSchemaEditorFrame.LoadConnections(const aFileName: String);
|
|
begin
|
|
fraConn.LoadConnections(aFileName);
|
|
end;
|
|
|
|
procedure TSchemaEditorFrame.SaveConnections(const aFileName: String);
|
|
begin
|
|
fraConn.SaveConnections(aFileName);
|
|
end;
|
|
|
|
procedure TSchemaEditorFrame.LoadSession(aStorage: TCustomPropertyStorage);
|
|
|
|
begin
|
|
fraConn.Width:=aStorage.ReadInteger('Connections_Width',fraConn.Width);
|
|
fraConn.Visible:=aStorage.ReadBoolean('Connections_Visible',fraConn.Visible);
|
|
fraConn.LoadSession(aStorage);
|
|
fraSchema.LoadSession(aStorage);
|
|
end;
|
|
|
|
procedure TSchemaEditorFrame.SaveSession(aStorage: TCustomPropertyStorage);
|
|
begin
|
|
aStorage.WriteInteger('Connections_Width',fraConn.Width);
|
|
aStorage.WriteBoolean('Connections_Visible',fraConn.Visible);
|
|
fraConn.SaveSession(aStorage);
|
|
fraSchema.SaveSession(aStorage);
|
|
end;
|
|
|
|
end.
|
|
|