mvm_core_ui/MVMCoreUI/Molecules/RadioButtonSelectionHelper.swift
Suresh, Kamlesh 3ec024ff27 changes
2020-03-03 20:32:57 -05:00

50 lines
1.7 KiB
Swift

//
// 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?
private var selectedRadioButton: RadioButton?
private var fieldGroupName: String?
init(_ fieldKey: String?) {
self.fieldKey = fieldKey
}
public static func setupForRadioButtonGroup(_ radioButtonModel: RadioButtonModel, formValidator: FormValidator?) -> RadioButtonSelectionHelper {
guard let groupName = radioButtonModel.radioGroupName ?? radioButtonModel.fieldKey,
let formValidator = formValidator else {
return RadioButtonSelectionHelper(radioButtonModel.fieldKey)
}
let radioButtonSelectionHelper = formValidator.radioButtonsModelByGroup[groupName] ?? RadioButtonSelectionHelper(radioButtonModel.fieldKey)
radioButtonSelectionHelper.fieldGroupName = radioButtonModel.radioGroupName
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() -> Any? {
return selectedRadioButton?.formFieldValue()
}
}