Esempio n. 1
0
        public void DOM_DrawOrgChart()
        {
            var app     = this.GetVisioApplication();
            var vis_ver = VA.Application.ApplicationHelper.GetVersion(app);

            // How to draw using a Template instead of a doc and a stencil
            string orgchart_vst         = "orgchart.vst";
            string position_master_name = vis_ver.Major >= 15 ? "Position Belt" : "Position";

            var doc_node  = new VA.DOM.Document(orgchart_vst, IVisio.VisMeasurementSystem.visMSUS);
            var page_node = new VA.DOM.Page();

            doc_node.Pages.Add(page_node);

            // Have to be smart about selecting the right master with Visio 2013

            var s1 = new VA.DOM.Shape(position_master_name, null, new VA.Drawing.Point(3, 8));

            page_node.Shapes.Add(s1);

            var s2 = new VA.DOM.Shape(position_master_name, null, new VA.Drawing.Point(0, 4));

            page_node.Shapes.Add(s2);

            var s3 = new VA.DOM.Shape(position_master_name, null, new VA.Drawing.Point(6, 4));

            page_node.Shapes.Add(s3);

            page_node.Shapes.Connect(this.dynamicconnector, this.connec_u_vss, s1, s2);
            page_node.Shapes.Connect(this.dynamicconnector, this.connec_u_vss, s1, s3);

            var doc = doc_node.Render(app);

            //doc.Close(true);
        }
Esempio n. 2
0
        public void DOM_DrawOrgChart()
        {
            // How to draw using a Template instead of a doc and a stencil
            const string orgchart_vst = "orgch_u.vst" +
                                        "";

            var app       = this.GetVisioApplication();
            var doc_node  = new VA.DOM.Document(orgchart_vst, IVisio.VisMeasurementSystem.visMSUS);
            var page_node = new VA.DOM.Page();

            doc_node.Pages.Add(page_node);

            // Have to be smart about selecting the right master with Visio 2013
            int    vis_ver = int.Parse(app.Version.Split('.')[0]);
            string position_master_name = vis_ver >= 15 ? "Position Belt" : "Position";

            var s1 = new VisioAutomation.DOM.Shape(position_master_name, null, new VA.Drawing.Point(3, 4));

            page_node.Shapes.Add(s1);
            var doc = doc_node.Render(app);

            doc.Close(true);
        }
Esempio n. 3
0
        public void DOM_DrawOrgChart()
        {
            // How to draw using a Template instead of a doc and a stencil
            const string orgchart_vst = "orgch_u.vst" +
                                        "";

            var app = this.GetVisioApplication();
            var doc_node = new VA.DOM.Document(orgchart_vst, IVisio.VisMeasurementSystem.visMSUS);
            var page_node = new VA.DOM.Page();
            doc_node.Pages.Add(page_node);

            // Have to be smart about selecting the right master with Visio 2013
            int vis_ver = int.Parse(app.Version.Split('.')[0]);
            string position_master_name = vis_ver >= 15 ? "Position Belt" : "Position";

            var s1 = new VisioAutomation.DOM.Shape(position_master_name, null, new VA.Drawing.Point(3, 4));
            page_node.Shapes.Add(s1);
            var doc = doc_node.Render(app);

            doc.Close(true);
        }
Esempio n. 4
0
        public void DOM_DrawOrgChart()
        {
            var app = this.GetVisioApplication();
            var vis_ver = VA.Application.ApplicationHelper.GetVersion(app);

            // How to draw using a Template instead of a doc and a stencil
            string orgchart_vst = "orgchart.vst";
            string position_master_name = vis_ver.Major >= 15 ? "Position Belt" : "Position";

            var doc_node = new VA.DOM.Document(orgchart_vst, IVisio.VisMeasurementSystem.visMSUS);
            var page_node = new VA.DOM.Page();
            doc_node.Pages.Add(page_node);

            // Have to be smart about selecting the right master with Visio 2013

            var s1 = new VA.DOM.Shape(position_master_name, null, new VA.Drawing.Point(3, 8));
            page_node.Shapes.Add(s1);

            var s2 = new VA.DOM.Shape(position_master_name, null, new VA.Drawing.Point(0, 4));
            page_node.Shapes.Add(s2);

            var s3 = new VA.DOM.Shape(position_master_name, null, new VA.Drawing.Point(6, 4));
            page_node.Shapes.Add(s3);

            page_node.Shapes.Connect(this.dynamicconnector, this.connec_u_vss, s1, s2);
            page_node.Shapes.Connect(this.dynamicconnector, this.connec_u_vss, s1, s3);

            var doc = doc_node.Render(app);

            //doc.Close(true);
        }
Esempio n. 5
0
        private void CreateDOMShapes(VA.DOM.ShapeList domshapeslist, MG.GeometryGraph msagl_graph, IVisio.Application app)
        {
            var node_centerpoints = msagl_graph.NodeMap.Values
                                    .Select(n => ToDocumentCoordinates(VA.Internal.MSAGLUtil.ToVAPoint(n.Center)))
                                    .ToArray();

            // Load up all the stencil docs
            var app_documents = app.Documents;
            var nodes         = msagl_graph.NodeMap.Values.Select(get_shape);
            var stencil_names = nodes.Select(s => s.StencilName.ToUpper()).Distinct().ToList();

            var stencil_map = new Dictionary <string, IVisio.Document>();

            foreach (var stencil_name in stencil_names)
            {
                if (!stencil_map.ContainsKey(stencil_name))
                {
                    var stencil = app_documents.OpenStencil(stencil_name);
                    stencil_map[stencil_name] = stencil;
                }
            }

            var master_map = new Dictionary <string, IVisio.Master>();

            foreach (var nv in nodes)
            {
                var key = nv.StencilName.ToLower() + "+" + nv.MasterName;
                if (!master_map.ContainsKey(key))
                {
                    var stencil = stencil_map[nv.StencilName.ToUpper()];
                    var masters = stencil.Masters;
                    var master  = masters[nv.MasterName];
                    master_map[key] = master;
                }
            }

            // Create DOM Shapes for each AutoLayoutShape

            int count = 0;

            foreach (var layout_shape in nodes)
            {
                var key        = layout_shape.StencilName.ToLower() + "+" + layout_shape.MasterName;
                var master     = master_map[key];
                var shape_node = new VA.DOM.Shape(master, node_centerpoints[count]);
                layout_shape.DOMNode = shape_node;
                domshapeslist.Add(shape_node);
                count++;
            }

            var shape_pairs = from n in msagl_graph.NodeMap.Values
                              let layout_shape = (DGMODEL.Shape)n.UserData
                                                 select new
            {
                layout_shape,
                shape_node = (VA.DOM.BaseShape)layout_shape.DOMNode
            };

            // FORMAT EACH SHAPE
            foreach (var i in shape_pairs)
            {
                format_shape(i.layout_shape, i.shape_node);
            }
        }