Example #1
0
		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);	
			}
		}
Example #2
0
		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;
			}
			
		}
Example #3
0
		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);
			}
			
		}