private void cmdWife_Click(object sender, EventArgs e) { ItemPicker IP = new ItemPicker(); string ID; XmlNode tmpNode; if (lblWife.Tag == null) { ID = IP.ShowDialogAndReturnString("", "INDI"); } else { ID = IP.ShowDialogAndReturnString(lblWife.Tag.ToString(), "INDI"); } if (ID != "") { tmpNode = GEDXMLUtilites.GlobalLocateNodeByID(ID, "INDI", MyNode); if (tmpNode != null) { GEDFileEntryIndi Wife = new GEDFileEntryIndi(); Wife.Node = tmpNode; lblWife.Text = Wife.DisplayName; lblWife.Tag = ID; } } else { lblWife.Text = ""; lblWife.Tag = ""; } }
private void ParseNodeToUIComponents(XmlNode Node) { XmlNode tmpNode; string sID; foreach (XmlNode Child in Node.ChildNodes) { switch (Child.Name.ToUpper()) { case "HUSB": sID = Child.Attributes["REF"].Value; tmpNode = GEDXMLUtilites.GlobalLocateNodeByID(sID, "INDI", Child); if (tmpNode != null) { GEDFileEntryIndi Husb = new GEDFileEntryIndi(); Husb.Node = tmpNode; lblHusband.Text = Husb.DisplayName; lblHusband.Tag = sID; } break; case "WIFE": sID = Child.Attributes["REF"].Value; tmpNode = GEDXMLUtilites.GlobalLocateNodeByID(sID, "INDI", Child); if (tmpNode != null) { GEDFileEntryIndi Wife = new GEDFileEntryIndi(); Wife.Node = tmpNode; lblWife.Text = Wife.DisplayName; lblWife.Tag = sID; } break; case "CHIL": sID = Child.Attributes["REF"].Value; tmpNode = GEDXMLUtilites.GlobalLocateNodeByID(sID, "INDI", Child); if (tmpNode != null) { GEDFileEntryIndi Chil = new GEDFileEntryIndi(); Chil.Node = tmpNode; lstChildren.Items.Add(Chil); } break; case "MARR": GEDXMLUtilites.ParseCompoundDate(Child, mdpMarriage); break; case "DIV": GEDXMLUtilites.ParseCompoundDate(Child, mdpDivorce); break; default: break; } } }
public GEDFile(XmlDocument Doc) { GEDFileEntry Entry; // Top level nodes are "Head", "Subm", "Indi", "Fam", "Sour" foreach (XmlNode Node in Doc.DocumentElement.ChildNodes) { Entry = null; switch (Node.Name.ToUpper()) { case "HEAD": Entry = new GEDFileEntryHead(); break; case "SUBM": Entry = new GEDFileEntrySubm(); break; case "INDI": Entry = new GEDFileEntryIndi(); break; case "FAM": Entry = new GEDFileEntryFam(); break; case "SOUR": Entry = new GEDFileEntrySour(); break; default: frmGEDXmlEditor.Log("Node type not recognised: " + Node.Name); break; } if (Entry != null) { Entry.Node = Node; Entries.Add(Entry); } } // Now, for each family, cross-reference individuals foreach (GEDFileEntry FEntry in Entries) { if (FEntry.ListType() == "FAM") { ((GEDFileEntryFam)FEntry).ResolveXrefs(); } } }
public GEDFileEntry NewEntry(string Type, XmlDocument Doc) { GEDFileEntry Entry = null; String sIDCode = ""; switch (Type) { case "HEAD": Entry = new GEDFileEntryHead(); sIDCode = "X"; break; case "SUBM": Entry = new GEDFileEntrySubm(); sIDCode = "SUB"; break; case "INDI": Entry = new GEDFileEntryIndi(); sIDCode = "I"; break; case "FAM": Entry = new GEDFileEntryFam(); sIDCode = "F"; break; case "SOUR": Entry = new GEDFileEntrySour(); sIDCode = "S"; break; default: frmGEDXmlEditor.Log("Node type not recognised: " + Type); break; } if (Entry != null) { XmlNode Node; Node = Doc.CreateElement(Type); // Everything will fall apart if we create an element with no ID GEDXMLUtilites.SetAttribute("ID", GetNextID(sIDCode), Node); Doc.DocumentElement.AppendChild(Node); Entry.Node = Node; Entries.Add(Entry); } return(Entry); }
private void cmdAddChild_Click(object sender, EventArgs e) { ItemPicker IP = new ItemPicker(); string ID; XmlNode tmpNode; ID = IP.ShowDialogAndReturnString("", "INDI"); if (ID != "") { tmpNode = GEDXMLUtilites.GlobalLocateNodeByID(ID, "INDI", MyNode); if (tmpNode != null) { GEDFileEntryIndi Chil = new GEDFileEntryIndi(); Chil.Node = tmpNode; lstChildren.Items.Add(Chil); } } }