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 SaveView() { if (_indi != null) { GedcomName name = null; if (_indi.Names.Count > 0) { name = _indi.GetName(); } else { name = new GedcomName(); name.Database = _database; name.Level = _indi.Level + 1; name.PreferedName = true; _indi.Names.Add(name); } // don't care if the name is empty, set it anyway name.Name = HusbandNameEntry.Text; GedcomIndividualEvent birth = _indi.Birth; if (!string.IsNullOrEmpty(HusbandBornInEntry.Text) || !string.IsNullOrEmpty(HusbandDateBornEntry.Text)) { if (birth == null) { birth = new GedcomIndividualEvent(); birth.Database = _database; birth.EventType = GedcomEvent.GedcomEventType.BIRT; birth.Level = _indi.Level + 1; birth.IndiRecord = _indi; _indi.Events.Add(birth); } if (birth.Place == null) { birth.Place = new GedcomPlace(); birth.Place.Level = birth.Level + 1; } if (birth.Date == null) { birth.Date = new GedcomDate(_database); birth.Date.Level = birth.Level + 1; } birth.Place.Database = _database; birth.Place.Name = HusbandBornInEntry.Text; birth.Date.ParseDateString(HusbandDateBornEntry.Text); } else if (birth != null) { _indi.Events.Remove(birth); } GedcomIndividualEvent death = _indi.Death; if (!string.IsNullOrEmpty(HusbandDiedInEntry.Text) || !string.IsNullOrEmpty(HusbandDateDiedEntry.Text)) { if (death == null) { death = new GedcomIndividualEvent(); death.Database = _database; death.EventType = GedcomEvent.GedcomEventType.DEAT; death.Level = _indi.Level + 1; death.IndiRecord = _indi; _indi.Events.Add(death); } if (death.Place == null) { death.Place = new GedcomPlace(); death.Place.Level = death.Level + 1; } if (death.Date == null) { death.Date = new GedcomDate(_database); death.Date.Level = death.Level + 1; } death.Place.Database = _database; death.Place.Name = HusbandDiedInEntry.Text; death.Date.ParseDateString(HusbandDateDiedEntry.Text); } else if (death != null) { _indi.Events.Remove(death); } } }
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); } }