private void Init(FullyCreatedConnectorInfo sourceConnectorInfo, ConnectorInfoBase sinkConnectorInfo) { this.Parent = sourceConnectorInfo.DataItem.Parent; this.SourceConnectorInfo = sourceConnectorInfo; this.SinkConnectorInfo = sinkConnectorInfo; PathFinder = new OrthogonalPathFinder(); }
protected override void OnMouseUp(MouseButtonEventArgs e) { base.OnMouseUp(e); Mediator.Instance.NotifyColleagues <bool>("DoneDrawingMessage", true); if (sourceConnector != null) { FullyCreatedConnectorInfo sourceDataItem = sourceConnector.DataContext as FullyCreatedConnectorInfo; if (connectorsHit.Count() == 2) { Connector sinkConnector = connectorsHit.Last(); FullyCreatedConnectorInfo sinkDataItem = sinkConnector.DataContext as FullyCreatedConnectorInfo; int indexOfLastTempConnection = sinkDataItem.DataItem.Parent.Items.Count - 1; sinkDataItem.DataItem.Parent.RemoveItemCommand.Execute( sinkDataItem.DataItem.Parent.Items[indexOfLastTempConnection]); sinkDataItem.DataItem.Parent.AddItemCommand.Execute(new ConnectorViewModel(sourceDataItem, sinkDataItem)); } else { //Need to remove last item as we did not finish drawing the path int indexOfLastTempConnection = sourceDataItem.DataItem.Parent.Items.Count - 1; sourceDataItem.DataItem.Parent.RemoveItemCommand.Execute( sourceDataItem.DataItem.Parent.Items[indexOfLastTempConnection]); } } connectorsHit = new List <Connector>(); sourceConnector = null; }
public static Point GetPointForConnector(FullyCreatedConnectorInfo connector) { Point point = new Point(); switch (connector.Orientation) { case ConnectorOrientation.Top: point = new Point(connector.DataItem.Left + (connector.DataItem.ItemWidth / 2), connector.DataItem.Top - (ConnectorInfoBase.ConnectorHeight)); break; case ConnectorOrientation.Bottom: point = new Point(connector.DataItem.Left + (connector.DataItem.ItemWidth / 2), (connector.DataItem.Top + connector.DataItem.ItemHeight) + (ConnectorInfoBase.ConnectorHeight / 2)); break; case ConnectorOrientation.Right: point = new Point(connector.DataItem.Left + connector.DataItem.ItemWidth + (ConnectorInfoBase.ConnectorWidth), connector.DataItem.Top + (connector.DataItem.ItemHeight / 2)); break; case ConnectorOrientation.Left: point = new Point(connector.DataItem.Left - ConnectorInfoBase.ConnectorWidth, connector.DataItem.Top + (connector.DataItem.ItemHeight / 2)); break; } return(point); }
public static Point GetPointForConnector(FullyCreatedConnectorInfo connector) { Point point =new Point(); switch(connector.Orientation) { case ConnectorOrientation.Top: point = new Point(connector.DataItem.Left + (DesignerItemViewModelBase.ItemWidth / 2), connector.DataItem.Top - (ConnectorInfoBase.ConnectorHeight)); break; case ConnectorOrientation.Bottom: point = new Point(connector.DataItem.Left + (DesignerItemViewModelBase.ItemWidth / 2), (connector.DataItem.Top + DesignerItemViewModelBase.ItemHeight) + (ConnectorInfoBase.ConnectorHeight / 2)); break; case ConnectorOrientation.Right: point = new Point(connector.DataItem.Left + DesignerItemViewModelBase.ItemWidth + (ConnectorInfoBase.ConnectorWidth), connector.DataItem.Top + (DesignerItemViewModelBase.ItemHeight / 2)); break; case ConnectorOrientation.Left: point = new Point(connector.DataItem.Left - ConnectorInfoBase.ConnectorWidth, connector.DataItem.Top + (DesignerItemViewModelBase.ItemHeight / 2)); break; } return point; }
public ConnectorViewModel(FullyCreatedConnectorInfo sourceConnectorInfo, ConnectorInfoBase sinkConnectorInfo) { Init(sourceConnectorInfo, sinkConnectorInfo); }
public ConnectorViewModel(int id, IDiagramViewModel parent, FullyCreatedConnectorInfo sourceConnectorInfo, FullyCreatedConnectorInfo sinkConnectorInfo) : base(id, parent) { Init(sourceConnectorInfo, sinkConnectorInfo); }
public ConnectorViewModel(int id, IDiagramViewModel parent, FullyCreatedConnectorInfo sourceConnectorInfo, FullyCreatedConnectorInfo sinkConnectorInfo) : base(id,parent) { Init(sourceConnectorInfo, sinkConnectorInfo); }