public void AddItem(FunctionReference item) { if (item == null) return; if (_references.Contains(item)) return; _references.Add(item); OnLinkAdded(item); }
public void RemoveItem(FunctionReference item) { if (item == null || !_references.Contains(item)) { return; } _references.Remove(item); OnLinkRemoved(item); }
public void AddItem(FunctionReference item) { if (item == null) { return; } if (_references.Contains(item)) { return; } _references.Add(item); OnLinkAdded(item); }
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); }