git-svn-id: https://192.168.0.254/svn/Componentes.Terceros.RemObjects@2 b6239004-a887-0f4b-9937-50029ccdca16
149 lines
4.2 KiB
ObjectPascal
149 lines
4.2 KiB
ObjectPascal
unit uDAClientDataModuleEditorForm;
|
|
|
|
interface
|
|
|
|
uses
|
|
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
|
Dialogs, uDAClientDataModule, StdCtrls, Buttons, DesignIntf;
|
|
|
|
type
|
|
TDAClientDataModuleEditorForm = class(TForm)
|
|
btn_CreateTables: TBitBtn;
|
|
BitBtn2: TBitBtn;
|
|
lbl_ServerUrl1: TLabel;
|
|
ed_ServerUrl: TEdit;
|
|
lbl_ServerUrl2: TLabel;
|
|
lbl_ServerUrl3: TLabel;
|
|
Label4: TLabel;
|
|
Label5: TLabel;
|
|
cb_Services: TComboBox;
|
|
BitBtn1: TBitBtn;
|
|
procedure ed_ServerUrlChange(Sender: TObject);
|
|
procedure cb_ServicesEnter(Sender: TObject);
|
|
procedure BitBtn2Click(Sender: TObject);
|
|
procedure btn_CreateTablesClick(Sender: TObject);
|
|
procedure cb_ServicesChange(Sender: TObject);
|
|
private
|
|
fServerUrlChanged: boolean;
|
|
fRestoreServerUrl: string;
|
|
fModule:TDAClientDataModule;
|
|
fCreateDataTables: boolean;
|
|
procedure FillServiceCombo;
|
|
|
|
public
|
|
class function Execute(aOwner: TCOmponent; aModule:TDAClientDataModule; aDesigner:IDesigner):boolean;
|
|
end;
|
|
|
|
var
|
|
DAClientDataModuleEditorForm: TDAClientDataModuleEditorForm;
|
|
|
|
implementation
|
|
|
|
uses
|
|
uROClasses, TypInfo, uDAIDERes, uDAPleaseWaitForm,
|
|
uDAClientDataModuleDataTableWizardForm;
|
|
|
|
{$R *.dfm}
|
|
|
|
{ TDAClientDataModuleEditorForm }
|
|
|
|
class function TDAClientDataModuleEditorForm.Execute(aOwner: TCOmponent; aModule: TDAClientDataModule; aDesigner:IDesigner): boolean;
|
|
begin
|
|
if not Assigned(aModule.RemoteService) then RaiseError(err_AssignRemoteService);
|
|
if not Assigned(aModule.RemoteService.Channel) then RaiseError(err_AssignRemoteServiceChannel);
|
|
if not Assigned(aModule.RemoteService.Message) then RaiseError(err_AssignRemoteServiceMessage);
|
|
|
|
with self.Create(aOwner) do try
|
|
|
|
fModule := aModule;
|
|
Caption := Format(Caption,[fModule.Name]);
|
|
|
|
|
|
try
|
|
fRestoreServerUrl := GetStrProp(fModule.RemoteService.Channel,'TargetURL');
|
|
ed_ServerUrl.Text := fRestoreServerUrl;
|
|
fServerUrlChanged := false;
|
|
except
|
|
ed_ServerUrl.Enabled := false;
|
|
lbl_ServerUrl1.Enabled := false;
|
|
lbl_ServerUrl2.Enabled := false;
|
|
lbl_ServerUrl3.Enabled := false;
|
|
end;
|
|
|
|
FillServiceCombo();
|
|
cb_Services.ItemIndex := cb_Services.Items.IndexOf(fModule.RemoteService.ServiceName);
|
|
cb_ServicesChange(nil);
|
|
|
|
result := ShowModal() = idOk;
|
|
if result then begin
|
|
if ed_ServerUrl.Enabled then SetStrProp(fModule.RemoteService.Channel,'TargetURL',ed_ServerUrl.Text);
|
|
fModule.RemoteService.ServiceName := cb_Services.Text;
|
|
|
|
if fCreateDataTables then begin
|
|
TDAClientDataModuleDataTableWizardForm.Execute(aOwner, fModule, aDesigner);
|
|
end;
|
|
|
|
end;
|
|
|
|
finally
|
|
Free();
|
|
end;
|
|
end;
|
|
|
|
procedure TDAClientDataModuleEditorForm.ed_ServerUrlChange(
|
|
Sender: TObject);
|
|
begin
|
|
fServerUrlChanged := true;
|
|
end;
|
|
|
|
procedure TDAClientDataModuleEditorForm.FillServiceCombo;
|
|
var
|
|
lServiceNames: IROStrings;
|
|
i:integer;
|
|
begin
|
|
Screen.Cursor := crHourGlass;
|
|
try
|
|
cb_Services.Items.Clear();
|
|
lServiceNames := fModule.RemoteService.GetServiceNames();
|
|
if Assigned(lServiceNames) then begin
|
|
for i := 0 to (lServiceNames.Count-1) do
|
|
cb_Services.Items.Add(lServiceNames[i]);
|
|
end
|
|
else begin
|
|
cb_Services.Text := '<could not retrieve RODL>';
|
|
end;
|
|
cb_ServicesChange(nil);
|
|
finally
|
|
Screen.Cursor := crDefault;
|
|
end;
|
|
end;
|
|
|
|
procedure TDAClientDataModuleEditorForm.cb_ServicesEnter(Sender: TObject);
|
|
begin
|
|
if fServerUrlChanged then begin
|
|
if ed_ServerUrl.Enabled then begin
|
|
SetStrProp(fModule.RemoteService.Channel,'TargetURL',ed_ServerUrl.Text);
|
|
FillServiceCombo();
|
|
end;
|
|
fServerUrlChanged := true;
|
|
end
|
|
end;
|
|
|
|
procedure TDAClientDataModuleEditorForm.BitBtn2Click(Sender: TObject);
|
|
begin
|
|
if ed_ServerUrl.Enabled then
|
|
SetStrProp(fModule.RemoteService.Channel,'TargetURL',fRestoreServerUrl);
|
|
end;
|
|
|
|
procedure TDAClientDataModuleEditorForm.btn_CreateTablesClick(Sender: TObject);
|
|
begin
|
|
fCreateDataTables := true;
|
|
end;
|
|
|
|
procedure TDAClientDataModuleEditorForm.cb_ServicesChange(Sender: TObject);
|
|
begin
|
|
btn_CreateTables.Enabled := cb_Services.Text <> '';
|
|
end;
|
|
|
|
end.
|