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); } } }
/// <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); } }
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); }
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(); }
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(); } } }
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; }