예제 #1
0
        void OnViewChanged(object sender, EventArgs args)
        {
            if (viewProvider != null)
            {
                this.dynamicProviders.Remove(viewProvider);
                viewProvider.ItemsChanged -= OnProviderItemsChanged;
            }

            //only treat active ViewContent as a Toolbox consumer if it implements IToolboxConsumer
            if (IdeApp.Workbench.ActiveDocument != null && IdeApp.Workbench.ActiveDocument.ActiveView != null)
            {
                CurrentConsumer = IdeApp.Workbench.ActiveDocument.ActiveView.GetContent <IToolboxConsumer> ();
                viewProvider    = IdeApp.Workbench.ActiveDocument.ActiveView.GetContent <IToolboxDynamicProvider> ();
                customizer      = IdeApp.Workbench.ActiveDocument.ActiveView.GetContent <IToolboxCustomizer> ();
                if (viewProvider != null)
                {
                    this.dynamicProviders.Add(viewProvider);
                    viewProvider.ItemsChanged += OnProviderItemsChanged;
                    OnToolboxContentsChanged();
                }
            }
            else
            {
                CurrentConsumer = null;
                viewProvider    = null;
                customizer      = null;
            }
        }
예제 #2
0
        void OnProviderExtensionChanged(object s, ExtensionNodeEventArgs args)
        {
            if (args.Change == ExtensionChange.Add)
            {
                IToolboxDynamicProvider dyProv = args.ExtensionObject as IToolboxDynamicProvider;
                if (dyProv != null)
                {
                    dynamicProviders.Add((IToolboxDynamicProvider)args.ExtensionObject);
                    dyProv.ItemsChanged += OnProviderItemsChanged;
                }

                IToolboxDefaultProvider defProv = args.ExtensionObject as IToolboxDefaultProvider;
                if (defProv != null)
                {
                    RegisterDefaultToolboxProvider(defProv);
                }
            }
            else if (args.Change == ExtensionChange.Remove)
            {
                IToolboxDynamicProvider dyProv = args.ExtensionObject as IToolboxDynamicProvider;
                if (dyProv != null)
                {
                    dyProv.ItemsChanged -= OnProviderItemsChanged;
                    dynamicProviders.Remove(dyProv);
                }
            }

            OnToolboxContentsChanged();
        }
		void OnViewChanged (object sender, EventArgs args)
		{
			if (viewProvider != null) {
				this.dynamicProviders.Remove (viewProvider);
				viewProvider.ItemsChanged -= OnProviderItemsChanged;
			}
			
			//only treat active ViewContent as a Toolbox consumer if it implements IToolboxConsumer
			if (IdeApp.Workbench.ActiveDocument != null && IdeApp.Workbench.ActiveDocument.ActiveView != null) {
				CurrentConsumer = IdeApp.Workbench.ActiveDocument.ActiveView.GetContent<IToolboxConsumer> ();
				viewProvider    = IdeApp.Workbench.ActiveDocument.ActiveView.GetContent<IToolboxDynamicProvider> ();
				customizer = IdeApp.Workbench.ActiveDocument.ActiveView.GetContent<IToolboxCustomizer> ();
				if (viewProvider != null)  {
					this.dynamicProviders.Add (viewProvider);
					viewProvider.ItemsChanged += OnProviderItemsChanged;
					OnToolboxContentsChanged ();
				}
			} else {
				CurrentConsumer = null;
				viewProvider = null;
				customizer = null;
			}
		}