18979 - List - Two Column - Compare Changes story initial commit.
Added molecule and model class.
This commit is contained in:
parent
d70bde5b65
commit
758279f30a
@ -132,6 +132,8 @@
|
||||
94FB966323D797DA003D482B /* MFTextButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 94FB966123D797DA003D482B /* MFTextButton.m */; };
|
||||
AA11A41F23F15D3100D7962F /* ListRightVariablePayments.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA11A41E23F15D3100D7962F /* ListRightVariablePayments.swift */; };
|
||||
AA11A42123F15D7000D7962F /* ListRightVariablePaymentsModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA11A42023F15D7000D7962F /* ListRightVariablePaymentsModel.swift */; };
|
||||
AA3320F42403A9B20052BBAC /* ListTwoColumnCompareChanges.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA3320F32403A9B20052BBAC /* ListTwoColumnCompareChanges.swift */; };
|
||||
AA3320F62403A9D10052BBAC /* ListTwoColumnCompareChangesModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA3320F52403A9D10052BBAC /* ListTwoColumnCompareChangesModel.swift */; };
|
||||
C003506123AA94CD00B6AC29 /* Button.swift in Sources */ = {isa = PBXBuildFile; fileRef = C003506023AA94CD00B6AC29 /* Button.swift */; };
|
||||
C07065C42395677300FBF997 /* Link.swift in Sources */ = {isa = PBXBuildFile; fileRef = C07065C32395677300FBF997 /* Link.swift */; };
|
||||
C695A67F23C9830600BFB94E /* UnOrderedListModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = C695A67E23C9830600BFB94E /* UnOrderedListModel.swift */; };
|
||||
@ -461,6 +463,8 @@
|
||||
94FB966123D797DA003D482B /* MFTextButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MFTextButton.m; sourceTree = "<group>"; };
|
||||
AA11A41E23F15D3100D7962F /* ListRightVariablePayments.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ListRightVariablePayments.swift; sourceTree = "<group>"; };
|
||||
AA11A42023F15D7000D7962F /* ListRightVariablePaymentsModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ListRightVariablePaymentsModel.swift; sourceTree = "<group>"; };
|
||||
AA3320F32403A9B20052BBAC /* ListTwoColumnCompareChanges.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ListTwoColumnCompareChanges.swift; sourceTree = "<group>"; };
|
||||
AA3320F52403A9D10052BBAC /* ListTwoColumnCompareChangesModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ListTwoColumnCompareChangesModel.swift; sourceTree = "<group>"; };
|
||||
C003506023AA94CD00B6AC29 /* Button.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Button.swift; sourceTree = "<group>"; };
|
||||
C07065C32395677300FBF997 /* Link.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Link.swift; sourceTree = "<group>"; };
|
||||
C695A67E23C9830600BFB94E /* UnOrderedListModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UnOrderedListModel.swift; sourceTree = "<group>"; };
|
||||
@ -1007,6 +1011,8 @@
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
D22B38ED23F4E11100490EF6 /* ThreeColumn */,
|
||||
AA3320F32403A9B20052BBAC /* ListTwoColumnCompareChanges.swift */,
|
||||
AA3320F52403A9D10052BBAC /* ListTwoColumnCompareChangesModel.swift */,
|
||||
);
|
||||
path = SectionDividers;
|
||||
sourceTree = "<group>";
|
||||
@ -1775,6 +1781,7 @@
|
||||
94C2D9842386F3F80006CF46 /* LabelAttributeModel.swift in Sources */,
|
||||
944589212385D6E900DE9FD4 /* DashLineModel.swift in Sources */,
|
||||
D2E2A99623D8CF85000B42E6 /* HeadlineBodyLinkToggleModel.swift in Sources */,
|
||||
AA3320F42403A9B20052BBAC /* ListTwoColumnCompareChanges.swift in Sources */,
|
||||
C6FA7D5323C77A4A00A3614A /* StringAndMoleculeStack.swift in Sources */,
|
||||
94AF4A3F23E9D13900676048 /* MFCaretButton.m in Sources */,
|
||||
D29DF27A21E7A533003B2FB9 /* MVMCoreUISession.m in Sources */,
|
||||
@ -1787,6 +1794,7 @@
|
||||
D2A6390522CBCE160052ED1F /* MoleculeCollectionViewCell.swift in Sources */,
|
||||
D2A6390122CBB1820052ED1F /* Carousel.swift in Sources */,
|
||||
D29DF2C721E7BF57003B2FB9 /* MFTabBarInteractor.m in Sources */,
|
||||
AA3320F62403A9D10052BBAC /* ListTwoColumnCompareChangesModel.swift in Sources */,
|
||||
C7F8012123E8303200396FBD /* ListRVWheel.swift in Sources */,
|
||||
D29DF29521E7ADB8003B2FB9 /* ProgrammaticScrollViewController.m in Sources */,
|
||||
D2FB151B23A2B65B00C20E10 /* MoleculeContainer.swift in Sources */,
|
||||
|
||||
@ -0,0 +1,135 @@
|
||||
//
|
||||
// ListTwoColumnCompareChanges.swift
|
||||
// MVMCoreUI
|
||||
//
|
||||
// Created by Lekshmi S on 24/02/20.
|
||||
// Copyright © 2020 Verizon Wireless. All rights reserved.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
|
||||
@objcMembers open class ListTwoColumnCompareChanges: TableViewCell {
|
||||
|
||||
//-------------------------------------------------------
|
||||
// MARK: - Outlets
|
||||
//-------------------------------------------------------
|
||||
|
||||
let leftHeadline1 = Label.commonLabelB1(true)
|
||||
let leftHeadline2 = Label.commonLabelB1(true)
|
||||
let leftHeadline3 = Label.commonLabelB1(true)
|
||||
let leftBody = Label.commonLabelB2(true)
|
||||
let leftLink = Link()
|
||||
let rightHeadline1 = Label.commonLabelB1(true)
|
||||
let rightHeadline2 = Label.commonLabelB1(true)
|
||||
let rightHeadline3 = Label.commonLabelB1(true)
|
||||
let rightBody = Label.commonLabelB2(true)
|
||||
let rightLink = Link()
|
||||
let containerView = View()
|
||||
let leftVerticalStack = UIStackView()
|
||||
let rightVerticalStack = UIStackView()
|
||||
|
||||
//-------------------------------------------------------
|
||||
// MARK: - View Lifecycle
|
||||
//-------------------------------------------------------
|
||||
|
||||
open override func updateView(_ size: CGFloat) {
|
||||
super.updateView(size)
|
||||
containerView.updateView(size)
|
||||
leftHeadline1.updateView(size)
|
||||
leftHeadline2.updateView(size)
|
||||
leftHeadline3.updateView(size)
|
||||
leftBody.updateView(size)
|
||||
leftLink.updateView(size)
|
||||
rightHeadline1.updateView(size)
|
||||
rightHeadline2.updateView(size)
|
||||
rightHeadline3.updateView(size)
|
||||
rightBody.updateView(size)
|
||||
rightLink.updateView(size)
|
||||
}
|
||||
|
||||
open override func setupView() {
|
||||
super.setupView()
|
||||
guard leftHeadline1.superview == nil else {
|
||||
return
|
||||
}
|
||||
containerView.translatesAutoresizingMaskIntoConstraints = false
|
||||
leftVerticalStack.translatesAutoresizingMaskIntoConstraints = false
|
||||
rightVerticalStack.translatesAutoresizingMaskIntoConstraints = false
|
||||
leftVerticalStack.addArrangedSubview(leftHeadline1)
|
||||
leftVerticalStack.addArrangedSubview(leftHeadline2)
|
||||
leftVerticalStack.addArrangedSubview(leftHeadline3)
|
||||
leftVerticalStack.addArrangedSubview(leftBody)
|
||||
leftVerticalStack.addArrangedSubview(leftLink)
|
||||
leftVerticalStack.axis = .vertical
|
||||
leftVerticalStack.alignment = .leading
|
||||
rightVerticalStack.addArrangedSubview(rightHeadline1)
|
||||
rightVerticalStack.addArrangedSubview(rightHeadline2)
|
||||
rightVerticalStack.addArrangedSubview(rightHeadline3)
|
||||
rightVerticalStack.addArrangedSubview(rightBody)
|
||||
rightVerticalStack.addArrangedSubview(rightLink)
|
||||
rightVerticalStack.axis = .vertical
|
||||
rightVerticalStack.alignment = .leading
|
||||
containerView.addSubview(leftVerticalStack)
|
||||
containerView.addSubview(rightVerticalStack)
|
||||
|
||||
//containerView constraints
|
||||
contentView.addSubview(containerView)
|
||||
containerHelper.constrainView(containerView)
|
||||
|
||||
//leftVerticalStack constraints
|
||||
leftVerticalStack.leadingAnchor.constraint(equalTo: containerView.leadingAnchor).isActive = true
|
||||
leftVerticalStack.topAnchor.constraint(equalTo: containerView.topAnchor).isActive = true
|
||||
leftVerticalStack.widthAnchor.constraint(equalTo: containerView.widthAnchor, multiplier: 0.45).isActive = true
|
||||
containerView.bottomAnchor.constraint(greaterThanOrEqualTo: leftVerticalStack.bottomAnchor).isActive = true
|
||||
leftVerticalStack.setCustomSpacing(5.0, after: leftHeadline1)
|
||||
leftVerticalStack.setCustomSpacing(5.0, after: leftHeadline2)
|
||||
leftVerticalStack.setCustomSpacing(5.0, after: leftBody)
|
||||
|
||||
//rightVerticalStack constraints
|
||||
rightVerticalStack.topAnchor.constraint(equalTo: leftVerticalStack.topAnchor).isActive = true
|
||||
rightVerticalStack.leadingAnchor.constraint(equalTo: leftVerticalStack.trailingAnchor).isActive = true
|
||||
rightVerticalStack.trailingAnchor.constraint(equalTo: containerView.trailingAnchor).isActive = true
|
||||
rightVerticalStack.widthAnchor.constraint(equalTo: containerView.widthAnchor, multiplier: 0.45).isActive = true
|
||||
containerView.bottomAnchor.constraint(greaterThanOrEqualTo: rightVerticalStack.bottomAnchor).isActive = true
|
||||
rightVerticalStack.setCustomSpacing(5.0, after: rightHeadline1)
|
||||
rightVerticalStack.setCustomSpacing(5.0, after: rightHeadline2)
|
||||
rightVerticalStack.setCustomSpacing(5.0, after: rightBody)
|
||||
}
|
||||
|
||||
//------------------------------------------------------
|
||||
// MARK: - Molecule
|
||||
//------------------------------------------------------
|
||||
|
||||
public override func setWithModel(_ model: MoleculeModelProtocol?, _ delegateObject: MVMCoreUIDelegateObject?, _ additionalData: [AnyHashable : Any]?) {
|
||||
super.setWithModel(model, delegateObject, additionalData)
|
||||
guard let model = model as? ListTwoColumnCompareChangesModel else { return }
|
||||
leftHeadline1.setWithModel(model.leftHeadline1, delegateObject, additionalData)
|
||||
leftHeadline2.setWithModel(model.leftHeadline2, delegateObject, additionalData)
|
||||
leftHeadline3.setWithModel(model.leftHeadline3, delegateObject, additionalData)
|
||||
leftBody.setWithModel(model.leftBody, delegateObject, additionalData)
|
||||
leftLink.setWithModel(model.leftLink, delegateObject, additionalData)
|
||||
rightHeadline1.setWithModel(model.rightHeadline1, delegateObject, additionalData)
|
||||
rightHeadline2.setWithModel(model.rightHeadline2, delegateObject, additionalData)
|
||||
rightHeadline3.setWithModel(model.rightHeadline3, delegateObject, additionalData)
|
||||
rightBody.setWithModel(model.rightBody, delegateObject, additionalData)
|
||||
rightLink.setWithModel(model.rightLink, delegateObject, additionalData)
|
||||
}
|
||||
|
||||
open override func reset() {
|
||||
super.reset()
|
||||
leftHeadline1.reset()
|
||||
leftHeadline2.reset()
|
||||
leftHeadline3.reset()
|
||||
leftBody.reset()
|
||||
leftLink.reset()
|
||||
rightHeadline1.reset()
|
||||
rightHeadline2.reset()
|
||||
rightHeadline3.reset()
|
||||
rightBody.reset()
|
||||
rightLink.reset()
|
||||
}
|
||||
|
||||
public override class func estimatedHeight(forRow molecule: MoleculeModelProtocol?, delegateObject: MVMCoreUIDelegateObject?) -> CGFloat {
|
||||
return 121
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,83 @@
|
||||
//
|
||||
// ListTwoColumnCompareChangesModel.swift
|
||||
// MVMCoreUI
|
||||
//
|
||||
// Created by Lekshmi S on 24/02/20.
|
||||
// Copyright © 2020 Verizon Wireless. All rights reserved.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
|
||||
public class ListTwoColumnCompareChangesModel: ListItemModel, MoleculeModelProtocol {
|
||||
|
||||
public static var identifier: String = "list2CCmpr1"
|
||||
public var leftHeadline1: LabelModel
|
||||
public var leftHeadline2: LabelModel
|
||||
public var leftHeadline3: LabelModel
|
||||
public var leftBody: LabelModel
|
||||
public var leftLink: LinkModel
|
||||
public var rightHeadline1: LabelModel
|
||||
public var rightHeadline2: LabelModel
|
||||
public var rightHeadline3: LabelModel
|
||||
public var rightBody: LabelModel
|
||||
public var rightLink: LinkModel
|
||||
|
||||
public init(leftHeadline1: LabelModel, leftHeadline2: LabelModel, leftHeadline3: LabelModel, leftBody: LabelModel, leftLink: LinkModel, rightHeadline1: LabelModel, rightHeadline2: LabelModel, rightHeadline3: LabelModel, rightBody: LabelModel, rightLink: LinkModel) {
|
||||
self.leftHeadline1 = leftHeadline1
|
||||
self.leftHeadline2 = leftHeadline2
|
||||
self.leftHeadline3 = leftHeadline3
|
||||
self.leftBody = leftBody
|
||||
self.leftLink = leftLink
|
||||
self.rightHeadline1 = rightHeadline1
|
||||
self.rightHeadline2 = rightHeadline2
|
||||
self.rightHeadline3 = rightHeadline3
|
||||
self.rightBody = rightBody
|
||||
self.rightLink = rightLink
|
||||
super.init()
|
||||
}
|
||||
|
||||
private enum CodingKeys: String, CodingKey {
|
||||
case moleculeName
|
||||
case leftHeadline1
|
||||
case leftHeadline2
|
||||
case leftHeadline3
|
||||
case leftBody
|
||||
case leftLink
|
||||
case rightHeadline1
|
||||
case rightHeadline2
|
||||
case rightHeadline3
|
||||
case rightBody
|
||||
case rightLink
|
||||
}
|
||||
|
||||
required public init(from decoder: Decoder) throws {
|
||||
let typeContainer = try decoder.container(keyedBy: CodingKeys.self)
|
||||
leftHeadline1 = try typeContainer.decode(LabelModel.self, forKey: .leftHeadline1)
|
||||
leftHeadline2 = try typeContainer.decode(LabelModel.self, forKey: .leftHeadline2)
|
||||
leftHeadline3 = try typeContainer.decode(LabelModel.self, forKey: .leftHeadline3)
|
||||
leftBody = try typeContainer.decode(LabelModel.self, forKey: .leftBody)
|
||||
leftLink = try typeContainer.decode(LinkModel.self, forKey: .leftLink)
|
||||
rightHeadline1 = try typeContainer.decode(LabelModel.self, forKey: .rightHeadline1)
|
||||
rightHeadline2 = try typeContainer.decode(LabelModel.self, forKey: .rightHeadline2)
|
||||
rightHeadline3 = try typeContainer.decode(LabelModel.self, forKey: .rightHeadline3)
|
||||
rightBody = try typeContainer.decode(LabelModel.self, forKey: .rightBody)
|
||||
rightLink = try typeContainer.decode(LinkModel.self, forKey: .rightLink)
|
||||
try super.init(from: decoder)
|
||||
}
|
||||
|
||||
public override func encode(to encoder: Encoder) throws {
|
||||
try super.encode(to: encoder)
|
||||
var container = encoder.container(keyedBy: CodingKeys.self)
|
||||
try container.encode(moleculeName, forKey: .moleculeName)
|
||||
try container.encode(leftHeadline1, forKey: .leftHeadline1)
|
||||
try container.encode(leftHeadline2, forKey: .leftHeadline2)
|
||||
try container.encode(leftHeadline3, forKey: .leftHeadline3)
|
||||
try container.encode(leftBody, forKey: .leftBody)
|
||||
try container.encode(leftLink, forKey: .leftLink)
|
||||
try container.encode(rightHeadline1, forKey: .rightHeadline1)
|
||||
try container.encode(rightHeadline2, forKey: .rightHeadline2)
|
||||
try container.encode(rightHeadline3, forKey: .rightHeadline3)
|
||||
try container.encode(rightBody, forKey: .rightBody)
|
||||
try container.encode(rightLink, forKey: .rightLink)
|
||||
}
|
||||
}
|
||||
@ -55,6 +55,7 @@ import Foundation
|
||||
MVMCoreUIMoleculeMappingObject.shared()?.register(viewClass: StringAndMoleculeView.self, viewModelClass: StringAndMoleculeModel.self)
|
||||
MVMCoreUIMoleculeMappingObject.shared()?.register(viewClass: ImageHeadlineBody.self, viewModelClass: ImageHeadlineBodyModel.self)
|
||||
MVMCoreUIMoleculeMappingObject.shared()?.register(viewClass: ListThreeColumnPlanDataDivider.self, viewModelClass: ListThreeColumnPlanDataDividerModel.self)
|
||||
MVMCoreUIMoleculeMappingObject.shared()?.register(viewClass: ListTwoColumnCompareChanges.self, viewModelClass: ListTwoColumnCompareChangesModel.self)
|
||||
|
||||
|
||||
// Vertical Combination Molecules
|
||||
|
||||
Loading…
Reference in New Issue
Block a user