Example #1
0
        /// <summary>
        /// Updates the data in the control from its item.
        /// </summary>
        protected override void UpdateData()
        {
            StringBuilder lsbInfo = new StringBuilder();

            cgMain.Device = null;

            if (miItem != null)
            {
                UPnPDeviceTreeItem ldiItem        = (UPnPDeviceTreeItem)miItem;
                Device             ldDevice       = ((Device)(miItem.LinkedObject));
                DeviceDescription  lddDescription = ldDevice.GetDescription(ldDevice.RootDeviceDescription());

                lsbInfo.AppendLine(AdapterAddressInformation(ldDevice));
                lsbInfo.AppendLine(lddDescription.ToString());
                lsbInfo.AppendLine();
                lsbInfo.AppendLine(ldDevice.ToString());

                foreach (var lsPropertyName in lddDescription.GetUsedPropertyNames())
                {
                    dgProperties.Rows.Add(csYes, lsPropertyName, lddDescription.GetPropertyString(lsPropertyName));
                }

                foreach (var lkvProperty in lddDescription.GetUnusedProperties())
                {
                    dgProperties.Rows.Add(csNo, lkvProperty.Key, lkvProperty.Value);
                }

                cgMain.Device = ldDevice;
            }

            rtbInfo.Text = lsbInfo.ToString();
        }
Example #2
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();
            }
        }
Example #3
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);
        }