Example #1
0
 public ExtensionEntry(Type extensionType, ExtensionServer server, Type overriddenExtensionType, int order)
 {
     this.ExtensionType = extensionType;
     this.Server        = server;
     this.OverriddenExtensionTypes.Add(overriddenExtensionType);
     this.Order = order;
 }
        /// <summary>
        /// Registers extensions from the specified assembly.
        /// </summary>
        public void RegisterAssembly(Assembly assembly)
        {
            if (assembly == null)
            {
                throw new ArgumentNullException("assembly");
            }

//			object[] assemblyAttributes = assembly.GetCustomAttributes(typeof(IsWpfDesignerAssemblyAttribute), false);
//			if (assemblyAttributes.Length == 0)
//				return;

            if (!_registeredAssemblies.Add(assembly))
            {
                // the assembly already is registered, don't try to register it again.
                return;
            }

//			IsWpfDesignerAssemblyAttribute isWpfDesignerAssembly = (IsWpfDesignerAssemblyAttribute)assemblyAttributes[0];
//			foreach (Type type in isWpfDesignerAssembly.UsePrivateReflection ? assembly.GetTypes() : assembly.GetExportedTypes()) {
            foreach (Type type in assembly.GetTypes())
            {
                object[] extensionForAttributes = type.GetCustomAttributes(typeof(ExtensionForAttribute), false);
                if (extensionForAttributes.Length == 0)
                {
                    continue;
                }

                foreach (ExtensionForAttribute designerFor in extensionForAttributes)
                {
                    ExtensionServer server = GetServerForExtension(type);
                    AddExtensionEntry(designerFor.DesignedItemType, new ExtensionEntry(type, server, designerFor.OverrideExtension));
                }
            }
        }
Example #3
0
 public ExtensionEntry(Type extensionType, ExtensionServer server, List <Type> overriddenExtensionTypes, int order)
 {
     this.ExtensionType            = extensionType;
     this.Server                   = server;
     this.OverriddenExtensionTypes = overriddenExtensionTypes;
     this.Order = order;
 }
Example #4
0
			public ExtensionEntry(Type extensionType, ExtensionServer server, List<Type> overriddenExtensionTypes, int order)
			{
				this.ExtensionType = extensionType;
				this.Server = server;
				this.OverriddenExtensionTypes = overriddenExtensionTypes;
				this.Order = order;
			}
 public ExtensionEntry(Type extensionType, ExtensionServer server, Type overriddenExtensionType, int Order)
 {
     this.ExtensionType           = extensionType;
     this.Server                  = server;
     this.OverriddenExtensionType = overriddenExtensionType;
     this.Order = Order;
 }
Example #6
0
			public ExtensionEntry(Type extensionType, ExtensionServer server, Type overriddenExtensionType, int order)
			{
				this.ExtensionType = extensionType;
				this.Server = server;
				this.OverriddenExtensionTypes.Add(overriddenExtensionType);
				this.Order = order;
			}
Example #7
0
		/// <summary>
		/// Re-applies extensions from the ExtensionServer to the specified design items.
		/// </summary>
		void ReapplyExtensions(IEnumerable<DesignItem> items, ExtensionServer server)
		{
			foreach (DesignItem item in items) {
				if (item != null) {
					item.ReapplyExtensionServer(this, server);
				}
			}
		}
Example #8
0
 /// <summary/>
 protected override void OnInitialized()
 {
     base.OnInitialized();
     _a = Context.Services.ExtensionManager.GetExtensionServer(new ExtensionServerAttribute(typeof(A)));
     _b = Context.Services.ExtensionManager.GetExtensionServer(new ExtensionServerAttribute(typeof(B)));
     _a.ShouldApplyExtensionsInvalidated += OnShouldApplyExtensionsInvalidated;
     _b.ShouldApplyExtensionsInvalidated += OnShouldApplyExtensionsInvalidated;
 }
 /// <summary>
 /// Re-applies extensions from the ExtensionServer to the specified design items.
 /// </summary>
 void ReapplyExtensions(IEnumerable <DesignItem> items, ExtensionServer server)
 {
     foreach (DesignItem item in items)
     {
         if (item != null)
         {
             item.ReapplyExtensionServer(this, server);
         }
     }
 }
        internal IEnumerable <Extension> CreateExtensions(ExtensionServer server, DesignItem item)
        {
            Debug.Assert(server != null);
            Debug.Assert(item != null);

            foreach (ExtensionEntry entry in GetExtensionEntries(item))
            {
                if (entry.Server == server)
                {
                    yield return(server.CreateExtension(entry.ExtensionType, item));
                }
            }
        }
Example #11
0
        internal IEnumerable <Extension> CreateExtensions(ExtensionServer server, DesignItem item, Type extensionType = null)
        {
            Debug.Assert(server != null);
            Debug.Assert(item != null);

            foreach (ExtensionEntry entry in GetExtensionEntries(item))
            {
                if (entry.Server == server && (extensionType == null || entry.ExtensionType == extensionType))
                {
                    var disabledExtensions = Extension.GetDisabledExtensions(item.View);
                    if (string.IsNullOrEmpty(disabledExtensions) || !disabledExtensions.Split(';').Contains(entry.ExtensionType.Name))
                    {
                        yield return(server.CreateExtension(entry.ExtensionType, item));
                    }
                }
            }
        }
Example #12
0
		internal IEnumerable<Extension> CreateExtensions(ExtensionServer server, DesignItem item)
		{
			Debug.Assert(server != null);
			Debug.Assert(item != null);
			
			foreach (ExtensionEntry entry in GetExtensionEntries(item)) {
				if (entry.Server == server) {
					
					var disabledExtensions = Extension.GetDisabledExtensions(item.View);
					if (disabledExtensions == null || !disabledExtensions.Split(';').Contains(entry.ExtensionType.Name))
						yield return server.CreateExtension(entry.ExtensionType, item);
				}
			}
		}
			public ExtensionEntry(Type extensionType, ExtensionServer server, Type overriddenExtensionType)
			{
				this.ExtensionType = extensionType;
				this.Server = server;
				this.OverriddenExtensionType = overriddenExtensionType;
			}
		internal IEnumerable<Extension> CreateExtensions(ExtensionServer server, DesignItem item)
		{
			Debug.Assert(server != null);
			Debug.Assert(item != null);
			
			foreach (ExtensionEntry entry in GetExtensionEntries(item)) {
				if (entry.Server == server) {
					yield return server.CreateExtension(entry.ExtensionType, item);
				}
			}
		}