unit uEditorElegirDireccionEntrega;

interface

uses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls,
  Buttons, ExtCtrls, Mask, DBCtrls, DB, uDADataTable,
  cxControls, cxContainer, cxEdit, cxTextEdit, cxDBEdit,
  uIEditorElegirDireccionEntrega, uCustomView,
  uViewBase, uViewBarraSeleccion, JvExControls, JvComponent, JvgWizardHeader,
  DBCGrids, uBizDireccionesContacto;

type
  TfEditorElegirDireccionEntrega = class(TForm, IEditorElegirDireccionEntrega)
    dsDirecciones: TDADataSource;
    frViewBarraSeleccion1: TfrViewBarraSeleccion;
    JvgWizardHeader1: TJvgWizardHeader;
    DBCtrlGrid1: TDBCtrlGrid;
    eCalle: TDBText;
    ePoblacion: TDBText;
    eTelefono: TDBText;
    eProvincia: TDBText;
    ePersonaContacto: TDBText;
    eNombre: TDBText;
    eCodigoPostal: TDBText;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    ePorte: TDBText;
    Label4: TLabel;
    procedure frViewBarraSeleccion1actSeleccionarExecute(Sender: TObject);
    procedure frViewBarraSeleccion1actCancelarExecute(Sender: TObject);
    procedure DBCtrlGrid1DblClick(Sender: TObject);
    procedure ComponenteDblClick(Sender: TObject);

  protected
    FDirecciones: IBizDireccionesContacto;
    function GetDireccion: IBizDireccionesContacto;
    procedure SetDireccion(const Value: IBizDireccionesContacto);

    procedure SetMensaje (const AValue: String);
    function GetMensaje: String;

    function GetDireccionSeleccionada: IBizDireccionesContacto;
  public
    property Mensaje : String read GetMensaje write SetMensaje;
    property Direccion: IBizDireccionesContacto read GetDireccion write SetDireccion;
    property DireccionSeleccionada: IBizDireccionesContacto read GetDireccionSeleccionada;

  end;

implementation
{$R *.dfm}

uses
  uDireccionesContactoController;

{ TfEditorDireccionEntrega }

procedure TfEditorElegirDireccionEntrega.DBCtrlGrid1DblClick(Sender: TObject);
begin
  frViewBarraSeleccion1.actSeleccionar.Execute;
end;

procedure TfEditorElegirDireccionEntrega.ComponenteDblClick(Sender: TObject);
begin
  DBCtrlGrid1DblClick(Sender);
end;

procedure TfEditorElegirDireccionEntrega.frViewBarraSeleccion1actCancelarExecute(
  Sender: TObject);
begin
  ModalResult := mrCancel;
end;

procedure TfEditorElegirDireccionEntrega.frViewBarraSeleccion1actSeleccionarExecute(
  Sender: TObject);
begin
  ModalResult := mrOk;
end;

function TfEditorElegirDireccionEntrega.GetDireccion: IBizDireccionesContacto;
begin
  Result := FDirecciones;
end;

function TfEditorElegirDireccionEntrega.GetDireccionSeleccionada: IBizDireccionesContacto;
begin
  // Devuelvo el mismo objeto que recibo pero con el punto de lectura
  // posicionado en la dirección elegida.
  Result := FDirecciones;
end;

function TfEditorElegirDireccionEntrega.GetMensaje: String;
begin
  Result := JvgWizardHeader1.Comments.Text;
end;

procedure TfEditorElegirDireccionEntrega.SetDireccion(const Value: IBizDireccionesContacto);
begin
  FDirecciones := Value;
  if Assigned(FDirecciones) then
    dsDirecciones.DataTable := FDirecciones.DataTable
  else
    dsDirecciones.DataTable := NIL;
end;

procedure TfEditorElegirDireccionEntrega.SetMensaje(const AValue: String);
begin
  JvgWizardHeader1.Comments.Text := AValue;
end;

end.
