public SplitNode(Split split)
        {
            Split = split;
            _nameNode = new EditableNode("Name", split.Name, NameChanged);

            Nodes.Add(_nameNode);
            _bestNode = new EditableNode("Best", split.Best.NullableToString(), BestTimeChanged);
            Nodes.Add(_bestNode);

            _currentNode = new EditableNode("Current", split.Current.NullableToString(), CurrentTimeChanged);
            Nodes.Add(_currentNode);

            Render();
        }
        private void NodeSelectionChanged(object s = null, EventArgs e = null)
        {
            var selectedNode = _treeView.SelectedNode == null ? null : _treeView.SelectedNode as EditableNode;

            if (selectedNode == _editingNode)
                return;

            TryApplyEditChanges();

            if (selectedNode == null)
                return;

            _editingNode = selectedNode;
            _editingNode.HideText();
            _treeView.SelectedNode = null; //Hide selection

            selectedNode.Text = "";

            _editLabel.Visible = true;
            _editText.Visible = true;

            _editLabel.Text = selectedNode.Key;
            _editText.Text = selectedNode.Value;

            _editLabel.Left = selectedNode.Bounds.Left;
            _editLabel.Top = selectedNode.Bounds.Top;

            _editText.Left = _editLabel.Right;
            _editText.Top = _editLabel.Top;
        }
        public void TryApplyEditChanges()
        {
            if (_editingNode != null)
            {
                if (_editingNode.Value != _editText.Text
                    && _editingNode.OnTextChanged != null
                    && _editingNode.OnTextChanged(_editText.Text))
                {
                    _editingNode.Value = _editText.Text;
                    Value.Dirty = true;
                    _parent.Render();
                }

                _editingNode.RenderText();
                _editingNode = null;

                _editLabel.Visible = false;
                _editText.Visible = false;
            }

        }