From 712d18d123745dcd2d425851ab3ceac28afabc53 Mon Sep 17 00:00:00 2001 From: "Pfeil, Scott Robert" Date: Wed, 22 Jan 2020 11:12:07 -0500 Subject: [PATCH] Model organizing --- .../MVMCoreUIMoleculeMappingObject.m | 52 +------- .../OtherHandlers/MoleculeObjectMapping.swift | 116 +++++++++++------- 2 files changed, 76 insertions(+), 92 deletions(-) diff --git a/MVMCoreUI/OtherHandlers/MVMCoreUIMoleculeMappingObject.m b/MVMCoreUI/OtherHandlers/MVMCoreUIMoleculeMappingObject.m index b5a39119..ccaa9115 100644 --- a/MVMCoreUI/OtherHandlers/MVMCoreUIMoleculeMappingObject.m +++ b/MVMCoreUI/OtherHandlers/MVMCoreUIMoleculeMappingObject.m @@ -25,57 +25,7 @@ static dispatch_once_t onceToken; static NSMutableDictionary *mapping; dispatch_once(&onceToken, ^{ - mapping = [@{ - @"label": Label.class, - @"line": Line.class, - @"button": PrimaryButton.class, - @"link": MFTextButton.class, - @"header": HeaderView.class, - @"twoButtonView": TwoButtonView.class, - @"footer": FooterView.class, - @"caretView": CaretView.class, - @"caretLink": CaretButton.class, - @"textField": MFTextField.class, - @"dropDown": DropDown.class, - @"digitTextField": MFDigitTextField.class, - @"digitEntryField": DigitEntryField.class, - @"textEntryField": TextEntryField.class, - @"itemDropdownEntryField": ItemDropdownEntryField.class, - @"dateDropdownEntryField": DateDropdownEntryField.class, - @"checkbox": Checkbox.class, - @"checkboxLabel": CheckboxWithLabelView.class, - @"cornerLabels" : CornerLabels.class, - @"progressBar": ProgressBar.class, - @"circleProgress": GraphView.class, - @"multiProgressBar": MultiProgress.class, - @"radioButton": RadioButton.class, - @"radioButtonLabel": RadioButtonLabel.class, - @"listItem": MoleculeTableViewCell.class, - @"accordionListItem": AccordionMoleculeTableViewCell.class, - @"toggle": Toggle.class, - @"leftRightLabelView": LeftRightLabelView.class, - @"actionDetailWithImage": ActionDetailWithImage.class, - @"image": MFLoadImageView.class, - @"moduleMolecule": ModuleMolecule.class, - @"headlineBody": HeadlineBody.class, - @"carousel": Carousel.class, - @"carouselItem": MoleculeCollectionViewCell.class, - @"barsPager": MVMCoreUIPageControl.class, - @"scroller": Scroller.class, - @"imageHeadlineBody": ImageHeadlineBody.class, - @"labelToggle": LabelSwitch.class, - @"headlineBodyToggle": HeadlineBodySwitch.class, - @"headlineBodyLink": HeadlineBodyTextButton.class, - @"headlineBodyLinkToggle": HeadlineBodyTextButtonSwitch.class, - @"tabsListItem": TabsTableViewCell.class, - @"dropDownListItem": DropDownFilterTableViewCell.class, - @"headlineBodyButton": HeadlineBodyButton.class, - @"stackItem": MoleculeStackItem.class, - @"eyebrowHeadlineBodyLink": EyebrowHeadlineBodyLink.class, - @"headlineBodyCaretLinkImage" : HeadLineBodyCaretLinkImage.class, - @"doughnutChart": DoughnutChartView.class, - @"headLineBodyCaretLinkImage" : HeadLineBodyCaretLinkImage.class - } mutableCopy]; + mapping = [@{} mutableCopy]; }); return mapping; } diff --git a/MVMCoreUI/OtherHandlers/MoleculeObjectMapping.swift b/MVMCoreUI/OtherHandlers/MoleculeObjectMapping.swift index b9a847ac..308e8cf6 100644 --- a/MVMCoreUI/OtherHandlers/MoleculeObjectMapping.swift +++ b/MVMCoreUI/OtherHandlers/MoleculeObjectMapping.swift @@ -10,42 +10,14 @@ import Foundation @objcMembers public class MoleculeObjectMapping: NSObject { public static func registerObjects() { + // Stacks MVMCoreUIMoleculeMappingObject.shared()?.register(viewClass: MoleculeStackView.self, viewModelClass: MoleculeStackModel.self) MVMCoreUIMoleculeMappingObject.shared()?.register(viewClass: Stack.self, viewModelClass: StackModel.self) - MVMCoreUIMoleculeMappingObject.shared()?.register(viewClass: MoleculeStackItem.self, viewModelClass: MoleculeStackItemModel.self) - MVMCoreUIMoleculeMappingObject.shared()?.register(viewClass: StackItem.self, viewModelClass: StackItemModel.self) - MVMCoreUIMoleculeMappingObject.shared()?.register(viewClass: StringAndMoleculeView.self, viewModelClass: StringAndMoleculeModel.self) MVMCoreUIMoleculeMappingObject.shared()?.register(viewClass: UnOrderedList.self, viewModelClass: UnOrderedListModel.self) MVMCoreUIMoleculeMappingObject.shared()?.register(viewClass: NumberedList.self, viewModelClass: NumberedListModel.self) + + // Label MVMCoreUIMoleculeMappingObject.shared()?.register(viewClass: Label.self, viewModelClass: LabelModel.self) - MVMCoreUIMoleculeMappingObject.shared()?.register(viewClass: HeaderView.self, viewModelClass: HeaderModel.self) - MVMCoreUIMoleculeMappingObject.shared()?.register(viewClass: FooterView.self, viewModelClass: FooterModel.self) - MVMCoreUIMoleculeMappingObject.shared()?.register(viewClass: HeadlineBody.self, viewModelClass: HeadlineBodyModel.self) - ModelRegistry.register(MoleculeStackItemModel.self) - ModelRegistry.register(TextFieldModel.self) - ModelRegistry.register(ProgressBarModel.self) - ModelRegistry.register(MultiProgressBarModel.self) - ModelRegistry.register(CaretViewModel.self) - ModelRegistry.register(DashLineModel.self) - ModelRegistry.register(ImageViewModel.self) - ModelRegistry.register(TabsModel.self) - ModelRegistry.register(ScrollerModel.self) - ModelRegistry.register(CornerLabelsModel.self) - ModelRegistry.register(LineModel.self) - ModelRegistry.register(CircleProgressModel.self) - ModelRegistry.register(HeadlineBodyCaretLinkImageModel.self) - ModelRegistry.register(ToggleModel.self) - // buttons - ModelRegistry.register(ButtonModel.self) - ModelRegistry.register(TwoButtonViewModel.self) - ModelRegistry.register(LinkModel.self) - ModelRegistry.register(CaretLinkModel.self) - // list items - ModelRegistry.register(ListItemModel.self) - ModelRegistry.register(DropDownListItemModel.self) - ModelRegistry.register(AccordionListItemModel.self) - ModelRegistry.register(TabsListItemModel.self) - //need to move labelattributemodel to different method ModelRegistry.register(LabelAttributeFontModel.self) ModelRegistry.register(LabelAttributeColorModel.self) @@ -53,16 +25,78 @@ import Foundation ModelRegistry.register(LabelAttributeUnderlineModel.self) ModelRegistry.register(LabelAttributeStrikeThroughModel.self) ModelRegistry.register(LabelAttributeActionModel.self) + + // Buttons + MVMCoreUIMoleculeMappingObject.shared()?.register(viewClass: PrimaryButton.self, viewModelClass: ButtonModel.self) + MVMCoreUIMoleculeMappingObject.shared()?.register(viewClass: TwoButtonView.self, viewModelClass: TwoButtonViewModel.self) + MVMCoreUIMoleculeMappingObject.shared()?.register(viewClass: MFTextButton.self, viewModelClass: LinkModel.self) + MVMCoreUIMoleculeMappingObject.shared()?.register(viewClass: CaretButton.self, viewModelClass: CaretLinkModel.self) + + // Other Atoms + MVMCoreUIMoleculeMappingObject.shared()?.register(viewClass: Label.self, viewModelClass: LabelModel.self) + MVMCoreUIMoleculeMappingObject.shared()?.register(viewClass: TextEntryField.self, viewModelClass: TextFieldModel.self) + MVMCoreUIMoleculeMappingObject.shared()?.register(viewClass: DropDown.self, viewModelClass: DropDownModel.self) + MVMCoreUIMoleculeMappingObject.shared()?.register(viewClass: ProgressBar.self, viewModelClass: ProgressBarModel.self) + MVMCoreUIMoleculeMappingObject.shared()?.register(viewClass: MultiProgress.self, viewModelClass: MultiProgressBarModel.self) + MVMCoreUIMoleculeMappingObject.shared()?.register(viewClass: CaretView.self, viewModelClass: CaretViewModel.self) + MVMCoreUIMoleculeMappingObject.shared()?.register(viewClass: DashLine.self, viewModelClass: DashLineModel.self) + MVMCoreUIMoleculeMappingObject.shared()?.register(viewClass: MFLoadImageView.self, viewModelClass: ImageViewModel.self) + MVMCoreUIMoleculeMappingObject.shared()?.register(viewClass: Line.self, viewModelClass: LineModel.self) + MVMCoreUIMoleculeMappingObject.shared()?.register(viewClass: GraphView.self, viewModelClass: CircleProgressModel.self) + MVMCoreUIMoleculeMappingObject.shared()?.register(viewClass: Toggle.self, viewModelClass: ToggleModel.self) - // - //ModelRegistry.register(ModuleMoleculeModel.self) - ModelRegistry.register(LeftRightLabelModel.self) - ModelRegistry.register(CaretViewModel.self) - ModelRegistry.register(CaretLinkModel.self) - ModelRegistry.register(LabelToggleModel.self) - ModelRegistry.register(DoughnutChartModel.self) - ModelRegistry.register(NumberedListModel.self) - ModelRegistry.register(UnOrderedListModel.self) - ModelRegistry.register(HeadlineBodyToggleModel.self) + // Horizontal Combination Molecules + MVMCoreUIMoleculeMappingObject.shared()?.register(viewClass: StringAndMoleculeView.self, viewModelClass: StringAndMoleculeModel.self) + + // Vertical Combination Molecules + MVMCoreUIMoleculeMappingObject.shared()?.register(viewClass: HeadlineBody.self, viewModelClass: HeadlineBodyModel.self) + MVMCoreUIMoleculeMappingObject.shared()?.register(viewClass: HeadLineBodyCaretLinkImage.self, viewModelClass: HeadlineBodyCaretLinkImageModel.self) + + // Left Right Molecules + MVMCoreUIMoleculeMappingObject.shared()?.register(viewClass: CornerLabels.self, viewModelClass: CornerLabelsModel.self) + MVMCoreUIMoleculeMappingObject.shared()?.register(viewClass: LeftRightLabelView.self, viewModelClass: LeftRightLabelModel.self) + MVMCoreUIMoleculeMappingObject.shared()?.register(viewClass: LabelSwitch.self, viewModelClass: LabelToggleModel.self) + MVMCoreUIMoleculeMappingObject.shared()?.register(viewClass: HeadlineBodySwitch.self, viewModelClass: HeadlineBodyToggleModel.self) + + // List items + MVMCoreUIMoleculeMappingObject.shared()?.register(viewClass: MoleculeTableViewCell.self, viewModelClass: ListItemModel.self) + MVMCoreUIMoleculeMappingObject.shared()?.register(viewClass: DropDownFilterTableViewCell.self, viewModelClass: DropDownListItemModel.self) + MVMCoreUIMoleculeMappingObject.shared()?.register(viewClass: AccordionMoleculeTableViewCell.self, viewModelClass: AccordionListItemModel.self) + MVMCoreUIMoleculeMappingObject.shared()?.register(viewClass: TabsTableViewCell.self, viewModelClass: TabsListItemModel.self) + + // Other Items + MVMCoreUIMoleculeMappingObject.shared()?.register(viewClass: MoleculeStackItem.self, viewModelClass: MoleculeStackItemModel.self) + MVMCoreUIMoleculeMappingObject.shared()?.register(viewClass: StackItem.self, viewModelClass: StackItemModel.self) + MVMCoreUIMoleculeMappingObject.shared()?.register(viewClass: MoleculeCollectionViewCell.self, viewModelClass: CarouselItemModel.self) + + // Other Container Molecules + MVMCoreUIMoleculeMappingObject.shared()?.register(viewClass: HeaderView.self, viewModelClass: HeaderModel.self) + MVMCoreUIMoleculeMappingObject.shared()?.register(viewClass: FooterView.self, viewModelClass: FooterModel.self) + MVMCoreUIMoleculeMappingObject.shared()?.register(viewClass: Scroller.self, viewModelClass: ScrollerModel.self) + MVMCoreUIMoleculeMappingObject.shared()?.register(viewClass: ModuleMolecule.self, viewModelClass: ModuleMoleculeModel.self) + + // Other Molecules + MVMCoreUIMoleculeMappingObject.shared()?.register(viewClass: DoughnutChartView.self, viewModelClass: DoughnutChartModel.self) + + // Other Organisms + MVMCoreUIMoleculeMappingObject.shared()?.register(viewClass: Carousel.self, viewModelClass: CarouselModel.self) + + // TODO: Need model + MVMCoreUIMoleculeMappingObject.shared()?.moleculeMapping.setObject(DigitEntryField.self, forKey: "digitTextField" as NSString) + MVMCoreUIMoleculeMappingObject.shared()?.moleculeMapping.setObject(DateDropdownEntryField.self, forKey: "dateDropdownEntryField" as NSString) + MVMCoreUIMoleculeMappingObject.shared()?.moleculeMapping.setObject(Checkbox.self, forKey: "checkbox" as NSString) + MVMCoreUIMoleculeMappingObject.shared()?.moleculeMapping.setObject(CheckboxWithLabelView.self, forKey: "checkboxLabel" as NSString) + MVMCoreUIMoleculeMappingObject.shared()?.moleculeMapping.setObject(RadioButton.self, forKey: "radioButton" as NSString) + MVMCoreUIMoleculeMappingObject.shared()?.moleculeMapping.setObject(RadioButtonLabel.self, forKey: "radioButtonLabel" as NSString) + MVMCoreUIMoleculeMappingObject.shared()?.moleculeMapping.setObject(ActionDetailWithImage.self, forKey: "actionDetailWithImage" as NSString) + MVMCoreUIMoleculeMappingObject.shared()?.moleculeMapping.setObject(MVMCoreUIPageControl.self, forKey: "barsPager" as NSString) + MVMCoreUIMoleculeMappingObject.shared()?.moleculeMapping.setObject(ImageHeadlineBody.self, forKey: "imageHeadlineBody" as NSString) + MVMCoreUIMoleculeMappingObject.shared()?.moleculeMapping.setObject(HeadlineBodyTextButton.self, forKey: "headlineBodyLink" as NSString) + MVMCoreUIMoleculeMappingObject.shared()?.moleculeMapping.setObject(HeadlineBodyTextButtonSwitch.self, forKey: "headlineBodyLinkToggle" as NSString) + MVMCoreUIMoleculeMappingObject.shared()?.moleculeMapping.setObject(HeadlineBodyButton.self, forKey: "headlineBodyButton" as NSString) + MVMCoreUIMoleculeMappingObject.shared()?.moleculeMapping.setObject(EyebrowHeadlineBodyLink.self, forKey: "eyebrowHeadlineBodyLink" as NSString) + + // TODO: Need View + ModelRegistry.register(TabsModel.self) } }