unit NavProductScherm; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls, Subscherm, Navigator, ApplicationContext, ProductsAgent, UserAgent; type TFormProductNav = class(TFormSubscherm, INavigator) GridPanelLeft: TGridPanel; Splitter1: TSplitter; GridPanelRight: TGridPanel; procedure FormCreate(Sender: TObject); private FUserAgent: TUserAgent; FProductsAgent: TProductsAgent; public constructor Create(AOwner: TComponent; Navigator: INavigator; ApplicationContext: TApplicationContext; UserAgent: TUserAgent; ProductsAgent: TProductsAgent); procedure NavigeerNaar(schermId: Integer); end; implementation {$R *.dfm} uses Util, ZoekProductenScherm, GebruikerScherm, GevondenProductenScherm, ProductDetailScherm, VerpakkingDetailScherm; constructor TFormProductNav.Create(AOwner: TComponent; Navigator: INavigator; ApplicationContext: TApplicationContext; UserAgent: TUserAgent; ProductsAgent: TProductsAgent); begin inherited Create(AOwner, Navigator, ApplicationContext); self.FUserAgent := UserAgent; self.FProductsAgent := ProductsAgent; end; procedure TFormProductNav.FormCreate(Sender: TObject); begin FProductsAgent.LaadUIInstellingen(ApplicationContext.UserContext, ApplicationContext.UiInstellingenContext); NavigeerNaar(NAVZOEKPRODUCTEN); end; procedure TFormProductNav.NavigeerNaar(schermId: Integer); begin case schermId of NAVHOME: Navigator.NavigeerNaar(NAVHOME); // Geef aan parent navigator NAVZOEKPRODUCTEN: begin // Maak beide grids leeg TUtil.FreeControlChildren(GridPanelLeft); TUtil.FreeControlChildren(GridPanelRight); // Reset de data. Na het verwijderen van de schermen zodat deze niet eerst updaten ApplicationContext.ProductsContext.Reset(False); ApplicationContext.ProductVerpakkingContext.Reset(); // Vul linkergrid TUtil.PlaatsControlOpGrid(GridPanelLeft, TFormZoekProducten.Create(GridPanelLeft, self, ApplicationContext, FProductsAgent), 0, 0); TUtil.PlaatsControlOpGrid(GridPanelLeft, TFormGevondenProducten.Create(GridPanelLeft, self, ApplicationContext, ApplicationContext.ProductsContext, FProductsAgent), 1, 0); end; NAVTOONPRODUCTEN: begin end; NAVTOONPRODUCT: begin // Geen nieuw grid plaatsen wanneer er al een aanwezig is if GridPanelRight.ControlCount = 0 then begin // Vul rechtergrid TUtil.PlaatsControlOpGrid(GridPanelRight, TFormProductDetail.Create(GridPanelRight, self, ApplicationContext, ApplicationContext.ProductsContext, FProductsAgent), 0, 0); TUtil.PlaatsControlOpGrid(GridPanelRight, TFormVerpakkingDetail.Create(GridPanelRight, self, ApplicationContext, ApplicationContext.ProductVerpakkingContext), 1, 0); end; end; NAVTOONPRODUCTVERPAKKING: begin end; else Exception.Create('SchermID: ' + IntToStr(schermId) + ' is onbekend'); NavigeerNaar(NAVHOME); exit; end; end; end.