Beispiel #1
0
        private SelectedNodesCollection GetSelectedNodesCollection()
        {
            var viewModelNodes = NodeControls.Select(q => q.ViewModelNode);
            var relationships  = SelectorControl.GetRelationships();

            return(new SelectedNodesCollection(viewModelNodes, relationships));
        }
 public void Initialize(Map map)
 {
     ZoomControl.Value = map.Location.Zoom;
     _map = map;
     SelectorControl.Initialize(map);
     _map.EventPublisher.LocationChanged += EventPublisher_LocationChanged;
     SelectorControl.PlaceHolderText      = ControlsRes.LocationChangerControl_PlaceHolder;
 }
 /// <summary>
 /// If the control contains a ScrollViewer, this will reset the viewer
 /// to be scrolled to the top.
 /// </summary>
 private void ResetScrollViewer()
 {
     if (SelectorControl != null)
     {
         ScrollViewer sv = SelectorControl.GetLogicalChildrenBreadthFirst().OfType <ScrollViewer>().FirstOrDefault();
         if (sv != null)
         {
             sv.ScrollToTop();
         }
     }
 }
 /// <summary>
 /// If the control contains a ScrollViewer, this will reset the viewer
 /// to be scrolled to the top.
 /// </summary>
 private void ResetScrollViewer()
 {
     if (SelectorControl != null)
     {
         var sv = SelectorControl.GetLogicalDescendants().OfType <ScrollViewer>().FirstOrDefault();
         if (sv != null)
         {
             sv.Offset = new Vector(0, 0);
         }
     }
 }
Beispiel #5
0
        /// <summary>
        /// Handles the SelectionChanged event on the Selector control.
        /// </summary>
        /// <param name="sender">The source object.</param>
        /// <param name="e">The selection changed event data.</param>
        private void OnSelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            if (IgnoringSelectionChanged)
            {
                return;
            }

            SelectionChangedEventHandler handler = SelectionChanged;

            if (handler != null)
            {
                handler(sender, e);
                SelectorControl.ScrollToCenterOfView(SelectorControl.SelectedItem);
            }
        }
Beispiel #6
0
        private void OnCloneClicked(object sender, EventArgs eventArgs)
        {
            var nodes         = NodeControls.Select(q => q.ViewModelNode).ToList();
            var relationships = new List <Relationship>();

            foreach (var relationship in SelectorControl.GetRelationships())
            {
                if (nodes.Any(n => n.Id == relationship.From) || nodes.Any(n => n.Id == relationship.To))
                {
                    relationships.Add(relationship);
                }
            }
            Clear();
            IoC.GetInstance <ISuperGraphNodeFactory>().CloneNodes(nodes, relationships);
        }
Beispiel #7
0
 private void FindRelatedArrows()
 {
     if (NodeControls.Count > 0)
     {
         foreach (var arrowControl in SelectorControl.GetArrowControls())
         {
             var viewModelArrow = arrowControl.DataContext as ArrowViewModel;
             if (viewModelArrow != null)
             {
                 foreach (var nodeControl in NodeControls)
                 {
                     if (viewModelArrow.ViewModelRelationship.From == nodeControl.ViewModelNode.Id || viewModelArrow.ViewModelRelationship.To == nodeControl.ViewModelNode.Id)
                     {
                         AddArrow(arrowControl);
                     }
                 }
             }
         }
         NodeControls[0].Focus();
     }
 }
        /// <summary>
        /// If the control contains a ScrollViewer, this will reset the viewer
        /// to be scrolled to the top.
        /// </summary>
        private void ResetScrollViewer()
        {
            ScrollViewer sv = SelectorControl?.GetLogicalChildrenBreadthFirst().OfType <ScrollViewer>().FirstOrDefault();

            sv?.ScrollToTop();
        }
Beispiel #9
0
 public void DeleteNodes(UserControl sender = null)
 {
     if (HasInvisibleNodesSelected())
     {
         SuperMessageBoxService.ShowWarning("Delete Node(s)",
                                            "Some hidden nodes have been selected, are you sure you wish to delete them? \r\n\r\n" +
                                            "Press YES to delete them\r\n" +
                                            "Press NO to show all hidden nodes",
                                            "Yes",
                                            "No",
                                            "Cancel",
                                            DeleteAllNodes,
                                            () =>
         {
             foreach (var nodeControl in NodeControls)
             {
                 if (nodeControl.CollapseState == CollapseState.Collapsed ||
                     nodeControl.CollapseState == CollapseState.SemiCollapsed)
                 {
                     var control = nodeControl as NodeControl;
                     if (control != null && control.GetAllChildNodeControls().Any(q => q.ViewModelNode.IsSelected))
                     {
                         control.CollapseControl.ExpandNodes(new ChildrenControlCollection(control));
                     }
                 }
             }
             if (sender != null)
             {
                 sender.Focus();
             }
         },
                                            () =>
         {
             if (sender != null)
             {
                 sender.Focus();
             }
         });
     }
     else
     {
         if (NodeControls.Any(q => q.CollapseState == CollapseState.Collapsed || q.CollapseState == CollapseState.SemiCollapsed))
         {
             SuperMessageBoxService.ShowWarning("Delete Node(s)",
                                                "The selected node(s) have hidden related node(s), are you sure you wish to delete your selection? \r\n\r\n" +
                                                "Press YES to delete the selected node(s) then show the hidden node(s)\r\n" +
                                                "Press NO to just show the hidden node(s)",
                                                "Yes",
                                                "No",
                                                "Cancel",
                                                () =>
             {
                 DeleteAllNodes();
                 SelectorControl.RecheckIncorrectVisibility();
                 SelectorControl.ReScanForCollapseStates();
             },
                                                () =>
             {
                 foreach (var nodeControl in NodeControls)
                 {
                     if (nodeControl.CollapseState == CollapseState.Collapsed ||
                         nodeControl.CollapseState == CollapseState.SemiCollapsed)
                     {
                         var control = nodeControl as NodeControl;
                         if (control != null)
                         {
                             control.CollapseControl.ExpandNodes(new ChildrenControlCollection(control, false, true));
                         }
                     }
                 }
                 if (sender != null)
                 {
                     sender.Focus();
                 }
             },
                                                () =>
             {
                 if (sender != null)
                 {
                     sender.Focus();
                 }
             });
         }
         else
         {
             DeleteAllNodes();
         }
     }
 }
Beispiel #10
0
        public void MouseManagerOnLeftButtonDragReleased(object sender, MouseManagerEventArgs e)
        {
            if (!IsDrag)
            {
                return;
            }
            Visibility = Visibility.Collapsed;

            // If nothing is pressed, clean selection
            if ((Keyboard.Modifiers & ModifierKeys.Shift) != ModifierKeys.Shift && (Keyboard.Modifiers & ModifierKeys.Control) != ModifierKeys.Control)
            {
                Clear();
            }
            // If Control is pressed, remove selected nodes from selection
            if ((Keyboard.Modifiers & ModifierKeys.Control) == ModifierKeys.Control)
            {
                var removedNodeControl = false;
                foreach (var child in SelectorControl.NodeContainer.Children)
                {
                    if (child is NodeControl)
                    {
                        var nodeControl = child as NodeControl;
                        if (nodeControl.Visibility == Visibility.Visible)
                        {
                            if (IsPointInSelection(nodeControl.Centre) && nodeControl.ViewModelNode.IsSelected)
                            {
                                RemoveNode(nodeControl);
                                removedNodeControl = true;
                            }
                        }
                    }
                }

                if (!removedNodeControl)
                {
                    foreach (var arrowControl in SelectorControl.GetArrowControls().Where(q => q.IsCollapsed == false))
                    {
                        var viewModelArrow = arrowControl.DataContext as ArrowViewModel;
                        if (viewModelArrow != null)
                        {
                            if (IsArrowInSelection(viewModelArrow.FirstCoordinate, viewModelArrow.SecondCoordinate))
                            {
                                RemoveArrow(arrowControl);
                            }
                        }
                    }
                }
            }
            // Add selected nodes to selection
            else
            {
                foreach (var child in SelectorControl.GetVisibleNodeControls())
                {
                    if (IsPointInSelection(child.Centre))
                    {
                        AddNode(child);
                    }
                }

                if (NodeControls.Count == 0 || ArrowControls.Count > 0)
                {
                    foreach (var arrowControl in SelectorControl.GetArrowControls().Where(q => q.IsCollapsed == false))
                    {
                        var viewModelArrow = arrowControl.DataContext as ArrowViewModel;
                        if (viewModelArrow != null)
                        {
                            if (IsArrowInSelection(viewModelArrow.FirstCoordinate, viewModelArrow.SecondCoordinate))
                            {
                                AddArrow(arrowControl);
                            }
                        }
                    }
                }
            }

            FindRelatedArrows();
            IsDrag = false;
        }