private void Selection(MouseClickType mouseClickType) { if (_treeModify) { return; } _treeModify = true; if (mouseClickType == MouseClickType.RightClick) { // Sets the parent of the current BlockReference as current. viewportLayout1.Entities.SetParentAsCurrent(); } else { // Deselects the previously selected item if (lastSelectedItem != null) { lastSelectedItem.Select(viewportLayout1, false); lastSelectedItem = null; } var item = viewportLayout1.GetItemUnderMouseCursor(_mousePosition); if (item != null) { lastSelectedItem = item; TreeViewManager.CleanCurrent(viewportLayout1, false); // Marks as selected the entity under the mouse cursor. item.Select(viewportLayout1, true); } else { // Back to the root level if (mouseClickType == MouseClickType.LeftDoubleClick) { TreeViewManager.CleanCurrent(viewportLayout1); } } } // An entity in the viewport was selected, so we highlight the corresponding element in the treeview as well TreeViewManager.SynchScreenSelection(modelTree, new Stack <BlockReference>(viewportLayout1.Entities.CurrentBlockReferences), lastSelectedItem); viewportLayout1.Invalidate(); _treeModify = false; }
private void TreeView1_AfterSelect(object sender, TreeViewEventArgs e) { if (_treeModify) { return; } _treeModify = true; //An element of the treeview was selected, so we select the corresponding viewport element as well if (lastSelectedItem != null) { lastSelectedItem.Select(viewportLayout1, false); } TreeViewManager.CleanCurrent(viewportLayout1); lastSelectedItem = TreeViewManager.SynchTreeSelection(modelTree, viewportLayout1); viewportLayout1.Invalidate(); _treeModify = false; }