private void OnMouseCursorChanged(object sender, MsaglMouseEventArgs e) { foreach (var en in _graphViewer.Entities) { var node = en as IViewerNode; if (node != null) { //CLEAR node.Node.Attr.FillColor = Color.Gray; node.OutEdges.ToList().ForEach(x => { node.Node.Attr.FillColor = Color.LightGreen; x.Edge.SourceNode.Attr.FillColor = Color.LightGreen; x.Edge.Attr.Color = Color.Black; }); node.InEdges.ToList().ForEach(x => { node.Node.Attr.FillColor = Color.LightGreen; x.Edge.TargetNode.Attr.FillColor = Color.LightGreen; x.Edge.Attr.Color = Color.Black; }); } } foreach (var en in _graphViewer.Entities) { var node = en as IViewerNode; if (en.MarkedForDragging && node != null) { //MARK node.Node.Attr.FillColor = Color.Yellow; node.OutEdges.ToList().ForEach(x => { x.Edge.TargetNode.Attr.FillColor = Color.PaleVioletRed; x.Edge.Attr.Color = Color.Red; }); node.InEdges.ToList().ForEach(x => { x.Edge.SourceNode.Attr.FillColor = Color.LightBlue; x.Edge.Attr.Color = Color.Blue; }); } } }
void gviewer_mouseup(object sender, MsaglMouseEventArgs e) { if (_useOpMode == UserOprationMode.Select) { var obj = gViewer.GetObjectAt(new Point(e.X, e.Y)); if (obj == null) { return; } var node = obj as DNode; if (node != null) { Text = node.DrawingNode.Id; } else { var edge = obj as DEdge; Text = edge.Edge.Source; } } else if (_useOpMode == UserOprationMode.AddNode) { var pos = gViewer.ScreenToSource(e); //var node = new Node("smt"); var gv = gViewer; gv.AddNode(gv.CreateIViewerNode(new Node("ssss"), pos, null), true); var ggg = gv.Graph; if (ggg.NodeCount > 100) { ; } ////(gv as IViewer).a .add(), pos, null); ////node.LabelText = "smt show"; //var graph = gViewer.Graph; ////graph.AddNode(node); //graph.AddEdge("11", "222"); ////DrawingUtilsForSamples.AddNode("smt", graph.GeometryGraph, 10, 2); //gViewer.Graph = graph; //var gv = gViewer; ////IViewerNode n=gViewer.CreateIViewerNode(new Node("smart")); ////gViewer.CreateIViewerNode(new Node("marks"), pos, null); ////gViewer.AddNode(n, true); } //var viewer = gViewer as IViewer; //viewer. }
private void GraphEditor_MouseDown(object sender, MsaglMouseEventArgs e) { if (e.RightButtonIsPressed && !e.Handled) { m_MouseRightButtonDownPoint = (gViewer).ScreenToSource(e); contextMenuStrip = BuildContextMenu(new GeometryPoint(e.X, e.Y)); contextMenuStrip.Show(this, new Point(e.X, e.Y)); } bool leftButtonPressed = e.LeftButtonIsPressed; bool altPressed = (ModifierKeys & Keys.Alt) == Keys.Alt; if (altPressed && leftButtonPressed && !PanButtonPressedOnMenu) { gViewer.PanButtonPressed = true; } }
protected override void OnMouseUp(MouseEventArgs args) { base.OnMouseUp(args); MsaglMouseEventArgs iArgs = CreateMouseEventArgs(args); gViewer.RaiseMouseUpEvent(iArgs); if (NeedToEraseRubber) { DrawXorFrame(); } if (!iArgs.Handled) { if (gViewer.OriginalGraph != null && MouseDraggingMode == DraggingMode.WindowZoom) { var p = mouseDownPoint; double f = Math.Max(Math.Abs(p.X - args.X), Math.Abs(p.Y - args.Y)) / GViewer.Dpi; if (f > gViewer.ZoomWindowThreshold && zoomWindow) { mouseUpPoint = new Point(args.X, args.Y); if (ClientRectangle.Contains(mouseUpPoint)) { var r = GViewer.RectFromPoints(mouseDownPoint, mouseUpPoint); r.Intersect(gViewer.DestRect); if (GViewer.ModifierKeyWasPressed() == false) { mouseDownPoint.X = r.Left; mouseDownPoint.Y = r.Top; mouseUpPoint.X = r.Right; mouseUpPoint.Y = r.Bottom; P2 p1 = gViewer.ScreenToSource(mouseDownPoint); P2 p2 = gViewer.ScreenToSource(mouseUpPoint); double sc = Math.Min((double)ClientRectangle.Width / r.Width, ClientRectangle.Height / (double)r.Height); P2 center = 0.5f * (p1 + p2); gViewer.SetTransformOnScaleAndCenter(sc, center); Invalidate(); } } } } } zoomWindow = false; }
private void GraphEditor_MouseMove(object sender, MsaglMouseEventArgs e) { if (PanButtonPressedOnMenu) { gViewer.PanButtonPressed = true; return; } bool altPressed = (ModifierKeys & Keys.Alt) == Keys.Alt; if (altPressed && gViewer.PanButtonPressed) { return; } if (PanButtonPressedOnMenu == false) { gViewer.PanButtonPressed = false; } }
private void viewer_MouseDown(object sender, MsaglMouseEventArgs e) { if (e.RightButtonIsPressed) { IViewerObject ob = gv.ObjectUnderMouseCursor; if (ob == null) { Microsoft.Msagl.Core.Geometry.Point p = gv.ScreenToSource(e.X, e.Y); Node n = new Node(this.FindNewId()); IViewerNode iwn = gv.CreateIViewerNode(n, p, true); gv.AddNode(iwn, true); gv.ResizeNodeToLabel(n); } else if (ob is IViewerNode) { IViewerNode existingNode = ob as IViewerNode; gv.RemoveNode(existingNode, true); } } }
void Form1_MouseUp(object sender, MsaglMouseEventArgs e) { object obj = gViewer.GetObjectAt(e.X, e.Y); DrawingNode node = null; Edge edge = null; var dnode = obj as DNode; var dedge = obj as DEdge; var dl = obj as DLabel; if (dnode != null) { node = dnode.DrawingNode; } else if (dedge != null) { edge = dedge.DrawingEdge; } else if (dl != null) { if (dl.Parent is DNode) { node = (dl.Parent as DNode).DrawingNode; } else if (dl.Parent is DEdge) { edge = (dl.Parent as DEdge).DrawingEdge; } } if (node != null) { ShowEditorDelegate(node); } else if (edge != null) { ShowEditorDelegate(edge); } else { CloseEditorDelegate(); } }
/// <summary> /// If right click on empty space - open new node creation form. /// If right click on existing node - allow delete this node /// if left click and selected object is not null - show its proprties in grid and allow edit those. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void viewer_MouseDown(object sender, MsaglMouseEventArgs e) { mouseButtonDownPoint = (gViewer).ScreenToSource(e); if (gViewer.SelectedObject != null) { selectedObject = PropertiesWrapperFactory.Getwrapper(gViewer.SelectedObject); } //if clicked on object - open its properties for watch\edit. if (e.LeftButtonIsPressed && selectedObject != null)//&& !e.Handled) { propertyGridControl.SelectedObject = selectedObject; } //if right click - ask to delete if not edge (edge has its own menu) else if (e.RightButtonIsPressed && !e.Handled) { if (gViewer.SelectedObject == null) { drawForm.ShapeId = GetNewId(); drawForm.AllowIDEdit = true; DialogResult result = drawForm.ShowDialog(this); if (result != DialogResult.Cancel) { Draw(mouseButtonDownPoint); } } else { var node = selectedObject as NodeWrapper; //if selected node. for edge there is its own menu if (node != null) { this.ContextMenu.Show(this, new System.Drawing.Point(e.X, e.Y)); } } } }
private void AglGraphViewer_MouseDown(object sender, MsaglMouseEventArgs e) { if (this.currentFlowGraph == null) { return; } var viewerNode = this.aglGraphViewer.ObjectUnderMouseCursor as IViewerNode; if (viewerNode != null) { viewerNode.MarkedForDragging = true; int id = int.Parse(viewerNode.Node.Id); this.currentFlowNode = this.currentFlowGraph.Nodes[id]; this.nodeIdLabel.Content = id.ToString(); this.exploreButton.IsEnabled = true; var operations = (this.currentFlowNode as InnerFlowNode)?.Operations; if (operations != null && operations.Count > 0 && operations.Last() is Assignment assignment && assignment.Variable.Sort == Sort.Bool) { this.assertionCheckBox.IsEnabled = true; } else { this.assertionCheckBox.IsEnabled = false; } foreach (var node in this.aglGraphViewer.Graph.Nodes) { node.Attr.LineWidth = 1; } viewerNode.Node.Attr.LineWidth = 3; }
public void MouseMove(MsaglMouseEventArgs e) { if (currentPath == null) { return; } var point = scroller.GetWpfPosition(e); if (DistanceBetweenWpfPoints(point, pathEnd) < 3 * currentPath.StrokeThickness) { return; } pathEnd = point; pathSegmentCollection.Add(new LineSegment(point, true)); var pathFigure = new PathFigure(pathStart, pathSegmentCollection, true); var pathFigureCollection = new PathFigureCollection { pathFigure }; var pathGeometry = new PathGeometry(pathFigureCollection); currentPath.Data = pathGeometry; }
void graphViewer_MouseDown(object sender, MsaglMouseEventArgs e) { var node = graphViewer.ObjectUnderMouseCursor as IViewerNode; if (node != null) { if (string.IsNullOrEmpty(start)) { var drawingNode = (Node)node.DrawingObject; drawingNode.Attr.FillColor = Color.Green; start = node.Node.Id; } else { if (node.Node.Id != start) { var drawingNode = (Node)node.DrawingObject; drawingNode.Attr.FillColor = Color.Red; stop = node.Node.Id; calculate.IsEnabled = true; } } } }
void MainWindow_MouseDown(object sender, MsaglMouseEventArgs e) { statusTextBox.Text = "there was a click..."; }
private void IViewer_MouseDown(object sender, MsaglMouseEventArgs e) { Debug.Print("Mousedown"); }
public Point ScreenToSource(MsaglMouseEventArgs e) { return(new Point(e.X, e.Y)); }
internal void DrawRubberLine(MsaglMouseEventArgs args) { RubberLineEnd = gViewer.ScreenToSource(new Point(args.X, args.Y)); DrawRubberLineWithKnownEnd(); }
public void DrawRubberLine(MsaglMouseEventArgs args) { throw new NotImplementedException(); }
// void CreateFrameworkElementForEdgeLabel(DrawingEdge edge) { // var textBlock = CreateTextBlockForDrawingObj(edge); // if (textBlock == null) return; // drawingGraphObjectsToTextBoxes[edge] = textBlock; // textBlock.Tag = new VLabel(edge, textBlock); // } public void DrawRubberLine(MsaglMouseEventArgs args) { DrawRubberLine(ScreenToSource(args)); }
void scroller_MouseMove(object sender, MsaglMouseEventArgs e) { MouseMove(e); }
private void MainForm_MouseUp(object sender, MsaglMouseEventArgs e) { m_MouseLeftButtonDownPoint = (gViewer).ScreenToSource(e); }
public void MouseDown(MsaglMouseEventArgs e) { StartNewPath(scroller.GetWpfPosition(e)); }
private void GraphViewer_MouseDown(object sender, MsaglMouseEventArgs e) { Graph graph = (Graph)sender; }
void GraphScrollerMouseUp(object sender, MsaglMouseEventArgs e) { }
/// <summary> /// Methode für das Click-Verhalten /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void GraphViewer_MouseDown(object sender, MsaglMouseEventArgs e) { statusTextBox.Text = "there was a click..."; }
private void MouseUpHandler(object s, MsaglMouseEventArgs ev) { if (_graphViewer.ObjectUnderMouseCursor is VNode && (bool)AddTaxiPathButton.IsChecked && SourceNode != null && (VNode)_graphViewer.ObjectUnderMouseCursor != SourceNode) { TargetNode = (VNode)_graphViewer.ObjectUnderMouseCursor; if (SourceNode.Node.UserData is WayPoint && !(TargetNode.Node.UserData is WayPoint) && !(TargetNode.Node.UserData is Runway)) { return; } if (!(SourceNode.Node.UserData is Runway) && !(SourceNode.Node.UserData is WayPoint) && TargetNode.Node.UserData is WayPoint) { return; } var taxiName = SourceNode.Node.Id.Replace('-', ' ') .Split() .Intersect(TargetNode.Node.Id.Replace('-', ' ').Split()) .FirstOrDefault(); if (taxiName == null || Int32.TryParse(taxiName, out _)) { var tempName = SourceNode.Node.Id.Replace('-', ' '); foreach (var ln in LikelyTaxiwayNames) { tempName.Contains(ln); taxiName = ln; } } if (taxiName == null || Int32.TryParse(taxiName, out _)) { var tempName = TargetNode.Node.Id.Replace('-', ' '); foreach (var ln in LikelyTaxiwayNames) { tempName.Contains(ln); taxiName = ln; } } if (taxiName == null || Int32.TryParse(taxiName, out _)) { taxiName = $"{SourceNode.Node.Id} to {TargetNode.Node.Id}"; } var mainCost = 1; var reverseCost = 1; if (SourceNode.Node.Id.Contains("Apron") || SourceNode.Node.Id.Contains("Ramp")) { reverseCost = 100; } if (TargetNode.Node.Id.Contains("Apron") || TargetNode.Node.Id.Contains("Ramp")) { mainCost = 100; } if (SourceNode.Node.Id.Contains("Spot") || SourceNode.Node.Id.Contains("Maintenance") || SourceNode.Node.Id.Contains("Bunker") || SourceNode.Node.Id.Contains("Shelter") || SourceNode.Node.Id.Contains("Parking") || SourceNode.Node.Id.Contains("Cargo") || SourceNode.Node.Id.Contains("Revetment")) { reverseCost = 999; } if (TargetNode.Node.Id.Contains("Spot") || TargetNode.Node.Id.Contains("Maintenance") || TargetNode.Node.Id.Contains("Bunker") || TargetNode.Node.Id.Contains("Shelter") || TargetNode.Node.Id.Contains("Parking") || TargetNode.Node.Id.Contains("Cargo") || TargetNode.Node.Id.Contains("Revetment")) { mainCost = 999; } if (SourceNode.Node.Id.Contains("Runway") && TargetNode.Node.Id.Contains("Runway")) { mainCost = 999; reverseCost = 999; } // Add to the Taxiways for searching airfield.Taxiways.Add(new NavigationPath { Source = SourceNode.Node.Id, Target = TargetNode.Node.Id, Name = taxiName, Cost = mainCost, }); airfield.Taxiways.Add(new NavigationPath { Source = TargetNode.Node.Id, Target = SourceNode.Node.Id, Name = taxiName, Cost = reverseCost, }); // Add to the underlying graph for data for refreshing UI var mainEdge = new TaggedEdge <NavigationPoint, string>((NavigationPoint)SourceNode.Node.UserData, (NavigationPoint)TargetNode.Node.UserData, taxiName); airfield.NavigationGraph.AddEdge(mainEdge); if (airfield.NavigationCost == null) { airfield.NavigationCost = new Dictionary <TaggedEdge <NavigationPoint, string>, double>(); } airfield.NavigationCost[mainEdge] = mainCost; var reverseEdge = new TaggedEdge <NavigationPoint, string>((NavigationPoint)TargetNode.Node.UserData, (NavigationPoint)SourceNode.Node.UserData, taxiName); airfield.NavigationGraph.AddEdge(reverseEdge); airfield.NavigationCost[reverseEdge] = reverseCost; SourceNode = null; DisplayGraph(); } }
void scroller_MouseUp(object sender, MsaglMouseEventArgs e) { MouseUp(); }
private void Gviewer_MouseDown(object sender, MsaglMouseEventArgs e) { selectedObject = gviewer.ObjectUnderMouseCursor; }
void scroller_MouseDown(object sender, MsaglMouseEventArgs e) { MouseDown(e); }
void WpfApplicationSample_MouseDown(object sender, MsaglMouseEventArgs e) { statusTextBox.Text = "there was a click..."; }
void GraphViewerMouseMove(object sender, MsaglMouseEventArgs e) { SetStatusText(); }
private void MasterViewer_MouseUp(object sender, MsaglMouseEventArgs e) { statusTextBox.Background = Brushes.Transparent; statusTextBox.Text = "Left-Click = Move Node | Right-Click = Add Edge"; }