protected virtual void OnNewFactButton_Clicked(object sender, System.EventArgs e) { Save(); Gtk.TreeIter iter; GedcomIndividualRecord indi = _record as GedcomIndividualRecord; GedcomFamilyRecord fam = _record as GedcomFamilyRecord; GedcomEvent ev = null; if (indi != null) { GedcomIndividualEvent individualEvent = new GedcomIndividualEvent(); individualEvent.EventType = GedcomEvent.GedcomEventType.GenericFact; individualEvent.Database = _database; individualEvent.IndiRecord = indi; ev = individualEvent; indi.Attributes.Add(individualEvent); } else if (fam != null) { GedcomFamilyEvent famEvent = new GedcomFamilyEvent(); famEvent.EventType = GedcomEvent.GedcomEventType.GenericEvent; famEvent.Database = _database; famEvent.FamRecord = fam; ev = famEvent; fam.Events.Add(famEvent); } iter = _eventListModel.Append(); _eventListModel.SetValue(iter, 0, ev); _event = null; Gtk.TreeSelection selection = FactsTreeView.Selection; selection.SelectIter(iter); if (EventAdded != null) { EventAdded(this, EventArgs.Empty); } }
public void Save() { if (_famRecord != null) { GedcomFamilyEvent marriage = _famRecord.Marriage; if (!string.IsNullOrEmpty(MarriageDateEntry.Text) || !string.IsNullOrEmpty(MarriageLocationEntry.Text)) { if (marriage == null) { marriage = new GedcomFamilyEvent(); marriage.Database = _database; marriage.EventType = GedcomEvent.GedcomEventType.MARR; marriage.Level = _famRecord.Level + 1; _famRecord.Events.Add(marriage); } if (marriage.Place == null) { marriage.Place = new GedcomPlace(); marriage.Place.Level = marriage.Level + 1; } if (marriage.Date == null) { marriage.Date = new GedcomDate(_database); marriage.Date.Level = marriage.Level + 1; } marriage.Place.Database = _database; marriage.Place.Name = MarriageLocationEntry.Text; marriage.Date.ParseDateString(MarriageDateEntry.Text); } else if (marriage != null) { _famRecord.Events.Remove(marriage); } _famRecord.StartStatus = (MarriageStartStatus)BeginingStatusComboBox.Active; } }
protected virtual void OnNewAddressButton_Clicked(object sender, System.EventArgs e) { Gtk.TreeIter iter; GedcomEvent ev; switch (_record.RecordType) { case GedcomRecordType.Individual: GedcomIndividualRecord indi = (GedcomIndividualRecord)_record; GedcomIndividualEvent individualEvent = new GedcomIndividualEvent(); individualEvent.EventType = GedcomEvent.GedcomEventType.RESIFact; individualEvent.Database = _database; individualEvent.Level = indi.Level + 1; individualEvent.IndiRecord = indi; indi.Events.Add(individualEvent); ev = individualEvent; break; case GedcomRecordType.Family: GedcomFamilyRecord fam = (GedcomFamilyRecord)_record; GedcomFamilyEvent famEvent = new GedcomFamilyEvent (); famEvent.EventType = GedcomEvent.GedcomEventType.RESI; famEvent.Database = _database; famEvent.Level = fam.Level + 1; famEvent.FamRecord = fam; fam.Events.Add(famEvent); ev = famEvent; break; default: throw new Exception("Invalid record type, AddressView can only handle individuals or families"); } iter = _eventListModel.Append(); _eventListModel.SetValue(iter, 0, ev); Gtk.TreeSelection selection = ResiTreeView.Selection; selection.SelectIter(iter); if (EventAdded != null) { EventAdded(this, EventArgs.Empty); } }