- Recompilación de RO para poner RemObjects_Core_D10 como paquete de runtime/designtime. git-svn-id: https://192.168.0.254/svn/Componentes.Terceros.RemObjects@3 b6239004-a887-0f4b-9937-50029ccdca16
124 lines
3.2 KiB
ObjectPascal
124 lines
3.2 KiB
ObjectPascal
unit uRODataSnapPublishedProvidersCollection;
|
|
|
|
interface
|
|
|
|
uses Classes, Provider;
|
|
|
|
type TPublishedProvider = class(TCollectionItem)
|
|
private
|
|
fProvider:TCustomProvider;
|
|
fName: string;
|
|
procedure SetProvider(const iValue:TCustomProvider);
|
|
procedure SetName(const iValue:string);
|
|
protected
|
|
function GetDisplayName: string; override;
|
|
published
|
|
property Provider:TCustomProvider read fProvider write SetProvider;
|
|
property Name:string read fName write SetName;
|
|
end;
|
|
|
|
TPublishedProviders = class(TCollection)
|
|
private
|
|
fOwner:TComponent;
|
|
function GetItems(iIndex: integer): TPublishedProvider;
|
|
protected
|
|
function GetOwner: TPersistent; override;
|
|
public
|
|
constructor Create(iOwner:TComponent);
|
|
property Items[iIndex:integer]:TPublishedProvider read GetItems; default;
|
|
function GetProviderByName(iName:string):TPublishedProvider;
|
|
procedure UnlinkProvider(iProvider:TCustomProvider);
|
|
procedure RemoveProvider(iProvider:TCustomProvider);
|
|
function ContainsProvider(iProvider:TCustomProvider):Boolean;
|
|
end;
|
|
|
|
implementation
|
|
|
|
{ TPublishedProviders }
|
|
|
|
constructor TPublishedProviders.Create(iOwner: TComponent);
|
|
begin
|
|
inherited Create(TPublishedProvider);
|
|
fOwner := iOwner;
|
|
end;
|
|
|
|
function TPublishedProviders.GetItems(iIndex: integer): TPublishedProvider;
|
|
begin
|
|
result := (inherited Items[iIndex]) as TPublishedProvider;
|
|
end;
|
|
|
|
function TPublishedProviders.GetOwner: TPersistent;
|
|
begin
|
|
result := fOwner;
|
|
end;
|
|
|
|
function TPublishedProviders.GetProviderByName(iName:string):TPublishedProvider;
|
|
var i:Integer;
|
|
begin
|
|
result := nil;
|
|
i := 0;
|
|
while (i < Count) and (result = nil) do begin
|
|
if Items[i].Name = iName then result := Items[i];
|
|
Inc(i);
|
|
end; { while }
|
|
end;
|
|
|
|
function TPublishedProviders.ContainsProvider(iProvider: TCustomProvider): Boolean;
|
|
var i:Integer;
|
|
begin
|
|
Result := False;
|
|
for i := 0 to Count-1 do begin
|
|
if Items[i].Provider = iProvider then begin
|
|
Result := True;
|
|
break;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
procedure TPublishedProviders.RemoveProvider(iProvider: TCustomProvider);
|
|
var i:Integer;
|
|
begin
|
|
for i := 0 to Count-1 do
|
|
if Items[i].Provider = iProvider then begin
|
|
Delete(i);
|
|
break;
|
|
end;
|
|
end;
|
|
|
|
procedure TPublishedProviders.UnlinkProvider(iProvider: TCustomProvider);
|
|
var i:Integer;
|
|
begin
|
|
for i := 0 to Count-1 do
|
|
if Items[i].Provider = iProvider then begin
|
|
Items[i].Provider := nil;
|
|
break;
|
|
end;
|
|
end;
|
|
|
|
{ TPublishedProvider }
|
|
|
|
function TPublishedProvider.GetDisplayName: string;
|
|
begin
|
|
if Name <> '' then result := Name
|
|
else if Assigned(fProvider) then result := fProvider.Name
|
|
else result := ClassName;
|
|
end;
|
|
|
|
procedure TPublishedProvider.SetName(const iValue: string);
|
|
begin
|
|
fName := iValue;
|
|
end;
|
|
|
|
procedure TPublishedProvider.SetProvider(const iValue: TCustomProvider);
|
|
begin
|
|
fProvider := iValue;
|
|
if (fName = '') and Assigned(iValue) then fName := iValue.Name;
|
|
|
|
if Assigned(iValue) and (Collection.Owner is TComponent) then
|
|
iValue.FreeNotification(Collection.Owner as TComponent);
|
|
end;
|
|
|
|
|
|
end.
|
|
|