unit uEditorPerfilUsuario; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, uEditorDBItem, JvAppStorage, JvAppRegistryStorage, DB, uDAInterfaces, uDADataTable, JvComponentBase, JvFormPlacement, ImgList, PngImageList, StdActns, ActnList, ComCtrls, JvExComCtrls, JvStatusBar, TBX, TB2Item, TB2Dock, TB2Toolbar, pngimage, ExtCtrls, JvExControls, JvNavigationPane, uIEditorPerfilUsuario, uUsuariosController, uCustomView, uViewBase, uViewPerfilUsuario, uBizUsuarios, dxLayoutLookAndFeels; type TfEditorPerfilUsuario = class(TfEditorDBItem, IEditorPerfilUsuario) dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList; dxLayoutOfficeLookAndFeel1: TdxLayoutOfficeLookAndFeel; private FController : IUsuariosController; FPerfilUsuario : IBizPerfilUsuario; FViewPerfilUsuario : IViewPerfilUsuario; protected function GetController : IUsuariosController; procedure SetController (const Value : IUsuariosController); function GetPerfilUsuario: IBizPerfilUsuario; procedure SetPerfilUsuario(const Value: IBizPerfilUsuario); procedure GuardarInterno; override; procedure EliminarInterno; override; //Si queremos crear otra vista para el editor heredado solo tendriamos que //sobreescribir este metodo procedure AsignarVista; virtual; procedure PonerTitulos(const ATitulo: string = ''); override; function GetViewPerfilUsuario: IViewPerfilUsuario; procedure SetViewPerfilUsuario(const Value: IViewPerfilUsuario); property ViewPerfilUsuario: IViewPerfilUsuario read GetViewPerfilUsuario write SetViewPerfilUsuario; public constructor Create(AOwner: TComponent); override; destructor Destroy; override; property Controller : IUsuariosController read GetController write SetController; property PerfilUsuario: IBizPerfilUsuario read GetPerfilUsuario write SetPerfilUsuario; end; implementation {$R *.dfm} uses uDialogUtils; { TfEditorUsuario } var FIDNuevoGuardado : Integer = -1; procedure TfEditorPerfilUsuario.AsignarVista; var AViewPerfilUsuario: TfrViewPerfilUsuario; begin AViewPerfilUsuario := TfrViewPerfilUsuario.Create(Self); with AViewPerfilUsuario do begin Parent := pagGeneral; Align := alClient; dxLayoutControlArticulo.LookAndFeel := dxLayoutOfficeLookAndFeel1; end; ViewPerfilUsuario := AViewPerfilUsuario; end; constructor TfEditorPerfilUsuario.Create(AOwner: TComponent); begin inherited; pgPaginas.ActivePageIndex := 0; AsignarVista; end; destructor TfEditorPerfilUsuario.Destroy; begin // Utilizar mejor OnClose; inherited; end; procedure TfEditorPerfilUsuario.EliminarInterno; begin if (ShowConfirmMessage('Eliminar un perfil de usuario', '¿Desea borrar este perfil?') = IDYES) then begin inherited; if not FController.EliminarPerfil(FPerfilUsuario) then actRefrescar.Execute; end; end; function TfEditorPerfilUsuario.GetController: IUsuariosController; begin Result := FController; end; function TfEditorPerfilUsuario.GetPerfilUsuario: IBizPerfilUsuario; begin Result := FPerfilUsuario; end; function TfEditorPerfilUsuario.GetViewPerfilUsuario: IViewPerfilUsuario; begin Result := FViewPerfilUsuario; end; procedure TfEditorPerfilUsuario.GuardarInterno; begin inherited; if FController.GuardarPerfil(FPerfilUsuario) then begin FIDNuevoGuardado := FPerfilUsuario.ID; FPerfilUsuario.DataTable.CancelUpdates; Modified := False; actRefrescar.Execute; end; end; procedure TfEditorPerfilUsuario.PonerTitulos(const ATitulo: string); var FTitulo : String; begin if Assigned(FPerfilUsuario) then begin if FPerfilUsuario.EsNuevo then FTitulo := 'Nuevo perfil' else FTitulo := 'Perfil'; if Length(FPerfilUsuario.USERNAME) > 0 then FTitulo := FTitulo + ' - ' + FPerfilUsuario.USERNAME; end; inherited PonerTitulos(FTitulo); end; procedure TfEditorPerfilUsuario.SetController(const Value: IUsuariosController); begin FController := Value; if Assigned(FViewPerfilUsuario) and Assigned(FController) then FViewPerfilUsuario.Controller := FController; end; procedure TfEditorPerfilUsuario.SetPerfilUsuario( const Value: IBizPerfilUsuario); begin FPerfilUsuario := Value; dsDataTable.DataTable := FPerfilUsuario.DataTable; if Assigned(FViewPerfilUsuario) and Assigned(FPerfilUsuario) then FViewPerfilUsuario.PerfilUsuario := FPerfilUsuario; end; procedure TfEditorPerfilUsuario.SetViewPerfilUsuario(const Value: IViewPerfilUsuario); begin FViewPerfilUsuario := Value; if Assigned(FViewPerfilUsuario) and Assigned(FPerfilUsuario) then FViewPerfilUsuario.PerfilUsuario := FPerfilUsuario; end; end.