unit uEditorPerfilesUsuario; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, uEditorGridBase, Menus, JvAppStorage, JvAppRegistryStorage, DB, uDAInterfaces, uDADataTable, JvComponentBase, JvFormPlacement, ImgList, PngImageList, StdActns, ActnList, ComCtrls, JvExComCtrls, JvStatusBar, TBX, TB2ExtItems, TBXExtItems, TB2Item, TB2Dock, TB2Toolbar, pngimage, ExtCtrls, JvExControls, JvNavigationPane, uIEditorPerfilesUsuario, uUsuariosController, uBizUsuarios, uViewPerfilesUsuario; type TfEditorPerfilesUsuario = class(TfEditorGridBase, IEditorPerfilesUsuario) private FPerfiles : IBizPerfilUsuario; FController : IUsuariosController; protected function GetController : IUsuariosController; procedure SetController (const Value : IUsuariosController); function GetPerfilesUsuario: IBizPerfilUsuario; procedure SetPerfilesUsuario(const Value: IBizPerfilUsuario); procedure NuevoInterno; override; procedure EliminarInterno; override; procedure ModificarInterno; override; //Si queremos crear otra vista para el editor heredado solo tendriamos que //sobreescribir este metodo procedure AsignarVista; virtual; public procedure PonerTitulos(const ATitulo: string = ''); override; property PerfilesUsuario: IBizPerfilUsuario read GetPerfilesUsuario write SetPerfilesUsuario; property Controller : IUsuariosController read GetController write SetController; constructor Create(AOwner: TComponent); override; destructor Destroy; override; end; implementation {$R *.dfm} uses uDialogUtils; { TfEditorUsuarios } procedure TfEditorPerfilesUsuario.AsignarVista; begin ViewGrid := CreateView(TfrViewPerfilesUsuario) as IViewPerfilesUsuario; end; constructor TfEditorPerfilesUsuario.Create(AOwner: TComponent); begin inherited; AsignarVista; end; destructor TfEditorPerfilesUsuario.Destroy; begin FPerfiles := NIL; FController := NIl; inherited; end; procedure TfEditorPerfilesUsuario.EliminarInterno; begin if (ShowConfirmMessage('Eliminar un perfil', Format('¿Desea eliminar el perfil %s?', [FPerfiles.USERNAME])) = IDYES) then begin inherited; //Para que en el caso de no poderse realizar la operación se refresquen //los datos y no nos permita eliminar un registro a la segunda FController.EliminarPerfil(FPerfiles); actRefrescar.Execute; end; end; function TfEditorPerfilesUsuario.GetController: IUsuariosController; begin Result := FController; end; function TfEditorPerfilesUsuario.GetPerfilesUsuario: IBizPerfilUsuario; begin Result := FPerfiles; end; procedure TfEditorPerfilesUsuario.ModificarInterno; begin inherited; FController.VerPerfil(FPerfiles.ID); actRefrescar.Execute; end; procedure TfEditorPerfilesUsuario.NuevoInterno; var ANuevoPerfil : IBizPerfilUsuario; begin inherited; ANuevoPerfil := FController.NuevoPerfil; FController.VerPerfil(ANuevoPerfil); actRefrescar.Execute; end; procedure TfEditorPerfilesUsuario.PonerTitulos(const ATitulo: string); var FTitulo : String; begin FTitulo := 'Lista de perfiles de usuario'; inherited PonerTitulos(FTitulo); end; procedure TfEditorPerfilesUsuario.SetController(const Value: IUsuariosController); begin FController := Value; end; procedure TfEditorPerfilesUsuario.SetPerfilesUsuario( const Value: IBizPerfilUsuario); begin FPerfiles := Value; dsDataTable.DataTable := FPerfiles.DataTable; if Assigned(ViewGrid) then (ViewGrid as IViewPerfilesUsuario).PerfilesUsuario := FPerfiles; end; end.