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; }
void initializeRekeningen(IRekeningRepository rekeningRepository) { rekeningenTable = new Table(2, 1, false); windowPaned.Add1(rekeningenTable); rekeningenManager = new ObjectManagerWidget<Rekening>(typeof(RekeningWindow)); rekeningenManager.GetObjectsFunc = delegate { return rekeningRepository.GetAll(); }; rekeningenManager.GetObjectTitleFunc = delegate(Rekening rekening) { return rekening.Naam; }; rekeningenManager.DeleteObjectFunc = delegate(Rekening rekening) { try { rekeningRepository.Delete(rekening.Naam); } catch(Exception ex) { log.Error(ex); UIHelper.ShowErrorDialog(this, "Kan rekening '{0}' niet verwijderen: " + ex.Message, rekening.Naam); } OnRefreshRekeningen(); }; rekeningenManager.UpdateObjectFunc = delegate(Rekening rekening) { try { rekeningRepository.Update(rekening); } catch(Exception ex) { log.Error(ex); UIHelper.ShowErrorDialog(this, "Kan rekening '{0}' niet wijzigen: " + ex.Message, rekening.Naam); } OnRefreshRekeningen(); }; rekeningenManager.AddObjectFunc = delegate(Rekening rekening) { try { rekeningRepository.Create(rekening); } catch(Exception ex) { log.Error(ex); UIHelper.ShowErrorDialog(this, "Kan rekening '{0}' niet toevoegen: " + ex.Message, rekening.Naam); } OnRefreshRekeningen(); }; rekeningenTable.Attach(rekeningenManager, 0, 1, 0, 1); rekeningenOverzicht = new OverzichtWidget<Rekening>(new OverzichtWidgetColumn("Naam", 0, "{0}:"), new OverzichtWidgetColumn("Waarde", 1, "{0:C}")); rekeningenTable.Attach(rekeningenOverzicht, 0, 1, 1, 2); OnRefreshRekeningen(); rekeningenManager.Refresh(); }