protected override void FillTreeWithData(ObjectSelectorEditor.Selector selector, ITypeDescriptorContext context, IServiceProvider provider) { if ((context != null) && (context.Instance != null)) { ApiItem instance = (ApiItem)context.Instance; this.selector = selector; selector.CheckBoxes = true; selector.BeforeSelect += new TreeViewCancelEventHandler(this.method_0); selector.Clear(); foreach (ApiType category in Enum.GetValues(typeof(ApiType))) { if (category != ApiType.Nono) { if((instance.Type & category) == category) { selector.AddNode(category.ToString(), (int)category, null).Checked = (instance.UseType & category) == category; } } } selector.SelectedNode = null; } else { base.FillTreeWithData(selector, context, provider); } }
protected override void FillTreeWithData(Selector selector, ITypeDescriptorContext context, IServiceProvider provider) { object manager = Activator.CreateInstance(_managerType, new object[] { provider }); DbConnection connection = (DbConnection)context.Instance; ObjectSelectorEditor.SelectorNode node; _selector = selector; _selector.Clear(); if (manager != null) { int items = (int)_managerType.InvokeMember("GetConnectionCount", BindingFlags.Instance | BindingFlags.InvokeMethod | BindingFlags.Public, null, manager, null); string dataProvider; string connectionString; string connectionName; for (int n = 0; n < items; n++) { connectionString = (string)_managerType.InvokeMember("GetConnectionString", BindingFlags.Instance | BindingFlags.InvokeMethod | BindingFlags.Public, null, manager, new object[] { n }); connectionName = (string)_managerType.InvokeMember("GetConnectionName", BindingFlags.Instance | BindingFlags.InvokeMethod | BindingFlags.Public, null, manager, new object[] { n }); dataProvider = (string)_managerType.InvokeMember("GetProvider", BindingFlags.Instance | BindingFlags.InvokeMethod | BindingFlags.Public, null, manager, new object[] { n }); if (String.Compare(dataProvider, "System.Data.SQLite", StringComparison.OrdinalIgnoreCase) == 0) { node = selector.AddNode(connectionName, connectionString, null); if (String.Compare(connectionString, connection.ConnectionString, StringComparison.OrdinalIgnoreCase) == 0) selector.SelectedNode = node; } } selector.AddNode("<New Connection...>", this, null); } }