Esempio n. 1
0
        /// <summary>
        /// Removes a device from the tree view.
        /// </summary>
        /// <param name="device">The device to remove.</param>
        public void RemoveDevice(Device device)
        {
            TreeNode[] lnFoundNodes = this.Nodes.Find(UPnPDeviceTreeItem.KeyFor(device), true);

            foreach (TreeNode lnNode in lnFoundNodes)
            {
                lnNode.Remove();
            }
        }
Esempio n. 2
0
        /// <summary>
        /// Gets a tree node collection for a device.
        /// </summary>
        /// <param name="device">The device to get the collection for.</param>
        /// <returns>The tree node collection for the device, or null if not found.</returns>
        protected TreeNodeCollection GetDeviceNodeFor(Device device)
        {
            List <Device> ldDevices = new List <Device>();

            // Build device heirarchy list
            Device ldParent = device;

            do
            {
                ldDevices.Insert(0, ldParent);
            } while ((ldParent = ldParent.ParentDevice) != null);

            // Find or add each device to the list
            TreeNodeCollection lnCurrentNodes = this.Nodes;
            bool lbAdding = false;

            foreach (Device ldDevice in ldDevices)
            {
                // Have we found it already
                if (!lbAdding)
                {
                    TreeNode[] lnFoundNodes = lnCurrentNodes.Find(UPnPDeviceTreeItem.KeyFor(ldDevice), false);
                    if (lnFoundNodes.Length == 1)
                    {
                        lnCurrentNodes = lnFoundNodes[0].Nodes;
                    }
                    else
                    {
                        lbAdding = true;
                    }
                }

                // Are we adding already
                if (lbAdding)
                {
                    lbAdding       = true;
                    lnCurrentNodes = AddUPnPItem(lnCurrentNodes, new UPnPDeviceTreeItem(ldDevice)).Nodes;
                }
            }

            // Return the last collection of nodes for the last node added / found
            return(lnCurrentNodes);
        }