/// <summary> /// Creates a modifyable list from a resource list and a factory that wraps the raw resources into resource objects. /// The set of modification operations supported on the list is defined by the delegates you provide for adding and removing the items. /// </summary> /// <param name="resources">The list of available resources, live or dead.</param> /// <param name="factory">The factory for wrapping the raw Omea resources into resource objects.</param> /// <param name="handlerAdd">A handler for adding new resources to the list. May be <c>Null</c>.</param> /// <param name="handlerRemove">A handler for adding new resources to the list. May be <c>Null</c>.</param> public ResourceObjectsList(IResourceList resources, IResourceObjectFactory <T> factory, EventHandler <ResourceObjectEventArgs> handlerAdd, EventHandler <ResourceObjectEventArgs> handlerRemove) { if (resources == null) { throw new ArgumentNullException("resources"); } if (factory == null) { throw new ArgumentNullException("factory"); } // Handlers may be Null _resources = resources; _factory = factory; _handlerAdd = handlerAdd; _handlerRemove = handlerRemove; }
/// <summary> /// Registers a new resource object factory. /// </summary> /// <typeparam name="TResourceObject">Type of the resource objects handled by the factory.</typeparam> /// <param name="factory">The factory object.</param> void ICoreEx.RegisterResourceObjectFactory <TResourceObject>(IResourceObjectFactory <TResourceObject> factory) { Core.PluginLoader.RegisterPluginService(factory); }
/// <summary> /// Registers a new resource object factory. /// </summary> /// <typeparam name="TResourceObject">Type of the resource objects handled by the factory.</typeparam> /// <param name="factory">The factory object.</param> public static void RegisterResourceObjectFactory <TResourceObject>(IResourceObjectFactory <TResourceObject> factory) where TResourceObject : IResourceObject { Instance.RegisterResourceObjectFactory(factory); }
/// <summary> /// Creates a list from a resource list and a factory that wraps the raw resources into resource objects. /// The standard Name property is used when looking for resources by their name. /// </summary> /// <param name="resources">The list of available resources, live or dead.</param> /// <param name="factory">The factory for wrapping the raw Omea resources into resource objects.</param> public ResourceObjectsListByName(IResourceList resources, IResourceObjectFactory <T> factory) : this(resources, factory, Core.Props.Name) { }
/// <summary> /// Creates a list from a resource list, a factory that wraps the raw resources into resource objects, and the name property name. /// </summary> /// <param name="resources">The list of available resources, live or dead.</param> /// <param name="factory">The factory for wrapping the raw Omea resources into resource objects.</param> /// <param name="sNamePropName">Name of the property that should be looked for when getting resources by name.</param> public ResourceObjectsListByName(IResourceList resources, IResourceObjectFactory <T> factory, string sNamePropName) : this(resources, factory, Core.ResourceStore.PropTypes[sNamePropName].Id) { }
/// <summary> /// Creates a list from a resource list, a factory that wraps the raw resources into resource objects, and the name property ID. /// </summary> /// <param name="resources">The list of available resources, live or dead.</param> /// <param name="factory">The factory for wrapping the raw Omea resources into resource objects.</param> /// <param name="nNamePropId">ID of the property that should be looked for when getting resources by name.</param> public ResourceObjectsListByName(IResourceList resources, IResourceObjectFactory <T> factory, int nNamePropId) : this(resources, factory, nNamePropId, null, null, null) { }
/// <summary> /// Creates a list from a resource list, a factory that wraps the raw resources into resource objects, and the name property ID. /// </summary> /// <param name="resources">The list of available resources, live or dead.</param> /// <param name="factory">The factory for wrapping the raw Omea resources into resource objects.</param> /// <param name="nNamePropId">ID of the property that should be looked for when getting resources by name.</param> /// <param name="handlerAdd">A handler for adding new resources to the list. May be <c>Null</c>.</param> /// <param name="handlerRemove">A handler for adding new resources to the list. May be <c>Null</c>.</param> /// <param name="handlerCreate">A handler for creating new resources and including them into the list. May be <c>Null</c>.</param> public ResourceObjectsListByName(IResourceList resources, IResourceObjectFactory <T> factory, int nNamePropId, EventHandler <ResourceObjectEventArgs> handlerAdd, EventHandler <ResourceObjectEventArgs> handlerRemove, EventHandler <ResourceObjectOutByNameEventArgs <T> > handlerCreate) : base(resources, factory, handlerAdd, handlerRemove) { _nNamePropId = nNamePropId; _handlerCreate = handlerCreate; }
/// <summary> /// Creates a read-only list from a resource list and a factory that wraps the raw resources into resource objects. /// </summary> /// <param name="resources">The list of available resources, live or dead.</param> /// <param name="factory">The factory for wrapping the raw Omea resources into resource objects.</param> public ResourceObjectsList(IResourceList resources, IResourceObjectFactory <T> factory) : this(resources, factory, null, null) { }
public Enumerator(IEnumerator enumResources, IResourceObjectFactory <T> factory) { _enumResources = enumResources; _factory = factory; }