select all behavior.

This commit is contained in:
Kevin G Christiano 2021-06-17 16:54:25 -04:00
parent 97ecf292dd
commit 975f3fa012
2 changed files with 19 additions and 11 deletions

View File

@ -10,10 +10,10 @@
public class SelectAllBoxesBehaviorModel: PageBehaviorModelProtocol {
public class var identifier: String { "selectAllBoxesBehavior" }
public var shouldAllowMultipleInstances: Bool { false }
public init() { }
}
public class SelectAllBoxesBehavior: PageCustomActionHandlerBehavior {
//--------------------------------------------------
// MARK: - Active Model
@ -42,19 +42,26 @@ public class SelectAllBoxesBehavior: PageCustomActionHandlerBehavior {
guard actionType == "selectAllBoxes" else { return false }
// Update the model. play -> pause OR pause -> play
if true {
} else {
}
// TODO: Tell Template to update this cell (needs to be built). Currently it updates all cells.
let currentVC = MVMCoreUIUtility.getCurrentVisibleController()
traverseAndSelectCheckboxes(view: currentVC.view)
// TODO: A) select all boxes and the change the nav button title to "deselect all"
// TODO: B) deselect all boxes and change nav nutton title to "select all"
return true
}
public func onPageHidden(_ delegateObject: MVMCoreUIDelegateObject?) {
// TODO: Stop player
private func traverseAndSelectCheckboxes(view: UIView) {
if let checkbox = view as? Checkbox {
checkbox.isSelected = true
return
}
for subview in view.subviews {
traverseAndSelectCheckboxes(view: subview)
}
}
}

View File

@ -225,6 +225,7 @@ open class CoreUIModelMapping: ModelMapping {
try? ModelRegistry.register(handler: ScreenBrightnessModifierBehavior.self, for: ScreenBrightnessModifierBehaviorModel.self)
try? ModelRegistry.register(handler: PageGetContactBehavior.self, for: PageGetContactBehaviorModel.self)
try? ModelRegistry.register(handler: PagePlayAudioBehavior.self, for: PagePlayAudioBehaviorModel.self)
try? ModelRegistry.register(handler: SelectAllBoxesBehavior.self, for: SelectAllBoxesBehaviorModel.self)
}
open override class func registerActions() {