public void Clicked(object sender, EventArgs e) { trace.TraceInformation("person clicked:"); if (individual != null) { if (trace.Switch.Level.HasFlag(SourceLevels.Information)) { individual.Print(); } if (parent != null) { parent.ClickPerson(individual); } } else { trace.TraceEvent(TraceEventType.Error, 0, "error: Clicked person = null!"); } }
void ParsePerson(string id, string data, TextParserSettings parserSettings) { ParsePersonState state = ParsePersonState.Name; IndividualClass person = new IndividualClass(); person.SetXrefName(id); int strPos = 0; string nameStr = ""; PersonalNameClass name = new PersonalNameClass(); List <SubStringInstance> subList = CheckSubstrings(id, data, parserSettings); foreach (SubStringInstance item in subList) { EventDataString thisType = null; foreach (EventDataString str in parserSettings.eventList) { if (str.type == item.type) { thisType = str; } } if (thisType != null) { DecodeEvent(ref person, item.type, data.Substring(item.start + thisType.start.Length, item.end - item.start - thisType.start.Length - thisType.end.Length)); } } while (strPos < data.Length) { //string token = GetToken(ref strPos); char ch = data[strPos++]; switch (state) { case ParsePersonState.Name: if (ch == '.') { int firstNameStart; int firstNameLength; int lastNameStart; int lastNameLength; if (nameStr.IndexOf(',') >= 0) { firstNameStart = nameStr.IndexOf(',') + 1; while ((firstNameStart < nameStr.Length) && (nameStr[firstNameStart] == ' ')) { firstNameStart++; } firstNameLength = nameStr.Length - firstNameStart; lastNameStart = 0; lastNameLength = nameStr.IndexOf(','); } else { firstNameStart = 0; if (nameStr.LastIndexOf(' ') >= 0) { firstNameLength = nameStr.LastIndexOf(' '); lastNameStart = firstNameLength + 1; lastNameLength = nameStr.Length - firstNameLength - 1; } else { firstNameLength = nameStr.Length; lastNameStart = firstNameLength; lastNameLength = 0; } } if (firstNameLength > 0) { name.SetName(PersonalNameClass.PartialNameType.GivenName, nameStr.Substring(firstNameStart, firstNameLength)); } if (lastNameLength > 0) { name.SetName(PersonalNameClass.PartialNameType.BirthSurname, nameStr.Substring(lastNameStart, lastNameLength)); } person.SetPersonalName(name); state = ParsePersonState.EventToken; } else { nameStr += ch; } break; } } person.Print(); familyTree.AddIndividual(person); }