Ejemplo n.º 1
0
 internal void OnEdgeMouseMove(EdgeControl edgeControl, PointerRoutedEventArgs e)
 {
     if (EdgeMouseMove != null)
     {
         EdgeMouseMove(this, new EdgeSelectedEventArgs(edgeControl, e));
     }
 }
Ejemplo n.º 2
0
 internal void OnEdgeDoubleClick(EdgeControl edgeControl, PointerRoutedEventArgs e)
 {
     if (EdgeDoubleClick != null)
     {
         EdgeDoubleClick(this, new EdgeSelectedEventArgs(edgeControl, e));
     }
 }
Ejemplo n.º 3
0
 internal virtual void OnEdgeSelected(EdgeControl ec, PointerRoutedEventArgs e)
 {
     if (EdgeSelected != null)
     {
         EdgeSelected(this, new EdgeSelectedEventArgs(ec, e));
     }
 }
Ejemplo n.º 4
0
 internal void OnEdgeMouseLeave(EdgeControl edgeControl, PointerRoutedEventArgs e)
 {
     if (EdgeMouseLeave != null)
     {
         EdgeMouseLeave(this, new EdgeSelectedEventArgs(edgeControl, e));
     }
     if (MouseOverAnimation != null)
     {
         MouseOverAnimation.AnimateEdgeBackward(edgeControl);
     }
 }
Ejemplo n.º 5
0
        private static void OnEdgeDragFinished(object sender, System.Windows.Input.MouseButtonEventArgs e)
        {
            EdgeControl edgeControl = sender as EdgeControl;

            if (edgeControl == null)
            {
                return;
            }

            GraphAreaBase graphAreaBase = edgeControl.RootArea;

            VertexControl vertexControl = graphAreaBase.GetVertexControlAt(e.GetPosition(graphAreaBase));

            if (vertexControl != null)
            {
                edgeControl.Target = vertexControl;

                if (vertexControl.VertexConnectionPointsList.Count > 0)
                {
                    IVertexConnectionPoint vertexConnectionPoint = vertexControl.GetConnectionPointAt(e.GetPosition(graphAreaBase));

                    var edge = edgeControl.Edge as IGraphXCommonEdge;

                    if (vertexConnectionPoint != null)
                    {
                        edge.TargetConnectionPointId = vertexConnectionPoint.Id;
                    }
                    else
                    {
                        edge.TargetConnectionPointId = null;
                    }
                }

                edgeControl.UpdateEdge();

                var obj = (DependencyObject)sender;
                SetIsDragging(obj, false);
                //obj.ClearValue(OriginalMouseXProperty);
                //obj.ClearValue(OriginalMouseYProperty);
                //obj.ClearValue(OriginalXProperty);
                //obj.ClearValue(OriginalYProperty);

                var element = sender as IInputElement;
                if (element != null)
                {
                    element.MouseMove -= OnVertexDragging;
                    element.ReleaseMouseCapture();
                }
            }
        }
Ejemplo n.º 6
0
        private static void OnEdgeDragging(object sender, System.Windows.Input.MouseEventArgs e)
        {
            var obj = sender as DependencyObject;

            if (!GetIsDragging(obj))
            {
                return;
            }

            EdgeControl edgeControl = sender as EdgeControl;

            edgeControl.PrepareEdgePathFromMousePointer();

            e.Handled = true;
        }
Ejemplo n.º 7
0
 public void Dispose()
 {
     _edgeControl = null;
 }
Ejemplo n.º 8
0
 public void Dispose()
 {
     _edgeControl = null;
 }
Ejemplo n.º 9
0
        private void CreateEdgeControl(VertexControl targetVertexControl)
        {
            if (sourceVertexControl == null)
            {
                editorManager.CreateVirtualEdge(targetVertexControl, targetVertexControl.GetPosition());
                sourceVertexControl = targetVertexControl;
                HighlightBehaviour.SetHighlighted(sourceVertexControl, true);
                return;
            }

            if (Equals(sourceVertexControl, targetVertexControl))
            {
                return;
            }

            var wordPrototype = viewModel.DataStructure.Elements.OfType<Word>().Single();

            var addEdgeDialog =
                new AddEdgeWindow(
                    new AddEdgeViewModel(
                        wordPrototype.Attributes.Single(
                            a => a.Name.Equals(CurrentConfiguration.Edge.LabelAttributeName))));

            if (addEdgeDialog.ShowDialog().GetValueOrDefault())
            {
                var edgeLabelText = string.Empty;
                var dataContext = addEdgeDialog.DataContext as AddEdgeViewModel;
                if (dataContext != null)
                {
                    edgeLabelText = dataContext.Attributes.First().Value;
                }

                var sourceWordVertex = sourceVertexControl.Vertex as WordVertex;
                var targetWordVertex = targetVertexControl.Vertex as WordVertex;

                if ((sourceWordVertex == null) || (targetWordVertex == null))
                {
                    return;
                }

                targetWordVertex.WordWrapper.SetAttributeByName(
                    CurrentConfiguration.Edge.SourceVertexAttributeName,
                    sourceWordVertex.WordWrapper.GetAttributeByName(CurrentConfiguration.Edge.TargetVertexAttributeName));
                targetWordVertex.WordWrapper.SetAttributeByName(
                    CurrentConfiguration.Edge.LabelAttributeName,
                    edgeLabelText);

                var data = new WordEdge((WordVertex)sourceVertexControl.Vertex, targetWordVertex)
                               {
                                   Text = edgeLabelText
                               };

                var ec = new EdgeControl(sourceVertexControl, targetVertexControl, data);
                GgArea.InsertEdgeAndData(data, ec, 0, true);

                HighlightBehaviour.SetHighlighted(sourceVertexControl, false);
                sourceVertexControl = null;
                editorManager.DestroyVirtualEdge();
            }

            viewModel.InvalidateCommands();
        }