public frmNamedEntities(SemanticDatabase db, NamedEntity selected) { InitializeComponent(); int selIndex = db.NamedEntities.Values.ToList().IndexOf(selected); NamedEntities = db.NamedEntities.SerializeClone(); RefreshNamedEntityList(NamedEntities.Values.ToList()); lvNamedEntities.Items[selIndex].Selected = true; lvNamedEntities.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent); }
public void Open(string filename, List <Frame> frames) { var frameInstances = new Dictionary <int, FrameInstance>(); var xdoc = XDocument.Load(filename); if (xdoc != null) { foreach (var entityEl in xdoc.Root.Element("NamedEntities").Elements("NamedEntity")) { var entity = new NamedEntity(); entity.ID = int.Parse(entityEl.Attribute("ID").Value); entity.Name = entityEl.Element("PrimeAlias").Attribute("Label").Value; entity.Type = entityEl.Attribute("Type").Value; foreach (var aliasEl in entityEl.Elements("Alias")) { entity.AliasSet.Add(aliasEl.Attribute("Label").Value); } NamedEntities.Add(entity.ID, entity); } if (xdoc.Root.Element("Frames") != null) { foreach (var frameEl in xdoc.Root.Element("Frames").Elements("Frame")) { var frameInst = new FrameInstance(); frameInst.TargetID = int.Parse(frameEl.Attribute("TargetID").Value); frameInst.SentenceID = frameEl.Attribute("SentenceID").Value; frameInst.WordIndex = int.Parse(frameEl.Attribute("WordIndex").Value); if (frameEl.Attribute("TypeLV") != null) { frameInst.TypeLV = frameEl.Attribute("TypeLV").Value; } var type = frameEl.Attribute("Type").Value; frameInst.Frame = frames.FirstOrDefault(o => o.Name == type); foreach (var elementEl in frameEl.Elements("Element")) { var elementName = elementEl.Attribute("Name").Value; var frameElement = frameInst.Frame.Elements.FirstOrDefault(o => o.Name == elementName); var refId = int.Parse(elementEl.Attribute("RefID").Value); var wordIndex = int.Parse(elementEl.Attribute("WordIndex").Value); var elReference = new Reference { ID = refId, WordIndex = wordIndex }; frameInst.ElementReferences.Add(frameElement, elReference); } foreach (var markerEl in frameEl.Elements("Marker")) { frameInst.Marker = new LayoutMarker(); frameInst.Marker.X = int.Parse(markerEl.Attribute("X").Value); frameInst.Marker.Y = int.Parse(markerEl.Attribute("Y").Value); } frameInstances.Add(frameInst.TargetID, frameInst); } } foreach (var frameInst in frameInstances) { NamedEntities[frameInst.Value.TargetID].Frames.Add(frameInst.Value); } } }