unit uEditorElegirEjercicios;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, uEditorEjercicios, Menus, DB, uDAInterfaces, uDADataTable,
  JvAppStorage, JvAppRegistryStorage, JvComponentBase, JvFormPlacement, ImgList,
  PngImageList, StdActns, ActnList, uCustomView, uViewBase, uViewGridBase,
  uViewGrid, uViewEjercicios, ComCtrls, JvExComCtrls, JvStatusBar, TBX,
  TB2ExtItems, TBXExtItems, TB2Item, TB2Dock, TB2Toolbar, dxGDIPlusClasses,
  ExtCtrls, JvExControls, JvNavigationPane, uViewBarraSeleccion, uIEditorElegirEjercicios,
  UBizEjercicios, StdCtrls;

type
  TfEditorElegirEjercicios = class(TfEditorEjercicios, IEditorElegirEjercicios)
    frViewBarraSeleccion1: TfrViewBarraSeleccion;
    EditorSeleccionActionList: TActionList;
    actBuscar2: TAction;
    actQuitarFiltro2: TAction;
    actAnchoAuto2: TAction;
    pnlHeader: TPanel;
    lblTitle: TLabel;
    lblComments: TLabel;
    procedure frViewBarraSeleccion1actSeleccionarExecute(Sender: TObject);
    procedure frViewBarraSeleccion1actSeleccionarUpdate(Sender: TObject);
    procedure frViewBarraSeleccion1actCancelarExecute(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure actAnchoAuto2Execute(Sender: TObject);
    procedure actQuitarFiltro2Execute(Sender: TObject);
  private

  protected
    procedure SetMultiSelect (AValue : Boolean);
    function GetMultiSelect : Boolean;
    function GetEjerciciosSeleccionados: IBizEjercicio;
    procedure SetViewGrid(const Value: IViewGridBase); override;
    procedure SetMensaje (const AValue: String);
    function GetMensaje: String;
  public
    property Mensaje : String read GetMensaje write SetMensaje;
    property EjerciciosSeleccionados: IBizEjercicio read GetEjerciciosSeleccionados;
    property MultiSelect : Boolean read GetMultiSelect write SetMultiSelect;
  end;


implementation
{$R *.dfm}

uses uGridUtils, uDBSelectionListUtils, uEjerciciosController;

{ TfEditorElegirEjercicios }

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

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

procedure TfEditorElegirEjercicios.FormShow(Sender: TObject);
begin
  inherited;
  EditorActionList.State := asSuspended;
end;

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

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

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

function TfEditorElegirEjercicios.GetEjerciciosSeleccionados: IBizEjercicio;
begin
  SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (Ejercicios as ISeleccionable).SelectedRecords);
  // En SelectedRecords tengo los ID de las filas seleccionadas del grid
  Result := (Controller as IEjerciciosController).ExtraerSeleccionados(Ejercicios) as IBizEjercicio;
end;

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

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

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

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

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

end.
