Example #1
0
        public override void Remove(IComponent component)
        {
            IDesigner designer = _designers[component] as IDesigner;

            if (designer != null)
            {
                designer.Dispose();
            }

            _designers.Remove(component);

            if (component == _rootComponent)
            {
                _rootComponent = null;
            }

            if (component is IExtenderProvider)
            {
                IExtenderProviderService service = GetService(typeof(IExtenderProviderService)) as IExtenderProviderService;
                if (service != null)
                {
                    service.RemoveExtenderProvider((IExtenderProvider)component);
                }
            }

            base.Remove(component);
        }
        internal void RemovePreProcess(IComponent component)
        {
            if (!_unloading && ComponentRemoving != null)
            {
                ComponentRemoving(this, new ComponentEventArgs(component));
            }

            IDesigner designer = _designers[component] as IDesigner;

            if (designer != null)
            {
                designer.Dispose();
            }

            _designers.Remove(component);

            if (component == _rootComponent)
            {
                _rootComponent = null;
            }

            if (component is IExtenderProvider)
            {
                IExtenderProviderService service = GetService(typeof(IExtenderProviderService)) as IExtenderProviderService;
                if (service != null)
                {
                    service.RemoveExtenderProvider((IExtenderProvider)component);
                }
            }
        }
        public void ExtenderProviderService_RemoveExtenderProvider_NullProvider_ThrowsArgumentNullException()
        {
            var    surface = new DesignSurface();
            object service = surface.GetService(typeof(IExtenderListService));
            IExtenderProviderService providerService = Assert.IsAssignableFrom <IExtenderProviderService>(service);

            Assert.Throws <ArgumentNullException>("provider", () => providerService.RemoveExtenderProvider(null));
        }
Example #4
0
 private void RemoveAsExtenderProvider(IComponent component)
 {
     if (component is IExtenderProvider)
     {
         IExtenderProviderService e = (IExtenderProviderService)GetService(typeof(IExtenderProviderService));
         e.RemoveExtenderProvider((IExtenderProvider)component);
     }
 }
 protected override void Dispose(bool disposing)
 {
     // Removes any previously added extender provider.
     if (localExtenderServiceReference != null)
     {
         localExtenderServiceReference.RemoveExtenderProvider(extender);
         localExtenderServiceReference = null;
     }
 }
        public void ExtenderProviderService_RemoveExtenderProvider_InvokeWithoutProviders_Nop()
        {
            var    surface = new DesignSurface();
            object service = surface.GetService(typeof(IExtenderListService));
            IExtenderListService     listService     = Assert.IsAssignableFrom <IExtenderListService>(service);
            IExtenderProviderService providerService = Assert.IsAssignableFrom <IExtenderProviderService>(service);
            var mockExtenderProvider = new Mock <IExtenderProvider>(MockBehavior.Strict);

            providerService.RemoveExtenderProvider(mockExtenderProvider.Object);
            Assert.Empty(listService.GetExtenderProviders());
        }
Example #7
0
 /// <include file='doc\Localizer.uex' path='docs/doc[@for="LocalizationExtenderProvider.Dispose"]/*' />
 /// <devdoc>
 /// <para>Disposes of the resources (other than memory) used by the <see cref='System.ComponentModel.Design.LocalizationExtenderProvider'/>.</para>
 /// </devdoc>
 public void Dispose()
 {
     if (serviceProvider != null)
     {
         IExtenderProviderService es = (IExtenderProviderService)serviceProvider.GetService(typeof(IExtenderProviderService));
         if (es != null)
         {
             es.RemoveExtenderProvider(this);
         }
     }
 }
 protected virtual void Dispose(bool disposing)
 {
     if (disposing && (this.serviceProvider != null))
     {
         IExtenderProviderService service = (IExtenderProviderService)this.serviceProvider.GetService(typeof(IExtenderProviderService));
         if (service != null)
         {
             service.RemoveExtenderProvider(this);
         }
     }
 }
Example #9
0
        /// <summary>
        ///  This is called at the appropriate time to remove any extra extender
        ///  providers previously added to the designer host.
        /// </summary>
        public void Dispose()
        {
            if (extenderService != null && providers != null)
            {
                for (int i = 0; i < providers.Length; i++)
                {
                    extenderService.RemoveExtenderProvider(providers[i]);
                }

                providers       = null;
                extenderService = null;
            }
        }
        public void ExtenderProviderService_RemoveExtenderProvider_InvokeWithProviders_Success()
        {
            var    surface = new DesignSurface();
            object service = surface.GetService(typeof(IExtenderListService));
            IExtenderListService     listService     = Assert.IsAssignableFrom <IExtenderListService>(service);
            IExtenderProviderService providerService = Assert.IsAssignableFrom <IExtenderProviderService>(service);
            var mockExtenderProvider1 = new Mock <IExtenderProvider>(MockBehavior.Strict);
            var mockExtenderProvider2 = new Mock <IExtenderProvider>(MockBehavior.Strict);

            providerService.AddExtenderProvider(mockExtenderProvider1.Object);
            providerService.AddExtenderProvider(mockExtenderProvider2.Object);

            providerService.RemoveExtenderProvider(mockExtenderProvider1.Object);
            Assert.Equal(new IExtenderProvider[] { mockExtenderProvider2.Object }, listService.GetExtenderProviders());

            // Remove again.
            providerService.RemoveExtenderProvider(mockExtenderProvider1.Object);
            Assert.Equal(new IExtenderProvider[] { mockExtenderProvider2.Object }, listService.GetExtenderProviders());

            // Remove other.
            providerService.RemoveExtenderProvider(mockExtenderProvider2.Object);
            Assert.Empty(listService.GetExtenderProviders());
        }
Example #11
0
        public void Remove(System.ComponentModel.IComponent component)
        {
            ISite     site     = component.Site;
            IDesigner designer = null;

            // Make sure component isn't null
            if (component == null)
            {
                return;
            }

            // Make sure component is sited here
            if (component.Site == null || component.Site.Container != this)
            {
                return;
            }

            // Let the nice people know the component is being removed
            if (ComponentRemoving != null)
            {
                ComponentRemoving(this, new ComponentEventArgs(component));
            }

            // Remove extender provider (if any)
            if (component is IExtenderProvider)
            {
                IExtenderProviderService e = (IExtenderProviderService)GetService(typeof(IExtenderProviderService));
                e.RemoveExtenderProvider((IExtenderProvider)component);
            }

            // Remove the component and dispose of its designer
            components.Remove(site.Name);
            designer = (IDesigner)designers[component];
            if (designer != null)
            {
                designer.Dispose();
                designers.Remove(component);
            }

            // Let the nice people know the component has been removed
            if (ComponentRemoved != null)
            {
                ComponentRemoved(this, new ComponentEventArgs(component));
            }

            // Kill the component's site
            component.Site = null;
        }
Example #12
0
        public override void Dispose()
        {
            if (this.eventsCoordinator != null)
            {
                ((IDisposable)this.eventsCoordinator).Dispose();
                this.eventsCoordinator = null;
            }

            if (this.customActivityDesignerAdapter != null)
            {
                ((IDisposable)this.customActivityDesignerAdapter).Dispose();
                this.customActivityDesignerAdapter = null;
            }

            IExtenderProviderService extenderProviderService = GetService(typeof(IExtenderProviderService)) as IExtenderProviderService;

            if (extenderProviderService != null)
            {
                foreach (IExtenderProvider extender in ComponentDispenser.Extenders)
                {
                    extenderProviderService.RemoveExtenderProvider(extender);
                }
            }

            if (LoaderHost != null)
            {
                if (this.createdServices != null)
                {
                    foreach (Type serviceType in this.createdServices.Keys)
                    {
                        LoaderHost.RemoveService(serviceType);
                        OnDisposeService(serviceType, this.createdServices[serviceType]);
                    }
                    this.createdServices.Clear();
                    this.createdServices = null;
                }
                LoaderHost.RemoveService(typeof(WorkflowDesignerLoader));
            }

            base.Dispose();
        }
Example #13
0
        public void Remove(IComponent component)
        {
            if (component == null)
            {
                throw new ArgumentException("component");
            }
            // fire off changing and removing event
            ComponentEventArgs ce = new ComponentEventArgs(component);

            OnComponentChanging(component, null);
            try
            {
                if (ComponentRemoving != null)
                {
                    ComponentRemoving(this, ce);
                }
            }
            catch
            {
                // dont throw here
            }
            // make sure we own the component
            if (component.Site != null && component.Site.Container == this)
            {
                // remove from extender provider list
                if (component is IExtenderProvider)
                {
                    IExtenderProviderService extenderProvider = (IExtenderProviderService)GetService(typeof(IExtenderProviderService));
                    if (extenderProvider != null)
                    {
                        extenderProvider.RemoveExtenderProvider((IExtenderProvider)component);
                    }
                }
                // remove the site
                sites.Remove(component.Site.Name);
                // dispose the designer
                IDesigner designer = designers[component] as IDesigner;
                if (designer != null)
                {
                    designer.Dispose();
                    // get rid of the designer from the list
                    designers.Remove(component);
                }

                // fire off removed event
                try
                {
                    if (ComponentRemoved != null)
                    {
                        ComponentRemoved(this, ce);
                    }
                    this.OnComponentChanged(component, null, null, null);
                }
                catch
                {
                    // dont throw here
                }

                // breakdown component, container, and site relationship
                component.Site = null;

                // now dispose the of the component too
                component.Dispose();
            }
        }