updated protocol

Signed-off-by: Matt Bruce <matt.bruce@verizon.com>
This commit is contained in:
Matt Bruce 2022-09-08 17:06:07 -05:00
parent 57853b6145
commit d00a219ebb
6 changed files with 6 additions and 8 deletions

View File

@ -8,7 +8,7 @@
import Foundation
import UIKit
public class SelectorGroupHandlerBase<GroupModelType: SelectorGroupModelable, ModelHandlerType: ModelHandlerControl>: Control<GroupModelType>, Changable where GroupModelType.SelectorModelType == ModelHandlerType.ModelType {
public class SelectorGroupHandlerBase<GroupModelType: SelectorGroupModelable, ModelHandlerType: ModelHandlerable<GroupModelType.SelectorModelType> & UIControl>: Control<GroupModelType>, Changable {
//--------------------------------------------------
// MARK: - Public Properties

View File

@ -23,7 +23,7 @@ public class CheckboxGroup: CheckboxGroupBase<DefaultCheckboxGroupModel, Checkbo
}
}
public class CheckboxGroupBase<GroupModelType: CheckboxGroupModel, ModelHandlerType: ModelHandlerControl>: SelectorGroupHandlerBase<GroupModelType, ModelHandlerType> where GroupModelType.SelectorModelType == ModelHandlerType.ModelType {
public class CheckboxGroupBase<GroupModelType: CheckboxGroupModel, ModelHandlerType: ModelHandlerable<GroupModelType.SelectorModelType> & UIControl>: SelectorGroupHandlerBase<GroupModelType, ModelHandlerType> {
//--------------------------------------------------
// MARK: - Public Properties

View File

@ -31,7 +31,7 @@ public class RadioBoxGroup: RadioBoxGroupBase<DefaultRadioBoxGroupModel, RadioBo
}
}
public class RadioBoxGroupBase<GroupModelType: RadioBoxGroupModel, ModelHandlerType: ModelHandlerControl>: SelectorGroupSelectedHandlerBase<GroupModelType, ModelHandlerType> where GroupModelType.SelectorModelType == ModelHandlerType.ModelType {
public class RadioBoxGroupBase<GroupModelType: RadioBoxGroupModel, ModelHandlerType: ModelHandlerable<GroupModelType.SelectorModelType> & UIControl>: SelectorGroupSelectedHandlerBase<GroupModelType, ModelHandlerType> {
//--------------------------------------------------
// MARK: - Private Properties

View File

@ -34,7 +34,7 @@ public class RadioButtonGroup: RadioButtonGroupBase<DefaultRadioButtonGroupModel
}
}
public class RadioButtonGroupBase<GroupModelType: RadioButtonGroupModel, ModelHandlerType: ModelHandlerControl>: SelectorGroupSelectedHandlerBase<GroupModelType, ModelHandlerType> where GroupModelType.SelectorModelType == ModelHandlerType.ModelType {
public class RadioButtonGroupBase<GroupModelType: RadioButtonGroupModel, ModelHandlerType: ModelHandlerable<GroupModelType.SelectorModelType> & UIControl>: SelectorGroupSelectedHandlerBase<GroupModelType, ModelHandlerType> {
//--------------------------------------------------
// MARK: - Public Properties

View File

@ -32,7 +32,7 @@ public class RadioSwatchGroup: RadioSwatchGroupBase<DefaultRadioSwatchGroupModel
}
public class RadioSwatchGroupBase<GroupModelType: RadioSwatchGroupModel, ModelHandlerType: ModelHandlerControl>: Control<GroupModelType>, Changable, UICollectionViewDataSource, UICollectionViewDelegateFlowLayout, UICollectionViewDelegate where GroupModelType.SelectorModelType == ModelHandlerType.ModelType {
public class RadioSwatchGroupBase<GroupModelType: RadioSwatchGroupModel, ModelHandlerType: ModelHandlerable<GroupModelType.SelectorModelType> & UIControl>: Control<GroupModelType>, Changable, UICollectionViewDataSource, UICollectionViewDelegateFlowLayout, UICollectionViewDelegate {
//--------------------------------------------------
// MARK: - Public Properties

View File

@ -9,7 +9,7 @@ import Foundation
import Combine
import UIKit
public protocol ModelHandlerable: AnyObject, Initable {
public protocol ModelHandlerable<ModelType>: AnyObject, Initable {
associatedtype ModelType: Modelable
var model: ModelType { get set }
var modelPublisher: Published<ModelType>.Publisher { get }
@ -42,5 +42,3 @@ extension ModelHandlerable {
.store(in: &subscribers)
}
}
public typealias ModelHandlerControl = ModelHandlerable & UIControl