unit uEditarTBaseMercadoSpot;

  {$MODE Delphi}

interface

uses
  {$IFDEF WINDOWS}
  Windows,
  {$ENDIF}
 Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Grids, StdCtrls, ExtCtrls, Buttons,
  uEditarActorConFichas,
  uFichasLPD,
  uBaseEditoresActores,
  uBaseEditoresCosasConNombre,
  uSalasDeJuego,
  uCosaConNombre,
  utilidades,
  uOpcionesSimSEEEdit,
  uverdoc,
  uConstantesSimSEE,
  xMatDefs,
  uBaseMercadoSpot;

type

  { TEditarTBaseMercadoSpot }

  TEditarTBaseMercadoSpot = class(TEditarActorConFichas)
    GroupBox1: TGroupBox;
    LNombre: TLabel;
    LNodo: TLabel;
    LFuenteDeAportes: TLabel;
    LBorne: TLabel;
    CBNodo: TComboBox;
    EditNombre: TEdit;
    BGuardar: TButton;
    BCancelar: TButton;
    CBFuente: TComboBox;
    CBBorne: TComboBox;
    Panel1: TPanel;
    Panel2: TPanel;
    sgFichas: TStringGrid;
    BAgregarFicha: TButton;
    BVerExpandida: TButton;
    BAyuda: TButton;
    BEditorDeUnidades: TButton;
    procedure BAgregarFichaClick(Sender: TObject);
    procedure base_editores_panel_topClick(Sender: TObject);
    procedure BVerExpandidaClick(Sender: TObject);
    procedure EditEnter(Sender: TObject);
    procedure EditExit(Sender: TObject);
    procedure BAyudaClick(Sender: TObject);
    procedure CBNodoChange(Sender: TObject);
    procedure CBFuenteChange(Sender: TObject);
    procedure CBBorneChange(Sender: TObject);
    procedure BEditorDeUnidadesClick(Sender: TObject);
    procedure BCancelarClick(Sender: TObject);
    procedure FormCloseQuery(Sender: TObject; var CanClose: boolean);
    procedure BGuardarClick(Sender: TObject); override;
    procedure GroupBox1Click(Sender: TObject);
    procedure LBorneClick(Sender: TObject);
    procedure LFNacClick(Sender: TObject);
    procedure LFuenteDeAportesClick(Sender: TObject);
    procedure Panel1Click(Sender: TObject);
  private
    { Private declarations }
  public
    constructor Create(AOwner: TComponent; sala: TSalaDeJuego;
      tipoCosa: TClass; cosaConNombre: TCosaConNombre); override;
    function validarFormulario: boolean; override;
  end;

implementation

uses SimSEEEditMain;

  {$R *.lfm}

constructor TEditarTBaseMercadoSpot.Create(AOwner: TComponent;
  sala: TSalaDeJuego; tipoCosa: TClass; cosaConNombre: TCosaConNombre);
var
  actor: TBaseMercadoSpot;
begin
  inherited Create(AOwner, sala, tipoCosa, cosaConNombre);
  inicializarCBNodos(CBNodo, False);

  if TSimSEEEditOptions.getInstance.fechasAutomaticas then

  inicializarCBFuente(CBFuente, CBBorne, False);

  if cosaConNombre <> nil then
  begin
    actor := TBaseMercadoSpot(cosaConNombre);
    inicializarComponentesLPD(actor.lpd, TClaseDeMercadoSpot(
      tipoCosa).TipoFichaLPD, sgFichas,
      BAgregarFicha, BVerExpandida, BGuardar, BCancelar);

    EditNombre.Text := actor.nombre;
    setCBNodo(CBNodo, actor.Nodo);

    setCBFuente(CBFuente, CBBorne, actor.fuente, actor.nombreBorne);
  end
  else
    inicializarComponentesLPD(nil, TClaseDeMercadoSpot(tipoCosa).TipoFichaLPD, sgFichas,
      BAgregarFicha, BVerExpandida, BGuardar, BCancelar);
end;

function TEditarTBaseMercadoSpot.validarFormulario: boolean;
begin
  Result := inherited validarFormulario and inherited  validarNombre(EditNombre) and
    inherited validarCBNodo(CBNodo) and inherited validarCBFuente(
    CBFuente, CBBorne, 0);
end;

procedure TEditarTBaseMercadoSpot.BAyudaClick(Sender: TObject);
begin
  uverdoc.verdoc(  3828, tipoCosa);
end;

procedure TEditarTBaseMercadoSpot.BCancelarClick(Sender: TObject);
begin
  inherited BCancelarClick(Sender);
end;

procedure TEditarTBaseMercadoSpot.BEditorDeUnidadesClick(Sender: TObject);
begin
  inherited BEditorDeUnidadesClick(Sender);
end;

procedure TEditarTBaseMercadoSpot.BGuardarClick(Sender: TObject);
var
  actor: TBaseMercadoSpot;
begin
  if validarFormulario then
  begin
    if cosaConNombre = nil then
    begin
      cosaConNombre := TClaseDeMercadoSpot(tipoCosa).Create(
        capa,
        EditNombre.Text, lpdUnidades, lpd,
        valorCBNodo(CBNodo), valorCBFuente(CBFuente), valorCBString(CBBorne), nil, '');
      actor := TBaseMercadoSpot(cosaConNombre);
    end
    else
    begin
      actor := TBaseMercadoSpot(cosaConNombre);
      actor.nombre := EditNombre.Text;
      actor.lpdUnidades.Free;
      actor.lpdUnidades := lpdUnidades;
      actor.lpd.Free;
      actor.lpd := lpd;
      actor.nodo := valorCBNodo(CBNodo);
      actor.fuente := valorCBFuente(CBFuente);
      actor.nombreBorne := valorCBString(CBBorne);
    end;
    actor.lpdForzamientos := lpdForzamientos_;
    ModalResult := mrOk;
  end;
end;

procedure TEditarTBaseMercadoSpot.GroupBox1Click(Sender: TObject);
begin

end;

procedure TEditarTBaseMercadoSpot.LBorneClick(Sender: TObject);
begin

end;

procedure TEditarTBaseMercadoSpot.LFNacClick(Sender: TObject);
begin

end;

procedure TEditarTBaseMercadoSpot.LFuenteDeAportesClick(Sender: TObject);
begin

end;

procedure TEditarTBaseMercadoSpot.Panel1Click(Sender: TObject);
begin

end;

procedure TEditarTBaseMercadoSpot.CBBorneChange(Sender: TObject);
begin
  inherited CBBorneChange(CBFuente, CBBorne);
end;

procedure TEditarTBaseMercadoSpot.CBFuenteChange(Sender: TObject);
begin
  inherited CBFuenteChange(Sender, CBBorne);
end;

procedure TEditarTBaseMercadoSpot.CBNodoChange(Sender: TObject);
begin
  inherited CBNodoChange(Sender, True);
end;

procedure TEditarTBaseMercadoSpot.EditEnter(Sender: TObject);
begin
  inherited EditEnter(Sender);
end;

procedure TEditarTBaseMercadoSpot.BAgregarFichaClick(Sender: TObject);
begin

end;

procedure TEditarTBaseMercadoSpot.base_editores_panel_topClick(Sender: TObject);
begin

end;

procedure TEditarTBaseMercadoSpot.BVerExpandidaClick(Sender: TObject);
begin
  inherited BVerExpandidaClick( Sender );
end;

procedure TEditarTBaseMercadoSpot.EditExit(Sender: TObject);
begin
  inherited EditExit(Sender);
end;

procedure TEditarTBaseMercadoSpot.FormCloseQuery(Sender: TObject;
  var CanClose: boolean);
begin
  inherited FormCloseQuery(Sender, CanClose);
end;


end.
