From 975f3fa012a0e47652ce8982993968c75140dc4a Mon Sep 17 00:00:00 2001 From: Kevin G Christiano Date: Thu, 17 Jun 2021 16:54:25 -0400 Subject: [PATCH] select all behavior. --- .../Behaviors/SelectAllBoxesBehavior.swift | 29 ++++++++++++------- .../OtherHandlers/CoreUIModelMapping.swift | 1 + 2 files changed, 19 insertions(+), 11 deletions(-) diff --git a/MVMCoreUI/Behaviors/SelectAllBoxesBehavior.swift b/MVMCoreUI/Behaviors/SelectAllBoxesBehavior.swift index 70e5fdf0..66720d1e 100644 --- a/MVMCoreUI/Behaviors/SelectAllBoxesBehavior.swift +++ b/MVMCoreUI/Behaviors/SelectAllBoxesBehavior.swift @@ -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) + } } } diff --git a/MVMCoreUI/OtherHandlers/CoreUIModelMapping.swift b/MVMCoreUI/OtherHandlers/CoreUIModelMapping.swift index c77bb77e..437b2e01 100644 --- a/MVMCoreUI/OtherHandlers/CoreUIModelMapping.swift +++ b/MVMCoreUI/OtherHandlers/CoreUIModelMapping.swift @@ -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() {