// // RadioButtonModel.swift // MVMCoreUI // // Created by Suresh, Kamlesh on 5/14/19. // Copyright © 2019 Verizon Wireless. All rights reserved. // import Foundation import UIKit @objcMembers public class RadioButtonSelectionHelper: FormFieldProtocol { public var fieldKey: String? public var groupName: String? = FormValidator.defaultGroupName private var selectedRadioButton: RadioButton? private var fieldGroupName: String? public var baseValue: AnyHashable? init(_ fieldKey: String?) { self.fieldKey = fieldKey } public static func setupForRadioButtonGroup(_ radioButtonModel: RadioButtonModel, formValidator: FormValidator?) -> RadioButtonSelectionHelper { guard let groupName = radioButtonModel.fieldKey, let formValidator = formValidator else { return RadioButtonSelectionHelper(radioButtonModel.fieldKey) } let radioButtonSelectionHelper = formValidator.radioButtonsModelByGroup[groupName] ?? RadioButtonSelectionHelper(radioButtonModel.fieldKey) radioButtonSelectionHelper.fieldGroupName = radioButtonModel.fieldKey formValidator.radioButtonsModelByGroup[groupName] = radioButtonSelectionHelper return radioButtonSelectionHelper } public func selected(_ radioButton: RadioButton) { selectedRadioButton?.isSelected = false selectedRadioButton = radioButton selectedRadioButton?.isSelected = true } } // MARK: - FormValidationFormFieldProtocol extension RadioButtonSelectionHelper { public func formFieldGroupName() -> String? { return selectedRadioButton?.formFieldGroupName() ?? self.fieldGroupName } public func formFieldValue() -> AnyHashable? { return selectedRadioButton?.formFieldValue() } }