{
===============================================================================
  Copyright (©) 2006. Rodax Software.
===============================================================================
  Los contenidos de este fichero son propiedad de Rodax Software titular del
  copyright. Este fichero sólo podrá ser copiado, distribuido y utilizado,
  en su totalidad o en parte, con el permiso escrito de Rodax Software, o de
  acuerdo con los términos y condiciones establecidas en el acuerdo/contrato
  bajo el que se suministra.
  -----------------------------------------------------------------------------
  Web:  www.rodax-software.com
===============================================================================
  Fecha primera versión: 22-05-2006
  Versión actual: 1.0.0
  Fecha versión actual: 22-05-2006
===============================================================================
  Modificaciones:

    Fecha         Comentarios
    ---------------------------------------------------------------------------
===============================================================================
}

unit uViewCategoriasContacto;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, uViewBase, ComCtrls, ToolWin, dxLayoutControl, StdCtrls, DB,
  uDADataTable, cxControls, ImgList, PngImageList, uBizContacto,
  cxContainer, cxEdit, cxTextEdit, cxMemo, Grids, DBGrids;

type
  IViewCategoriasContacto = interface(IViewBase)
  ['{600BCEC1-05BA-4398-A507-7B60BC190DDC}']
    function GetContacto: IBizContacto;
    procedure SetContacto(const Value: IBizContacto);
    property Contacto: IBizContacto read GetContacto write SetContacto;
    procedure RefrescarCategorias;
  end;

  TfrViewCategoriasContacto = class(TfrViewBase, IViewCategoriasContacto)
    dxLayoutControl1: TdxLayoutControl;
    dxLayoutGroup1: TdxLayoutGroup;
    dxLayoutGroup2: TdxLayoutGroup;
    DADataSource1: TDADataSource;
    dxLayoutControl1Item2: TdxLayoutItem;
    ToolBar2: TToolBar;
    bEditarCategorias: TToolButton;
    PngImageList: TPngImageList;
    editCategoriasContacto: TcxMemo;
    dxLayoutControl1Item3: TdxLayoutItem;
    procedure bEditarCategoriasClick(Sender: TObject);
    procedure editCategoriasContactoDblClick(Sender: TObject);
  private
    FContacto : IBizContacto;
  protected
    function GetContacto: IBizContacto;
    procedure SetContacto(const Value: IBizContacto);
  public
    property Contacto: IBizContacto read GetContacto write SetContacto;
    procedure RefrescarCategorias;
  end;

var
  frViewCategoriasContacto: TfrViewCategoriasContacto;

implementation

{$R *.dfm}

{ TfrViewCategoriasContacto }

function TfrViewCategoriasContacto.GetContacto: IBizContacto;
begin
  Result := FContacto;
end;

procedure TfrViewCategoriasContacto.RefrescarCategorias;
begin
  editCategoriasContacto.Lines.Clear;
  editCategoriasContacto.Text := FContacto.Categorias.ListaCategorias;
end;

procedure TfrViewCategoriasContacto.SetContacto(const Value: IBizContacto);
begin
  FContacto := Value;
  if Assigned(FContacto) then
    DADataSource1.DataTable := FContacto.DataTable
  else
    DADataSource1.DataTable := NIL;

  RefrescarCategorias;
end;

procedure TfrViewCategoriasContacto.bEditarCategoriasClick(
  Sender: TObject);
var
  ACategoriasContacto : IBizCategoriaContacto;
begin
  ACategoriasContacto := FContacto.Categorias;
  ACategoriasContacto.Show;
  RefrescarCategorias;
end;

procedure TfrViewCategoriasContacto.editCategoriasContactoDblClick(
  Sender: TObject);
begin
  inherited;
  bEditarCategoriasClick(Sender);
end;

end.
