protected virtual Shapes.IDiagramLine CreateTemporaryLink(Shapes.IDiagramPort fromPort, Shapes.IDiagramPort toPort) { Shapes.IDiagramLine link1 = (Shapes.IDiagramLine)Activator.CreateInstance(base.View.LineType); if ((link1 == null) || (link1.DiagramShape == null)) { return(null); } link1.FromPort = fromPort; link1.ToPort = toPort; Shapes.DiagramShape obj1 = link1.DiagramShape; if (obj1 is Shapes.LineGraph) { Shapes.LineGraph link2 = (Shapes.LineGraph)obj1; if (this.myOrthogonalSet) { link2.Orthogonal = this.Orthogonal; } link2.AdjustingStyle = Shapes.LineAdjustingStyle.Calculate; } else if (obj1 is Shapes.TextLine) { Shapes.TextLine link3 = (Shapes.TextLine)obj1; if (this.myOrthogonalSet) { link3.Orthogonal = this.Orthogonal; } link3.AdjustingStyle = Shapes.LineAdjustingStyle.Calculate; } base.View.Layers.Default.Add(obj1); return(link1); }
public virtual void StartRelink(Shapes.IDiagramLine oldlink, Shapes.IDiagramPort oldport, PointF dc) { if (oldlink != null) { Shapes.DiagramShape obj1 = oldlink.DiagramShape; if ((obj1 != null) && (obj1.Layer != null)) { base.StartTransaction(); this.myLinkingNew = false; this.OriginalEndPort = oldport; this.Link = oldlink; if (oldlink.ToPort == oldport) { this.Forwards = true; this.OriginalStartPort = oldlink.FromPort; PointF tf1 = dc; if (this.OriginalStartPort != null) { tf1 = this.OriginalStartPort.DiagramShape.Center; } else if (oldlink is Shapes.LineGraph) { Shapes.LineGraph link1 = (Shapes.LineGraph)oldlink; if (link1.PointsCount > 0) { tf1 = link1.GetPoint(0); } } else if (oldlink is Shapes.TextLine) { Shapes.TextLine link2 = (Shapes.TextLine)oldlink; if (link2.RealLink.PointsCount > 0) { tf1 = link2.RealLink.GetPoint(0); } } this.StartPort = this.CreateTemporaryPort(this.OriginalStartPort, tf1, false, false); oldlink.FromPort = this.StartPort; this.EndPort = this.CreateTemporaryPort(this.OriginalEndPort, dc, true, true); oldlink.ToPort = this.EndPort; } else if (oldlink.FromPort == oldport) { this.Forwards = false; this.OriginalStartPort = oldlink.ToPort; PointF tf2 = dc; if (this.OriginalStartPort != null) { tf2 = this.OriginalStartPort.DiagramShape.Center; } else if (oldlink is Shapes.LineGraph) { Shapes.LineGraph link3 = (Shapes.LineGraph)oldlink; if (link3.PointsCount > 0) { tf2 = link3.GetPoint(link3.PointsCount - 1); } } else if (oldlink is Shapes.TextLine) { Shapes.TextLine link4 = (Shapes.TextLine)oldlink; if (link4.RealLink.PointsCount > 0) { tf2 = link4.RealLink.GetPoint(link4.RealLink.PointsCount - 1); } } this.StartPort = this.CreateTemporaryPort(this.OriginalStartPort, tf2, true, false); oldlink.ToPort = this.StartPort; this.EndPort = this.CreateTemporaryPort(this.OriginalEndPort, dc, false, true); oldlink.FromPort = this.EndPort; } base.View.Cursor = Cursors.Hand; } } }