50 lines
1.7 KiB
Swift
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()
|
|
}
|
|
}
|