refactored to use the new handler registration in ModelRestry
Signed-off-by: Matt Bruce <matt.bruce@verizon.com>
This commit is contained in:
parent
0eaaada439
commit
537da03d2c
@ -9,9 +9,6 @@
|
||||
import Foundation
|
||||
|
||||
@objcMembers public class MoleculeObjectMapping: NSObject {
|
||||
|
||||
public var moleculeMapping: [String: MoleculeViewProtocol.Type] = [:]
|
||||
|
||||
/// Returns the mapping object stored in the singleton
|
||||
public static func shared() -> Self? {
|
||||
return MVMCoreActionUtility.initializerClassCheck(CoreUIObject.sharedInstance()?.moleculeMap, classToVerify: self) as? Self
|
||||
@ -19,18 +16,17 @@ import Foundation
|
||||
|
||||
/// Registers the model with the model registry and the view with the mapper.
|
||||
public func register<M: ModelProtocol, V: MoleculeViewProtocol>(viewClass: V.Type, viewModelClass: M.Type) {
|
||||
try? ModelRegistry.register(viewModelClass)
|
||||
moleculeMapping.updateValue(viewClass, forKey: viewModelClass.identifier)
|
||||
try? ModelRegistry.register(handler: viewClass, for: viewModelClass)
|
||||
}
|
||||
|
||||
/// Returns the type of molecule view for the given model
|
||||
public func getMoleculeClass(_ model: MoleculeModelProtocol) -> MoleculeViewProtocol.Type? {
|
||||
return moleculeMapping[model.moleculeName]
|
||||
return ModelRegistry.getHandler(model) as? MoleculeViewProtocol.Type
|
||||
}
|
||||
|
||||
/// Creates a molecule with the given model.
|
||||
public func createMolecule(_ model: MoleculeModelProtocol, delegateObject: MVMCoreUIDelegateObject? = nil, additionalData: [AnyHashable: Any]? = nil) -> MoleculeViewProtocol? {
|
||||
guard let type = moleculeMapping[model.moleculeName] else { return nil }
|
||||
guard let type = getMoleculeClass(model) else { return nil }
|
||||
return type.init(model: model, delegateObject, additionalData)
|
||||
}
|
||||
|
||||
@ -286,3 +282,4 @@ import Foundation
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -199,7 +199,7 @@ open class Stack<T>: Container where T: (StackModelProtocol & MoleculeModelProto
|
||||
}
|
||||
var name = "stack<"
|
||||
for case let item in model.molecules {
|
||||
if let moleculeClass = MoleculeObjectMapping.shared()?.moleculeMapping[item.moleculeName],
|
||||
if let moleculeClass = MoleculeObjectMapping.shared()?.getMoleculeClass(item),
|
||||
let nameForReuse = moleculeClass.nameForReuse(with: item, delegateObject) {
|
||||
name.append(nameForReuse + ",")
|
||||
} else {
|
||||
|
||||
@ -9,7 +9,7 @@
|
||||
import UIKit
|
||||
import MVMCore.MVMCoreViewProtocol
|
||||
|
||||
public protocol MoleculeViewProtocol: UIView {
|
||||
public protocol MoleculeViewProtocol: UIView, ModelHandlerProtocol{
|
||||
|
||||
/// Initializes the view with the model
|
||||
init(model: MoleculeModelProtocol, _ delegateObject: MVMCoreUIDelegateObject?, _ additionalData: [AnyHashable: Any]?)
|
||||
@ -31,6 +31,7 @@ public protocol MoleculeViewProtocol: UIView {
|
||||
}
|
||||
|
||||
extension MoleculeViewProtocol {
|
||||
|
||||
/// Calls set with model
|
||||
public init(model: MoleculeModelProtocol, _ delegateObject: MVMCoreUIDelegateObject?, _ additionalData: [AnyHashable: Any]?) {
|
||||
self.init(frame: .zero)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user