public formIndividual(Form parentForm, Quatre quatre, Individual individual) { this.quatre = quatre; this.individual = individual; this.parentform = parentForm; this.individualid = individual.ID; isnew = false; InitializeComponent(); }
public formIndividual(Form parentForm, Quatre quatre) { this.quatre = quatre; this.parentform = parentForm; isnew = true; individual = new Individual(); individual.ID = quatre.NextIndividualID; InitializeComponent(); }
public formFamily(Form parentForm, Quatre quatre, Individual husbandOrWife) { this.parentform = parentForm; this.quatre = quatre; family = new Family(); isnew = true; family.ID = quatre.NextFamilyID; if (husbandOrWife.Sex.Equals(enums.Sex.Male)) { family.Husband = husbandOrWife; } else { family.Wife = husbandOrWife; } InitializeComponent(); }
private String buildChildren(Family family) { Boolean ploral = family.Ploral; Boolean primaryMale = family.PrimaryMale; String response = ""; if (family.Children.Count > 0) { response += "<ol type=\"i\">"; if (ploral) { response += "They had the following children"; } else { if (primaryMale) { response += "He had the following children"; } else { response += "She had the following children"; } } int childcounter = 1; foreach (Individual child in family.Children) { response += "<li type=\"i\" id=\"I" + child.ID + "\">"; //response += "<label style=\"width:30px\">(" + Utilities.ToRoman(childcounter) + ")</label>"; if (child.Sex.Equals(enums.Sex.Male)) response += " (M) "; if (child.Sex.Equals(enums.Sex.Female)) response += " (F) "; if (child.Sex.Equals(enums.Sex.Unknown)) response += " (X) "; String linktext = child.DisplayName; if (child.Families.Count > 0) { if (!child.Families.Count.Equals(1)) { String anchorhref = "/genealogy/" + getGenerationString(child.Generation) + "-generation/#I" + child.ID.ToString(); response += "<a href=\"" + anchorhref + "\">" + linktext + "</a>"; if (!child.DOB.Equals("")) { response += " born on " + child.DOB; } } foreach (Family childfamily in child.Families.Values) { if (child.Families.Count.Equals(1)) { String anchorhref = "/genealogy/" + getGenerationString(child.Generation) + "-generation/#F" + childfamily.ID.ToString(); response += "<a href=\"" + anchorhref + "\">" + linktext + "</a>"; } else { response += "<div>"; response += " married "; Individual spouse; if (childfamily.Husband != null) { if (childfamily.Husband.ID.Equals(child.ID)) { spouse = childfamily.Wife; } else { spouse = childfamily.Husband; } } else { if (childfamily.Wife.ID == child.ID) { spouse = new Individual(); spouse.Name = "Unknown"; spouse.Givenname = "Unknown"; } else { spouse = childfamily.Wife; } } if (spouse != null) { String anchorhref = "/genealogy/" + getGenerationString(child.Generation) + "-generation/#F" + childfamily.ID.ToString(); response += "<a href=\"" + anchorhref + "\">" + spouse.DisplayName + "</a>"; if (!spouse.DOB.Equals("")) { response += ", born on " + spouse.DOB; } } if (childfamily.DateDivorsed.Equals("")) { if (!childfamily.DateMarried.Equals("")) { response += ", married on " + childfamily.DateMarried; } } else { response += ", the marriage ended in divorce on " + childfamily.DateDivorsed; } response += "</div>"; } } } else { response += linktext; } childcounter++; response += "</li>"; } response += "</ol>"; } return response; }
private int countParents(Individual child, int counter) { int total = counter; if (child.FromFamily != null) { total = countParents(child.FromFamily.Primary, total+1); } return total; }
private void performSelect() { if (listIndividuals.SelectedItems.Count > 0) { this.selectedindividual = (Individual)this.individuals[(int)listIndividuals.SelectedItems[0].Tag]; if (this.selectonly) { this.Close(); } else { formIndividual form = new formIndividual(this, quatre, this.selectedindividual); form.StartPosition = FormStartPosition.CenterParent; form.ShowDialog(this); DrawDetails(); } } }
private void listIndividuals_SelectedIndexChanged(object sender, EventArgs e) { if (listIndividuals.SelectedItems.Count > 0) { this.selectedindividual = (Individual)this.individuals[(int)listIndividuals.SelectedItems[0].Tag]; DrawDetails(); } }
private void listIndividuals_DoubleClick(object sender, EventArgs e) { if (listIndividuals.SelectedItems.Count > 0) { this.selectedindividual = (Individual)this.individuals[(int)listIndividuals.SelectedItems[0].Tag]; formIndividual form = new formIndividual(this, quatre, this.selectedindividual); form.StartPosition = FormStartPosition.CenterParent; form.ShowDialog(this); DrawDetails(); } }
public string SpouseName(Individual primary) { if (this.Secondary != null) { return this.Secondary.DisplayName; } else { return "Unknown"; } }
public void addChild(Individual child) { this.children.Add(child); }
public void LoadXML(XmlDocument xmlDocument) { maxfamilyid = 0; maxindividualid = 0; XmlNodeList individualnodes = xmlDocument.SelectNodes("//quatre/individuals/individual"); foreach (XmlNode node in individualnodes) { Individual individual = new Individual(); individual.ID = Convert.ToInt16(node.Attributes["id"].Value); if (individual.ID > maxindividualid) maxindividualid = individual.ID; if(node.Attributes["fromfamilyid"]!=null){ individual.FromFamily = getFamily(Convert.ToInt16(node.Attributes["fromfamilyid"].Value)); } individual.Name = node.SelectSingleNode("name").InnerText; individual.Givenname = node.SelectSingleNode("givenname").InnerText; individual.Surname = node.SelectSingleNode("surname").InnerText; individual.DOB = node.SelectSingleNode("dob").InnerText; individual.PlaceOfBirth = node.SelectSingleNode("placeofbirth").InnerText; individual.DOD = node.SelectSingleNode("dod").InnerText; individual.Profession = node.SelectSingleNode("profession").InnerText; individual.Notes = node.SelectSingleNode("notes").InnerText; string sex = node.SelectSingleNode("sex").InnerText; if (sex.Equals("M")) individual.Sex = enums.Sex.Male; if (sex.Equals("F")) individual.Sex = enums.Sex.Female; XmlNodeList subfamilynodes = node.SelectNodes("families/family"); foreach (XmlNode subfamilynode in subfamilynodes) { Family subfamily = getFamily(Convert.ToInt16(subfamilynode.Attributes["id"].Value)); individual.AddFamily(subfamily.ID, subfamily); } individuals.Add(individual.ID, individual); } XmlNodeList familynodes = xmlDocument.SelectNodes("//quatre/families/family"); foreach (XmlNode node in familynodes) { int famid = Convert.ToInt16(node.Attributes["id"].Value); Family family = getFamily(famid); if (famid > maxfamilyid) maxfamilyid = famid; if (node.Attributes["husbandid"] != null) { int husbandid = Convert.ToInt16(node.Attributes["husbandid"].Value); family.Husband = (Individual)individuals[husbandid]; } if (node.Attributes["wifeid"] != null) { int wifeid = Convert.ToInt16(node.Attributes["wifeid"].Value); family.Wife = (Individual)individuals[wifeid]; } family.DateMarried = node.SelectSingleNode("datemarried").InnerText; family.PlaceMarried = node.SelectSingleNode("placemarried").InnerText; family.DateDivorsed = node.SelectSingleNode("datedivorsed").InnerText; family.Notes = node.SelectSingleNode("notes").InnerText; XmlNodeList childrennodes = node.SelectNodes("children/child"); foreach (XmlNode childnode in childrennodes) { int childid = Convert.ToInt16(childnode.Attributes["id"].Value); Individual child = (Individual)individuals[childid]; family.addChild(child); } } }
public GEDReader(String filePath) { StreamReader file = new StreamReader(filePath); Boolean donereading = false; int linecount = 0; String line = file.ReadLine(); linecount++; while(!donereading){ if (line != null) { if (line.EndsWith("INDI")) { Individual indi = new Individual(); indi.ID = Convert.ToInt16(line.Substring(2, line.Length - 7).Replace("@", "").Replace("I", "")); if (indi.ID > maxindividualid) maxindividualid = indi.ID; String indiline = ""; while (!indiline.Trim().Equals("1 CHAN")) { indiline = file.ReadLine(); linecount++; if (indiline.StartsWith("1 NAME")) indi.Name = indiline.Substring(7); if (indiline.StartsWith("2 SURN")) indi.Surname = indiline.Substring(7); if (indiline.StartsWith("2 GIVN")) indi.Givenname = indiline.Substring(7); if (indiline.StartsWith("1 SEX")){ if(indiline.Substring(6).Trim().Equals("F")) indi.Sex = enums.Sex.Female; if(indiline.Substring(6).Trim().Equals("M")) indi.Sex = enums.Sex.Male; } if (indiline.StartsWith("2 DATE")) indi.DOB = indiline.Substring(7); if (indiline.StartsWith("1 FAMS")) { Family fam = getFamily(ConvertToID(indiline.Substring(7))); indi.AddFamily(fam.ID, fam); } if (indiline.StartsWith("1 FAMC")) { Family fromfam = getFamily(ConvertToID(indiline.Substring(7))); indi.FromFamily = fromfam; } } individuals.Add(indi.ID, indi); file.ReadLine(); //read date linecount++; file.ReadLine(); //read time linecount++; line = file.ReadLine(); linecount++; } else if (line.Trim().EndsWith("FAM")) { int famid = ConvertToID(line.Substring(2, line.Length - 5)); if (famid > maxfamilyid) maxfamilyid = famid; Family fam = getFamily(famid); String famline = ""; while (famline!=null && !famline.Trim().EndsWith("FAM")) { //1 DIV if (famline.StartsWith("1 HUSB")) fam.Husband = (Individual)individuals[ConvertToID(famline.Substring(7))]; if (famline.StartsWith("1 WIFE")) fam.Wife = (Individual)individuals[ConvertToID(famline.Substring(7))]; if (famline.StartsWith("1 CHIL")) fam.addChild((Individual)individuals[ConvertToID(famline.Substring(7))]); if (famline.EndsWith("1 DIV")) { famline = file.ReadLine(); linecount++; if (famline.StartsWith("2 DATE")) fam.DateDivorsed = famline.Substring(7); } if (famline.StartsWith("1 MARR")) { famline = file.ReadLine(); linecount++; if (famline.StartsWith("2 DATE")) fam.DateMarried = famline.Substring(7); if (famline.StartsWith("2 PLAC")) fam.PlaceMarried = famline.Substring(7); } famline = file.ReadLine(); linecount++; } line = famline; } else if (line.EndsWith("0 TRLR")) { donereading = true; } else { line = file.ReadLine(); linecount++; } } else { donereading = true; } } file.Close(); }
public GEDReader(String filePath) { StreamReader file = new StreamReader(filePath); Boolean donereading = false; String line = file.ReadLine(); while(!donereading){ if (line != null) { if (line.EndsWith("INDI")) { Individual indi = new Individual(); indi.ID = line.Substring(2, line.Length - 7); String indiline = ""; while (!indiline.Trim().Equals("1 CHAN")) { indiline = file.ReadLine(); if (indiline.StartsWith("1 NAME")) indi.Name = indiline.Substring(7); if (indiline.StartsWith("2 SURN")) indi.Surname = indiline.Substring(7); if (indiline.StartsWith("2 GIVN")) indi.Givenname = indiline.Substring(7); if (indiline.StartsWith("1 SEX")){ if(indiline.Substring(6).Trim().Equals("F")) indi.Sex = enums.Sex.Female; if(indiline.Substring(6).Trim().Equals("M")) indi.Sex = enums.Sex.Male; } if (indiline.StartsWith("2 DATE")) indi.DOB = indiline.Substring(7); } individuals.Add(indi.ID, indi); file.ReadLine(); //read date file.ReadLine(); //read time line = file.ReadLine(); } else if (line.EndsWith("FAM")) { Family fam = new Family(); fam.ID = line.Substring(2, line.Length - 5); String famline = ""; while (famline!=null && !famline.Trim().EndsWith("FAM")) { //1 DIV if (famline.StartsWith("1 HUSB")) fam.Husband = (Individual)individuals[famline.Substring(7)]; if (famline.StartsWith("1 WIFE")) fam.Wife = (Individual)individuals[famline.Substring(7)]; if (famline.StartsWith("1 CHIL")) fam.addChild((Individual)individuals[famline.Substring(7)]); if (famline.EndsWith("1 DIV")) { famline = file.ReadLine(); if (famline.StartsWith("2 DATE")) fam.DateDivorsed = famline.Substring(7); } if (famline.StartsWith("1 MARR")) { famline = file.ReadLine(); if (famline.StartsWith("2 DATE")) fam.DateMarried = famline.Substring(7); if (famline.StartsWith("2 PLAC")) fam.PlaceMarried = famline.Substring(7); } famline = file.ReadLine(); } families.Add(fam.ID, fam); line = famline; } else if (line.EndsWith("0 TRLR")) { donereading = true; } else { line = file.ReadLine(); } } else { donereading = true; } } file.Close(); }
private void loadIndividual() { Hashtable individuals = quatre.Individuals; individual = (Individual)individuals[this.individualid]; }
private void cancelButton_Click(object sender, EventArgs e) { this.individual = null; this.Close(); }