Componentes.Terceros.DevExp.../official/x.44/ExpressWeb Framework/Sources/cxWebDataCtrls.pas

2030 lines
59 KiB
ObjectPascal

{*******************************************************************}
{ }
{ ExpressWeb Framework by Developer Express }
{ Visual data aware Web Controls }
{ }
{ Copyright (c) 2000-2009 Developer Express Inc. }
{ ALL RIGHTS RESERVED }
{ }
{ The entire contents of this file is protected by U.S. and }
{ International Copyright Laws. Unauthorized reproduction, }
{ reverse-engineering, and distribution of all or any portion of }
{ the code contained in this file is strictly prohibited and may }
{ result in severe civil and criminal penalties and will be }
{ prosecuted to the maximum extent possible under the law. }
{ }
{ RESTRICTIONS }
{ }
{ THIS SOURCE CODE AND ALL RESULTING INTERMEDIATE FILES }
{ (DCU, OBJ, DLL, ETC.) ARE CONFIDENTIAL AND PROPRIETARY TRADE }
{ SECRETS OF DEVELOPER EXPRESS INC. THE REGISTERED DEVELOPER IS }
{ LICENSED TO DISTRIBUTE THE EXPRESSWEB FRAMEWORK AND ALL }
{ ACCOMPANYING VCL CLASSES AS PART OF AN EXECUTABLE WEB }
{ APPLICATION ONLY. }
{ }
{ THE SOURCE CODE CONTAINED WITHIN THIS FILE AND ALL RELATED }
{ FILES OR ANY PORTION OF ITS CONTENTS SHALL AT NO TIME BE }
{ COPIED, TRANSFERRED, SOLD, DISTRIBUTED, OR OTHERWISE MADE }
{ AVAILABLE TO OTHER INDIVIDUALS WITHOUT EXPRESS WRITTEN CONSENT }
{ AND PERMISSION FROM DEVELOPER EXPRESS INC. }
{ }
{ CONSULT THE END USER LICENSE AGREEMENT FOR INFORMATION ON }
{ ADDITIONAL RESTRICTIONS. }
{ }
{*******************************************************************}
unit cxWebDataCtrls;
{$I cxVer.inc}
interface
uses
Classes, SysUtils, DB,
cxWebRender, cxWebClasses, cxWebControls, cxWebStdCtrls, cxWebData,
cxWebCalendar, cxWebDateEdit, cxWebGrids, cxWebDataNavigator;
type
TcxWebDataBinding = class(TcxCustomWebDataBinding)
private
FFieldName: string;
function GetField: TcxCustomWebDataField;
function GetFieldName: string;
procedure SetFieldName(Value: string);
protected
function GetFieldIndex: Integer; override;
{ IcxWebViewDataSupport }
function GetFirstVisibleRow: Integer; override;
function GetPageSize: Integer; override;
{ IcxWebDataSourceSupport }
procedure ChangedDataLayout(Sender: TcxCustomWebDataSource); override;
procedure UpdateData(Sender: TcxCustomWebDataSource); override;
public
procedure Assign(Source: TPersistent); override;
property Field: TcxCustomWebDataField read GetField;
property FieldIndex: Integer read GetFieldIndex;
published
property FieldName: string read GetFieldName write SetFieldName;
end;
TcxWebDBLabel = class(TcxCustomWebLabel, IcxWebDataSourceSupport, IcxWebViewDataSupport)
private
FDataBinding: TcxWebDataBinding;
procedure SetDataBinding(Value: TcxWebDataBinding);
protected
procedure Loaded; override;
procedure Notification(AComponent: TComponent; Operation: TOperation); override;
{ IcxWebProvidersSupport }
procedure ImplGetProviders(AList: TList); override;
{ IcxWebViewDataSupport }
procedure SetData(Value: Variant; DisplayText: string);
{ renderers }
procedure RegisterRenderers; override;
{ scripts }
procedure ScriptsSubscription; override;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
published
property DataBinding: TcxWebDataBinding read FDataBinding write SetDataBinding
implements IcxWebDataSourceSupport, IcxWebViewDataSupport;
end;
TcxWebDBLabelRenderer = class(TcxCustomWebLabelRenderer)
public
procedure WriteScripts; override;
class procedure GetScriptFiles(AList: TStrings); override;
end;
TcxWebDBLabelNS4Renderer = class(TcxCustomWebLabelNS4Renderer)
public
procedure WriteScripts; override;
class procedure GetScriptFiles(AList: TStrings); override;
end;
TcxWebDBEdit = class(TcxCustomWebEdit, IcxWebDataSourceSupport,
IcxWebViewDataSupport, IcxWebUpdateDataSupport)
private
FDataBinding: TcxWebDataBinding;
procedure SetDataBinding(Value: TcxWebDataBinding);
protected
procedure Loaded; override;
procedure Notification(AComponent: TComponent; Operation: TOperation); override;
{ IcxWebProvidersSupport }
procedure ImplGetProviders(AList: TList); override;
{ IcxWebViewDataSupport }
procedure SetData(Value: Variant; DisplayText: string);
{ IcxWebUpdeteDataSupport }
function CanGetData: Boolean;
function GetData: Variant;
function GetDataTypes: TcxWebDataTypes;
{ renderers }
procedure RegisterRenderers; override;
{ Scripts }
procedure ScriptsSubscription; override;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
published
property DataBinding: TcxWebDataBinding read FDataBinding write SetDataBinding
implements IcxWebDataSourceSupport, IcxWebViewDataSupport;
property MaxLength;
property Password;
property ReadOnly;
property Size;
end;
TcxWebDBEditRenderer = class(TcxCustomWebEditRenderer)
public
procedure WriteScripts; override;
class procedure GetScriptFiles(AList: TStrings); override;
end;
TcxWebDBEditNS4Renderer = class(TcxCustomWebEditNS4Renderer)
public
procedure WriteScripts; override;
class procedure GetScriptFiles(AList: TStrings); override;
end;
TcxWebDBEditOperaRenderer = class(TcxCustomWebEditOperaRenderer)
public
procedure WriteScripts; override;
class procedure GetScriptFiles(AList: TStrings); override;
end;
TcxWebDBMemo = class(TcxCustomWebMemo, IcxWebDataSourceSupport,
IcxWebViewDataSupport, IcxWebUpdateDataSupport)
private
FDataBinding: TcxWebDataBinding;
procedure SetDataBinding(Value: TcxWebDataBinding);
protected
procedure Loaded; override;
procedure Notification(AComponent: TComponent; Operation: TOperation); override;
{ IcxWebProvidersSupport }
procedure ImplGetProviders(AList: TList); override;
{ IcxWebViewDataSupport }
procedure SetData(Value: Variant; DisplayText: string);
{ IcxWebUpdeteDataSupport }
function CanGetData: Boolean;
function GetData: Variant;
function GetDataTypes: TcxWebDataTypes;
{ renderers }
procedure RegisterRenderers; override;
{ Scripts }
procedure ScriptsSubscription; override;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
published
property Cols;
property DataBinding: TcxWebDataBinding read FDataBinding write SetDataBinding
implements IcxWebDataSourceSupport, IcxWebViewDataSupport;
property ReadOnly;
property Rows;
property WordWrap;
end;
TcxWebDBMemoRenderer = class(TcxCustomWebMemoRenderer)
public
procedure WriteScripts; override;
class procedure GetScriptFiles(AList: TStrings); override;
end;
TcxWebDBMemoNS4Renderer = class(TcxCustomWebMemoNS4Renderer)
public
procedure WriteScripts; override;
class procedure GetScriptFiles(AList: TStrings); override;
end;
TcxWebDBMemoOperaRenderer = class(TcxCustomWebMemoOperaRenderer)
public
procedure WriteScripts; override;
class procedure GetScriptFiles(AList: TStrings); override;
end;
TcxListStore = (sText, sValue);
TcxWebListsDataBinding = class(TcxWebDataBinding)
private
FStore: TcxListStore;
procedure SetStore(Value: TcxListStore);
published
property Store: TcxListStore read FStore write SetStore;
end;
TcxWebDBListBox = class(TcxCustomWebListBox, IcxWebDataSourceSupport,
IcxWebViewDataSupport, IcxWebUpdateDataSupport)
private
FDataBinding: TcxWebListsDataBinding;
procedure SetDataBinding(Value: TcxWebListsDataBinding);
protected
procedure Loaded; override;
procedure Notification(AComponent: TComponent; Operation: TOperation); override;
{ IcxWebProvidersSupport }
procedure ImplGetProviders(AList: TList); override;
{ IcxWebViewDataSupport }
procedure SetData(Value: Variant; DisplayText: string);
{ IcxWebUpdeteDataSupport }
function CanGetData: Boolean;
function GetData: Variant;
function GetDataTypes: TcxWebDataTypes;
{ renderers }
procedure RegisterRenderers; override;
{ Scripts }
procedure ScriptsSubscription; override;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
published
property DataBinding: TcxWebListsDataBinding read FDataBinding write SetDataBinding
implements IcxWebDataSourceSupport, IcxWebViewDataSupport;
property Items;
property Size stored False;
property OnChange;
end;
TcxWebDBListBoxRenderer = class(TcxCustomWebListBoxRenderer)
public
procedure WriteScripts; override;
class procedure GetScriptFiles(AList: TStrings); override;
end;
TcxWebDBListBoxNS4Renderer = class(TcxCustomWebListBoxNS4Renderer)
public
procedure WriteScripts; override;
class procedure GetScriptFiles(AList: TStrings); override;
end;
TcxWebDBListBoxOperaRenderer = class(TcxCustomWebListBoxOperaRenderer)
public
procedure WriteScripts; override;
class procedure GetScriptFiles(AList: TStrings); override;
end;
TcxWebDBComboBox = class(TcxCustomWebComboBox, IcxWebDataSourceSupport,
IcxWebViewDataSupport, IcxWebUpdateDataSupport)
private
FDataBinding: TcxWebListsDataBinding;
procedure SetDataBinding(Value: TcxWebListsDataBinding);
protected
procedure Loaded; override;
procedure Notification(AComponent: TComponent; Operation: TOperation); override;
{ IcxWebProvidersSupport }
procedure ImplGetProviders(AList: TList); override;
{ IcxWebViewDataSupport }
procedure SetData(Value: Variant; DisplayText: string);
{ IcxWebUpdeteDataSupport }
function CanGetData: Boolean;
function GetData: Variant;
function GetDataTypes: TcxWebDataTypes;
{ Scripts }
procedure ScriptsSubscription; override;
{ renderers }
procedure RegisterRenderers; override;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
published
property DataBinding: TcxWebListsDataBinding read FDataBinding write SetDataBinding
implements IcxWebDataSourceSupport, IcxWebViewDataSupport;
property Items;
property OnChange;
end;
TcxWebDBComboBoxRenderer = class(TcxWebComboBoxRenderer)
public
procedure WriteScripts; override;
class procedure GetScriptFiles(AList: TStrings); override;
end;
TcxWebDBComboBoxNS4Renderer = class(TcxWebComboBoxNS4Renderer)
public
procedure WriteScripts; override;
class procedure GetScriptFiles(AList: TStrings); override;
end;
TcxWebDBComboBoxOperaRenderer = class(TcxWebComboBoxOperaRenderer)
public
procedure WriteScripts; override;
class procedure GetScriptFiles(AList: TStrings); override;
end;
TcxWebCheckBoxUndefinedValueState = (uvsChecked, uvsUnchecked);
TcxWebDBCheckBox = class(TcxCustomWebCheckBox, IcxWebDataSourceSupport,
IcxWebViewDataSupport, IcxWebUpdateDataSupport)
private
FCheckedValue: string;
FDataBinding: TcxWebDataBinding;
FUncheckedValue: string;
FUndefinedValuesState: TcxWebCheckBoxUndefinedValueState;
procedure SetDataBinding(Value: TcxWebDataBinding);
protected
procedure Loaded; override;
procedure Notification(AComponent: TComponent; Operation: TOperation); override;
{ IcxWebProvidersSupport }
procedure ImplGetProviders(AList: TList); override;
{ IcxWebViewDataSupport }
procedure SetData(Value: Variant; DisplayText: string);
{ IcxWebUpdeteDataSupport }
function CanGetData: Boolean;
function GetData: Variant;
function GetDataTypes: TcxWebDataTypes;
{ renderers }
procedure RegisterRenderers; override;
{ Scripts }
procedure ScriptsSubscription; override;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
published
property CheckedValue: string read FCheckedValue write FCheckedValue;
property DataBinding: TcxWebDataBinding read FDataBinding write SetDataBinding
implements IcxWebDataSourceSupport, IcxWebViewDataSupport;
property UncheckedValue: string read FUncheckedValue write FUncheckedValue;
property UndefinedValuesState: TcxWebCheckBoxUndefinedValueState read FUndefinedValuesState
write FUndefinedValuesState;
end;
TcxWebDBCheckBoxRenderer = class(TcxCustomWebCheckBoxRenderer)
public
procedure WriteScripts; override;
class procedure GetScriptFiles(AList: TStrings); override;
end;
TcxWebDBCheckBoxNS4Renderer = class(TcxCustomWebCheckBoxNS4Renderer)
public
procedure WriteScripts; override;
class procedure GetScriptFiles(AList: TStrings); override;
end;
TcxWebDBRadioGroup = class(TcxCustomWebRadioGroup, IcxWebDataSourceSupport,
IcxWebViewDataSupport, IcxWebUpdateDataSupport)
private
FDataBinding: TcxWebDataBinding;
procedure SetDataBinding(Value: TcxWebDataBinding);
protected
procedure Loaded; override;
procedure Notification(AComponent: TComponent; Operation: TOperation); override;
{ IcxWebProvidersSupport }
procedure ImplGetProviders(AList: TList); override;
{ IcxWebViewDataSupport }
procedure SetData(Value: Variant; DisplayText: string);
{ IcxWebUpdeteDataSupport }
function CanGetData: Boolean;
function GetData: Variant;
function GetDataTypes: TcxWebDataTypes;
{ renderers }
procedure RegisterRenderers; override;
{ Scripts }
procedure ScriptsSubscription; override;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
published
property DataBinding: TcxWebDataBinding read FDataBinding write SetDataBinding
implements IcxWebDataSourceSupport, IcxWebViewDataSupport;
end;
TcxWebDBRadioGroupRenderer = class(TcxCustomWebRadioGroupRenderer)
public
procedure WriteScripts; override;
class procedure GetScriptFiles(AList: TStrings); override;
end;
TcxWebDBRadioGroupNS4Renderer = class(TcxCustomWebRadioGroupNS4Renderer)
public
procedure WriteScripts; override;
class procedure GetScriptFiles(AList: TStrings); override;
end;
TcxWebDBImage = class(TcxCustomWebImage, IcxWebDataSourceSupport, IcxWebViewDataSupport)
private
FDataBinding: TcxWebDataBinding;
FOnLoadImage: TcxLoadImageEvent;
function GetDataSource: TcxCustomWebDataSource;
procedure SetDataBinding(Value: TcxWebDataBinding);
protected
procedure Loaded; override;
procedure Notification(AComponent: TComponent; Operation: TOperation); override;
{ IcxWebProvidersSupport }
procedure ImplGetProviders(AList: TList); override;
{ IcxWebViewDataSupport }
procedure SetData(Value: Variant; DisplayText: string);
{ renderers }
procedure RegisterRenderers; override;
{ scripts }
procedure ScriptsSubscription; override;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
property DataSource: TcxCustomWebDataSource read GetDataSource;
published
property DataBinding: TcxWebDataBinding read FDataBinding write SetDataBinding
implements IcxWebDataSourceSupport, IcxWebViewDataSupport;
property OnLoadImage: TcxLoadImageEvent read FOnLoadImage write FOnLoadImage;
end;
TcxWebDBImageRenderer = class(TcxCustomWebImageRenderer)
private
function GetWebDBImage: TcxWebDBImage;
protected
function IsLoadAllRecords: Boolean; virtual;
public
procedure WriteHTML; override;
procedure WriteScripts; override;
class procedure GetScriptFiles(AList: TStrings); override;
property WebDBImage: TcxWebDBImage read GetWebDBImage;
end;
TcxWebDBImageNS4Renderer = class(TcxWebDBImageRenderer)
protected
function IsLoadAllRecords: Boolean; override;
public
class function IsBrowserSupported(AWebBrowser: TcxWebBrowserClass): Boolean; override;
end;
TcxWebDBImageOperaRenderer = class(TcxWebDBImageNS4Renderer)
public
class function IsBrowserSupported(AWebBrowser: TcxWebBrowserClass): Boolean; override;
end;
TcxWebDBCalendar = class(TcxCustomWebCalendar, IcxWebDataSourceSupport,
IcxWebViewDataSupport, IcxWebUpdateDataSupport)
private
FDataBinding: TcxWebDataBinding;
procedure SetDataBinding(Value: TcxWebDataBinding);
protected
procedure Loaded; override;
procedure Notification(AComponent: TComponent; Operation: TOperation); override;
{ IcxWebProvidersSupport }
procedure ImplGetProviders(AList: TList); override;
{ IcxWebViewDataSupport }
procedure SetData(Value: Variant; DisplayText: string);
{ IcxWebUpdeteDataSupport }
function CanGetData: Boolean;
function GetData: Variant;
function GetDataTypes: TcxWebDataTypes;
{ renderers }
procedure RegisterRenderers; override;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
published
property DataBinding: TcxWebDataBinding read FDataBinding write SetDataBinding
implements IcxWebDataSourceSupport, IcxWebViewDataSupport;
end;
TcxWebDBCalendarRenderer = class(TcxCustomWebCalendarRenderer)
public
procedure WriteScripts; override;
class procedure GetScriptFiles(AList: TStrings); override;
end;
TcxWebDBCalendarNS4Renderer = class(TcxCustomWebCalendarNS4Renderer)
public
procedure WriteScripts; override;
class procedure GetScriptFiles(AList: TStrings); override;
end;
TcxWebDBCalendarOperaRenderer = class(TcxCustomWebCalendarOperaRenderer)
public
procedure WriteScripts; override;
class procedure GetScriptFiles(AList: TStrings); override;
end;
TcxWebDBDateEdit = class(TcxCustomWebDateEdit, IcxWebDataSourceSupport,
IcxWebViewDataSupport, IcxWebUpdateDataSupport)
private
FDataBinding: TcxWebDataBinding;
procedure SetDataBinding(Value: TcxWebDataBinding);
protected
procedure Loaded; override;
procedure Notification(AComponent: TComponent; Operation: TOperation); override;
{ IcxWebProvidersSupport }
procedure ImplGetProviders(AList: TList); override;
{ IcxWebViewDataSupport }
procedure SetData(Value: Variant; DisplayText: string);
{ IcxWebUpdeteDataSupport }
function CanGetData: Boolean;
function GetData: Variant;
function GetDataTypes: TcxWebDataTypes;
{ renderers }
procedure RegisterRenderers; override;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
published
property DataBinding: TcxWebDataBinding read FDataBinding write SetDataBinding
implements IcxWebDataSourceSupport, IcxWebViewDataSupport;
end;
TcxWebDBDateEditRenderer = class(TcxCustomWebDateEditRenderer)
public
procedure WriteScripts; override;
class procedure GetScriptFiles(AList: TStrings); override;
end;
TcxWebDBDateEditNS4Renderer = class(TcxCustomWebDateEditRenderer)
public
procedure WriteScripts; override;
class procedure GetScriptFiles(AList: TStrings); override;
end;
TcxWebDataNavigatorBinding = class(TcxCustomWebDataBinding)
private
function GetDataNavigator: TcxCustomWebDataNavigator;
protected
function GetPageSize: Integer; override;
property DataNavigator: TcxCustomWebDataNavigator read GetDataNavigator;
end;
TcxWebDBDataNavigator = class(TcxCustomWebDataNavigator, IcxWebDataSourceSupport)
private
FDataBinding: TcxWebDataNavigatorBinding;
procedure SetDataBinding(Value: TcxWebDataNavigatorBinding);
protected
procedure Loaded; override;
procedure Notification(AComponent: TComponent; Operation: TOperation); override;
{ renderers }
procedure RegisterRenderers; override;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
published
property DataBinding: TcxWebDataNavigatorBinding read FDataBinding write SetDataBinding
implements IcxWebDataSourceSupport;
end;
TcxWebDBDataNavigatorRenderer = class(TcxCustomWebDataNavigatorRenderer)
public
procedure WriteScripts; override;
class procedure GetScriptFiles(AList: TStrings); override;
end;
TcxWebDBDataNavigatorNS4Renderer = class(TcxCustomWebDataNavigatorNS4Renderer)
public
procedure WriteScripts; override;
class procedure GetScriptFiles(AList: TStrings); override;
end;
TcxWebDBDataNavigatorNS6Renderer = class(TcxCustomWebDataNavigatorNS6Renderer)
public
procedure WriteScripts; override;
class procedure GetScriptFiles(AList: TStrings); override;
end;
implementation
uses Variants, DBConsts,
{$IFDEF VCL}
Graphics,
{$ENDIF}
cxWebIntf, cxWebScriptFactory, cxWebDataUtils, cxWebFileCacheManager,
cxWebConsts;
{ TcxWebDataBinding }
function TcxWebDataBinding.GetField: TcxCustomWebDataField;
begin
if DataSource <> nil then
Result := DataSource.FieldByName(FFieldName)
else Result := nil;
end;
function TcxWebDataBinding.GetFieldName: string;
begin
Result := FFieldName;
end;
procedure TcxWebDataBinding.SetFieldName(Value: string);
begin
if FFieldName <> Value then
begin
FFieldName := Value;
ChangedDataLayout(DataSource);
end;
end;
function TcxWebDataBinding.GetFieldIndex: Integer;
begin
if Field <> nil then
Result := Field.Index
else Result := -1;
end;
function TcxWebDataBinding.GetFirstVisibleRow: Integer;
begin
if DataSource <> nil then
Result := DataSource.FocusedRowIndex
else Result := -1;
end;
function TcxWebDataBinding.GetPageSize: Integer;
begin
Result := 1;
end;
procedure TcxWebDataBinding.ChangedDataLayout(Sender: TcxCustomWebDataSource);
var
FocusedRow: Integer;
Value: Variant;
DisplayText: string;
AWebControl: IcxWebControl;
DataIntf: IcxWebViewDataSupport;
begin
if Supports(Component, IcxWebViewDataSupport, DataIntf) then
begin
if (DataSource <> nil) and (Field <> nil) then
begin
FocusedRow := DataSource.FocusedRowIndex;
if (FocusedRow >= 0) and (FocusedRow < DataSource.RowCount)then
begin
Value := DataSource.Values[DataSource.GetRowRecord(FocusedRow), Field.Index];
DisplayText := DataSource.DisplayTexts[DataSource.GetRowRecord(FocusedRow), Field.Index];
DataIntf.SetData(Value, DisplayText);
end
else DataIntf.SetData(Null, '');
end
else DataIntf.SetData(Null, '');
if Supports(Component, IcxWebControl, AWebControl) and
(AWebControl.DesignerControl <> nil) and not (csDestroying in Component.ComponentState) then
AWebControl.DesignerControl.UpdateContext;
end;
end;
procedure TcxWebDataBinding.UpdateData(Sender: TcxCustomWebDataSource);
var
DataIntf: IcxWebUpdateDataSupport;
begin
if (DataSource <> nil) and (Field <> nil) then
begin
if DataSource.CheckRowIndex(DataSource.FocusedRowIndex) then
begin
if Supports(Component, IcxWebUpdateDataSupport, DataIntf) and DataIntf.CanGetData then
DataSource.SetEditValue(Field.Index, DataIntf.GetData, DataIntf.GetDataTypes);
end;
end;
end;
procedure TcxWebDataBinding.Assign(Source: TPersistent);
begin
if Source is TcxWebDataBinding then
begin
DataSource := TcxWebDataBinding(Source).DataSource;
FieldName := TcxWebDataBinding(Source).FieldName;
end
else inherited;
end;
{ TcxWebDBLabel }
constructor TcxWebDBLabel.Create(AOwner: TComponent);
begin
inherited;
FDataBinding := TcxWebDataBinding.Create(Self);
end;
destructor TcxWebDBLabel.Destroy;
begin
FreeAndNil(FDataBinding);
inherited;
end;
procedure TcxWebDBLabel.SetDataBinding(Value: TcxWebDataBinding);
begin
DataBinding.Assign(Value);
end;
procedure TcxWebDBLabel.Loaded;
begin
inherited;
DataBinding.Loaded;
end;
procedure TcxWebDBLabel.Notification(AComponent: TComponent; Operation: TOperation);
begin
inherited Notification(AComponent, Operation);
if DataBinding <> nil then
DataBinding.Notification(AComponent, Operation);
end;
{ IcxWebProvidersSupport }
procedure TcxWebDBLabel.ImplGetProviders(AList: TList);
begin
inherited ImplGetProviders(AList);
if (DataBinding <> nil) and (DataBinding.DataSource <> nil) then
AList.Add(DataBinding.DataSource);
end;
procedure TcxWebDBLabel.SetData(Value: Variant; DisplayText: string);
begin
if Value <> Null then
Caption := DisplayText
else
begin
if IsDesigning then
Caption := Name
else Caption := '';
end;
end;
procedure TcxWebDBLabel.RegisterRenderers;
begin
WebRenderHelper.RegisterRenderer(TcxWebDBLabelRenderer);
WebRenderHelper.RegisterRenderer(TcxWebDBLabelNS4Renderer);
end;
procedure TcxWebDBLabel.ScriptsSubscription;
begin
inherited;
WebScriptsHelper.ScriptSubscription(TcxWebPostBackScript);
end;
{ TcxWebDBLabelRenderer }
procedure TcxWebDBLabelRenderer.WriteScripts;
begin
inherited WriteScripts;
if TcxWebDBLabel(WebLabel).DataBinding.DataSource <> nil then
TcxWebDBLabel(WebLabel).DataBinding.WriteControlScripts(HTMLTextBuilder, 'CreateDBLabel');
end;
class procedure TcxWebDBLabelRenderer.GetScriptFiles(AList: TStrings);
begin
inherited GetScriptFiles(AList);
AList.Add(scxDataControlsScriptName);
end;
{ TcxWebDBLabelNS4Renderer }
procedure TcxWebDBLabelNS4Renderer.WriteScripts;
begin
inherited WriteScripts;
if TcxWebDBLabel(WebLabel).DataBinding.DataSource <> nil then
TcxWebDBLabel(WebLabel).DataBinding.WriteControlScripts(HTMLTextBuilder, 'CreateDBLabel');
end;
class procedure TcxWebDBLabelNS4Renderer.GetScriptFiles(AList: TStrings);
begin
inherited GetScriptFiles(AList);
AList.Add(scxDataControlsScriptName);
end;
{ TcxWebDBEdit }
constructor TcxWebDBEdit.Create(AOwner: TComponent);
begin
inherited;
FDataBinding := TcxWebDataBinding.Create(Self);
end;
destructor TcxWebDBEdit.Destroy;
begin
FreeAndNil(FDataBinding);
inherited;
end;
procedure TcxWebDBEdit.SetDataBinding(Value: TcxWebDataBinding);
begin
DataBinding.Assign(Value);
end;
procedure TcxWebDBEdit.Loaded;
begin
inherited;
DataBinding.Loaded;
end;
procedure TcxWebDBEdit.Notification(AComponent: TComponent; Operation: TOperation);
begin
inherited Notification(AComponent, Operation);
if DataBinding <> nil then
DataBinding.Notification(AComponent, Operation);
end;
procedure TcxWebDBEdit.ImplGetProviders(AList: TList);
begin
inherited ImplGetProviders(AList);
if (DataBinding <> nil) and (DataBinding.DataSource <> nil) then
AList.Add(DataBinding.DataSource);
end;
procedure TcxWebDBEdit.SetData(Value: Variant; DisplayText: string);
begin
if Value <> Null then
Text := DisplayText
else
begin
if IsDesigning then
Text := Name
else Text := '';
end;
end;
function TcxWebDBEdit.CanGetData: Boolean;
begin
Result := not ReadOnly;
end;
function TcxWebDBEdit.GetData: Variant;
begin
Result := Text;
end;
function TcxWebDBEdit.GetDataTypes: TcxWebDataTypes;
begin
Result := [dtText];
end;
procedure TcxWebDBEdit.RegisterRenderers;
begin
WebRenderHelper.RegisterRenderer(TcxWebDBEditRenderer);
WebRenderHelper.RegisterRenderer(TcxWebDBEditNS4Renderer);
WebRenderHelper.RegisterRenderer(TcxWebDBEditOperaRenderer);
end;
procedure TcxWebDBEdit.ScriptsSubscription;
begin
inherited;
WebScriptsHelper.ScriptSubscription(TcxWebPostBackScript);
end;
{ TcxWebDBEditRenderer }
procedure TcxWebDBEditRenderer.WriteScripts;
begin
inherited WriteScripts;
if TcxWebDBEdit(WebEdit).DataBinding.DataSource <> nil then
TcxWebDBEdit(WebEdit).DataBinding.WriteControlScripts(HTMLTextBuilder, 'CreateDBEdit');
end;
class procedure TcxWebDBEditRenderer.GetScriptFiles(AList: TStrings);
begin
inherited GetScriptFiles(AList);
AList.Add(scxDataControlsScriptName);
end;
{ TcxWebDBEditNS4Renderer }
procedure TcxWebDBEditNS4Renderer.WriteScripts;
begin
inherited WriteScripts;
if TcxWebDBEdit(WebEdit).DataBinding.DataSource <> nil then
TcxWebDBEdit(WebEdit).DataBinding.WriteControlScripts(HTMLTextBuilder, 'CreateDBEdit');
end;
class procedure TcxWebDBEditNS4Renderer.GetScriptFiles(AList: TStrings);
begin
inherited GetScriptFiles(AList);
AList.Add(scxDataControlsScriptName);
end;
{ TcxWebDBEditOperaRenderer }
procedure TcxWebDBEditOperaRenderer.WriteScripts;
begin
inherited WriteScripts;
if TcxWebDBEdit(WebEdit).DataBinding.DataSource <> nil then
TcxWebDBEdit(WebEdit).DataBinding.WriteControlScripts(HTMLTextBuilder, 'CreateDBEdit');
end;
class procedure TcxWebDBEditOperaRenderer.GetScriptFiles(AList: TStrings);
begin
inherited GetScriptFiles(AList);
AList.Add(scxDataControlsScriptName);
end;
{ TcxWebDBMemo }
constructor TcxWebDBMemo.Create(AOwner: TComponent);
begin
inherited;
FDataBinding := TcxWebDataBinding.Create(Self);
end;
destructor TcxWebDBMemo.Destroy;
begin
FreeAndNil(FDataBinding);
inherited;
end;
procedure TcxWebDBMemo.SetDataBinding(Value: TcxWebDataBinding);
begin
DataBinding.Assign(Value);
end;
procedure TcxWebDBMemo.Loaded;
begin
inherited;
DataBinding.Loaded;
end;
procedure TcxWebDBMemo.Notification(AComponent: TComponent; Operation: TOperation);
begin
inherited Notification(AComponent, Operation);
if DataBinding <> nil then
DataBinding.Notification(AComponent, Operation);
end;
procedure TcxWebDBMemo.ImplGetProviders(AList: TList);
begin
inherited ImplGetProviders(AList);
if (DataBinding <> nil) and (DataBinding.DataSource <> nil) then
AList.Add(DataBinding.DataSource);
end;
procedure TcxWebDBMemo.SetData(Value: Variant; DisplayText: string);
begin
Text := HTMLValue(Value);
if (Text = '') and IsDesigning then
Text := Name;
end;
function TcxWebDBMemo.CanGetData: Boolean;
begin
Result := not ReadOnly;
end;
function TcxWebDBMemo.GetData: Variant;
begin
Result := Text;
end;
function TcxWebDBMemo.GetDataTypes: TcxWebDataTypes;
begin
Result := [dtText, dtValue];
end;
procedure TcxWebDBMemo.RegisterRenderers;
begin
WebRenderHelper.RegisterRenderer(TcxWebDBMemoRenderer);
WebRenderHelper.RegisterRenderer(TcxWebDBMemoNS4Renderer);
WebRenderHelper.RegisterRenderer(TcxWebDBMemoOperaRenderer);
end;
procedure TcxWebDBMemo.ScriptsSubscription;
begin
inherited;
WebScriptsHelper.ScriptSubscription(TcxWebPostBackScript);
end;
{ TcxWebDBMemoRenderer }
procedure TcxWebDBMemoRenderer.WriteScripts;
begin
inherited WriteScripts;
if TcxWebDBMemo(WebMemo).DataBinding.DataSource <> nil then
TcxWebDBMemo(WebMemo).DataBinding.WriteControlScripts(HTMLTextBuilder, 'CreateDBMemo');
end;
class procedure TcxWebDBMemoRenderer.GetScriptFiles(AList: TStrings);
begin
inherited GetScriptFiles(AList);
AList.Add(scxDataControlsScriptName);
end;
{ TcxWebDBMemoNS4Renderer }
procedure TcxWebDBMemoNS4Renderer.WriteScripts;
begin
inherited WriteScripts;
if TcxWebDBMemo(WebMemo).DataBinding.DataSource <> nil then
TcxWebDBMemo(WebMemo).DataBinding.WriteControlScripts(HTMLTextBuilder, 'CreateDBMemo');
end;
class procedure TcxWebDBMemoNS4Renderer.GetScriptFiles(AList: TStrings);
begin
inherited GetScriptFiles(AList);
AList.Add(scxDataControlsScriptName);
end;
{ TcxWebDBMemoOperaRenderer }
procedure TcxWebDBMemoOperaRenderer.WriteScripts;
begin
inherited WriteScripts;
if TcxWebDBMemo(WebMemo).DataBinding.DataSource <> nil then
TcxWebDBMemo(WebMemo).DataBinding.WriteControlScripts(HTMLTextBuilder, 'CreateDBMemo');
end;
class procedure TcxWebDBMemoOperaRenderer.GetScriptFiles(AList: TStrings);
begin
inherited GetScriptFiles(AList);
AList.Add(scxDataControlsScriptName);
end;
{ TcxWebListsDataBinding }
procedure TcxWebListsDataBinding.SetStore(Value: TcxListStore);
begin
if FStore <> Value then
begin
FStore := Value;
ChangedDataLayout(DataSource);
end;
end;
{ TcxWebDBListBox }
constructor TcxWebDBListBox.Create(AOwner: TComponent);
begin
inherited;
FDataBinding := TcxWebListsDataBinding.Create(Self);
end;
destructor TcxWebDBListBox.Destroy;
begin
FreeAndNil(FDataBinding);
inherited;
end;
procedure TcxWebDBListBox.SetDataBinding(Value: TcxWebListsDataBinding);
begin
DataBinding.Assign(Value);
end;
procedure TcxWebDBListBox.Loaded;
begin
inherited;
DataBinding.Loaded;
end;
procedure TcxWebDBListBox.Notification(AComponent: TComponent; Operation: TOperation);
begin
inherited Notification(AComponent, Operation);
if DataBinding <> nil then
DataBinding.Notification(AComponent, Operation);
end;
procedure TcxWebDBListBox.ImplGetProviders(AList: TList);
begin
inherited ImplGetProviders(AList);
if (DataBinding <> nil) and (DataBinding.DataSource <> nil) then
AList.Add(DataBinding.DataSource);
end;
procedure TcxWebDBListBox.SetData(Value: Variant; DisplayText: string);
begin
if Value <> Null then
begin
if DataBinding.Store = sText then
ItemIndex := Items.IndexOfText(DisplayText)
else ItemIndex := Items.IndexOfValue(DisplayText)
end
else ItemIndex := -1;
end;
function TcxWebDBListBox.CanGetData: Boolean;
begin
Result := True;
end;
function TcxWebDBListBox.GetData: Variant;
begin
if ItemIndex > -1 then
begin
if DataBinding.Store = sText then
Result := Items[ItemIndex].Text
else Result := Items[ItemIndex].Value
end
else Result := Null;
end;
function TcxWebDBListBox.GetDataTypes: TcxWebDataTypes;
begin
Result := [dtText];
end;
procedure TcxWebDBListBox.RegisterRenderers;
begin
WebRenderHelper.RegisterRenderer(TcxWebDBListBoxRenderer);
WebRenderHelper.RegisterRenderer(TcxWebDBListBoxNS4Renderer);
WebRenderHelper.RegisterRenderer(TcxWebDBListBoxOperaRenderer);
end;
procedure TcxWebDBListBox.ScriptsSubscription;
begin
inherited;
WebScriptsHelper.ScriptSubscription(TcxWebPostBackScript);
end;
{ TcxWebDBListBoxRenderer }
procedure TcxWebDBListBoxRenderer.WriteScripts;
begin
inherited WriteScripts;
if TcxWebDBListBox(WebListBox).DataBinding.DataSource <> nil then
begin
TcxWebDBListBox(WebListBox).DataBinding.WriteControlScripts(HTMLTextBuilder, 'CreateDBListBox');
if TcxWebDBListBox(WebListBox).DataBinding.Store = sValue then
HTMLTextBuilder.WriteText(' _DataControl.StoreByValues = true;');
end;
end;
class procedure TcxWebDBListBoxRenderer.GetScriptFiles(AList: TStrings);
begin
inherited GetScriptFiles(AList);
AList.Add(scxDataControlsScriptName);
end;
{ TcxWebDBListBoxNS4Renderer }
procedure TcxWebDBListBoxNS4Renderer.WriteScripts;
begin
inherited WriteScripts;
if TcxWebDBListBox(WebListBox).DataBinding.DataSource <> nil then
TcxWebDBListBox(WebListBox).DataBinding.WriteControlScripts(HTMLTextBuilder, 'CreateDBListBox');
end;
class procedure TcxWebDBListBoxNS4Renderer.GetScriptFiles(AList: TStrings);
begin
inherited GetScriptFiles(AList);
AList.Add(scxDataControlsScriptName);
end;
{ TcxWebDBListBoxOperaRenderer }
procedure TcxWebDBListBoxOperaRenderer.WriteScripts;
begin
inherited WriteScripts;
if TcxWebDBListBox(WebListBox).DataBinding.DataSource <> nil then
TcxWebDBListBox(WebListBox).DataBinding.WriteControlScripts(HTMLTextBuilder, 'CreateDBListBox');
end;
class procedure TcxWebDBListBoxOperaRenderer.GetScriptFiles(AList: TStrings);
begin
inherited GetScriptFiles(AList);
AList.Add(scxDataControlsScriptName);
end;
{ TcxWebDBComboBox }
constructor TcxWebDBComboBox.Create(AOwner: TComponent);
begin
inherited;
FDataBinding := TcxWebListsDataBinding.Create(Self);
end;
destructor TcxWebDBComboBox.Destroy;
begin
FreeAndNil(FDataBinding);
inherited;
end;
procedure TcxWebDBComboBox.SetDataBinding(Value: TcxWebListsDataBinding);
begin
DataBinding.Assign(Value);
end;
procedure TcxWebDBComboBox.Loaded;
begin
inherited;
DataBinding.Loaded;
end;
procedure TcxWebDBComboBox.Notification(AComponent: TComponent; Operation: TOperation);
begin
inherited Notification(AComponent, Operation);
if DataBinding <> nil then
DataBinding.Notification(AComponent, Operation);
end;
procedure TcxWebDBComboBox.ImplGetProviders(AList: TList);
begin
inherited ImplGetProviders(AList);
if (DataBinding <> nil) and (DataBinding.DataSource <> nil) then
AList.Add(DataBinding.DataSource);
end;
procedure TcxWebDBComboBox.SetData(Value: Variant; DisplayText: string);
begin
if Value <> Null then
begin
if DataBinding.Store = sText then
ItemIndex := Items.IndexOfText(DisplayText)
else ItemIndex := Items.IndexOfValue(DisplayText)
end
else ItemIndex := -1;
end;
function TcxWebDBComboBox.CanGetData: Boolean;
begin
Result := True;
end;
function TcxWebDBComboBox.GetData: Variant;
begin
if ItemIndex > -1 then
begin
if DataBinding.Store = sText then
Result := Items[ItemIndex].Text
else Result := Items[ItemIndex].Value
end
else Result := Null;
end;
function TcxWebDBComboBox.GetDataTypes: TcxWebDataTypes;
begin
Result := [dtText];
end;
procedure TcxWebDBComboBox.RegisterRenderers;
begin
WebRenderHelper.RegisterRenderer(TcxWebDBComboBoxRenderer);
WebRenderHelper.RegisterRenderer(TcxWebDBComboBoxNS4Renderer);
WebRenderHelper.RegisterRenderer(TcxWebDBComboBoxOperaRenderer);
end;
procedure TcxWebDBComboBox.ScriptsSubscription;
begin
inherited;
WebScriptsHelper.ScriptSubscription(TcxWebPostBackScript);
end;
{ TcxWebDBComboBoxRenderer }
procedure TcxWebDBComboBoxRenderer.WriteScripts;
begin
inherited WriteScripts;
if TcxWebDBComboBox(WebListBox).DataBinding.DataSource <> nil then
begin
TcxWebDBComboBox(WebListBox).DataBinding.WriteControlScripts(HTMLTextBuilder, 'CreateDBComboBox');
if TcxWebDBComboBox(WebListBox).DataBinding.Store = sValue then
HTMLTextBuilder.WriteText(' _DataControl.StoreByValues = true;');
end;
end;
class procedure TcxWebDBComboBoxRenderer.GetScriptFiles(AList: TStrings);
begin
inherited GetScriptFiles(AList);
AList.Add(scxDataControlsScriptName);
end;
{ TcxWebDBComboBoxNS4Renderer }
procedure TcxWebDBComboBoxNS4Renderer.WriteScripts;
begin
inherited WriteScripts;
if TcxWebDBComboBox(WebListBox).DataBinding.DataSource <> nil then
TcxWebDBComboBox(WebListBox).DataBinding.WriteControlScripts(HTMLTextBuilder, 'CreateDBComboBox');
end;
class procedure TcxWebDBComboBoxNS4Renderer.GetScriptFiles(AList: TStrings);
begin
inherited GetScriptFiles(AList);
AList.Add(scxDataControlsScriptName);
end;
{ TcxWebDBComboBoxOperaRenderer }
procedure TcxWebDBComboBoxOperaRenderer.WriteScripts;
begin
inherited WriteScripts;
if TcxWebDBComboBox(WebListBox).DataBinding.DataSource <> nil then
TcxWebDBComboBox(WebListBox).DataBinding.WriteControlScripts(HTMLTextBuilder, 'CreateDBComboBox');
end;
class procedure TcxWebDBComboBoxOperaRenderer.GetScriptFiles(AList: TStrings);
begin
inherited GetScriptFiles(AList);
AList.Add(scxDataControlsScriptName);
end;
{ TcxWebDBCheckBox }
constructor TcxWebDBCheckBox.Create(AOwner: TComponent);
begin
inherited;
FCheckedValue := DBConsts.STextTrue;
FDataBinding := TcxWebDataBinding.Create(Self);
FUncheckedValue := DBConsts.STextFalse;
FUndefinedValuesState := uvsUnchecked;
end;
destructor TcxWebDBCheckBox.Destroy;
begin
FreeAndNil(FDataBinding);
inherited;
end;
procedure TcxWebDBCheckBox.SetDataBinding(Value: TcxWebDataBinding);
begin
DataBinding.Assign(Value);
end;
procedure TcxWebDBCheckBox.Loaded;
begin
inherited;
DataBinding.Loaded;
end;
procedure TcxWebDBCheckBox.Notification(AComponent: TComponent; Operation: TOperation);
begin
inherited Notification(AComponent, Operation);
if DataBinding <> nil then
DataBinding.Notification(AComponent, Operation);
end;
procedure TcxWebDBCheckBox.ImplGetProviders(AList: TList);
begin
inherited ImplGetProviders(AList);
if (DataBinding <> nil) and (DataBinding.DataSource <> nil) then
AList.Add(DataBinding.DataSource);
end;
procedure TcxWebDBCheckBox.SetData(Value: Variant; DisplayText: string);
begin
if Value <> Null then
begin
if SameText(DisplayText, CheckedValue) then
Checked := True
else if SameText(DisplayText, UncheckedValue) then
Checked := False
else if UndefinedValuesState = uvsChecked then
Checked := True
else Checked := False;
end
else Checked := False;
end;
function TcxWebDBCheckBox.CanGetData: Boolean;
begin
Result := True;
end;
function TcxWebDBCheckBox.GetData: Variant;
begin
if Checked then
Result := CheckedValue
else Result := UncheckedValue;
end;
function TcxWebDBCheckBox.GetDataTypes: TcxWebDataTypes;
begin
Result := [dtText];
end;
procedure TcxWebDBCheckBox.RegisterRenderers;
begin
WebRenderHelper.RegisterRenderer(TcxWebDBCheckBoxRenderer);
WebRenderHelper.RegisterRenderer(TcxWebDBCheckBoxNS4Renderer);
end;
procedure TcxWebDBCheckBox.ScriptsSubscription;
begin
inherited;
WebScriptsHelper.ScriptSubscription(TcxWebPostBackScript);
end;
{ TcxWebDBCheckBoxRenderer }
procedure TcxWebDBCheckBoxRenderer.WriteScripts;
begin
inherited WriteScripts;
if TcxWebDBCheckBox(WebCheckBox).DataBinding.DataSource <> nil then
begin
TcxWebDBCheckBox(WebCheckBox).DataBinding.WriteControlScripts(HTMLTextBuilder, 'CreateDBCheckBox');
HTMLTextBuilder.WriteText(Format(' _DataControl.CheckedValue = "%s";',
[TcxWebDBCheckBox(WebCheckBox).CheckedValue]));
HTMLTextBuilder.WriteText(Format(' _DataControl.UncheckedValue = "%s";',
[TcxWebDBCheckBox(WebCheckBox).UncheckedValue]));
if TcxWebDBCheckBox(WebCheckBox).UndefinedValuesState = uvsChecked then
HTMLTextBuilder.WriteText(' _DataControl.UncheckedIsDefault = false;');
end;
end;
class procedure TcxWebDBCheckBoxRenderer.GetScriptFiles(AList: TStrings);
begin
inherited GetScriptFiles(AList);
AList.Add(scxDataControlsScriptName);
end;
{ TcxWebDBCheckBoxNS4Renderer }
procedure TcxWebDBCheckBoxNS4Renderer.WriteScripts;
begin
inherited WriteScripts;
if TcxWebDBCheckBox(WebCheckBox).DataBinding.DataSource <> nil then
TcxWebDBCheckBox(WebCheckBox).DataBinding.WriteControlScripts(HTMLTextBuilder, 'CreateDBCheckBox');
end;
class procedure TcxWebDBCheckBoxNS4Renderer.GetScriptFiles(AList: TStrings);
begin
inherited GetScriptFiles(AList);
AList.Add(scxDataControlsScriptName);
end;
{ TcxWebDBRadioGroup }
constructor TcxWebDBRadioGroup.Create(AOwner: TComponent);
begin
inherited;
FDataBinding := TcxWebDataBinding.Create(Self);
end;
destructor TcxWebDBRadioGroup.Destroy;
begin
FreeAndNil(FDataBinding);
inherited;
end;
procedure TcxWebDBRadioGroup.SetDataBinding(Value: TcxWebDataBinding);
begin
DataBinding.Assign(Value);
end;
procedure TcxWebDBRadioGroup.Loaded;
begin
inherited;
DataBinding.Loaded;
end;
procedure TcxWebDBRadioGroup.Notification(AComponent: TComponent; Operation: TOperation);
begin
inherited Notification(AComponent, Operation);
if DataBinding <> nil then
DataBinding.Notification(AComponent, Operation);
end;
procedure TcxWebDBRadioGroup.ImplGetProviders(AList: TList);
begin
inherited ImplGetProviders(AList);
if (DataBinding <> nil) and (DataBinding.DataSource <> nil) then
AList.Add(DataBinding.DataSource);
end;
procedure TcxWebDBRadioGroup.SetData(Value: Variant; DisplayText: string);
begin
if Value <> Null then
ItemIndex := Items.IndexOf(DisplayText)
else ItemIndex := -1;
end;
function TcxWebDBRadioGroup.CanGetData: Boolean;
begin
Result := True;
end;
function TcxWebDBRadioGroup.GetData: Variant;
begin
if ItemIndex > -1 then
Result := Items[ItemIndex]
else Result := Null;
end;
function TcxWebDBRadioGroup.GetDataTypes: TcxWebDataTypes;
begin
Result := [dtText];
end;
procedure TcxWebDBRadioGroup.RegisterRenderers;
begin
WebRenderHelper.RegisterRenderer(TcxWebDBRadioGroupRenderer);
WebRenderHelper.RegisterRenderer(TcxWebDBRadioGroupNS4Renderer);
end;
procedure TcxWebDBRadioGroup.ScriptsSubscription;
begin
inherited;
WebScriptsHelper.ScriptSubscription(TcxWebPostBackScript);
end;
{ TcxWebDBRadioGroupRenderer }
procedure TcxWebDBRadioGroupRenderer.WriteScripts;
begin
inherited WriteScripts;
if TcxWebDBRadioGroup(WebRadioGroup).DataBinding.DataSource <> nil then
TcxWebDBRadioGroup(WebRadioGroup).DataBinding.WriteControlScripts(HTMLTextBuilder, 'CreateDBRadioGroup');
end;
class procedure TcxWebDBRadioGroupRenderer.GetScriptFiles(AList: TStrings);
begin
inherited GetScriptFiles(AList);
AList.Add(scxDataControlsScriptName);
end;
{ TcxWebDBRadioGroupNS4Renderer }
procedure TcxWebDBRadioGroupNS4Renderer.WriteScripts;
begin
inherited WriteScripts;
if TcxWebDBRadioGroup(WebRadioGroup).DataBinding.DataSource <> nil then
TcxWebDBRadioGroup(WebRadioGroup).DataBinding.WriteControlScripts(HTMLTextBuilder, 'CreateDBRadioGroup');
end;
class procedure TcxWebDBRadioGroupNS4Renderer.GetScriptFiles(AList: TStrings);
begin
inherited GetScriptFiles(AList);
AList.Add(scxDataControlsScriptName);
end;
{ TcxWebDBImage }
constructor TcxWebDBImage.Create(AOwner: TComponent);
begin
inherited;
FDataBinding := TcxWebDataBinding.Create(Self);
end;
destructor TcxWebDBImage.Destroy;
begin
FreeAndNil(FDataBinding);
inherited;
end;
function TcxWebDBImage.GetDataSource: TcxCustomWebDataSource;
begin
if DataBinding <> nil then
Result := DataBinding.DataSource
else Result := nil;
end;
procedure TcxWebDBImage.SetDataBinding(Value: TcxWebDataBinding);
begin
DataBinding.Assign(Value);
end;
procedure TcxWebDBImage.Loaded;
begin
inherited;
DataBinding.Loaded;
end;
procedure TcxWebDBImage.Notification(AComponent: TComponent; Operation: TOperation);
begin
inherited Notification(AComponent, Operation);
if DataBinding <> nil then
DataBinding.Notification(AComponent, Operation);
end;
procedure TcxWebDBImage.ImplGetProviders(AList: TList);
begin
inherited ImplGetProviders(AList);
if (DataBinding <> nil) and (DataBinding.DataSource <> nil) then
AList.Add(DataBinding.DataSource);
end;
procedure TcxWebDBImage.SetData(Value: Variant; DisplayText: string);
var
AURL: string;
AHeight, AWidth: Integer;
{$IFDEF VCL}
AGraphicClass: TGraphicClass;
{$ENDIF}
begin
if (DataSource <> nil) and (Value <> Null) then
begin
try
{$IFDEF VCL}
AGraphicClass := nil;
{$ENDIF}
if Assigned(OnLoadImage) then OnLoadImage(Self{$IFDEF VCL}, AGraphicClass{$ENDIF});
if csDesigning in ComponentState then
begin
if Assigned(DesignPicture) then
DesignPicture.SetImage(Value);
end
else
begin
LoadImage(Value{$IFDEF VCL}, AGraphicClass{$ENDIF}, AURL, AHeight, AWidth);
PictureURL := AURL;
AltText := '';
end;
except
PictureURL := '';
AltText := '[Image]';
if Assigned(DesignPicture) then
DesignPicture.SetPath('');
end;
end
else
begin
if Assigned(DesignPicture) then
DesignPicture.SetPath('');
PictureURL := '';
AltText := Name;
end;
end;
procedure TcxWebDBImage.RegisterRenderers;
begin
WebRenderHelper.RegisterRenderer(TcxWebDBImageRenderer);
WebRenderHelper.RegisterRenderer(TcxWebDBImageNS4Renderer);
WebRenderHelper.RegisterRenderer(TcxWebDBImageOperaRenderer);
end;
procedure TcxWebDBImage.ScriptsSubscription;
begin
inherited;
WebScriptsHelper.ScriptSubscription(TcxWebPostBackScript);
end;
{ TcxWebDBImageRenderer }
function TcxWebDBImageRenderer.GetWebDBImage: TcxWebDBImage;
begin
Result := Component as TcxWebDBImage;
end;
function TcxWebDBImageRenderer.IsLoadAllRecords: Boolean;
begin
Result := (WebDBImage.DataSource <> nil) and WebDBImage.DataSource.LoadAllRecords;
end;
procedure TcxWebDBImageRenderer.WriteHTML;
var
I, AHeight, AWidth: Integer;
Value: Variant;
AOldName, AOldURL, AURL: string;
{$IFDEF VCL}
AGraphicClass: TGraphicClass;
{$ENDIF}
begin
if IsLoadAllRecords then
begin
AOldName := WebDBImage.Name;
AOldURL := WebDBImage.PictureURL;
for I := 0 to WebDBImage.DataSource.RecordCount - 1 do
begin
WebDBImage.Name := Format('%s_%d', [AOldName, I]);
Value := WebDBImage.DataSource.Values[I, WebDBImage.DataBinding.FieldIndex];
{$IFDEF VCL}
AGraphicClass := nil;
{$ENDIF}
if Assigned(WebDBImage.OnLoadImage) then
WebDBImage.OnLoadImage(WebDBImage{$IFDEF VCL}, AGraphicClass{$ENDIF});
try
LoadImage(Value{$IFDEF VCL}, AGraphicClass{$ENDIF}, AURL, AHeight, AWidth);
except
AURL := '';
end;
WebDBImage.PictureURL := AURL;
inherited WriteHTML;
HTMLTextBuilder.WriteStyleAttribute(saVisibility, 'hidden');
HTMLTextBuilder.WriteStyleAttribute(saPosition, 'absolute');
end;
WebDBImage.Name := AOldName;
WebDBImage.PictureURL := AOldURL;
end
else inherited WriteHTML;
end;
procedure TcxWebDBImageRenderer.WriteScripts;
begin
inherited WriteScripts;
if WebDBImage.DataBinding.DataSource <> nil then
WebDBImage.DataBinding.WriteControlScripts(HTMLTextBuilder, 'CreateDBImage');
end;
class procedure TcxWebDBImageRenderer.GetScriptFiles(AList: TStrings);
begin
inherited GetScriptFiles(AList);
AList.Add(scxDataControlsScriptName);
end;
{ TcxWebDBImageNS4Renderer }
class function TcxWebDBImageNS4Renderer.IsBrowserSupported(
AWebBrowser: TcxWebBrowserClass): Boolean;
begin
Result := AWebBrowser = TcxWebBrowserNS4;
end;
function TcxWebDBImageNS4Renderer.IsLoadAllRecords: Boolean;
begin
Result := False;
end;
{ TcxWebDBImageOperaRenderer }
class function TcxWebDBImageOperaRenderer.IsBrowserSupported(
AWebBrowser: TcxWebBrowserClass): Boolean;
begin
Result := AWebBrowser = TcxWebBrowserOpera;
end;
{ TcxWebDBCalendar }
constructor TcxWebDBCalendar.Create(AOwner: TComponent);
begin
inherited;
FDataBinding := TcxWebDataBinding.Create(Self);
end;
destructor TcxWebDBCalendar.Destroy;
begin
FreeAndNil(FDataBinding);
inherited;
end;
function TcxWebDBCalendar.CanGetData: Boolean;
begin
Result := True;
end;
function TcxWebDBCalendar.GetData: Variant;
begin
Result := SelectedDate;
end;
function TcxWebDBCalendar.GetDataTypes: TcxWebDataTypes;
begin
Result := [dtText];
end;
procedure TcxWebDBCalendar.ImplGetProviders(AList: TList);
begin
inherited ImplGetProviders(AList);
if (DataBinding <> nil) and (DataBinding.DataSource <> nil) then
AList.Add(DataBinding.DataSource);
end;
procedure TcxWebDBCalendar.Loaded;
begin
inherited;
DataBinding.Loaded;
end;
procedure TcxWebDBCalendar.Notification(AComponent: TComponent;
Operation: TOperation);
begin
inherited Notification(AComponent, Operation);
if DataBinding <> nil then
DataBinding.Notification(AComponent, Operation);
end;
procedure TcxWebDBCalendar.RegisterRenderers;
begin
WebRenderHelper.RegisterRenderer(TcxWebDBCalendarRenderer);
WebRenderHelper.RegisterRenderer(TcxWebDBCalendarNS4Renderer);
WebRenderHelper.RegisterRenderer(TcxWebDBCalendarOperaRenderer);
end;
procedure TcxWebDBCalendar.SetData(Value: Variant; DisplayText: string);
begin
if VarIsType(Value, varDate) then
SelectedDate := VarToDateTime(Value);
end;
procedure TcxWebDBCalendar.SetDataBinding(Value: TcxWebDataBinding);
begin
DataBinding.Assign(Value);
end;
{ TcxWebDBCalendarRenderer }
class procedure TcxWebDBCalendarRenderer.GetScriptFiles(AList: TStrings);
begin
inherited GetScriptFiles(AList);
AList.Add(scxDataControlsScriptName);
end;
procedure TcxWebDBCalendarRenderer.WriteScripts;
begin
inherited WriteScripts;
if TcxWebDBCalendar(WebCalendar).DataBinding.DataSource <> nil then
TcxWebDBCalendar(WebCalendar).DataBinding.WriteControlScripts(HTMLTextBuilder, 'CreateDBCalendar');
end;
{ TcxWebDBCalendarNS4Renderer }
class procedure TcxWebDBCalendarNS4Renderer.GetScriptFiles(AList: TStrings);
begin
inherited GetScriptFiles(AList);
AList.Add(scxDataControlsScriptName);
end;
procedure TcxWebDBCalendarNS4Renderer.WriteScripts;
begin
inherited WriteScripts;
if TcxWebDBCalendar(WebCalendar).DataBinding.DataSource <> nil then
TcxWebDBCalendar(WebCalendar).DataBinding.WriteControlScripts(HTMLTextBuilder, 'CreateDBCalendar');
end;
{ TcxWebDBCalendarOperaRenderer }
class procedure TcxWebDBCalendarOperaRenderer.GetScriptFiles(AList: TStrings);
begin
inherited GetScriptFiles(AList);
AList.Add(scxDataControlsScriptName);
end;
procedure TcxWebDBCalendarOperaRenderer.WriteScripts;
begin
inherited WriteScripts;
if TcxWebDBCalendar(WebCalendar).DataBinding.DataSource <> nil then
TcxWebDBCalendar(WebCalendar).DataBinding.WriteControlScripts(HTMLTextBuilder, 'CreateDBCalendar');
end;
{ TcxWebDBDateEdit }
constructor TcxWebDBDateEdit.Create(AOwner: TComponent);
begin
inherited;
FDataBinding := TcxWebDataBinding.Create(Self);
end;
destructor TcxWebDBDateEdit.Destroy;
begin
FreeAndNil(FDataBinding);
inherited;
end;
function TcxWebDBDateEdit.CanGetData: Boolean;
begin
Result := True;
end;
function TcxWebDBDateEdit.GetData: Variant;
begin
Result := SelectedDate;
end;
function TcxWebDBDateEdit.GetDataTypes: TcxWebDataTypes;
begin
Result := [dtText];
end;
procedure TcxWebDBDateEdit.ImplGetProviders(AList: TList);
begin
inherited ImplGetProviders(AList);
if (DataBinding <> nil) and (DataBinding.DataSource <> nil) then
AList.Add(DataBinding.DataSource);
end;
procedure TcxWebDBDateEdit.Loaded;
begin
inherited;
DataBinding.Loaded;
end;
procedure TcxWebDBDateEdit.Notification(AComponent: TComponent;
Operation: TOperation);
begin
inherited Notification(AComponent, Operation);
if DataBinding <> nil then
DataBinding.Notification(AComponent, Operation);
end;
procedure TcxWebDBDateEdit.RegisterRenderers;
begin
WebRenderHelper.RegisterRenderer(TcxWebDBDateEditRenderer);
WebRenderHelper.RegisterRenderer(TcxWebDBDateEditNS4Renderer);
end;
procedure TcxWebDBDateEdit.SetData(Value: Variant; DisplayText: string);
begin
if VarIsType(Value, varDate) then
SelectedDate := VarToDateTime(Value);
end;
procedure TcxWebDBDateEdit.SetDataBinding(Value: TcxWebDataBinding);
begin
DataBinding.Assign(Value);
end;
{ TcxWebDBDateEditRenderer }
class procedure TcxWebDBDateEditRenderer.GetScriptFiles(AList: TStrings);
begin
inherited GetScriptFiles(AList);
AList.Add(scxDataControlsScriptName);
end;
procedure TcxWebDBDateEditRenderer.WriteScripts;
begin
inherited WriteScripts;
if TcxWebDBDateEdit(WebDateEdit).DataBinding.DataSource <> nil then
TcxWebDBDateEdit(WebDateEdit).DataBinding.WriteControlScripts(HTMLTextBuilder, 'CreateDBDateEdit');
end;
{ TcxWebDBDateEditNS4Renderer }
class procedure TcxWebDBDateEditNS4Renderer.GetScriptFiles(AList: TStrings);
begin
inherited GetScriptFiles(AList);
AList.Add(scxDataControlsScriptName);
end;
procedure TcxWebDBDateEditNS4Renderer.WriteScripts;
begin
inherited WriteScripts;
if TcxWebDBDateEdit(WebDateEdit).DataBinding.DataSource <> nil then
TcxWebDBDateEdit(WebDateEdit).DataBinding.WriteControlScripts(HTMLTextBuilder, 'CreateDBDateEdit');
end;
{ TcxWebDataNavigatorBinding }
function TcxWebDataNavigatorBinding.GetDataNavigator: TcxCustomWebDataNavigator;
begin
Result := Component as TcxCustomWebDataNavigator;
end;
function TcxWebDataNavigatorBinding.GetPageSize: Integer;
begin
Result := DataNavigator.PageSize;
end;
{ TcxWebDBDataNavigator }
constructor TcxWebDBDataNavigator.Create(AOwner: TComponent);
begin
inherited;
FDataBinding := TcxWebDataNavigatorBinding.Create(Self);
end;
destructor TcxWebDBDataNavigator.Destroy;
begin
FreeAndNil(FDataBinding);
inherited;
end;
procedure TcxWebDBDataNavigator.SetDataBinding(Value: TcxWebDataNavigatorBinding);
begin
DataBinding.Assign(Value);
end;
procedure TcxWebDBDataNavigator.Loaded;
begin
inherited;
DataBinding.Loaded;
end;
procedure TcxWebDBDataNavigator.Notification(AComponent: TComponent; Operation: TOperation);
begin
inherited Notification(AComponent, Operation);
if DataBinding <> nil then
DataBinding.Notification(AComponent, Operation);
end;
procedure TcxWebDBDataNavigator.RegisterRenderers;
begin
WebRenderHelper.RegisterRenderer(TcxWebDBDataNavigatorRenderer);
WebRenderHelper.RegisterRenderer(TcxWebDBDataNavigatorNS4Renderer);
WebRenderHelper.RegisterRenderer(TcxWebDBDataNavigatorNS6Renderer);
end;
{ TcxWebDBDataNavigatorRenderer }
procedure TcxWebDBDataNavigatorRenderer.WriteScripts;
begin
inherited WriteScripts;
if TcxWebDBDataNavigator(WebDataNavigator).DataBinding.DataSource <> nil then
TcxWebDBDataNavigator(WebDataNavigator).DataBinding.WriteControlScripts(HTMLTextBuilder, 'CreateDBDataNavigator');
end;
class procedure TcxWebDBDataNavigatorRenderer.GetScriptFiles(AList: TStrings);
begin
inherited GetScriptFiles(AList);
AList.Add(scxDataControlsScriptName);
end;
{ TcxWebDBDataNavigatorNS4Renderer }
procedure TcxWebDBDataNavigatorNS4Renderer.WriteScripts;
begin
inherited WriteScripts;
if TcxWebDBDataNavigator(WebDataNavigator).DataBinding.DataSource <> nil then
TcxWebDBDataNavigator(WebDataNavigator).DataBinding.WriteControlScripts(HTMLTextBuilder, 'CreateDBDataNavigator');
end;
class procedure TcxWebDBDataNavigatorNS4Renderer.GetScriptFiles(AList: TStrings);
begin
inherited GetScriptFiles(AList);
AList.Add(scxDataControlsScriptName);
end;
{ TcxWebDBDataNavigatorNS6Renderer }
procedure TcxWebDBDataNavigatorNS6Renderer.WriteScripts;
begin
inherited WriteScripts;
if TcxWebDBDataNavigator(WebDataNavigator).DataBinding.DataSource <> nil then
TcxWebDBDataNavigator(WebDataNavigator).DataBinding.WriteControlScripts(HTMLTextBuilder, 'CreateDBDataNavigator');
end;
class procedure TcxWebDBDataNavigatorNS6Renderer.GetScriptFiles(AList: TStrings);
begin
inherited GetScriptFiles(AList);
AList.Add(scxDataControlsScriptName);
end;
initialization
RegisterClasses([TcxWebDataBinding, TcxWebDataNavigatorBinding,
TcxWebDBLabel, TcxWebDBEdit, TcxWebDBMemo, TcxWebDBListBox,
TcxWebDBComboBox, TcxWebDBCheckBox, TcxWebDBRadioGroup,
TcxWebDBImage, TcxWebDBCalendar, TcxWebDBDateEdit,
TcxWebDBDataNavigator]);
end.