Exemple #1
0
        // copy Route.Points to MyLinkData
        public override ICopyDictionary CopyParts(IEnumerable <Part> coll, IDiagramModel destmodel)
        {
            ICopyDictionary dict = base.CopyParts(coll, destmodel);

            foreach (object data in dict.SourceCollection.Links)
            {
                MyLinkData origdata = data as MyLinkData;
                Link       origlink = FindLinkForData(origdata, this.Diagram.Model);
                if (origlink != null && origlink.Route.PointsCount > 1)
                {
                    // copy the MyLinkData.Points
                    MyLinkData copieddata = dict.FindCopiedLink(origdata) as MyLinkData;
                    if (copieddata != null)
                    {
                        copieddata.Points = new List <Point>(origlink.Route.Points);
                        // now transfer to the Link.Route.Points
                        Link copiedlink = FindLinkForData(copieddata, this.Diagram.Model);
                        if (copiedlink != null)
                        {
                            copiedlink.Route.Points = (IList <Point>)copieddata.Points;
                        }
                    }
                }
            }
            return(dict);
        }
Exemple #2
0
        // use MyLinkData.Points, if any, when creating a Link
        protected override void OnLinkAdded(Link link)
        {
            base.OnLinkAdded(link);
            MyLinkData data = link.Data as MyLinkData;

            if (data != null && data.Points != null)
            {
                link.Route.Points = (IList <Point>)data.Points;
            }
        }
Exemple #3
0
        // this supports undo/redo of link route reshaping
        protected override void UpdateRouteDataPoints(Link link)
        {
            if (!this.UpdatesRouteDataPoints)
            {
                return;                           // in coordination with Load_Click and LoadLinkRoutes, above
            }
            MyLinkData data = link.Data as MyLinkData;

            if (data != null)
            {
                data.Points = new List <Point>(link.Route.Points);
            }
        }