public void ResetToolboxContents() { config = new ToolboxConfiguration(); foreach (object ob in AddinManager.GetExtensionObjects(toolboxProviderPath)) { IToolboxDefaultProvider provider = ob as IToolboxDefaultProvider; if (provider != null) { RegisterDefaultToolboxProvider(provider); } } }
public void RegisterDefaultToolboxProvider(IToolboxDefaultProvider provider) { string pname = provider.GetType().FullName; if (!Configuration.LoadedDefaultProviders.Contains(pname)) { Configuration.LoadedDefaultProviders.Add(pname); initializing++; OnToolboxContentsChanged(); System.Threading.ThreadPool.QueueUserWorkItem(delegate { List <ItemToolboxNode> nodes = new List <ItemToolboxNode> (); try { IEnumerable <ItemToolboxNode> newItems = provider.GetDefaultItems(); if (newItems != null) { nodes.AddRange(newItems); } } catch (Exception ex) { LoggingService.LogError("Error getting default items from a IToolboxDefaultProvider", ex); } LoaderContext ctx = null; try { IEnumerable <string> files = provider.GetDefaultFiles(); if (files != null) { ctx = new LoaderContext(); foreach (string f in files) { nodes.AddRange(GetFileItems(ctx, f)); } } } finally { if (ctx != null) { ctx.Dispose(); } } DispatchService.GuiDispatch(delegate { AddUserItems(nodes); initializing--; SaveConfiguration(); OnToolboxContentsChanged(); }); }); } }
public void RegisterDefaultToolboxProvider (IToolboxDefaultProvider provider) { string pname = provider.GetType().FullName; if (!Configuration.LoadedDefaultProviders.Contains (pname)) { Configuration.LoadedDefaultProviders.Add (pname); initializing++; OnToolboxContentsChanged (); System.Threading.ThreadPool.QueueUserWorkItem (delegate { List<ItemToolboxNode> nodes = new List<ItemToolboxNode> (); try { IEnumerable<ItemToolboxNode> newItems = provider.GetDefaultItems (); if (newItems != null) nodes.AddRange (newItems); } catch (Exception ex) { LoggingService.LogError ("Error getting default items from a IToolboxDefaultProvider", ex); } LoaderContext ctx = null; try { IEnumerable<string> files = provider.GetDefaultFiles (); if (files != null) { ctx = new LoaderContext (); foreach (string f in files) nodes.AddRange (GetFileItems (ctx, f)); } } finally { if (ctx != null) ctx.Dispose (); } Runtime.RunInMainThread (delegate { AddUserItems (nodes); initializing--; SaveConfiguration (); OnToolboxContentsChanged (); }); }); } }