public EventEditDlgController(IEventEditDlg view) : base(view) { fTempLocation = null; int num = GKData.DateKinds.Length; for (int i = 0; i < num; i++) { fView.EventDateType.Add(LangMan.LS(GKData.DateKinds[i].Name)); } for (GDMCalendar gc = GDMCalendar.dcGregorian; gc <= GDMCalendar.dcLast; gc++) { GKData.CalendarStruct cdr = GKData.DateCalendars[(int)gc]; if (!cdr.HasSupport) { continue; } fView.Date1Calendar.AddItem(LangMan.LS(cdr.Name), gc); fView.Date2Calendar.AddItem(LangMan.LS(cdr.Name), gc); } fView.Date1Calendar.SelectedIndex = 0; fView.Date2Calendar.SelectedIndex = 0; fView.EventType.Activate(); }
public void SetDate(GDMCalendar calendar, int day, int month, int year, bool yearBC = false) { switch (calendar) { case GDMCalendar.dcGregorian: SetGregorian(day, month, year); break; case GDMCalendar.dcJulian: SetJulian(day, month, year); break; case GDMCalendar.dcHebrew: SetHebrew(day, month, year); break; case GDMCalendar.dcFrench: SetFrench(day, month, year); break; case GDMCalendar.dcRoman: SetRoman(day, month, year, yearBC); break; case GDMCalendar.dcIslamic: SetIslamic(day, month, year); break; case GDMCalendar.dcUnknown: SetUnknown(day, month, year, yearBC); break; } }
public static string[] GetMonthNames(GDMCalendar calendar) { string[] monthes; switch (calendar) { case GDMCalendar.dcGregorian: case GDMCalendar.dcJulian: case GDMCalendar.dcRoman: monthes = GEDCOMConsts.GEDCOMMonthArray; break; case GDMCalendar.dcHebrew: monthes = GEDCOMConsts.GEDCOMMonthHebrewArray; break; case GDMCalendar.dcFrench: monthes = GEDCOMConsts.GEDCOMMonthFrenchArray; break; case GDMCalendar.dcIslamic: monthes = GEDCOMConsts.GEDCOMMonthIslamicArray; break; case GDMCalendar.dcUnknown: default: monthes = GEDCOMConsts.GEDCOMMonthArray; break; } return(monthes); }
public void SetLocale() { int num = GKData.DateKinds.Length; for (int i = 0; i < num; i++) { cmbDateType.Items.Add(LangMan.LS(GKData.DateKinds[i].Name)); } for (GDMCalendar gc = GDMCalendar.dcGregorian; gc <= GDMCalendar.dcLast; gc++) { GKData.CalendarStruct cdr = GKData.DateCalendars[(int)gc]; if (!cdr.HasSupport) { continue; } cmbDate1Calendar.Items.Add(new GKComboItem <GDMCalendar>(LangMan.LS(cdr.Name), gc)); cmbDate2Calendar.Items.Add(new GKComboItem <GDMCalendar>(LangMan.LS(cdr.Name), gc)); } cmbDate1Calendar.SelectedIndex = 0; cmbDate2Calendar.SelectedIndex = 0; fToolTip.SetToolTip(txtDate1, txtDate1.RegionalDatePattern); fToolTip.SetToolTip(txtDate2, txtDate2.RegionalDatePattern); }
public GDMDate(GDMObject owner) : base(owner) { fApproximated = GDMApproximated.daExact; fCalendar = GDMCalendar.dcGregorian; fYear = UNKNOWN_YEAR; fYearBC = false; fYearModifier = string.Empty; fMonth = 0; fDay = 0; }
private void SetDateInternal(GDMCalendar calendar, int day, int month, int year, string yearModifier, bool yearBC) { fCalendar = calendar; fDay = (byte)day; fMonth = (byte)month; fYear = (short)year; fYearModifier = yearModifier; fYearBC = yearBC; DateChanged(); }
/// <summary> /// Internal helper method for parser /// </summary> internal void SetRawData(GDMApproximated approximated, GDMCalendar calendar, short year, bool yearBC, string yearModifier, byte month, byte day) { fApproximated = approximated; fCalendar = calendar; fYear = year; fYearBC = yearBC; fYearModifier = yearModifier; fMonth = month; fDay = day; DateChanged(); }
public override void Clear() { base.Clear(); fApproximated = GDMApproximated.daExact; fCalendar = GDMCalendar.dcGregorian; fYear = UNKNOWN_YEAR; fYearBC = false; fYearModifier = string.Empty; fMonth = 0; fDay = 0; DateChanged(); }
/// <summary> /// This function transforms the string into a date. All components of /// the date's string must be given by numbers in order of day / month / year. /// This function is intended only for use with the date entry controls (fixed format of date's string). /// </summary> public static GDMDate CreateByFormattedStr(string dateStr, GDMCalendar calendar, bool aException) { if (string.IsNullOrEmpty(dateStr)) { return(null); } if (dateStr.IndexOf("-") >= 0) { dateStr = dateStr.Replace("-", "."); } if (dateStr.IndexOf("/") >= 0) { dateStr = dateStr.Replace("/", "."); } if (dateStr.IndexOf("_") >= 0) { dateStr = dateStr.Replace("_", " "); } string[] dtParts = dateStr.Split('.'); if (dtParts.Length < 3) { if (aException) { throw new GDMDateException(string.Format("GEDCOMDate.CreateByFormattedStr(): date format is invalid {0}", dateStr)); } return(null); } string pd = dtParts[0].Trim(); string pm = dtParts[1].Trim(); string py = dtParts[2].Trim(); int day = (pd == "") ? 0 : ConvertHelper.ParseInt(pd, 0); int month = (pm == "") ? 0 : ConvertHelper.ParseInt(pm, 0); int year = (py == "") ? UNKNOWN_YEAR : ConvertHelper.ParseInt(py, UNKNOWN_YEAR); var date = new GDMDate(null); date.SetDate(calendar, day, month, year); return(date); }
public override void Assign(GDMTag source) { GDMDate srcDate = source as GDMDate; if (srcDate == null) { throw new ArgumentException(@"Argument is null or wrong type", "source"); } fApproximated = srcDate.fApproximated; fCalendar = srcDate.fCalendar; fYear = srcDate.fYear; fYearBC = srcDate.fYearBC; fYearModifier = srcDate.fYearModifier; fMonth = srcDate.fMonth; fDay = srcDate.fDay; DateChanged(); }
private static string CheckGEDCOMMonth(GDMCalendar calendar, string str) { // An empty string is a valid identifier for an unknown month if (string.IsNullOrEmpty(str)) { return(string.Empty); } string[] monthes = GDMDate.GetMonthNames(calendar); str = str.ToUpperInvariant(); for (int m = 0; m < monthes.Length; m++) { if (monthes[m] == str) { return(str); } } throw new GDMDateException(string.Format("The string {0} is not a valid {1} month identifier", str, calendar.ToString())); }
private static byte GetMonthNumber(GDMCalendar calendar, string strMonth) { string su = GEDCOMUtils.InvariantTextInfo.ToUpper(strMonth); int month; switch (calendar) { case GDMCalendar.dcHebrew: month = Algorithms.IndexOf(GEDCOMMonthHebrewArray, su); break; case GDMCalendar.dcFrench: month = Algorithms.IndexOf(GEDCOMMonthFrenchArray, su); break; default: month = Algorithms.IndexOf(GEDCOMMonthArray, su); break; } return((byte)(month + 1)); }
public static UDN GetUDNByFormattedStr(string dateStr, GDMCalendar calendar, bool aException = false) { GDMDate dtx = GDMDate.CreateByFormattedStr(dateStr, calendar, aException); return((dtx != null) ? dtx.GetUDN() : UDN.CreateEmpty()); }
private void SetDateInternal(GDMCalendar calendar, int day, string month, int year, string yearModifier, bool yearBC) { SetDateInternal(calendar, day, GetMonthNumber(calendar, month), year, yearModifier, yearBC); }
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); }
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); }