// TODO: rollback changes when exception! private void ParseSource() { int srcYear; if (!int.TryParse(edSourceYear.Text, out srcYear)) { ShowError(fLangMan.LS(FLS.LSID_SourceYearInvalid)); return; } string srcName = cbSource.Text; string srcPage = edPage.Text; string place = edPlace.Text; GEDCOMSourceRecord srcRec = null; if (!string.IsNullOrEmpty(srcName)) { srcRec = fBase.Context.FindSource(srcName); if (srcRec == null) { srcRec = fBase.Context.Tree.CreateSource(); srcRec.FiledByEntry = srcName; } } GEDCOMIndividualRecord iMain = null; int num = dataGridView1.Rows.Count; for (int r = 0; r < num; r++) { DataGridViewRow row = dataGridView1.Rows[r]; string lnk = (string)row.Cells[0].Value; string nm = (string)row.Cells[1].Value; string pt = (string)row.Cells[2].Value; string fm = (string)row.Cells[3].Value; string age = (string)row.Cells[4].Value; string comment = (string)row.Cells[5].Value; if (!string.IsNullOrEmpty(lnk)) { PersonLink link = GetLinkByName(lnk); GEDCOMSex sx = fBase.Context.DefineSex(nm, pt); GEDCOMIndividualRecord iRec = fBase.Context.CreatePersonEx(nm, pt, fm, sx, false); if (!string.IsNullOrEmpty(age) && SysUtils.IsDigits(age)) { int birthYear = srcYear - int.Parse(age); fBase.Context.CreateEventEx(iRec, "BIRT", "ABT " + birthYear.ToString(), ""); } if (!string.IsNullOrEmpty(place)) { GEDCOMCustomEvent evt = fBase.Context.CreateEventEx(iRec, "RESI", "", ""); evt.Place.StringValue = place; } if (!string.IsNullOrEmpty(comment)) { GEDCOMNoteRecord noteRec = fBase.Context.Tree.CreateNote(); noteRec.SetNoteText(comment); iRec.AddNote(noteRec); } if (srcRec != null) { iRec.AddSource(srcRec, srcPage, 0); } fBase.NotifyRecord(iRec, RecordAction.raAdd); GEDCOMFamilyRecord family = null; if (link == PersonLink.plPerson) { iMain = iRec; string evName = ""; if (rbSK_Met.Checked) { switch (cbEventType.SelectedIndex) { case 0: evName = "BIRT"; break; case 1: evName = "DEAT"; break; case 2: evName = "MARR"; break; } } if (evName == "BIRT" || evName == "DEAT") { GEDCOMCustomEvent evt = fBase.Context.CreateEventEx(iRec, evName, GEDCOMDate.CreateByFormattedStr(edEventDate.Text, false), ""); evt.Place.StringValue = place; } else if (evName == "MARR") { family = iRec.GetMarriageFamily(true); GEDCOMCustomEvent evt = fBase.Context.CreateEventEx(family, evName, GEDCOMDate.CreateByFormattedStr(edEventDate.Text, false), ""); evt.Place.StringValue = place; } } else if (link > PersonLink.plPerson) { if (iMain == null) { throw new PersonScanException(fLangMan.LS(FLS.LSID_BasePersonInvalid)); } else { switch (link) { case PersonLink.plFather: case PersonLink.plMother: family = iMain.GetParentsFamily(true); family.AddSpouse(iRec); break; case PersonLink.plGodparent: iMain.AddAssociation(fLangMan.LS(FLS.LSID_PLGodparent), iRec); break; case PersonLink.plSpouse: family = iMain.GetMarriageFamily(true); family.AddSpouse(iRec); break; case PersonLink.plChild: family = iMain.GetMarriageFamily(true); family.AddChild(iRec); break; } } } } } InitSourceControls(); }
public object gt_create_note() { GEDCOMNoteRecord nRec = fBase.Context.Tree.CreateNote(); return(nRec); }
public static bool EditRecord(IBaseWindow baseWin, GEDCOMRecord rec) { bool result = false; switch (rec.RecordType) { case GEDCOMRecordType.rtIndividual: GEDCOMIndividualRecord ind = rec as GEDCOMIndividualRecord; result = ModifyIndividual(baseWin, ref ind, null, TargetMode.tmNone, GEDCOMSex.svNone); break; case GEDCOMRecordType.rtFamily: GEDCOMFamilyRecord fam = rec as GEDCOMFamilyRecord; result = ModifyFamily(baseWin, ref fam, TargetMode.tmNone, null); break; case GEDCOMRecordType.rtNote: GEDCOMNoteRecord note = rec as GEDCOMNoteRecord; result = ModifyNote(baseWin, ref note); break; case GEDCOMRecordType.rtMultimedia: GEDCOMMultimediaRecord mmRec = rec as GEDCOMMultimediaRecord; result = ModifyMedia(baseWin, ref mmRec); break; case GEDCOMRecordType.rtSource: GEDCOMSourceRecord src = rec as GEDCOMSourceRecord; result = ModifySource(baseWin, ref src); break; case GEDCOMRecordType.rtRepository: GEDCOMRepositoryRecord rep = rec as GEDCOMRepositoryRecord; result = ModifyRepository(baseWin, ref rep); break; case GEDCOMRecordType.rtGroup: GEDCOMGroupRecord grp = rec as GEDCOMGroupRecord; result = ModifyGroup(baseWin, ref grp); break; case GEDCOMRecordType.rtResearch: GEDCOMResearchRecord rsr = rec as GEDCOMResearchRecord; result = ModifyResearch(baseWin, ref rsr); break; case GEDCOMRecordType.rtTask: GEDCOMTaskRecord tsk = rec as GEDCOMTaskRecord; result = ModifyTask(baseWin, ref tsk); break; case GEDCOMRecordType.rtCommunication: GEDCOMCommunicationRecord comm = rec as GEDCOMCommunicationRecord; result = ModifyCommunication(baseWin, ref comm); break; case GEDCOMRecordType.rtLocation: GEDCOMLocationRecord loc = rec as GEDCOMLocationRecord; result = ModifyLocation(baseWin, ref loc); break; } return(result); }
private void SetNoteRecord(GEDCOMNoteRecord value) { fNoteRecord = value; txtNote.Text = fNoteRecord.Note.Text.Trim(); }
public static GEDCOMRecord AddRecord(IBaseWindow baseWin, GEDCOMRecordType rt, Target target) { bool result = false; GEDCOMRecord rec = null; switch (rt) { case GEDCOMRecordType.rtIndividual: { // FIXME: legacy code, checkit if (target == null) { target = new Target(); target.TargetMode = TargetMode.tmParent; } GEDCOMIndividualRecord indivRec = null; result = ModifyIndividual(baseWin, ref indivRec, target.TargetIndividual, target.TargetMode, target.NeedSex); rec = indivRec; break; } case GEDCOMRecordType.rtFamily: { if (target == null) { target = new Target(); } TargetMode famTarget = (target.TargetMode != TargetMode.tmFamilyChild) ? TargetMode.tmNone : target.TargetMode; GEDCOMFamilyRecord fam = null; result = ModifyFamily(baseWin, ref fam, famTarget, target.TargetIndividual); rec = fam; break; } case GEDCOMRecordType.rtNote: { GEDCOMNoteRecord note = null; result = ModifyNote(baseWin, ref note); rec = note; break; } case GEDCOMRecordType.rtMultimedia: { GEDCOMMultimediaRecord mmRec = null; result = ModifyMedia(baseWin, ref mmRec); rec = mmRec; break; } case GEDCOMRecordType.rtSource: { GEDCOMSourceRecord src = null; result = ModifySource(baseWin, ref src); rec = src; break; } case GEDCOMRecordType.rtRepository: { GEDCOMRepositoryRecord rep = null; result = ModifyRepository(baseWin, ref rep); rec = rep; break; } case GEDCOMRecordType.rtGroup: { GEDCOMGroupRecord grp = null; result = ModifyGroup(baseWin, ref grp); rec = grp; break; } case GEDCOMRecordType.rtResearch: { GEDCOMResearchRecord rsr = null; result = ModifyResearch(baseWin, ref rsr); rec = rsr; break; } case GEDCOMRecordType.rtTask: { GEDCOMTaskRecord tsk = null; result = ModifyTask(baseWin, ref tsk); rec = tsk; break; } case GEDCOMRecordType.rtCommunication: { GEDCOMCommunicationRecord comm = null; result = ModifyCommunication(baseWin, ref comm); rec = comm; break; } case GEDCOMRecordType.rtLocation: { GEDCOMLocationRecord loc = null; result = ModifyLocation(baseWin, ref loc); rec = loc; break; } } return((result) ? rec : null); }