- Repaso general git-svn-id: https://192.168.0.254/svn/Proyectos.Varela_PuntosVenta/trunk@117 1c943782-d109-9647-9548-93b3ac332352
235 lines
6.4 KiB
ObjectPascal
235 lines
6.4 KiB
ObjectPascal
unit uEditorPerfilUsuario;
|
||
|
||
interface
|
||
|
||
uses
|
||
Windows, Menus, 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;
|
||
procedure actGuardarExecute(Sender: TObject);
|
||
procedure actGuardarCerrarExecute(Sender: TObject);
|
||
procedure dsDataTableDataChange(Sender: TObject; Field: TField);
|
||
procedure FormShow(Sender: TObject);
|
||
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;
|
||
procedure EliminarInterno;
|
||
procedure ActualizarEstadoEditor;
|
||
|
||
//Si queremos crear otra vista para el editor heredado solo tendriamos que
|
||
//sobreescribir este metodo
|
||
procedure AsignarVista; virtual;
|
||
procedure PonerTitulos(const ATitulo: string = '');
|
||
|
||
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}
|
||
|
||
{ TfEditorUsuario }
|
||
|
||
uses
|
||
cxControls, uDialogUtils;
|
||
|
||
var
|
||
FIDNuevoGuardado : Integer = -1;
|
||
|
||
procedure TfEditorPerfilUsuario.actGuardarCerrarExecute(Sender: TObject);
|
||
begin
|
||
ShowHourglassCursor;
|
||
try
|
||
if actGuardar.Execute then
|
||
actCerrar.Execute;
|
||
finally
|
||
HideHourglassCursor;
|
||
end;
|
||
end;
|
||
|
||
procedure TfEditorPerfilUsuario.actGuardarExecute(Sender: TObject);
|
||
begin
|
||
if actGuardar.Enabled then
|
||
begin
|
||
GuardarInterno;
|
||
ActualizarEstadoEditor;
|
||
end;
|
||
end;
|
||
|
||
procedure TfEditorPerfilUsuario.ActualizarEstadoEditor;
|
||
begin
|
||
PonerTitulos;
|
||
if HayDatos then
|
||
begin
|
||
if (Self.Modified) and (dsDataTable.DataTable.State <> dsInsert) then
|
||
StatusBar.Panels[0].Text := ' Se han producido cambios'
|
||
else
|
||
StatusBar.Panels[0].Text := '';
|
||
end;
|
||
end;
|
||
|
||
procedure TfEditorPerfilUsuario.AsignarVista;
|
||
var
|
||
AViewPerfilUsuario: TfrViewPerfilUsuario;
|
||
begin
|
||
AViewPerfilUsuario := TfrViewPerfilUsuario.Create(Self);
|
||
with AViewPerfilUsuario do
|
||
begin
|
||
Parent := Self;
|
||
Align := alClient;
|
||
dxLayoutControlArticulo.LookAndFeel := dxLayoutOfficeLookAndFeel1;
|
||
end;
|
||
ViewPerfilUsuario := AViewPerfilUsuario;
|
||
end;
|
||
|
||
constructor TfEditorPerfilUsuario.Create(AOwner: TComponent);
|
||
begin
|
||
inherited;
|
||
AsignarVista;
|
||
end;
|
||
|
||
destructor TfEditorPerfilUsuario.Destroy;
|
||
begin
|
||
// Utilizar mejor OnClose;
|
||
inherited;
|
||
end;
|
||
|
||
procedure TfEditorPerfilUsuario.dsDataTableDataChange(Sender: TObject;
|
||
Field: TField);
|
||
begin
|
||
inherited;
|
||
ActualizarEstadoEditor;
|
||
end;
|
||
|
||
procedure TfEditorPerfilUsuario.EliminarInterno;
|
||
begin
|
||
if (ShowConfirmMessage('Eliminar el perfil', '<27>Desea eliminar este perfil?') = IDYES) then
|
||
begin
|
||
inherited;
|
||
if not FController.EliminarPerfil(FPerfilUsuario) then
|
||
actRefrescar.Execute;
|
||
end;
|
||
end;
|
||
|
||
procedure TfEditorPerfilUsuario.FormShow(Sender: TObject);
|
||
begin
|
||
inherited;
|
||
ActualizarEstadoEditor;
|
||
if Assigned(Parent) then
|
||
begin
|
||
StatusBar.Visible := False;
|
||
actCerrar.ShortCut := 0
|
||
end
|
||
else begin
|
||
StatusBar.Visible := True;
|
||
actCerrar.ShortCut := ShortCut(VK_ESCAPE, []);
|
||
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;
|
||
|
||
if ReadOnly then
|
||
begin
|
||
JvNavPanelHeader.Caption := FTitulo + ' (NO MODIFICABLE)';
|
||
Caption := FTitulo + ' (NO MODIFICABLE)';
|
||
end
|
||
else
|
||
begin
|
||
JvNavPanelHeader.Caption := FTitulo;
|
||
Caption := FTitulo;
|
||
end;
|
||
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.
|