Inheritance: FunctionElement
        public void AddItem(FunctionReference item)
        {
            if (item == null) return;
              if (_references.Contains(item)) return;

              _references.Add(item);
              OnLinkAdded(item);
        }
Ejemplo n.º 2
0
        public void RemoveItem(FunctionReference item)
        {
            if (item == null || !_references.Contains(item))
            {
                return;
            }

            _references.Remove(item);
            OnLinkRemoved(item);
        }
Ejemplo n.º 3
0
        public void AddItem(FunctionReference item)
        {
            if (item == null)
            {
                return;
            }
            if (_references.Contains(item))
            {
                return;
            }

            _references.Add(item);
            OnLinkAdded(item);
        }
Ejemplo n.º 4
0
        private void OnLinkRemoved(FunctionReference element)
        {
            if (_isInitializing)
            {
                return;
            }

            var handler = ReferenceRemoved;

            if (handler != null)
            {
                handler(this, new FunctionReferenceEventArgs(element));
            }
        }
 public FunctionReferenceEventArgs(FunctionReference element)
 {
     Item = element;
 }
 private static FunctionReference ParseLink(XElement data)
 {
   var link = new FunctionReference();
   link.LoadXml(data);
   return link;
 }
 public void RemoveItem(FunctionReference item)
 {
   if (item == null) return;
   Workflow.RemoveItem(item);
 }
    private void ProcessDeletedLink(FunctionReference link)
    {
      if (link == null) return;

      var host = _surface.Children.OfType<LinkHost>().FirstOrDefault(l => l.Id == link.Id);
      if (host == null) return;

      // TODO: temp hack
      host.Source.HasOutgoingConnections = false;
      host.Target.HasIncomingConnections = false;

      // TODO: Denis: find out more structured way
      host.Source.DesignerControl.OutgoingLinks.Remove(host);
      host.Target.DesignerControl.IncomingLinks.Remove(host);

      _surface.Children.Remove(host);
    }
    private void ProcessNewLink(FunctionReference link)
    {
      if (link == null) return;

      var sourceHost = _surface.Children.OfType<ActivityHost>().FirstOrDefault(c => c.Id == link.SourceId);
      var targetHost = _surface.Children.OfType<ActivityHost>().FirstOrDefault(c => c.Id == link.TargetId);

      var sourceConnector = sourceHost.View.FindConnectorByName(link.SourcePin);
      var targetConnector = targetHost.View.FindConnectorByName(link.TargetPin);

      var conn = new LinkHost(_surface, link, sourceConnector, targetConnector, Orientation.Vertical);
      // TODO: outgoing links should be also kept by connector?
      sourceHost.OutgoingLinks.Add(conn);
      targetHost.OutgoingLinks.Add(conn);
      // TODO: temp hack
      sourceConnector.HasOutgoingConnections = true;
      targetConnector.HasIncomingConnections = true;

      _surface.Children.Add(conn);
    }
    private void OnSurfaceMouseLeftButtonUp(object sender, MouseButtonEventArgs e)
    {
      if (_sourceConnector != null)
      {
        var targetConnector = VisualTreeHelper.FindElementsInHostCoordinates(e.GetPosition(null), _surface).OfType<ObjectConnector>().FirstOrDefault();
        if (targetConnector != null
          && targetConnector != _sourceConnector
          && targetConnector.DesignerControl != _sourceConnector.DesignerControl
          && CanFinishConnection(targetConnector))
        {
          var sourceId = _sourceConnector.DesignerControl.Id;
          var targetId = targetConnector.DesignerControl.Id;

          var workflowLink = new FunctionReference
          {
            SourceId = sourceId,
            SourcePin = _sourceConnector.PinName,
            TargetId = targetId,
            TargetPin = targetConnector.PinName
          };

          Workflow.AddItem(workflowLink);
        }
      }

      RemoveConnectionLine();

      if (SelectedItemHost != null)
      {
        SelectedItemHost.ReleaseMouseCapture();
        _dragStarted = false;
      }
    }
 public FunctionReferenceEventArgs(FunctionReference element)
 {
     Item = element;
 }
        private void OnLinkRemoved(FunctionReference element)
        {
            if (_isInitializing) return;

              var handler = ReferenceRemoved;
              if (handler != null) handler(this, new FunctionReferenceEventArgs(element));
        }
        public void RemoveItem(FunctionReference item)
        {
            if (item == null || !_references.Contains(item)) return;

              _references.Remove(item);
              OnLinkRemoved(item);
        }