/// <summary> /// Creates a new OverlayElement of the type requested. /// </summary> /// <param name="typeName">The type of element to create is passed in as a string because this /// allows plugins to register new types of component.</param> /// <param name="instanceName">The type of element to create.</param> /// <param name="isTemplate"></param> /// <returns></returns> public OverlayElement CreateElement(string typeName, string instanceName, bool isTemplate) { Hashtable elements = GetElementTable(isTemplate); if (elements.ContainsKey(instanceName)) { throw new AxiomException("OverlayElement with the name '{0}' already exists.", instanceName); } OverlayElement element = CreateElementFromFactory(typeName, instanceName); element.Initialize(); // register elements.Add(instanceName, element); return(element); }