unit uEditorMontajeDetalle; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, uEditorMontaje, dxLayoutLookAndFeels, DB, uDADataTable, JvAppStorage, JvAppRegistryStorage, JvComponentBase, JvFormPlacement, ImgList, PngImageList, StdActns, ActnList, ComCtrls, TBX, TB2Item, TB2Dock, TB2Toolbar, pngimage, ExtCtrls, JvExControls, JvComponent, JvNavigationPane, uCustomView, uViewBase, uViewDetallesBase, uViewDetallesMontaje, uBizMontajes, uMontajesController, uIEditorMontajeDetalle, JvExComCtrls, JvStatusBar; type TfEditorMontajeDetalle = class(TfEditorMontaje, IEditorMontajeDetalle) PagContenido: TTabSheet; frViewDetallesMontaje1: TfrViewDetallesMontaje; protected procedure OnPresupuestoChanged(Sender : TObject); //Si queremos crear otra vista para el editor heredado solo tendriamos que //sobreescribir este metodo procedure AsignarVista; override; procedure SetController (const Value : IMontajesController); override; procedure SetMontaje(const Value: IBizMontaje); override; end; implementation {$R *.dfm} uses uBizMontajesDetalles, uMontajesDetallesController, ViewMontajeDetalle, uViewMontaje; { TfEditorMontajeDetalle } procedure TfEditorMontajeDetalle.AsignarVista; var AViewMontajeDetalle: TfrViewMontajeDetalle; begin AViewMontajeDetalle := TfrViewMontajeDetalle.create(Self); with AViewMontajeDetalle do begin Parent := pagGeneral; Align := alClient; dxLayoutControlMontaje.LookAndFeel := dxLayoutOfficeLookAndFeel1; end; ViewMontaje := AViewMontajeDetalle; end; procedure TfEditorMontajeDetalle.OnPresupuestoChanged(Sender: TObject); begin (Montaje as IBizMontajeDetalles).Presupuesto := (ViewMontaje as IViewMontajeDetalle).ViewPresupuestoMontaje.Presupuesto; if (Application.MessageBox('¿Desea asignar el cliente del presupuesto seleccionado al montaje?', 'Atención', MB_YESNO) = IDYES) then begin (Controller as IMontajesDetallesController).PresupuestoController.RecuperarCliente((Montaje as IBizMontajeDetalles).Presupuesto); ViewMontaje.ViewClienteMontaje.Cliente := (Montaje as IBizMontajeDetalles).Presupuesto.Cliente; end; end; procedure TfEditorMontajeDetalle.SetController(const Value: IMontajesController); begin inherited; if Assigned(FController) then begin frViewDetallesMontaje1.Controller := (Controller as IMontajesDetallesController).DetallesController; (ViewMontaje as IViewMontajeDetalle).ViewPresupuestoMontaje.Controller := (FController as IMontajesDetallesController).PresupuestoController; end; end; procedure TfEditorMontajeDetalle.SetMontaje(const Value: IBizMontaje); begin inherited; if Assigned(FViewMontaje) then begin frViewDetallesMontaje1.Detalles := (FMontaje as IBizMontajeDetalles).Detalles; (ViewMontaje as IViewMontajeDetalle).ViewPresupuestoMontaje.Presupuesto := (FMontaje as IBizMontajeDetalles).Presupuesto; (ViewMontaje as IViewMontajeDetalle).ViewPresupuestoMontaje.OnPresupuestoChanged := OnPresupuestoChanged; end; end; end.