private void AddNewNode(RemoteObject remoteObject, TreeNode parent) { TreeNode newNode = parent.Nodes.Add(remoteObject.Name); newNode.Name = newNode.Text; newNode.Tag = remoteObject; var iconKey = remoteObject.TryGetIconName(); if (iconKey != null) { newNode.ImageKey = iconKey; newNode.SelectedImageKey = iconKey; } if (remoteObject is RemoteFolder) { var subNode = newNode.Nodes.Add("dummy"); subNode.Tag = this; } else if (iconKey == null) { newNode.ImageKey = DefaultIcons.FILE_GEAR_ICON; newNode.SelectedImageKey = DefaultIcons.FILE_GEAR_ICON; } RegisterNode(remoteObject, newNode); }
private void RemoteObject_StateChanged(RemoteObject sender, EventArgs args) { if (sender.TryGetIconName() == null) { return; } UpdateNodesIcon(sender); }
private void UpdateNodesIcon(RemoteObject remoteObject) { if (this.InvokeRequired) { this.Invoke(new MethodInvoker(delegate { this.UpdateNodesIcon(remoteObject); })); } else { if (!mObjectsNodes.TryGetValue(remoteObject.InternalId, out var nodes)) { return; } var customIcon = remoteObject.TryGetIconName(); foreach (var node in nodes) { node.ImageKey = customIcon; node.SelectedImageKey = customIcon; } } }