mvm_core_ui/MVMCoreUI/Templates/ThreeLayerTemplate.swift
Suresh, Kamlesh 5446fb0785 WIP
2019-11-26 19:20:38 -05:00

73 lines
2.3 KiB
Swift

//
// ThreeLayerTemplate.swift
// MVMCoreUI
//
// Created by Scott Pfeil on 7/23/19.
// Copyright © 2019 Verizon Wireless. All rights reserved.
//
import UIKit
@objcMembers open class ThreeLayerTemplate: ThreeLayerViewController, TemplateProtocol {
public var templateModel: TemplateModelProtocol?
public func parseTemplateJSON() {
guard let templateData = templateData() else {
return
}
do {
let decoder = JSONDecoder()
let templateModel = try decoder.decode(StackPageTemplateModel.self, from: templateData)
self.templateModel = templateModel
} catch {
MVMCoreUILoggingHandler.logDebugMessage(withDelegate: "error: \(error)")
}
}
override open func viewDidLoad() {
super.viewDidLoad()
bottomViewOutsideOfScroll = true
// Do any additional setup after loading the view.
}
open override func newDataBuildScreen() {
super.newDataBuildScreen()
heightConstraint?.isActive = true
}
open override func viewForTop() -> UIView? {
guard let headerModel = (templateModel as? ThreeLayerPageTemplateModel)?.header,
let molecule = MVMCoreUIMoleculeMappingObject.shared()?.createMolecule(headerModel, delegateObject() as? MVMCoreUIDelegateObject, true) else {
return nil
}
return molecule
}
open override func viewForMiddle() -> UIView? {
guard let middleModel = (templateModel as? ThreeLayerPageTemplateModel)?.middle,
let molecule = MVMCoreUIMoleculeMappingObject.shared()?.createMolecule(middleModel, delegateObject() as? MVMCoreUIDelegateObject, true) else {
return nil
}
return molecule
}
override open func viewForBottom() -> UIView? {
guard let footerModel = (templateModel as? ThreeLayerPageTemplateModel)?.footer,
let molecule = MVMCoreUIMoleculeMappingObject.shared()?.createMolecule(footerModel, delegateObject() as? MVMCoreUIDelegateObject, true) else {
return nil
}
return molecule
}
open override func spaceBetweenMiddleAndBottom() -> CGFloat? {
return 0
}
open override func spaceBetweenTopAndMiddle() -> CGFloat? {
return 0
}
}