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; } }