small changes

This commit is contained in:
Pfeil, Scott Robert 2020-03-16 16:47:39 -04:00
parent 87fb08fb72
commit 2c6f9667a5
9 changed files with 34 additions and 25 deletions

View File

@ -15,7 +15,7 @@
011B58F223A2AE2C0085F53C /* DropDownListItemModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 011B58F123A2AE2C0085F53C /* DropDownListItemModel.swift */; };
011D958524042432000E3791 /* RulesProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 011D958424042432000E3791 /* RulesProtocol.swift */; };
011D958724042492000E3791 /* FormFieldProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 011D958624042492000E3791 /* FormFieldProtocol.swift */; };
011D95892404249B000E3791 /* FormProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 011D95882404249B000E3791 /* FormProtocol.swift */; };
011D95892404249B000E3791 /* FormHolderModelProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 011D95882404249B000E3791 /* FormHolderModelProtocol.swift */; };
011D959B240451E3000E3791 /* RuleRequiredModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 011D959A240451E3000E3791 /* RuleRequiredModel.swift */; };
011D959D2404536F000E3791 /* RuleAnyValueChangedModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 011D959C2404536F000E3791 /* RuleAnyValueChangedModel.swift */; };
011D959F240453A1000E3791 /* RuleAllValueChangedModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 011D959E240453A1000E3791 /* RuleAllValueChangedModel.swift */; };
@ -197,6 +197,7 @@
D22D1F562204CE5D0077CEC0 /* MVMCoreUIStackableViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = D22D1F542204CE5D0077CEC0 /* MVMCoreUIStackableViewController.h */; settings = {ATTRIBUTES = (Public, ); }; };
D22D1F572204CE5D0077CEC0 /* MVMCoreUIStackableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D22D1F552204CE5D0077CEC0 /* MVMCoreUIStackableViewController.m */; };
D22D8393241C27B100D3DF69 /* TemplateModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = D22D8392241C27B100D3DF69 /* TemplateModel.swift */; };
D236E5B7242007C500C38625 /* MVMControllerModelProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = D236E5B6242007C500C38625 /* MVMControllerModelProtocol.swift */; };
D243859923A16B1800332775 /* Container.swift in Sources */ = {isa = PBXBuildFile; fileRef = D243859823A16B1800332775 /* Container.swift */; };
D256E9932412880000360572 /* Header.swift in Sources */ = {isa = PBXBuildFile; fileRef = D256E9922412880000360572 /* Header.swift */; };
D260105323CEA61600764D80 /* ToggleModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = D260105223CEA61600764D80 /* ToggleModel.swift */; };
@ -393,7 +394,7 @@
011B58F123A2AE2C0085F53C /* DropDownListItemModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DropDownListItemModel.swift; sourceTree = "<group>"; };
011D958424042432000E3791 /* RulesProtocol.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RulesProtocol.swift; sourceTree = "<group>"; };
011D958624042492000E3791 /* FormFieldProtocol.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FormFieldProtocol.swift; sourceTree = "<group>"; };
011D95882404249B000E3791 /* FormProtocol.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FormProtocol.swift; sourceTree = "<group>"; };
011D95882404249B000E3791 /* FormHolderModelProtocol.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FormHolderModelProtocol.swift; sourceTree = "<group>"; };
011D959A240451E3000E3791 /* RuleRequiredModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RuleRequiredModel.swift; sourceTree = "<group>"; };
011D959C2404536F000E3791 /* RuleAnyValueChangedModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RuleAnyValueChangedModel.swift; sourceTree = "<group>"; };
011D959E240453A1000E3791 /* RuleAllValueChangedModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RuleAllValueChangedModel.swift; sourceTree = "<group>"; };
@ -565,6 +566,7 @@
D22D1F542204CE5D0077CEC0 /* MVMCoreUIStackableViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MVMCoreUIStackableViewController.h; sourceTree = "<group>"; };
D22D1F552204CE5D0077CEC0 /* MVMCoreUIStackableViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MVMCoreUIStackableViewController.m; sourceTree = "<group>"; };
D22D8392241C27B100D3DF69 /* TemplateModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TemplateModel.swift; sourceTree = "<group>"; };
D236E5B6242007C500C38625 /* MVMControllerModelProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MVMControllerModelProtocol.swift; sourceTree = "<group>"; };
D243859823A16B1800332775 /* Container.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Container.swift; sourceTree = "<group>"; };
D256E9922412880000360572 /* Header.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Header.swift; sourceTree = "<group>"; };
D260105223CEA61600764D80 /* ToggleModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ToggleModel.swift; sourceTree = "<group>"; };
@ -797,7 +799,7 @@
isa = PBXGroup;
children = (
011D958A24042794000E3791 /* Rules */,
011D95882404249B000E3791 /* FormProtocol.swift */,
011D95882404249B000E3791 /* FormHolderModelProtocol.swift */,
011D95AC2406BB57000E3791 /* FormHolderProtocol.swift */,
011D95AA2405C553000E3791 /* FormItemProtocol.swift */,
011D958624042492000E3791 /* FormFieldProtocol.swift */,
@ -1306,6 +1308,7 @@
D29DF10F21E67A7D003B2FB9 /* BaseControllers */ = {
isa = PBXGroup;
children = (
D236E5B6242007C500C38625 /* MVMControllerModelProtocol.swift */,
D29DF2CC21E7C104003B2FB9 /* MFLoadingViewController.h */,
D29DF2CD21E7C104003B2FB9 /* MFLoadingViewController.m */,
D2A5146A2214905000345BFB /* ThreeLayerViewController.swift */,
@ -1815,6 +1818,7 @@
01004F3022721C3800991ECC /* RadioButton.swift in Sources */,
D268C70E238C22D7007F2C1C /* DropDownFilterTableViewCell.swift in Sources */,
017BEB3C2361EA1D0024EF95 /* MFViewController+Model.swift in Sources */,
D236E5B7242007C500C38625 /* MVMControllerModelProtocol.swift in Sources */,
D282AAB4223FDDAE00C46919 /* MFLoadImageView.swift in Sources */,
D29DF11721E6805F003B2FB9 /* UIColor+MFConvenience.m in Sources */,
D2B18B7F2360913400A9AEDC /* Control.swift in Sources */,
@ -2025,7 +2029,7 @@
943784F6236B77BB006A1E82 /* GraphViewAnimationHandler.swift in Sources */,
011D95A1240453D0000E3791 /* RuleEqualsModel.swift in Sources */,
D29DF2AA21E7B2F9003B2FB9 /* MVMCoreUIConstants.m in Sources */,
011D95892404249B000E3791 /* FormProtocol.swift in Sources */,
011D95892404249B000E3791 /* FormHolderModelProtocol.swift in Sources */,
948DB67E2326DCD90011F916 /* MultiProgress.swift in Sources */,
013F801923FB4A8E00AD8013 /* UIContentMode+Extension.swift in Sources */,
D2A5146122121FBF00345BFB /* MoleculeStackTemplate.swift in Sources */,

View File

@ -0,0 +1,13 @@
//
// MVMControllerModelProtocol.swift
// MVMCoreUI
//
// Created by Scott Pfeil on 3/16/20.
// Copyright © 2020 Verizon Wireless. All rights reserved.
//
import Foundation
public protocol MVMControllerModelProtocol: TemplateModelProtocol, FormHolderModelProtocol {
}

View File

@ -11,7 +11,7 @@ import UIKit
open class ViewController: UIViewController, MVMCoreViewControllerProtocol, MVMCoreViewManagerViewControllerProtocol, MoleculeDelegateProtocol, FormHolderProtocol, MVMCoreActionDelegateProtocol, UITextFieldDelegate, UITextViewDelegate {
public var pageType: String?
public var loadObject: MVMCoreLoadObject?
public var pageModel: PageModelProtocol?
public var pageModel: MVMControllerModelProtocol?
/// Set if this page is containted in a manager.
public var manager: (UIViewController & MVMCoreViewManagerProtocol)?
@ -123,6 +123,7 @@ open class ViewController: UIViewController, MVMCoreViewControllerProtocol, MVMC
}
open func parsePageJSON() throws {
// Convert legacy to navigation model.
if pageModel?.navigationItem == nil {
let navigationModel = NavigationItemModel()
if navigationModel.title == nil {
@ -136,9 +137,8 @@ open class ViewController: UIViewController, MVMCoreViewControllerProtocol, MVMC
}
pageModel?.navigationItem = navigationModel
}
if self.formValidator == nil,
let model = pageModel as? FormHolderModelProtocol {
let rules = model.formRules
if self.formValidator == nil {
let rules = pageModel?.formRules
self.formValidator = FormValidator(rules)
}
}

View File

@ -1,14 +1,14 @@
//
// Validatable.swift
// FormHolderModelProtocol.swift
// MVMCoreUI
//
// Created by Suresh, Kamlesh on 2/5/20.
// Copyright © 2020 Verizon Wireless. All rights reserved.
//
// A protocol for the model of the delegate object that holds the form validator. The rules are stored in the model.
import Foundation
//Protocol for Validation
public protocol FormHolderModelProtocol: class {
public protocol FormHolderModelProtocol {
var formRules: [FormGroupRule]? { get set }
}

View File

@ -5,11 +5,10 @@
// Created by Suresh, Kamlesh on 2/26/20.
// Copyright © 2020 Verizon Wireless. All rights reserved.
//
// A delegate object that holds the form validator.
import Foundation
//Protocol for Validation
public protocol FormHolderProtocol: NSObjectProtocol {
var formValidator: FormValidator? { get set }
}

View File

@ -9,7 +9,7 @@
import Foundation
public protocol TemplateModelProtocol: PageModelProtocol, ModelProtocol, FormHolderModelProtocol {
public protocol TemplateModelProtocol: PageModelProtocol, ModelProtocol {
var template: String { get }
}

View File

@ -8,7 +8,7 @@
import Foundation
@objcMembers public class TemplateModel: TemplateModelProtocol {
@objcMembers public class TemplateModel: MVMControllerModelProtocol {
public class var identifier: String {
return ""
}

View File

@ -9,22 +9,18 @@
import Foundation
public protocol TemplateProtocol: FormHolderProtocol {
public protocol TemplateProtocol: class {
associatedtype TemplateModel: TemplateModelProtocol
var templateModel: TemplateModel? { get set }
}
public extension TemplateProtocol where Self: ViewController {
public extension TemplateProtocol where Self: ViewController {
func parseTemplate(json: [AnyHashable: Any]?) throws {
guard let pageJSON = json else { return }
let data = try JSONSerialization.data(withJSONObject: pageJSON)
let decoder = JSONDecoder()
let templateModel = try decoder.decode(TemplateModel.self, from: data)
self.templateModel = templateModel
if self.formValidator == nil {
let rules = templateModel.formRules
self.formValidator = FormValidator(rules)
}
self.pageModel = templateModel as? MVMControllerModelProtocol
}
}

View File

@ -9,9 +9,6 @@
import UIKit
@objcMembers open class ThreeLayerTemplate: ThreeLayerViewController, TemplateProtocol {
public func validate() {
}
public var templateModel: ThreeLayerPageTemplateModel?
open override func parsePageJSON() throws {