/// <summary> /// Registers new view creation method for given object type name. /// </summary> /// <param name="typeName">Object type name</param> /// <param name="createMethod">Create method to register</param> public void RegisterView(string typeName, CreateViewMethod createMethod) { if (typeName == null) { throw new ArgumentNullException("typeName"); } if (createMethod == null) { throw new ArgumentNullException("createMethod"); } // Check, if view already registered if (createViewDictionary.ContainsKey(typeName)) { return; } createViewDictionary.Add(typeName, createMethod); }
/// <summary> /// Creates new document object. Extracts creation method from the collection /// of registered creation methods and use it for creation. /// </summary> /// <param name="document"> /// Reference to the instance of the document object /// </param> /// <returns> /// Instance of the new document object /// </returns> public IEditor CreateView(IDocument document) { // Check input paramaters if (document == null) { throw new ArgumentNullException("document"); } // Retrieve and invoke method CreateViewMethod createMethod = createViewDictionary[document.TypeName]; if (createMethod == null) { throw new NotSupportedException(String.Format( CultureInfo.CurrentCulture, Resources.Error_ViewNotRegistered, document.TypeName)); } return(createMethod.Invoke(document)); }
/// <summary> /// Registers new view creation method for given object type name. /// </summary> /// <param name="typeName">Object type name</param> /// <param name="createMethod">Create method to register</param> public void RegisterView(string typeName, CreateViewMethod createMethod) { if (typeName == null) throw new ArgumentNullException("typeName"); if (createMethod == null) throw new ArgumentNullException("createMethod"); // Check, if view already registered if (createViewDictionary.ContainsKey(typeName)) return; createViewDictionary.Add(typeName, createMethod); }