Inheritance: System.Windows.Forms.PropertyGrid, IUIEditor
 /// <summary>
 /// Loads the specified parent node.
 /// </summary>
 /// <param name="parentNode">The parent node.</param>
 public void Load( System.Windows.Forms.TreeNode parentNode )
 {
     foreach ( PluginInfo pi in Settings.Instance.PluginSettings.Plugins ) {
         OptionItemTreeNode oitn = new OptionItemTreeNode ( );
         oitn.Text = pi.Name;
         PropertyGridEditor pge = new PropertyGridEditor ( );
         /*pge.PropertyValueChanged += delegate ( object s, PropertyValueChangedEventArgs e ) {
             GridItem gi = e.ChangedItem;
             switch ( gi.Label ) {
                 case "Enabled":
                     pi.Enabled = (bool)gi.Value;
                     break;
                 case "ExecuteOnUnload":
                     pi.ExecuteOnUnload = (bool)gi.Value;
                     break;
                 case "ExecuteOnLoad":
                     pi.ExecuteOnLoad = (bool)gi.Value;
                     break;
             }
         };*/
         pi.Plugin = Settings.Instance.PluginSettings.GetPlugin ( pi.ID.Replace ( " ", string.Empty ) );
         oitn.UIEditor = pge;
         oitn.UIEditor.SetSourceObject ( pi );
         parentNode.Nodes.Add ( oitn );
     }
 }
        public void Load( TreeNode parentNode )
        {
            foreach ( string sn in KnownDeviceManager.Instance.GetKnownDevices ( ) ) {
                // if we dont have a serial number, we dont have a device...
                if ( string.IsNullOrEmpty ( sn ) ) {
                    continue;
                }

                KnownDevice kd = new KnownDevice ( );
                kd.SerialNumber = sn;
                kd.DisplayName = KnownDeviceManager.Instance.GetDeviceFriendlyName ( kd.SerialNumber );
                kd.Guid = KnownDeviceManager.Instance.GetDeviceGuid ( kd.SerialNumber );
                OptionItemTreeNode tn = new OptionItemTreeNode ( kd.SerialNumber );
                PropertyGridEditor pge = new PropertyGridEditor ( );
                pge.PropertyValueChanged += delegate ( object s, PropertyValueChangedEventArgs e ) {
                    GridItem gi = e.ChangedItem;
                    KnownDevice kdi = ( s as PropertyGridEditor ).SelectedObject as KnownDevice;
                    switch ( gi.Label ) {
                        case "DisplayName":
                            KnownDeviceManager.Instance.SetDeviceFriendlyName ( kdi.SerialNumber, gi.Value.ToString ( ) );
                            break;
                    }
                };
                tn.UIEditor = pge;
                tn.UIEditor.SetSourceObject ( kd );
                try {
                    OptionItemTreeNode propItem = new OptionItemTreeNode ( "Properties" );
                    propItem.UIEditor = new DevicePropertiesEditor ( kd.SerialNumber );
                    tn.Nodes.Add ( propItem );
                } catch ( AdbException ex ) {
                    this.LogWarn ( ex.Message, ex );
                }
                parentNode.Nodes.Add ( tn );
            }
        }