Exemplo n.º 1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="control"></param>
        /// <param name="toggle"></param>
        public virtual void SelectVertex(VertexControl control, bool toggle)
        {
            if (control == null)
            {
                return;
            }

            VertexBase vertex = (VertexBase)control.Vertex;

            if (selected_vertices_.Contains(vertex))
            {
                if (toggle)
                {
                    control.SetValue(Selector.IsSelectedProperty, false);
                    DragBehaviour.SetIsTagged(control, false);

                    selected_vertices_.Remove(vertex);
                    vertex_controls_.Remove(vertex);
                }
            }
            else
            {
                control.SetValue(Selector.IsSelectedProperty, true);
                DragBehaviour.SetIsTagged(control, true);

                selected_vertices_.Add(vertex);
                vertex_controls_.Add(vertex, control);
            }
        }
Exemplo n.º 2
0
 private static void SelectVertex(DependencyObject vc)
 {
     if (DragBehaviour.GetIsTagged(vc))
     {
         HighlightBehaviour.SetHighlighted(vc, false);
         DragBehaviour.SetIsTagged(vc, false);
     }
     else
     {
         HighlightBehaviour.SetHighlighted(vc, true);
         DragBehaviour.SetIsTagged(vc, true);
     }
 }
Exemplo n.º 3
0
        /// <summary>
        ///
        /// </summary>
        public virtual void ClearVertexSelection()
        {
            if (selected_vertices_.Count > 0)
            {
                foreach (KeyValuePair <VertexBase, VertexControl> entry in vertex_controls_)
                {
                    entry.Value.SetValue(Selector.IsSelectedProperty, false);
                    DragBehaviour.SetIsTagged(entry.Value, false);
                }

                selected_vertices_.Clear();
                vertex_controls_.Clear();
            }
        }
Exemplo n.º 4
0
 private void SelectVertex(VertexControl vc)
 {
     if (_selectedVertices.Contains(vc))
     {
         _selectedVertices.Remove(vc);
         HighlightBehaviour.SetHighlighted(vc, false);
         DragBehaviour.SetIsTagged(vc, false);
     }
     else
     {
         _selectedVertices.Add(vc);
         HighlightBehaviour.SetHighlighted(vc, true);
         DragBehaviour.SetIsTagged(vc, true);
     }
 }
Exemplo n.º 5
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="control"></param>
        public virtual void UnselectVertex(VertexControl control)
        {
            if (control == null)
            {
                return;
            }

            VertexBase vertex = (VertexBase)control.Vertex;

            control.SetValue(Selector.IsSelectedProperty, false);
            DragBehaviour.SetIsTagged(control, false);

            selected_vertices_.Remove(vertex);
            vertex_controls_.Remove(vertex);
        }
Exemplo n.º 6
0
 private void ClearSelectMode(bool soft = false)
 {
     if (_selectedVertices != null && _selectedVertices.Any())
     {
         _selectedVertices.ForEach(a =>
         {
             HighlightBehaviour.SetHighlighted(a, false);
             DragBehaviour.SetIsTagged(a, false);
         });
         _selectedVertices.Clear();
     }
     if (!soft)
     {
         graphArea.SetVerticesDrag(false);
     }
 }
Exemplo n.º 7
0
        /// <summary>
        /// Очищает режим выделения.
        /// </summary>
        /// <param name="soft"></param>
        private void ClearSelectMode(bool soft = false)
        {
            graphArea.VertexList.Values
            .Where(DragBehaviour.GetIsTagged)
            .ToList()
            .ForEach(a =>
            {
                HighlightBehaviour.SetHighlighted(a, false);
                DragBehaviour.SetIsTagged(a, false);
            });

            if (!soft)
            {
                graphArea.SetVerticesDrag(false);
            }
        }
Exemplo n.º 8
0
 /// <summary>
 /// Select vertex by setting its tag and highlight value
 /// </summary>
 /// <param name="vc">VertexControl object</param>
 private void SelectVertex(DependencyObject vc)
 {
     if (DragBehaviour.GetIsTagged(vc))
     {
         HighlightBehaviour.SetHighlighted(vc, false);
         DragBehaviour.SetIsTagged(vc, false);
         vc.ClearValue(DragBehaviour.XSnapModifierProperty);
         vc.ClearValue(DragBehaviour.YSnapModifierProperty);
     }
     else
     {
         HighlightBehaviour.SetHighlighted(vc, true);
         DragBehaviour.SetIsTagged(vc, true);
         DragBehaviour.SetXSnapModifier(vc, ExaggeratedSnappingXModifier);
         DragBehaviour.SetYSnapModifier(vc, ExaggeratedSnappingYModifier);
     }
 }