Esempio n. 1
0
 public void ResetToolboxContents()
 {
     config = new ToolboxConfiguration();
     foreach (object ob in AddinManager.GetExtensionObjects(toolboxProviderPath))
     {
         IToolboxDefaultProvider provider = ob as IToolboxDefaultProvider;
         if (provider != null)
         {
             RegisterDefaultToolboxProvider(provider);
         }
     }
 }
Esempio n. 2
0
        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 ();
					});
				});
			}
		}