private void UpdateUniNode(UniNodeView nodeView, BaseNode nodeData)
        {
            if (!(nodeData is UniBaseNode uniNode))
            {
                return;
            }

            CheckNodeInitialization(nodeView, uniNode);
            selectionUpdated = UpdateSelection(nodeView, uniNode);
        }
        private void CheckNodeInitialization(UniNodeView nodeView, UniBaseNode nodeData)
        {
            if (registeredNodes.TryGetValue(nodeData, out var view))
            {
                return;
            }

            registeredNodes[nodeData] = nodeView;

            nodeView.RegisterCallback <MouseDownEvent>(_ => UpdateSelection(nodeView, nodeData));
        }
        private bool UpdateSelection(UniNodeView nodeView, UniBaseNode nodeData)
        {
            if (selectionUpdated || !nodeView.selected)
            {
                return(selectionUpdated);
            }

            var sourceNode = nodeData.SourceNode;

            Focus(sourceNode);

            return(true);
        }