public void Test_GetBirthDateD() { GDMIndividualRecord iRec = fContext.Tree.XRefIndex_Find("I1") as GDMIndividualRecord; Assert.IsNull(GKUtils.GetBirthDate(null)); GDMCustomDate date = GKUtils.GetBirthDate(iRec); Assert.IsNotNull(date); Assert.AreEqual("28 DEC 1990", date.StringValue); }
public override bool Accept() { try { fEvent.Place.StringValue = fView.Place.Text; fEvent.Place.Location.Value = fTempLocation; fEvent.Classification = fView.EventName.Text; fEvent.Cause = fView.Cause.Text; fEvent.Agency = fView.Agency.Text; GDMCustomDate dt = AssembleDate(); if (dt == null) { throw new ArgumentNullException("dt"); } fEvent.Date.ParseString(dt.StringValue); int eventType = fView.EventType.SelectedIndex; if (fEvent is GDMFamilyEvent) { fEvent.SetName(GKData.FamilyEvents[eventType].Sign); } else { GKData.EventStruct eventProps = GKData.PersonEvents[eventType]; fEvent.SetName(eventProps.Sign); if (eventProps.Kind == PersonEventKind.ekFact) { fEvent.StringValue = fView.Attribute.Text; } else { fEvent.StringValue = ""; } } if (fEvent is GDMIndividualEvent) { if (GKData.PersonEvents[eventType].Kind == PersonEventKind.ekFact) { GDMIndividualAttribute attr = new GDMIndividualAttribute(fEvent.Owner); attr.Assign(fEvent); fEvent = attr; } } CommitChanges(); return(true); } catch (Exception ex) { Logger.WriteError("EventEditController.Accept()", ex); return(false); } }
protected static object GetDateValue(GDMCustomDate date, bool isVisible) { object result; if (date == null) { result = (isVisible) ? null : (object)UDN.CreateEmpty(); } else { if (isVisible) { GlobalOptions glob = GlobalOptions.Instance; result = date.GetDisplayStringExt(glob.DefDateFormat, glob.ShowDatesSign, glob.ShowDatesCalendar); } else { result = date.GetUDN(); } } return(result); }
public void Test_GetMarriageDate() { GDMCustomDate dtx = GKUtils.GetMarriageDate(null); Assert.IsNull(dtx); }
private void SetDate(GDMCustomDate date) { if (date is GDMDateRange) { GDMDateRange dtRange = date as GDMDateRange; if (dtRange.After.StringValue == "" && dtRange.Before.StringValue != "") { cmbDateType.SelectedIndex = 1; } else if (dtRange.After.StringValue != "" && dtRange.Before.StringValue == "") { cmbDateType.SelectedIndex = 2; } else if (dtRange.After.StringValue != "" && dtRange.Before.StringValue != "") { cmbDateType.SelectedIndex = 3; } txtDate1.NormalizeDate = dtRange.After.GetDisplayString(DateFormat.dfDD_MM_YYYY); txtDate2.NormalizeDate = dtRange.Before.GetDisplayString(DateFormat.dfDD_MM_YYYY); cmbDate1Calendar.SetSelectedTag <GDMCalendar>(dtRange.After.DateCalendar); cmbDate2Calendar.SetSelectedTag <GDMCalendar>(dtRange.Before.DateCalendar); chkBC1.Checked = dtRange.After.YearBC; chkBC2.Checked = dtRange.Before.YearBC; } else if (date is GDMDatePeriod) { GDMDatePeriod dtPeriod = date as GDMDatePeriod; if (dtPeriod.DateFrom.StringValue != "" && dtPeriod.DateTo.StringValue == "") { cmbDateType.SelectedIndex = 4; } else if (dtPeriod.DateFrom.StringValue == "" && dtPeriod.DateTo.StringValue != "") { cmbDateType.SelectedIndex = 5; } else if (dtPeriod.DateFrom.StringValue != "" && dtPeriod.DateTo.StringValue != "") { cmbDateType.SelectedIndex = 6; } txtDate1.NormalizeDate = dtPeriod.DateFrom.GetDisplayString(DateFormat.dfDD_MM_YYYY); txtDate2.NormalizeDate = dtPeriod.DateTo.GetDisplayString(DateFormat.dfDD_MM_YYYY); cmbDate1Calendar.SetSelectedTag <GDMCalendar>(dtPeriod.DateFrom.DateCalendar); cmbDate2Calendar.SetSelectedTag <GDMCalendar>(dtPeriod.DateTo.DateCalendar); chkBC1.Checked = dtPeriod.DateFrom.YearBC; chkBC2.Checked = dtPeriod.DateTo.YearBC; } else if (date is GDMDate) { GDMApproximated approximated = (date as GDMDate).Approximated; switch (approximated) { case GDMApproximated.daExact: cmbDateType.SelectedIndex = 0; break; case GDMApproximated.daAbout: cmbDateType.SelectedIndex = 7; break; case GDMApproximated.daCalculated: cmbDateType.SelectedIndex = 8; break; case GDMApproximated.daEstimated: cmbDateType.SelectedIndex = 9; break; } txtDate1.NormalizeDate = (date as GDMDate).GetDisplayString(DateFormat.dfDD_MM_YYYY); cmbDate1Calendar.SetSelectedTag <GDMCalendar>((date as GDMDate).DateCalendar); chkBC1.Checked = (date as GDMDate).YearBC; } else { cmbDateType.SelectedIndex = 0; txtDate1.NormalizeDate = ""; cmbDate1Calendar.SetSelectedTag <GDMCalendar>(GDMCalendar.dcGregorian); chkBC1.Checked = false; } }
private GDMCustomDate GetDate() { GDMCustomDate result = null; GDMCalendar cal1 = cmbDate1Calendar.GetSelectedTag <GDMCalendar>(); GDMCalendar cal2 = cmbDate2Calendar.GetSelectedTag <GDMCalendar>(); GDMDate gcd1 = GDMDate.CreateByFormattedStr(txtDate1.NormalizeDate, cal1, true); if (gcd1 == null) { throw new ArgumentNullException("gcd1"); } GDMDate gcd2 = GDMDate.CreateByFormattedStr(txtDate2.NormalizeDate, cal2, true); if (gcd2 == null) { throw new ArgumentNullException("gcd2"); } gcd1.YearBC = chkBC1.Checked.GetValueOrDefault(); gcd2.YearBC = chkBC2.Checked.GetValueOrDefault(); switch (cmbDateType.SelectedIndex) { case 0: result = gcd1; break; case 1: // BEF gcd2 result = GDMCustomDate.CreateRange(null, gcd2); break; case 2: // AFT gcd1 result = GDMCustomDate.CreateRange(gcd1, null); break; case 3: // "BET " + gcd1 + " AND " + gcd2 result = GDMCustomDate.CreateRange(gcd1, gcd2); break; case 4: // FROM gcd1 result = GDMCustomDate.CreatePeriod(gcd1, null); break; case 5: // TO gcd2 result = GDMCustomDate.CreatePeriod(null, gcd2); break; case 6: // FROM gcd1 TO gcd2 result = GDMCustomDate.CreatePeriod(gcd1, gcd2); break; case 7: // ABT gcd1 result = GDMCustomDate.CreateApproximated(gcd1, GDMApproximated.daAbout); break; case 8: // CAL gcd1 result = GDMCustomDate.CreateApproximated(gcd1, GDMApproximated.daCalculated); break; case 9: // EST gcd1 result = GDMCustomDate.CreateApproximated(gcd1, GDMApproximated.daEstimated); break; } return(result); }
public override void UpdateView() { fView.NotesList.ListModel.DataOwner = fEvent; fView.MediaList.ListModel.DataOwner = fEvent; fView.SourcesList.ListModel.DataOwner = fEvent; var evtName = fEvent.GetTagName(); if (fEvent is GDMFamilyEvent) { SetEventTypes(GKData.FamilyEvents); int idx = GKUtils.GetFamilyEventIndex(evtName); if (idx < 0) { idx = 0; } fView.EventType.SelectedIndex = idx; } else { SetEventTypes(GKData.PersonEvents); int idx = GKUtils.GetPersonEventIndex(evtName); if (idx < 0) { idx = 0; } fView.EventType.SelectedIndex = idx; if (idx >= 0 && GKData.PersonEvents[idx].Kind == PersonEventKind.ekFact) { fView.Attribute.Text = fEvent.StringValue; } } ChangeEventType(); GDMCustomDate date = fEvent.Date.Value; if (date is GDMDateRange) { GDMDateRange dtRange = date as GDMDateRange; if (dtRange.After.StringValue == "" && dtRange.Before.StringValue != "") { fView.EventDateType.SelectedIndex = 1; } else if (dtRange.After.StringValue != "" && dtRange.Before.StringValue == "") { fView.EventDateType.SelectedIndex = 2; } else if (dtRange.After.StringValue != "" && dtRange.Before.StringValue != "") { fView.EventDateType.SelectedIndex = 3; } fView.Date1.NormalizeDate = dtRange.After.GetDisplayString(DateFormat.dfDD_MM_YYYY); fView.Date2.NormalizeDate = dtRange.Before.GetDisplayString(DateFormat.dfDD_MM_YYYY); fView.Date1Calendar.SetSelectedTag <GDMCalendar>(dtRange.After.DateCalendar); fView.Date2Calendar.SetSelectedTag <GDMCalendar>(dtRange.Before.DateCalendar); fView.Date1BC.Checked = dtRange.After.YearBC; fView.Date2BC.Checked = dtRange.Before.YearBC; } else if (date is GDMDatePeriod) { GDMDatePeriod dtPeriod = date as GDMDatePeriod; if (dtPeriod.DateFrom.StringValue != "" && dtPeriod.DateTo.StringValue == "") { fView.EventDateType.SelectedIndex = 4; } else if (dtPeriod.DateFrom.StringValue == "" && dtPeriod.DateTo.StringValue != "") { fView.EventDateType.SelectedIndex = 5; } else if (dtPeriod.DateFrom.StringValue != "" && dtPeriod.DateTo.StringValue != "") { fView.EventDateType.SelectedIndex = 6; } fView.Date1.NormalizeDate = dtPeriod.DateFrom.GetDisplayString(DateFormat.dfDD_MM_YYYY); fView.Date2.NormalizeDate = dtPeriod.DateTo.GetDisplayString(DateFormat.dfDD_MM_YYYY); fView.Date1Calendar.SetSelectedTag <GDMCalendar>(dtPeriod.DateFrom.DateCalendar); fView.Date2Calendar.SetSelectedTag <GDMCalendar>(dtPeriod.DateTo.DateCalendar); fView.Date1BC.Checked = dtPeriod.DateFrom.YearBC; fView.Date2BC.Checked = dtPeriod.DateTo.YearBC; } else if (date is GDMDate) { GDMApproximated approximated = (date as GDMDate).Approximated; switch (approximated) { case GDMApproximated.daExact: fView.EventDateType.SelectedIndex = 0; break; case GDMApproximated.daAbout: fView.EventDateType.SelectedIndex = 7; break; case GDMApproximated.daCalculated: fView.EventDateType.SelectedIndex = 8; break; case GDMApproximated.daEstimated: fView.EventDateType.SelectedIndex = 9; break; } fView.Date1.NormalizeDate = (date as GDMDate).GetDisplayString(DateFormat.dfDD_MM_YYYY); fView.Date1Calendar.SetSelectedTag <GDMCalendar>((date as GDMDate).DateCalendar); fView.Date1BC.Checked = (date as GDMDate).YearBC; } else { fView.EventDateType.SelectedIndex = 0; fView.Date1.NormalizeDate = ""; fView.Date1Calendar.SetSelectedTag <GDMCalendar>(GDMCalendar.dcGregorian); fView.Date1BC.Checked = false; } ChangeDateType(); fView.EventName.Text = fEvent.Classification; fView.Cause.Text = fEvent.Cause; fView.Agency.Text = fEvent.Agency; fTempLocation = (fEvent.Place.Location.Value as GDMLocationRecord); UpdatePlace(); fView.NotesList.UpdateSheet(); fView.MediaList.UpdateSheet(); fView.SourcesList.UpdateSheet(); }
public GEDCOMDateItem(GDMCustomDate date) { fDate = date; }
private GDMCustomDate AssembleDate() { GDMCustomDate result = null; GDMCalendar cal1 = (GDMCalendar)fView.Date1Calendar.SelectedTag; GDMCalendar cal2 = (GDMCalendar)fView.Date2Calendar.SelectedTag; GDMDate gcd1 = GDMDate.CreateByFormattedStr(fView.Date1.NormalizeDate, cal1, true); if (gcd1 == null) { throw new ArgumentNullException("gcd1"); } GDMDate gcd2 = GDMDate.CreateByFormattedStr(fView.Date2.NormalizeDate, cal2, true); if (gcd2 == null) { throw new ArgumentNullException("gcd2"); } gcd1.YearBC = fView.Date1BC.Checked; gcd2.YearBC = fView.Date2BC.Checked; switch (fView.EventDateType.SelectedIndex) { case 0: result = gcd1; break; case 1: // BEF gcd2 result = GDMCustomDate.CreateRange(null, null, gcd2); break; case 2: // AFT gcd1 result = GDMCustomDate.CreateRange(null, gcd1, null); break; case 3: // "BET " + gcd1 + " AND " + gcd2 result = GDMCustomDate.CreateRange(null, gcd1, gcd2); break; case 4: // FROM gcd1 result = GDMCustomDate.CreatePeriod(null, gcd1, null); break; case 5: // TO gcd2 result = GDMCustomDate.CreatePeriod(null, null, gcd2); break; case 6: // FROM gcd1 TO gcd2 result = GDMCustomDate.CreatePeriod(null, gcd1, gcd2); break; case 7: // ABT gcd1 result = GDMCustomDate.CreateApproximated(null, gcd1, GDMApproximated.daAbout); break; case 8: // CAL gcd1 result = GDMCustomDate.CreateApproximated(null, gcd1, GDMApproximated.daCalculated); break; case 9: // EST gcd1 result = GDMCustomDate.CreateApproximated(null, gcd1, GDMApproximated.daEstimated); break; } return(result); }