private void OnDrawingStateChanged(GraphEventArgs e) { if (!e.Handled) { if (e.EdgeDrawingState == EdgeDrawingState.idle && Vertex.startPoint != null) { //this.EdgeAdded(); if (e.CurrentVertex.CurrentlySelectedVertexChanged != null) { e.CurrentVertex.CurrentlySelectedVertexChanged(new GraphEventArgs() { CurrentVertex = null }); } edgeDrawing = EdgeDrawingState.idle; //Vertex.startPoint.logicalState = LogicalState.Idle; //Vertex.startPoint = null; e.CurrentVertex.logicalState = LogicalState.Idle; e.CurrentVertex = null; logicalState = LogicalState.Idle; e.Handled = true; } } }
private void VertexButton_MouseRightButtonDown(object sender, MouseButtonEventArgs e) { if (edgeDrawing == EdgeDrawingState.idle) { startPoint = this; edgeDrawing = EdgeDrawingState.initiated; logicalState = Vertex.LogicalState.SelectedForEdgeDrawing; } else //if( edgeDrawing == EdgeDrawingState.initiated) { Edge edge = new Edge(MainWindow.myGraph.IsDirected); edge.AddGrid(MainWindow.DrawingGrid); //Points p = GetDirection(startPoint, this); edge.SetStartEnd(startPoint, this); edgeDrawing = EdgeDrawingState.idle; startPoint.logicalState = Vertex.LogicalState.Idle; startPoint = null; } CurrentlySelectedVertexChanged(new GraphEventArgs() { CurrentVertex = Vertex.startPoint }); }
public static void Reset() { Vertex.count = 1; Vertex.startPoint = null; Vertex.edgeDrawing = Vertex.EdgeDrawingState.idle; }