📄 databindingobjs.pas
字号:
TXMLCinemaType = class(TXMLNode, IXMLCinemaType)
protected
{ IXMLCinemaType }
function GetId: WideString;
function GetLogoUrl: WideString;
function GetUrl: WideString;
function GetName: WideString;
function GetPhone: WideString;
function GetAddress: WideString;
function GetDirections: WideString;
function GetFacilities: IXMLFacilitiesType;
function GetPricing: IXMLPricingType;
procedure SetId(Value: WideString);
procedure SetLogoUrl(Value: WideString);
procedure SetUrl(Value: WideString);
procedure SetName(Value: WideString);
procedure SetPhone(Value: WideString);
procedure SetAddress(Value: WideString);
procedure SetDirections(Value: WideString);
public
procedure AfterConstruction; override;
end;
{ TXMLFacilitiesType }
TXMLFacilitiesType = class(TXMLNode, IXMLFacilitiesType)
protected
{ IXMLFacilitiesType }
function GetCandyBar: Boolean;
function GetDisabledAccess: Boolean;
procedure SetCandyBar(Value: Boolean);
procedure SetDisabledAccess(Value: Boolean);
end;
{ TXMLPricingType }
TXMLPricingType = class(TXMLNodeCollection, IXMLPricingType)
protected
{ IXMLPricingType }
function GetPrices(Index: Integer): IXMLPricesType;
function Add: IXMLPricesType;
function Insert(const Index: Integer): IXMLPricesType;
public
procedure AfterConstruction; override;
end;
{ TXMLPricesType }
TXMLPricesType = class(TXMLNode, IXMLPricesType)
protected
{ IXMLPricesType }
function GetId: WideString;
function GetName: WideString;
function GetPeriod: WideString;
function GetAdult: Double;
function GetChild: Double;
function GetDiscount: Double;
procedure SetId(Value: WideString);
procedure SetName(Value: WideString);
procedure SetPeriod(Value: WideString);
procedure SetAdult(Value: Double);
procedure SetChild(Value: Double);
procedure SetDiscount(Value: Double);
end;
{ TXMLScreeningsType }
TXMLScreeningsType = class(TXMLNodeCollection, IXMLScreeningsType)
protected
{ IXMLScreeningsType }
function GetScreening(Index: Integer): IXMLScreeningType;
function Add: IXMLScreeningType;
function Insert(const Index: Integer): IXMLScreeningType;
public
procedure AfterConstruction; override;
end;
{ TXMLScreeningType }
TXMLScreeningType = class(TXMLNode, IXMLScreeningType)
protected
{ IXMLScreeningType }
function GetMovieId: WideString;
function GetCinemaId: WideString;
function GetStartDate: TDateTime;
function GetEndDate: TDateTime;
function GetFeatures: IXMLFeaturesType;
function GetRestrictions: IXMLRestrictionsType;
function GetSessions: IXMLSessionsType;
procedure SetMovieId(Value: WideString);
procedure SetCinemaId(Value: WideString);
procedure SetStartDate(Value: TDateTime);
procedure SetEndDate(Value: TDateTime);
public
procedure AfterConstruction; override;
end;
{ TXMLFeaturesType }
TXMLFeaturesType = class(TXMLNode, IXMLFeaturesType)
protected
{ IXMLFeaturesType }
function GetDigitalSound: WideString;
procedure SetDigitalSound(Value: WideString);
end;
{ TXMLRestrictionsType }
TXMLRestrictionsType = class(TXMLNode, IXMLRestrictionsType)
protected
{ IXMLRestrictionsType }
function GetNoPasses: Boolean;
procedure SetNoPasses(Value: Boolean);
end;
{ TXMLSessionsType }
TXMLSessionsType = class(TXMLNodeCollection, IXMLSessionsType)
protected
{ IXMLSessionsType }
function GetSession(Index: Integer): IXMLSessionType;
function Add: IXMLSessionType;
function Insert(const Index: Integer): IXMLSessionType;
public
procedure AfterConstruction; override;
end;
{ TXMLSessionType }
TXMLSessionType = class(TXMLNode, IXMLSessionType)
protected
{ IXMLSessionType }
function GetPriceId: WideString;
procedure SetPriceId(Value: WideString);
function GetTime: TDateTime; // KW
procedure SetTime(Value: TDateTime); // KW
end;
{ Global Functions }
function GetMovieWatcher(Doc: IXMLDocument): IXMLMovieWatcherType;
function LoadMovieWatcher(const FileName: WideString): IXMLMovieWatcherType;
function NewMovieWatcher: IXMLMovieWatcherType;
implementation
{ Global Functions }
function GetMovieWatcher(Doc: IXMLDocument): IXMLMovieWatcherType;
begin
Result := Doc.GetDocBinding('movie-watcher', TXMLMovieWatcherType) as IXMLMovieWatcherType;
end;
function LoadMovieWatcher(const FileName: WideString): IXMLMovieWatcherType;
begin
Result := LoadXMLDocument(FileName).GetDocBinding('movie-watcher', TXMLMovieWatcherType) as IXMLMovieWatcherType;
end;
function NewMovieWatcher: IXMLMovieWatcherType;
begin
Result := NewXMLDocument.GetDocBinding('movie-watcher', TXMLMovieWatcherType) as IXMLMovieWatcherType;
end;
{ TXMLMovieWatcherType }
procedure TXMLMovieWatcherType.AfterConstruction;
begin
RegisterChildNode('movies', TXMLMoviesType);
RegisterChildNode('cinemas', TXMLCinemasType);
RegisterChildNode('screenings', TXMLScreeningsType);
inherited;
end;
function TXMLMovieWatcherType.GetMovies: IXMLMoviesType;
begin
Result := ChildNodes['movies'] as IXMLMoviesType;
end;
function TXMLMovieWatcherType.GetCinemas: IXMLCinemasType;
begin
Result := ChildNodes['cinemas'] as IXMLCinemasType;
end;
function TXMLMovieWatcherType.GetScreenings: IXMLScreeningsType;
begin
Result := ChildNodes['screenings'] as IXMLScreeningsType;
end;
{ TXMLMoviesType }
procedure TXMLMoviesType.AfterConstruction;
begin
RegisterChildNode('movie', TXMLMovieType);
ItemTag := 'movie';
ItemInterface := IXMLMovieType;
inherited;
end;
function TXMLMoviesType.GetMovie(Index: Integer): IXMLMovieType;
begin
Result := List[Index] as IXMLMovieType;
end;
function TXMLMoviesType.Add: IXMLMovieType;
begin
Result := AddItem(-1) as IXMLMovieType;
end;
function TXMLMoviesType.Insert(const Index: Integer): IXMLMovieType;
begin
Result := AddItem(Index) as IXMLMovieType;
end;
{ TXMLMovieType }
procedure TXMLMovieType.AfterConstruction;
begin
RegisterChildNode('starring', TXMLStarringType);
inherited;
end;
function TXMLMovieType.GetId: WideString;
begin
Result := AttributeNodes['id'].Text;
end;
procedure TXMLMovieType.SetId(Value: WideString);
begin
SetAttribute('id', Value);
end;
function TXMLMovieType.GetRating: WideString;
begin
Result := AttributeNodes['rating'].Text;
end;
procedure TXMLMovieType.SetRating(Value: WideString);
begin
SetAttribute('rating', Value);
end;
function TXMLMovieType.GetLogoUrl: WideString;
begin
Result := AttributeNodes['logo-url'].Text;
end;
procedure TXMLMovieType.SetLogoUrl(Value: WideString);
begin
SetAttribute('logo-url', Value);
end;
function TXMLMovieType.GetUrl: WideString;
begin
Result := AttributeNodes['url'].Text;
end;
procedure TXMLMovieType.SetUrl(Value: WideString);
begin
SetAttribute('url', Value);
end;
function TXMLMovieType.GetName: WideString;
begin
Result := ChildNodes['name'].Text;
end;
procedure TXMLMovieType.SetName(Value: WideString);
begin
ChildNodes['name'].NodeValue := Value;
end;
function TXMLMovieType.GetLength: Integer;
begin
Result := ChildNodes['length'].NodeValue;
end;
procedure TXMLMovieType.SetLength(Value: Integer);
begin
ChildNodes['length'].NodeValue := Value;
end;
function TXMLMovieType.GetDirector: WideString;
begin
Result := ChildNodes['director'].Text;
end;
procedure TXMLMovieType.SetDirector(Value: WideString);
begin
ChildNodes['director'].NodeValue := Value;
end;
function TXMLMovieType.GetStarring: IXMLStarringType;
begin
Result := ChildNodes['starring'] as IXMLStarringType;
end;
function TXMLMovieType.GetSynopsis: WideString;
begin
Result := ChildNodes['synopsis'].Text;
end;
procedure TXMLMovieType.SetSynopsis(Value: WideString);
begin
ChildNodes['synopsis'].NodeValue := Value;
end;
{ TXMLStarringType }
procedure TXMLStarringType.AfterConstruction;
begin
ItemTag := 'star';
ItemInterface := IXMLNode;
inherited;
end;
function TXMLStarringType.GetStar(Index: Integer): WideString;
begin
Result := ChildNodes[Index].Text; // KW
end;
function TXMLStarringType.Add(const Star: WideString): IXMLNode;
begin
Result := AddItem(-1);
Result.NodeValue := Star;
end;
function TXMLStarringType.Insert(const Index: Integer; const Star: WideString): IXMLNode;
begin
Result := AddItem(Index);
Result.NodeValue := Star;
end;
{ TXMLCinemasType }
procedure TXMLCinemasType.AfterConstruction;
begin
RegisterChildNode('cinema', TXMLCinemaType);
ItemTag := 'cinema';
ItemInterface := IXMLCinemaType;
inherited;
end;
function TXMLCinemasType.GetCinema(Index: Integer): IXMLCinemaType;
begin
Result := List[Index] as IXMLCinemaType;
end;
function TXMLCinemasType.Add: IXMLCinemaType;
begin
Result := AddItem(-1) as IXMLCinemaType;
end;
function TXMLCinemasType.Insert(const Index: Integer): IXMLCinemaType;
begin
Result := AddItem(Index) as IXMLCinemaType;
end;
{ TXMLCinemaType }
procedure TXMLCinemaType.AfterConstruction;
begin
RegisterChildNode('facilities', TXMLFacilitiesType);
RegisterChildNode('pricing', TXMLPricingType);
inherited;
end;
function TXMLCinemaType.GetId: WideString;
begin
Result := AttributeNodes['id'].Text;
end;
procedure TXMLCinemaType.SetId(Value: WideString);
begin
SetAttribute('id', Value);
end;
function TXMLCinemaType.GetLogoUrl: WideString;
begin
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -