unit uEditorElegirVendedores;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, uEditorVendedores, JSDialog, Menus, DB, uDAInterfaces, uDADataTable,
  JvAppStorage, JvAppRegistryStorage, JvComponentBase, JvFormPlacement, ImgList,
  PngImageList, StdActns, ActnList, uCustomView, uViewBase, uViewGridBase,
  uViewGrid, uViewContactos, uViewVendedores, ComCtrls, JvExComCtrls,
  uBizContactos, uIEditorElegirVendedores, uViewBarraSeleccion, JvStatusBar,
  SpTBXItem, TB2ExtItems,  TB2Item, TB2Dock, TB2Toolbar, pngimage,
  ExtCtrls, JvExControls, JvNavigationPane, StdCtrls;

type
  TfEditorElegirVendedores = class(TfEditorVendedores, IEditorElegirVendedores)
    frViewBarraSeleccion1: TfrViewBarraSeleccion;
    EditorSeleccionActionList: TActionList;
    actBuscar2: TAction;
    actQuitarFiltro2: TAction;
    actAnchoAuto2: TAction;
    pnlHeader: TPanel;
    lblTitle: TLabel;
    lblComments: TLabel;
    procedure frViewBarraSeleccion1actSeleccionarUpdate(Sender: TObject);
    procedure frViewBarraSeleccion1actCancelarExecute(Sender: TObject);
    procedure actQuitarFiltro2Execute(Sender: TObject);
    procedure actAnchoAuto2Execute(Sender: TObject);
    procedure frViewBarraSeleccion1actSeleccionarExecute(Sender: TObject);
  protected
    procedure SetMultiSelect (AValue : Boolean);
    function GetMultiSelect : Boolean;
    function GetContactosSeleccionados: IBizContacto;
    procedure SetViewGrid(const Value: IViewGridBase); override;
    procedure SetMensaje (const AValue: String);
    function GetMensaje: String;

  public
    property Mensaje : String read GetMensaje write SetMensaje;
    property ContactosSeleccionados: IBizContacto read GetContactosSeleccionados;
    property MultiSelect : Boolean read GetMultiSelect write SetMultiSelect;

  end;

implementation
{$R *.dfm}

uses cxControls, uDBSelectionListUtils, uGridUtils;

procedure TfEditorElegirVendedores.actAnchoAuto2Execute(Sender: TObject);
begin
  inherited;
  actAnchoAuto.Execute;
end;

procedure TfEditorElegirVendedores.actQuitarFiltro2Execute(Sender: TObject);
begin
  inherited;
  actQuitarFiltro.Execute;
end;

procedure TfEditorElegirVendedores.frViewBarraSeleccion1actCancelarExecute(Sender: TObject);
begin
  inherited;
  Close;
end;

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

procedure TfEditorElegirVendedores.frViewBarraSeleccion1actSeleccionarUpdate(
  Sender: TObject);
begin
  inherited;
  (Sender as TAction).Enabled := (ViewGrid._FocusedView.Controller.SelectedRowCount > 0)
end;

function TfEditorElegirVendedores.GetContactosSeleccionados: IBizContacto;
begin
  ShowHourglassCursor;
  try
    SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (Contactos as ISeleccionable).SelectedRecords);
    // En Contactos.SelectedRecords tengo los ID de las filas seleccionadas del grid
    Result := Controller.ExtraerSeleccionados(Contactos);
  finally
    HideHourglassCursor;
  end;
end;

function TfEditorElegirVendedores.GetMensaje: String;
begin
  Result := lblComments.Caption;
end;

function TfEditorElegirVendedores.GetMultiSelect: Boolean;
begin
  Result := ViewGrid.MultiSelect;
end;

procedure TfEditorElegirVendedores.SetMensaje(const AValue: String);
begin
  lblComments.Caption := AValue;
end;

procedure TfEditorElegirVendedores.SetMultiSelect(AValue: Boolean);
begin
  ViewGrid.MultiSelect := AValue;
end;

procedure TfEditorElegirVendedores.SetViewGrid(const Value: IViewGridBase);
begin
  inherited;
  ViewGrid.OnDblClick := frViewBarraSeleccion1.actSeleccionar.OnExecute;
end;

end.
