private void BuildRelativVertex(XmlElement pParent, GVSRelativeVertex pVertex) { var relativeVertex = document.CreateElement(RELATIVVERTEX); pParent.AppendChild(relativeVertex); relativeVertex.SetAttribute(ATTRIBUTEID, pVertex.GetHashCode().ToString()); var vertexStyle = pVertex.GetStyle(); var label = document.CreateElement(LABEL); relativeVertex.AppendChild(label); var vertexLabel = pVertex.GetGvsVertexLabel() ?? ""; label.AppendChild(document.CreateTextNode(vertexLabel)); var lineColor = document.CreateElement(LINECOLOR); relativeVertex.AppendChild(lineColor); lineColor.AppendChild(document.CreateTextNode(vertexStyle.GetLineColor().ToString())); var lineStyle = document.CreateElement(LINESTYLE); relativeVertex.AppendChild(lineStyle); lineStyle.AppendChild(document.CreateTextNode(vertexStyle.GetLineStyle().ToString())); var lineThick = document.CreateElement(LINETHICKNESS); relativeVertex.AppendChild(lineThick); lineThick.AppendChild(document.CreateTextNode(vertexStyle.GetLineThickness().ToString())); var fillColor = document.CreateElement(FILLCOLOR); relativeVertex.AppendChild(fillColor); fillColor.AppendChild(document.CreateTextNode(vertexStyle.GetFillColor().ToString())); var xPos = document.CreateElement(XPOS); relativeVertex.AppendChild(xPos); xPos.AppendChild(document.CreateTextNode(pVertex.GetX().ToString())); var yPos = document.CreateElement(YPOS); relativeVertex.AppendChild(yPos); yPos.AppendChild(document.CreateTextNode(pVertex.GetY().ToString())); if (vertexStyle.GetIcon() != null) { var icon = document.CreateElement(ICON); relativeVertex.AppendChild(icon); icon.AppendChild(document.CreateTextNode(vertexStyle.GetIcon().ToString())); } }
/// <summary> /// Remove a RealtivVertex. Connected edges will be removed to /// </summary> /// <param name="pGVSVertex"></param> public void Remove(GVSRelativeVertex pGVSVertex) { var toRemove = new ArrayList(); foreach (var edge in gvsGraphEdges) { var interfaces = edge.GetType().GetInterfaces(); foreach (var theInterface in interfaces) { if (theInterface.FullName == typeof(GVSDirectedEdge).FullName) { var de = (GVSDirectedEdge)edge; if (pGVSVertex == de.GetGvsEndVertex()) { toRemove.Add(de); } if (pGVSVertex == de.GetGvsStartVertex()) { toRemove.Add(de); } } else if (theInterface.FullName == typeof(GVSUndirectedEdge).FullName) { var ue = (GVSUndirectedEdge)edge; var vertizes = ue.GetGvsVertizes(); foreach (var gvsVertex in vertizes) { if (gvsVertex == pGVSVertex) { toRemove.Add(ue); } } } } } foreach (GVSGraphEdge edgeToRemove in toRemove) { this.gvsGraphEdges.Remove(edgeToRemove); } this.gvsGraphVertizes.Remove(pGVSVertex); }
/// <summary> /// Add a RealtivVertex /// </summary> /// <param name="pGVSVertex"></param> public void Add(GVSRelativeVertex pGVSVertex) { this.gvsGraphVertizes.Add(pGVSVertex); }