public virtual LinkedEntity <EntityType> EditorDuplicate(LinkedEntity <EntityType> DerivedDuplicateInto = null) { LinkedEntity <EntityType> DuplicateInto = DerivedDuplicateInto; if (DuplicateInto == null) { DuplicateInto = new LinkedEntity <EntityType>(); } DuplicateInto.Title = Title; DuplicateInto.Filename = ""; DuplicateInto.InputEvents = new List <EntityLink <EntityType> >(); foreach (EntityLink <EntityType> CurrentLink in InputEvents) { EntityLink <EntityType> DuplicatedLink = CurrentLink.EditorDuplicateLink(DuplicateInto); DuplicateInto.InputEvents.Add(DuplicatedLink); } DuplicateInto.OutputEvents = new List <EntityLink <EntityType> >(); foreach (EntityLink <EntityType> CurrentLink in OutputEvents) { EntityLink <EntityType> DuplicatedLink = CurrentLink.EditorDuplicateLink(DuplicateInto); DuplicateInto.OutputEvents.Add(DuplicatedLink); } return(DuplicateInto); }
public bool Equals(Package other) { if (other == null) { return(false); } return(CurrentLink.ToLowerInvariant().Equals(other.CurrentLink.ToLowerInvariant())); }
private void ComboBoxChanged(int n) { try { switch (n) { case 0: //No change CurrentLink = Match.Value; break; case 1: //unlink CurrentLink = VisibleLink + LinkTrail; break; case 2: //{{dn}} CurrentLink = Match.Value + "{{dn}}"; break; default: //everything else CurrentLink = "[["; if (StartOfSentence || char.IsUpper(RealLink[0])) { CurrentLink += Tools.TurnFirstToUpper(Variants[n - 3]); } else { CurrentLink += Variants[n - 3]; } CurrentLink += "|" + VisibleLink; if (RealLink == VisibleLink) { CurrentLink += LinkTrail + "]]"; } else { CurrentLink += "]]" + LinkTrail; } CurrentLink = Parse.Parsers.SimplifyLinks(CurrentLink); break; } txtCorrection.Text = CurrentLink; btnUnpipe.Enabled = btnFlip.Enabled = CurrentLink.Contains("|"); if (Changed != null) { Changed(this, new EventArgs()); } } catch (Exception ex) { ErrorHandler.HandleException(ex); } }
public virtual void FixupLinks() { foreach (EntityLink <EntityType> CurrentLink in InputEvents) { CurrentLink.FixupLinks(GetLinkedEntityForFilename, GetEntityManager); } foreach (EntityLink <EntityType> CurrentLink in OutputEvents) { CurrentLink.FixupLinks(GetLinkedEntityForFilename, GetEntityManager); } }
public virtual void DrawLines(Vector2 Offset) { if (DragLink != null) { DragLink.DrawLink(Offset); } foreach (BoxLink <EntityType> CurrentLink in Connections) { CurrentLink.DrawLink(Offset); } }
public virtual void HighlightLinks(Anchor <EntityType> Anchor) { foreach (BoxLink <EntityType> CurrentLink in Connections) { if (CurrentLink.IsConnecting(Anchor)) { CurrentLink.SetHighlighted(true); } else { CurrentLink.SetHighlighted(false); } } }
/// <summary> /// Selects the first available link among all links. /// </summary> protected void SelectFirstLink() { if (Controller) { CurrentLink = Controller.SelectFirstLink(); } // If there's a link available, select it if (CurrentLink) { CurrentLink.Select(); } //Trace.Script("Selecting link!"); }
public virtual EntityLink <EntityType> GetValidLink() { foreach (EntityLink <EntityType> CurrentLink in LinkedEntities) { EntityType OwnerInst = CurrentLink.GetOwner(); if (OwnerInst != null) { if (OwnerInst.MeetsRequirements()) { return(CurrentLink); } } } return(null); }
private void ComboBoxChanged(int n) { try { string text; switch (n) { case 0: //No change txtCorrection.Text = Surroundings; CurrentLink = Match.Value; break; case 1: //unlink CurrentLink = VisibleLink + LinkTrail; text = Surroundings; Tools.ReplaceOnce(ref text, Match.Value, CurrentLink); txtCorrection.Text = text; break; case 2: //{{dn}} CurrentLink = Match.Value + "{{dn}}"; if ((Surroundings.Length > PosInSurroundings + Match.Value.Length) && (char.IsPunctuation(Surroundings[PosInSurroundings + Match.Value.Length]))) { txtCorrection.Text = Surroundings.Insert(PosInSurroundings + Match.Value.Length + 1, "{{dn}}"); } else { text = Surroundings; Tools.ReplaceOnce(ref text, Match.Value, CurrentLink); txtCorrection.Text = text; } break; default: //everything else CurrentLink = "[["; if (StartOfSentence || char.IsUpper(RealLink[0])) { CurrentLink += Tools.TurnFirstToUpper(Variants[n - 3]); } else { CurrentLink += Variants[n - 3]; } CurrentLink += "|" + VisibleLink; if (RealLink == VisibleLink) { CurrentLink += LinkTrail + "]]"; } else { CurrentLink += "]]" + LinkTrail; } CurrentLink = Parse.Parsers.SimplifyLinks(CurrentLink); text = Surroundings; Tools.ReplaceOnce(ref text, Match.Value, CurrentLink); txtCorrection.Text = Parse.Parsers.StickyLinks(text); break; } btnUnpipe.Enabled = btnFlip.Enabled = CurrentLink.Contains("|"); if (Changed != null) { Changed(this, new EventArgs()); } } catch (Exception ex) { ErrorHandler.Handle(ex); } }
private void InControl_PointerReleased(object sender, PointerRoutedEventArgs e) { if (CurrentLink == null) { return; } if (CurrentConnection != null && CurrentConnection != this) { CurrentConnection.Silent(); } if (DesignManager.CreateConnection != null) { var sid = (CurrentLink.SourcePoint.DataContext as DesignItem).TargetObjectID; var tid = (TargetControl.DataContext as DesignItem).TargetObjectID; CurrentLink.TargetObject = DesignManager.CreateConnection(sid.Value, tid.Value); } if (TargetControl.DataContext is DesignItem) { var targetItem = (TargetControl.DataContext as DesignItem); CurrentLink.TargetID = targetItem.TargetObjectID; CurrentLink.TargetDesignItemID = targetItem.DesignItemID; CurrentLink.TargetPoint = sender as FrameworkElement; targetItem.InLinkList.Add(CurrentLink); var sourceItem = CurrentLink.SourcePoint.DataContext as DesignItem; CurrentLink.SourceID = sourceItem.TargetObjectID; CurrentLink.SourceDesignItemID = sourceItem.DesignItemID; sourceItem.OutLinkList.Add(CurrentLink); if (IsBottom) { CurrentLink.TargetPosition = RelativePosition.Bottom; } if (IsLeft) { CurrentLink.TargetPosition = RelativePosition.Left; } if (IsTop) { CurrentLink.TargetPosition = RelativePosition.Top; } if (IsRight) { CurrentLink.TargetPosition = RelativePosition.Right; } CurrentLink.TargetX = GetCenter().X; CurrentLink.TargetY = GetCenter().Y; var model = TargetCanvas.DataContext as DesignCanvasViewModel; if (model != null) { model.LinkList.Add(CurrentLink); } CurrentLink.SetCurveRadius(sourceItem, targetItem); } IsConnecting = false; CurrentLink.LinkLine.PointerPressed += LinkLine_PointerPressed;; CurrentLink = null; Silent(); e.Handled = true; }