public MainWindow(HttpAgent httpAgent, IRepositoryFactory repositoryFactory)
            : base(Gtk.WindowType.Toplevel)
        {
            this.httpAgent = httpAgent;

            WindowPosition = WindowPosition.Center;

            rekeningRepository = repositoryFactory.CreateRepository<IRekeningRepository>();
            consumptieRepository = repositoryFactory.CreateRepository<IConsumptieRepository>();

            // Rekeningen overzicht
            rekeningOverzichtWidget = new RekeningOverzichtWidget();
            rekeningOverzichtWidget.Refresh(rekeningRepository.GetAll());
            rekeningOverzichtWidget.RekeningClicked += handleRekeningClicked;

            // Afrekenen button
            Pango.FontDescription fontDescription = Pango.FontDescription.FromString("Arial");
            fontDescription.Size = 13000;
            fontDescription.Weight = Pango.Weight.Bold;
            Label afrekenenLabel = new Label("Afrekenen");
            afrekenenLabel.ModifyFont(fontDescription);
            afrekenenButton = new Button();
            afrekenenButton.Add(afrekenenLabel);
            afrekenenButton.Clicked += handleAfrekenenButtonClicked;

            // Rechter panel (bestellingen)
            bestellingenOverzichtWidget = new BestellingenOverzichtWidget();

            box = new HBox(false, 3);
            box.PackStart(rekeningOverzichtWidget);
            box.PackStart(bestellingenOverzichtWidget);

            // Main box
            vbox = new VBox(false, 0);
            vbox.PackStart(box);
            vbox.PackEnd(afrekenenButton);
            Add(vbox);

            ShowAll();

            this.DeleteEvent += OnDeleteEvent;
        }