Index: VerpakkingsDefinitie/UI/NavProductScherm.pas =================================================================== diff -u -r592 -r593 --- VerpakkingsDefinitie/UI/NavProductScherm.pas (.../NavProductScherm.pas) (revision 592) +++ VerpakkingsDefinitie/UI/NavProductScherm.pas (.../NavProductScherm.pas) (revision 593) @@ -5,17 +5,20 @@ uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls, - Subscherm, Main, ApplicationContext, ProductsAgent, UserAgent; + Subscherm, Navigator, ApplicationContext, ProductsAgent, UserAgent; type TFormProductNav = class(TFormSubscherm, INavigator) - PanelMain: TPanel; + 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); + constructor Create(AOwner: TComponent; Navigator: INavigator; ApplicationContext: TApplicationContext; UserAgent: TUserAgent; + ProductsAgent: TProductsAgent); procedure NavigeerNaar(schermId: Integer); end; @@ -24,41 +27,62 @@ {$R *.dfm} uses - NavGridPanel, Util, + Util, ZoekProductenScherm, GebruikerScherm, GevondenProductenScherm, ProductDetailScherm; constructor TFormProductNav.Create(AOwner: TComponent; Navigator: INavigator; ApplicationContext: TApplicationContext; UserAgent: TUserAgent; ProductsAgent: TProductsAgent); -var - NavGridPanelStandard: TNavGridPanelStandard; begin inherited Create(AOwner, Navigator, ApplicationContext); self.FUserAgent := UserAgent; self.FProductsAgent := ProductsAgent; - { TODO -cUI : Onderzoeken of 'TSplitter' een beter alternatief is dan volledig een gridview } +end; - // Gebruikersgegevens scherm, zoekscherm, resultaten en detail scherm inladen. - NavGridPanelStandard := TNavGridPanelStandard.Create(PanelMain); +procedure TFormProductNav.FormCreate(Sender: TObject); +begin FProductsAgent.LaadUIInstellingen(ApplicationContext.UserContext, ApplicationContext.UiInstellingenContext); - // Gebruikersgegevens scherm bovenaan - // Zoekscherm daaronder links - // Resultaten scherm daaronder links - // Rechts is helemaal voor detail scherm - NavGridPanelStandard.Init(TFormGebruiker.Create(NavGridPanelStandard, self, ApplicationContext, ApplicationContext.UserContext, - FUserAgent), TFormZoekProducten.Create(NavGridPanelStandard, self, ApplicationContext, FProductsAgent), - TFormGevondenProducten.Create(NavGridPanelStandard, self, ApplicationContext, ApplicationContext.ProductsContext, - FProductsAgent), TFormProductDetail.Create(NavGridPanelStandard, self, ApplicationContext, - ApplicationContext.ProductVerpakkingContext)); - - NavGridPanelStandard.Parent := PanelMain; - NavGridPanelStandard.Align := alClient; - NavGridPanelStandard.Show; + NavigeerNaar(NAVZOEKPRODUCTEN); end; procedure TFormProductNav.NavigeerNaar(schermId: Integer); begin + case schermId of + NAVHOME: + Navigator.NavigeerNaar(NAVHOME); // Geef aan parent navigator + NAVZOEKPRODUCTEN: + begin + ApplicationContext.ProductsContext.Reset(); + // Maak beide grids leeg + TUtil.FreeControlChildren(GridPanelLeft); + TUtil.FreeControlChildren(GridPanelRight); + // 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 + // Vul rechtergrid + TUtil.PlaatsControlOpGrid(GridPanelRight, TFormProductDetail.Create(GridPanelRight, self, ApplicationContext, + ApplicationContext.ProductVerpakkingContext), 0, 0, 2); + + end; + NAVTOONPRODUCTVERPAKKING: + begin + end; + else + Exception.Create('SchermID: ' + IntToStr(schermId) + ' is onbekend'); + NavigeerNaar(NAVHOME); + exit; + end; end; end.