EdgeReader.cs
Home
/
YED /
yEd.XGML /
IO /
Read /
EdgeReader.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml.Linq;
using System.Drawing;
using yEd.XGML.DocumentEntities.EdgeEntitie;
using yEd.XGML.Enums;
namespace yEd.XGML.IO.Read
{
public class EdgeReader : IReader<Edge>
{
public Edge Read(XElement element)
{
Edge res = new Edge();
res.source = int.Parse(element.GetChild_Attribute("source").Value);
res.target = int.Parse(element.GetChild_Attribute("target").Value);
res.label = element.GetChild_Attribute("label")?.Value;
res.Graphics = Readgraphics(element.GetChild_Section("graphics"));
res.LabelGraphics = ReadLabelGraphics(element.GetChild_Section("LabelGraphics"));
return res;
}
private EdgeGraphics Readgraphics(XElement graphics)
{
EdgeGraphics res = new EdgeGraphics();
res.fill = ColorTranslator.FromHtml(graphics.GetChild_Attribute("fill").Value);
res.targetArrow = (EnumArrowType)Enum.Parse(typeof(EnumArrowType), graphics.GetChild_Attribute("targetArrow").Value);
return res;
}
private EdgeLabelGraphics ReadLabelGraphics(XElement label)
{
if (label == null)
return null;
EdgeLabelGraphics res = new EdgeLabelGraphics();
res.fontSize = int.Parse(label.GetChild_Attribute("fontSize").Value);
res.fontName = (EnumFont)Enum.Parse(typeof(EnumFont), label.GetChild_Attribute("fontName").Value);
res.contentWidth = double.Parse(label.GetChild_Attribute("contentWidth").Value);
res.contentHeight = double.Parse(label.GetChild_Attribute("contentHeight").Value);
return res;
}
}
}