Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        public bool Equals(Package other)
        {
            if (other == null)
            {
                return(false);
            }

            return(CurrentLink.ToLowerInvariant().Equals(other.CurrentLink.ToLowerInvariant()));
        }
Ejemplo n.º 3
0
        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);
            }
        }
Ejemplo n.º 4
0
 public virtual void FixupLinks()
 {
     foreach (EntityLink <EntityType> CurrentLink in InputEvents)
     {
         CurrentLink.FixupLinks(GetLinkedEntityForFilename, GetEntityManager);
     }
     foreach (EntityLink <EntityType> CurrentLink in OutputEvents)
     {
         CurrentLink.FixupLinks(GetLinkedEntityForFilename, GetEntityManager);
     }
 }
Ejemplo n.º 5
0
        public virtual void DrawLines(Vector2 Offset)
        {
            if (DragLink != null)
            {
                DragLink.DrawLink(Offset);
            }

            foreach (BoxLink <EntityType> CurrentLink in Connections)
            {
                CurrentLink.DrawLink(Offset);
            }
        }
Ejemplo n.º 6
0
 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!");
            }
Ejemplo n.º 8
0
        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);
        }
Ejemplo n.º 9
0
        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);
            }
        }
Ejemplo n.º 10
0
        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;
        }