Esempio n. 1
0
 public SvgEditor(String name)
 {
     this.Name = name;
     this.doc  = new SvgDoc();
     this.root = this.doc.CreateNewDocument();
     this.CreateArrowStart();
     this.CreateArrowEnd();
 }
Esempio n. 2
0
        public string ToSvg(double maxWidth)
        {
            _renderedSvgDiagram = _classDiagramSvgRenderer.RenderDiagram(this);

            if (_renderedSvgDiagram.Width > maxWidth)
            {
                _renderedSvgDiagram.Scale = maxWidth / _renderedSvgDiagram.Width;
            }

            return(_renderedSvgDiagram.ToString());
        }
Esempio n. 3
0
        //static List<SVGShape> Import(string filename) {

        //}

        public static void export(List <SVGShape> shapes, string filename, int width, int height)
        {
            SvgDoc  doc  = new SvgDoc();
            SvgRoot root = doc.CreateNewDocument();

            root.Width  = width.ToString() + "px";
            root.Height = height.ToString() + "px";
            foreach (var shape in shapes)
            {
                var figure = shape.ToSVGLibShape(doc);
                doc.AddElement(root, figure);
            }
            doc.SaveToFile(filename);
        }
Esempio n. 4
0
        public SvgRoot RenderConnectedDiagram(ClassDiagram classDiagram)
        {
            _classDiagram = classDiagram;
            _mainDiagram  = _classDiagramSvgRenderer.RenderDiagram(_classDiagram);

            CalculateMainMarginsAndSize();
            PositionMainDiagram();
            DrawBaseTypes();
            DrawImplementedInterfaces();
            DrawUsedBy();
            DrawUses();

            return(_mainDiagram);
        }
        public SvgRoot RenderDiagram(SequenceDiagram sequenceDiagram)
        {
            _nodeMiddlePoints = new Dictionary <Guid, double>();
            _diagramSize      = new Size(0.5, 80.5);
            _svgRoot          = new SvgRoot(0, 0);

            DrawAllNodes(sequenceDiagram);
            DrawAllDiagramElements(sequenceDiagram);
            DrawVerticalLines(sequenceDiagram);

            _svgRoot.Height = _diagramSize.Height;
            _svgRoot.Width  = _diagramSize.Width;

            return(_svgRoot);
        }
        public SvgRoot RenderDiagram(ClassDiagram classDiagram)
        {
            _classDiagram = classDiagram;
            _diagramSize  = new Size(CalculateDiagramWidth(classDiagram), CalculateDiagramHeight(classDiagram));

            _svgRoot = new SvgRoot()
            {
                Width = _diagramSize.Width, Height = _diagramSize.Height
            };
            _svgGraphic = new SvgGraphic(_svgRoot);
            _svgRoot.Add(_svgGraphic);

            RenderFrame();
            RenderHeader();
            RenderAllRowSections();

            return(_svgRoot);
        }
Esempio n. 7
0
        public static Tuple <List <SVGShape>, int, int> import(string filename)
        {
            List <SVGShape> shapes = new List <SVGShape>()
            {
                new SVGEllipse(new Point(50.0, 50.0), 20.0, 10.0,
                               new Color(100, 255, 56, 0),
                               new Color(0, 0, 0, 0),
                               2)
            };

            SvgDoc doc = new SvgDoc();

            doc.LoadFromFile(filename);
            SvgRoot root = doc.GetSvgRoot();
            int     width, height = 1;

            Int32.TryParse(root.Width.ToString().Substring(0, root.Width.Length - 2), out width);
            Int32.TryParse(root.Height.ToString().Substring(0, root.Height.Length - 2), out height);
            Console.WriteLine(width);
            Console.WriteLine(height);

            int        i = 2;
            SvgElement el;

            while ((el = doc.GetSvgElement(i)) != null)
            {
                el = doc.GetSvgElement(i);
                Console.WriteLine(el.getElementName());
                ++i;
            }
            Console.WriteLine(i);

            //foreach (var shape in shapes)
            //{
            //    var figure = shape.ToSVGLibShape(doc);
            //    doc.AddElement(root, figure);
            //}
            //doc.SaveToFile(filename);

            return(Tuple.Create(shapes, width, height));
        }
        public SvgRoot RenderDiagram(ClassDiagram classDiagram)
        {
            _diagramWidth = CalculateDiagramWidth(classDiagram);
            _svgRoot      = new SvgRoot(100, _diagramWidth);

            var rect = new SvgRectangle(_svgRoot, 0.5, 0.5, _diagramWidth - 1, 100);

            rect.StrokeWidth = 1;
            rect.Stroke      = "#979797";
            rect.Fill        = "#FFFFFF";
            _svgRoot.AppendChild(rect.XmlElement);

            double position = 20.5d;

            position = RenderHeader(classDiagram, position);
            position = RenderAllRowSections(classDiagram, position);

            rect.Height     = position - 9.5;
            _svgRoot.Height = position - 5;
            return(_svgRoot);
        }
Esempio n. 9
0
        public bool LoadFromXml(XmlTextReader reader)
        {
            ErrH.Log("DrawArea", "LoadFromXML", "", ErrH._LogPriority.Info);
            _graphicsList.Clear();
            var svg = new SvgDoc();

            if (!svg.LoadFromFile(reader))
            {
                return(false);
            }
            SvgRoot root = svg.GetSvgRoot();

            if (root == null)
            {
                return(false);
            }
            try
            {
                SizePicture = new Point((int)XnaDrawObject.ParseSize(root.Width, XnaDrawObject.Dpi.X),
                                        (int)XnaDrawObject.ParseSize(root.Height, XnaDrawObject.Dpi.Y));
            }
            catch
            {
            }
            _mOriginalSize = SizePicture;
            SvgElement ele = root.getChild();

            _mScale = new Point(1, 1);
            if (ele != null)
            {
                _graphicsList.AddFromSvg(ele);
            }

            Description = _graphicsList.Description;
            return(true);
        }
Esempio n. 10
0
 public Size GetSvgSize()
 {
     _renderedSvgDiagram = _classDiagramSvgRenderer.RenderConnectedDiagram(this);
     return(new Size((int)_renderedSvgDiagram.Width, (int)_renderedSvgDiagram.Height));
 }
Esempio n. 11
0
 public SDTemplate ToSvg()
 {
     _renderedSvgDiagram = _classDiagramSvgRenderer.RenderConnectedDiagram(this);
     return(new SDTemplate(_renderedSvgDiagram.ToString()));
 }
Esempio n. 12
0
        public static Tuple <List <SVGShape>, int, int> import(string filename)
        {
            var shapes = new List <SVGShape>();

            SvgDoc doc = new SvgDoc();

            doc.LoadFromFile(filename);
            SvgRoot root = doc.GetSvgRoot();
            int     width, height = 1;

            Int32.TryParse(root.Width.ToString().Substring(0, root.Width.Length - 2), out width);
            Int32.TryParse(root.Height.ToString().Substring(0, root.Height.Length - 2), out height);

            int        i = 2;
            SvgElement el;
            double     x, y, r, rx, ry, rectw, recth;
            int        w;

            while ((el = doc.GetSvgElement(i)) != null)
            {
                el = doc.GetSvgElement(i);

                el.GetAttribute("RX");

                switch (el.getElementName())
                {
                case "circle":

                    Double.TryParse(el.GetAttributeStringValue(SvgAttribute._SvgAttribute.attrSpecific_CX).Substring(0, el.GetAttributeStringValue(SvgAttribute._SvgAttribute.attrSpecific_CX).Length - 2), out x);
                    Double.TryParse(el.GetAttributeStringValue(SvgAttribute._SvgAttribute.attrSpecific_CY).Substring(0, el.GetAttributeStringValue(SvgAttribute._SvgAttribute.attrSpecific_CY).Length - 2), out y);
                    Double.TryParse(el.GetAttributeStringValue(SvgAttribute._SvgAttribute.attrSpecific_R).Substring(0, el.GetAttributeStringValue(SvgAttribute._SvgAttribute.attrSpecific_R).Length - 2), out r);
                    Int32.TryParse(el.GetAttributeStringValue(SvgAttribute._SvgAttribute.attrPaint_StrokeWidth).Substring(0, el.GetAttributeStringValue(SvgAttribute._SvgAttribute.attrPaint_StrokeWidth).Length - 2), out w);
                    var colorf = el.GetAttributeColorValue(SvgAttribute._SvgAttribute.attrPaint_Fill);
                    var colors = el.GetAttributeColorValue(SvgAttribute._SvgAttribute.attrPaint_Stroke);
                    var circle = new SVGCircle(
                        new Point(x, y), r,
                        new Color(colorf.R, colorf.G, colorf.B, colorf.A),
                        new Color(colors.R, colors.G, colors.B, colors.A),
                        w
                        );
                    shapes.Add(circle);
                    break;

                case "ellipse":

                    Double.TryParse(el.GetAttributeStringValue(SvgAttribute._SvgAttribute.attrSpecific_CX).Substring(0, el.GetAttributeStringValue(SvgAttribute._SvgAttribute.attrSpecific_CX).Length - 2), out x);
                    Double.TryParse(el.GetAttributeStringValue(SvgAttribute._SvgAttribute.attrSpecific_CY).Substring(0, el.GetAttributeStringValue(SvgAttribute._SvgAttribute.attrSpecific_CY).Length - 2), out y);
                    Double.TryParse(el.GetAttributeStringValue(SvgAttribute._SvgAttribute.attrSpecific_RX).Substring(0, el.GetAttributeStringValue(SvgAttribute._SvgAttribute.attrSpecific_RX).Length - 2), out rx);
                    Double.TryParse(el.GetAttributeStringValue(SvgAttribute._SvgAttribute.attrSpecific_RY).Substring(0, el.GetAttributeStringValue(SvgAttribute._SvgAttribute.attrSpecific_RY).Length - 2), out ry);
                    Int32.TryParse(el.GetAttributeStringValue(SvgAttribute._SvgAttribute.attrPaint_StrokeWidth).Substring(0, el.GetAttributeStringValue(SvgAttribute._SvgAttribute.attrPaint_StrokeWidth).Length - 2), out w);
                    colorf = el.GetAttributeColorValue(SvgAttribute._SvgAttribute.attrPaint_Fill);
                    colors = el.GetAttributeColorValue(SvgAttribute._SvgAttribute.attrPaint_Stroke);
                    var ellipse = new SVGEllipse(
                        new Point(x, y), rx, ry,
                        new Color(colorf.R, colorf.G, colorf.B, colorf.A),
                        new Color(colors.R, colors.G, colors.B, colors.A),
                        w
                        );
                    shapes.Add(ellipse);
                    break;

                case "rect":

                    Double.TryParse(el.GetAttributeStringValue(SvgAttribute._SvgAttribute.attrSpecific_Width).Substring(0, el.GetAttributeStringValue(SvgAttribute._SvgAttribute.attrSpecific_Width).Length - 2), out rectw);
                    Double.TryParse(el.GetAttributeStringValue(SvgAttribute._SvgAttribute.attrSpecific_Height).Substring(0, el.GetAttributeStringValue(SvgAttribute._SvgAttribute.attrSpecific_Height).Length - 2), out recth);
                    Double.TryParse(el.GetAttributeStringValue(SvgAttribute._SvgAttribute.attrSpecific_X).Substring(0, el.GetAttributeStringValue(SvgAttribute._SvgAttribute.attrSpecific_X).Length - 2), out x);
                    Double.TryParse(el.GetAttributeStringValue(SvgAttribute._SvgAttribute.attrSpecific_Y).Substring(0, el.GetAttributeStringValue(SvgAttribute._SvgAttribute.attrSpecific_Y).Length - 2), out y);
                    Int32.TryParse(el.GetAttributeStringValue(SvgAttribute._SvgAttribute.attrPaint_StrokeWidth).Substring(0, el.GetAttributeStringValue(SvgAttribute._SvgAttribute.attrPaint_StrokeWidth).Length - 2), out w);
                    colorf = el.GetAttributeColorValue(SvgAttribute._SvgAttribute.attrPaint_Fill);
                    colors = el.GetAttributeColorValue(SvgAttribute._SvgAttribute.attrPaint_Stroke);
                    var rect = new SVGRect(
                        x, y, rectw, recth,
                        new Color(colorf.R, colorf.G, colorf.B, colorf.A),
                        new Color(colors.R, colors.G, colors.B, colors.A),
                        w
                        );
                    shapes.Add(rect);
                    break;

                case "polygon":

                    String pointsStr = "";
                    var    points    = new List <Point>();
                    pointsStr = el.GetAttributeStringValue(SvgAttribute._SvgAttribute.attrSpecific_Points);
                    string[] value = pointsStr.Split(' ', ',');
                    for (int k = 0; k < value.Length; k = k + 2)
                    {
                        if (value[k].Trim() != "" && value[k + 1].Trim() != "")
                        {
                            points.Add(new Point(Convert.ToDouble(value[k]), Convert.ToDouble(value[k + 1])));
                        }
                    }
                    ;
                    Int32.TryParse(el.GetAttributeStringValue(SvgAttribute._SvgAttribute.attrPaint_StrokeWidth).Substring(0, el.GetAttributeStringValue(SvgAttribute._SvgAttribute.attrPaint_StrokeWidth).Length - 2), out w);
                    colorf = el.GetAttributeColorValue(SvgAttribute._SvgAttribute.attrPaint_Fill);
                    colors = el.GetAttributeColorValue(SvgAttribute._SvgAttribute.attrPaint_Stroke);
                    var polygon = new SVGPolygon(
                        points,
                        new Color(colorf.R, colorf.G, colorf.B, colorf.A),
                        new Color(colors.R, colors.G, colors.B, colors.A),
                        w
                        );
                    shapes.Add(polygon);
                    break;
                }

                ++i;
            }


            //foreach (var shape in shapes)
            //{
            //    var figure = shape.ToSVGLibShape(doc);
            //    doc.AddElement(root, figure);
            //}
            //doc.SaveToFile(filename);

            return(Tuple.Create(shapes, width, height));
        }
Esempio n. 13
0
 public Size GetSvgSize()
 {
     _renderedSvgDiagram = _sequenceDiagramSvgRenderer.RenderDiagram(this);
     return(new Size((int)_renderedSvgDiagram.Width, (int)_renderedSvgDiagram.Height));
 }
Esempio n. 14
0
 public SDTemplate ToSvg()
 {
     _renderedSvgDiagram = _sequenceDiagramSvgRenderer.RenderDiagram(this);
     return(new SDTemplate(_renderedSvgDiagram.ToString()));
 }