From 6cab25d384ca41eea04f305db25ef6907be804d6 Mon Sep 17 00:00:00 2001 From: Panth Patel Date: Thu, 16 May 2019 15:39:29 -0400 Subject: [PATCH] ProgressBar --- MVMCoreUI/Molecules/ProgressBar.swift | 58 ++++--- MVMCoreUI/Molecules/ProgressBar.swift.orig | 53 +++++++ MVMCoreUI/Molecules/ProgressBarView.swift | 68 ++++----- .../ProgressBarView_BACKUP_31500.swift | 142 ++++++++++++++++++ .../ProgressBarView_BASE_31500.swift | 78 ++++++++++ .../ProgressBarView_LOCAL_31500.swift | 115 ++++++++++++++ .../ProgressBarView_REMOTE_31500.swift | 67 +++++++++ 7 files changed, 516 insertions(+), 65 deletions(-) create mode 100644 MVMCoreUI/Molecules/ProgressBar.swift.orig create mode 100644 MVMCoreUI/Molecules/ProgressBarView_BACKUP_31500.swift create mode 100644 MVMCoreUI/Molecules/ProgressBarView_BASE_31500.swift create mode 100644 MVMCoreUI/Molecules/ProgressBarView_LOCAL_31500.swift create mode 100644 MVMCoreUI/Molecules/ProgressBarView_REMOTE_31500.swift diff --git a/MVMCoreUI/Molecules/ProgressBar.swift b/MVMCoreUI/Molecules/ProgressBar.swift index eadf20eb..f868bbf5 100644 --- a/MVMCoreUI/Molecules/ProgressBar.swift +++ b/MVMCoreUI/Molecules/ProgressBar.swift @@ -10,34 +10,46 @@ import Foundation public class ProgressBar: UIProgressView { - public func styleprogessbar(json: [AnyHashable: Any]?) { - - var barstyle = Bool() - var progresscolor = String() - var backgroundcolor = String() - - let thickness = json?.floatFromStringForKey("thickness") + var isRounded = Bool() + var thickness : Float { + get { + return 10 + } + set { + heightAnchor.constraint(equalToConstant: CGFloat(newValue)).isActive = true + switch isRounded { + case true: + progressViewStyle = .bar + default: + layer.cornerRadius = CGFloat((newValue ?? Float(0.0))/2) + clipsToBounds = true + } + } + } + + open func setWithJSON(_ json: [AnyHashable: Any]?, delegateObject: DelegateObject?, additionalData: [AnyHashable: Any]?) { + thickness = json?.floatFromStringForKey("thickness") ?? Float(0.0) let percentage = json?.floatFromStringForKey("percent") + progress = (percentage ?? Float(0.0))/100 + progressTintColor = UIColor.mfBattleshipGrey() + trackTintColor = UIColor.mfLighterGray() - if let backgroundcolorUnwrapped = json?.optionalStringForKey("backgroundColor") { - backgroundcolor = backgroundcolorUnwrapped + if let progresscolor = json?.optionalStringForKey("progressColor") { + if !progresscolor.isEmpty { + progressTintColor = UIColor.mfGet(forHex: progresscolor) + } } - if let progresscolorUnwrapped = json?.optionalStringForKey("progressColor") { - progresscolor = progresscolorUnwrapped + + if let backgroundcolor = json?.optionalStringForKey("backgroundColor") { + if !backgroundcolor.isEmpty { + trackTintColor = UIColor.mfGet(forHex: backgroundcolor) + } } + if let barStyleUnwrapped = json?["barStyle"] as? Bool { - barstyle = barStyleUnwrapped - } - progressTintColor = UIColor.mfGet(forHex: progresscolor) - trackTintColor = UIColor.mfGet(forHex: backgroundcolor) - progress = (percentage ?? Float(PaddingThree))/100 - - switch barstyle { - case true: - progressViewStyle = .bar - default: - layer.cornerRadius = CGFloat((thickness ?? Float(PaddingTwo))/2) - clipsToBounds = true + isRounded = barStyleUnwrapped } } } + + diff --git a/MVMCoreUI/Molecules/ProgressBar.swift.orig b/MVMCoreUI/Molecules/ProgressBar.swift.orig new file mode 100644 index 00000000..dbf0fac5 --- /dev/null +++ b/MVMCoreUI/Molecules/ProgressBar.swift.orig @@ -0,0 +1,53 @@ +// +// ProgressBar.swift +// MVMCoreUI +// +// Created by Panth Patel on 5/3/19. +// Copyright © 2019 Verizon Wireless. All rights reserved. +// + +import Foundation + +public class ProgressBar: UIProgressView { + + public func styleprogessbar(json: [AnyHashable: Any]?) { +<<<<<<< HEAD + +======= + +>>>>>>> 2bd55296b8719159ed079c15651de2c59a687d6f + var barstyle = Bool() + var progresscolor = String() + var backgroundcolor = String() + + let thickness = json?.floatFromStringForKey("thickness") + let percentage = json?.floatFromStringForKey("percent") + + if let backgroundcolorUnwrapped = json?.optionalStringForKey("backgroundColor") { + backgroundcolor = backgroundcolorUnwrapped + } + if let progresscolorUnwrapped = json?.optionalStringForKey("progressColor") { + progresscolor = progresscolorUnwrapped + } + if let barStyleUnwrapped = json?["barStyle"] as? Bool { + barstyle = barStyleUnwrapped + } + progressTintColor = UIColor.mfGet(forHex: progresscolor) + trackTintColor = UIColor.mfGet(forHex: backgroundcolor) + progress = (percentage ?? Float(PaddingThree))/100 + + switch barstyle { + case true: + progressViewStyle = .bar + default: + layer.cornerRadius = CGFloat((thickness ?? Float(PaddingTwo))/2) + clipsToBounds = true + } +<<<<<<< HEAD + } +======= + + } + +>>>>>>> 2bd55296b8719159ed079c15651de2c59a687d6f +} diff --git a/MVMCoreUI/Molecules/ProgressBarView.swift b/MVMCoreUI/Molecules/ProgressBarView.swift index 3f6c97a6..1778c555 100644 --- a/MVMCoreUI/Molecules/ProgressBarView.swift +++ b/MVMCoreUI/Molecules/ProgressBarView.swift @@ -8,30 +8,13 @@ import UIKit -@objcMembers open class ProgressBarView: ViewConstrainingView { +@objcMembers public class ProgressBarView: ViewConstrainingView { var progress = ProgressBar() var topleftlabel = Label() var toprightlabel = Label() var bottomleftlabel = Label() var bottomrightlabel = Label() - var thickness: Float? - - public init() { - super.init(frame: .zero) - } - - public override init(frame: CGRect) { - super.init(frame: frame) - } - - required public init?(coder aDecoder: NSCoder) { - super.init(coder: aDecoder) - } - - open override func updateView(_ size: CGFloat) { - super.updateView(size) - } open override func needsToBeConstrained() -> Bool { return true @@ -39,9 +22,8 @@ import UIKit open override func setWithJSON(_ json: [AnyHashable: Any]?, delegateObject: DelegateObject?, additionalData: [AnyHashable: Any]?) { super.setWithJSON(json, delegateObject: delegateObject, additionalData: additionalData) - progress.styleprogessbar(json: json) - - let thickness = json?.floatFromStringForKey("thickness") + progress.setWithJSON(json, delegateObject: delegateObject, additionalData: additionalData) + let topleftlabeljson = json?.optionalDictionaryForKey("label") let toprightlabeljson = json?.optionalDictionaryForKey("toprightlabel") let bottomleftlabeljson = json?.optionalDictionaryForKey("bottomleftlabel") @@ -51,7 +33,6 @@ import UIKit toprightlabel.setWithJSON(toprightlabeljson, delegateObject: delegateObject, additionalData: additionalData) bottomleftlabel.setWithJSON(bottomleftlabeljson, delegateObject: delegateObject, additionalData: additionalData) bottomrightlabel.setWithJSON(bottomrightlabeljson, delegateObject: delegateObject, additionalData: additionalData) - progress.heightAnchor.constraint(equalToConstant: CGFloat(thickness ?? Float(PaddingTwo))).isActive = true } override open func setupView() { @@ -66,50 +47,53 @@ import UIKit topleftlabel.leftAnchor.constraint(equalTo: self.leftAnchor).isActive = true topleftlabel.topAnchor.constraint(equalTo: self.topAnchor).isActive = true - let topleftconstarint = NSLayoutConstraint(item: topleftlabel, attribute: .width, relatedBy: .equal, toItem: self, attribute: .width, multiplier: 0.5, constant: 0.0) - topleftconstarint.priority = UILayoutPriority(rawValue: 100) - topleftconstarint.isActive = true - + let topleftconstraint = NSLayoutConstraint(item: topleftlabel, attribute: .width, relatedBy: .equal, toItem: self, attribute: .width, multiplier: 0.5, constant: 0.0) + topleftconstraint.priority = UILayoutPriority(rawValue: 100) + topleftconstraint.isActive = true topleftlabel.setContentHuggingPriority(UILayoutPriority(801), for: .horizontal) topleftlabel.setContentHuggingPriority(UILayoutPriority(801), for: .vertical) + NSLayoutConstraint(item: toprightlabel, attribute: .leading, relatedBy: .equal, toItem: topleftlabel, attribute: .trailing, multiplier: 1.0, constant: PaddingTwo).isActive = true toprightlabel.rightAnchor.constraint(equalTo: self.rightAnchor).isActive = true toprightlabel.topAnchor.constraint(equalTo: self.topAnchor).isActive = true toprightlabel.textAlignment = .right - - let toprightconstraint = NSLayoutConstraint(item: toprightlabel, attribute: .width, relatedBy: .equal, toItem: self, attribute: .width, multiplier: 0.5, constant: 0.0) - toprightconstraint.priority = UILayoutPriority(rawValue: 100) - toprightconstraint.isActive = true toprightlabel.setContentHuggingPriority(UILayoutPriority(1000), for: .horizontal) toprightlabel.setContentHuggingPriority(UILayoutPriority(802), for: .vertical) - let progressconstraintone = NSLayoutConstraint(item: progress, attribute: .top, relatedBy: .equal, toItem: topleftlabel, attribute: .bottom, multiplier: 1.0, constant: PaddingTwo) - progressconstraintone.priority = UILayoutPriority(rawValue: 700) - progressconstraintone.isActive = true + var topconstraint = progress.topAnchor.constraint(equalTo: topleftlabel.bottomAnchor, constant: PaddingTwo) + topconstraint.priority = UILayoutPriority(249) + topconstraint.isActive = true + progress.topAnchor.constraint(greaterThanOrEqualTo: topleftlabel.bottomAnchor, constant: PaddingTwo).isActive = true + topconstraint = progress.topAnchor.constraint(equalTo: toprightlabel.bottomAnchor, constant: PaddingTwo) + topconstraint.priority = UILayoutPriority(249) + topconstraint.isActive = true + progress.topAnchor.constraint(greaterThanOrEqualTo: toprightlabel.bottomAnchor, constant: PaddingTwo).isActive = true - let progressconstrainttwo = NSLayoutConstraint(item: progress, attribute: .top, relatedBy: .greaterThanOrEqual, toItem: toprightlabel, attribute: .bottom, multiplier: 1.0, constant: PaddingTwo) - progressconstrainttwo.priority = UILayoutPriority(rawValue: 1000) - progressconstrainttwo.isActive = true progress.leftAnchor.constraint(equalTo: self.leftAnchor).isActive = true progress.rightAnchor.constraint(equalTo: self.rightAnchor).isActive = true + bottomleftlabel.topAnchor.constraint(equalTo: progress.bottomAnchor, constant: PaddingTwo).isActive = true bottomleftlabel.leftAnchor.constraint(equalTo: self.leftAnchor).isActive = true - let bottomleftconstraint = NSLayoutConstraint(item: bottomleftlabel, attribute: .width, relatedBy: .equal, toItem: self, attribute: .width, multiplier: 0.5, constant: 0.0) bottomleftconstraint.priority = UILayoutPriority(100) bottomleftconstraint.isActive = true - bottomleftlabel.setContentHuggingPriority(UILayoutPriority(900), for: .horizontal) bottomleftlabel.setContentHuggingPriority(UILayoutPriority(850), for: .vertical) + NSLayoutConstraint(item: bottomrightlabel, attribute: .leading, relatedBy: .equal, toItem: bottomleftlabel, attribute: .trailing, multiplier: 1.0, constant: PaddingTwo).isActive = true bottomrightlabel.topAnchor.constraint(equalTo: progress.bottomAnchor, constant: PaddingTwo).isActive = true bottomrightlabel.rightAnchor.constraint(equalTo: self.rightAnchor).isActive = true - - let bottomrightconstraint = NSLayoutConstraint(item: bottomrightlabel, attribute: .width, relatedBy: .equal, toItem: self, attribute: .width, multiplier: 0.5, constant: 0.0) - bottomrightconstraint.priority = UILayoutPriority(100) - bottomrightconstraint.isActive = true bottomrightlabel.textAlignment = .right bottomrightlabel.setContentHuggingPriority(UILayoutPriority(1000), for: .horizontal) bottomrightlabel.setContentHuggingPriority(UILayoutPriority(851), for: .vertical) + + var bottomconstraint = bottomAnchor.constraint(equalTo: bottomleftlabel.bottomAnchor, constant: PaddingTwo) + bottomconstraint.priority = UILayoutPriority(249) + bottomconstraint.isActive = true + bottomAnchor.constraint(greaterThanOrEqualTo: bottomleftlabel.bottomAnchor, constant: PaddingTwo).isActive = true + bottomconstraint = bottomAnchor.constraint(equalTo: bottomrightlabel.bottomAnchor, constant: PaddingTwo) + bottomconstraint.priority = UILayoutPriority(249) + bottomconstraint.isActive = true + bottomAnchor.constraint(greaterThanOrEqualTo: bottomrightlabel.bottomAnchor, constant: PaddingTwo).isActive = true } } diff --git a/MVMCoreUI/Molecules/ProgressBarView_BACKUP_31500.swift b/MVMCoreUI/Molecules/ProgressBarView_BACKUP_31500.swift new file mode 100644 index 00000000..a22733b3 --- /dev/null +++ b/MVMCoreUI/Molecules/ProgressBarView_BACKUP_31500.swift @@ -0,0 +1,142 @@ +// +// ProgressBarView.swift +// MVMCoreUI +// +// Created by Panth Patel on 5/3/19. +// Copyright © 2019 Verizon Wireless. All rights reserved. +// + +import UIKit + +@objcMembers open class ProgressBarView: ViewConstrainingView { + + var progress = ProgressBar() + var topleftlabel = Label() + var toprightlabel = Label() + var bottomleftlabel = Label() + var bottomrightlabel = Label() + var thickness: Float? + + public init() { + super.init(frame: .zero) + } + + public override init(frame: CGRect) { + super.init(frame: frame) + } + + required public init?(coder aDecoder: NSCoder) { + super.init(coder: aDecoder) + } + + open override func updateView(_ size: CGFloat) { + super.updateView(size) + } + + open override func needsToBeConstrained() -> Bool { + return true + } + + open override func setWithJSON(_ json: [AnyHashable: Any]?, delegateObject: DelegateObject?, additionalData: [AnyHashable: Any]?) { + super.setWithJSON(json, delegateObject: delegateObject, additionalData: additionalData) + progress.styleprogessbar(json: json) + let thickness = json?.floatFromStringForKey("thickness") +<<<<<<< HEAD + let topleftlabeljson = json?.optionalDictionaryForKey("label") + let toprightlabeljson = json?.optionalDictionaryForKey("toprightlabel") + let bottomleftlabeljson = json?.optionalDictionaryForKey("bottomleftlabel") + let bottomrightlabeljson = json?.optionalDictionaryForKey("bottomrightlabel") + + topleftlabel.setWithJSON(topleftlabeljson, delegateObject: delegateObject, additionalData: additionalData) + toprightlabel.setWithJSON(toprightlabeljson, delegateObject: delegateObject, additionalData: additionalData) + bottomleftlabel.setWithJSON(bottomleftlabeljson, delegateObject: delegateObject, additionalData: additionalData) + bottomrightlabel.setWithJSON(bottomrightlabeljson, delegateObject: delegateObject, additionalData: additionalData) +======= + let textlabeljson = json?.optionalDictionaryForKey("label") + + descriptionLabel.setWithJSON(textlabeljson, delegateObject: delegateObject, additionalData: additionalData) +>>>>>>> 2bd55296b8719159ed079c15651de2c59a687d6f + progress.heightAnchor.constraint(equalToConstant: CGFloat(thickness ?? Float(PaddingTwo))).isActive = true + } + + override open func setupView() { + super.setupView() +<<<<<<< HEAD + addSubview(topleftlabel) + addSubview(toprightlabel) + addSubview(bottomleftlabel) + addSubview(bottomrightlabel) +======= + addSubview(descriptionLabel) +>>>>>>> 2bd55296b8719159ed079c15651de2c59a687d6f + addSubview(progress) + + let vericalSpacing = MFStyler.defaultVerticalPaddingForApplicationWidth() + progress.translatesAutoresizingMaskIntoConstraints = false +<<<<<<< HEAD + + topleftlabel.leftAnchor.constraint(equalTo: self.leftAnchor).isActive = true + topleftlabel.topAnchor.constraint(equalTo: self.topAnchor).isActive = true + let topleftconstarint = NSLayoutConstraint(item: topleftlabel, attribute: .width, relatedBy: .equal, toItem: self, attribute: .width, multiplier: 0.5, constant: 0.0) + topleftconstarint.priority = UILayoutPriority(rawValue: 100) + topleftconstarint.isActive = true + topleftlabel.setContentHuggingPriority(UILayoutPriority(801), for: .horizontal) + topleftlabel.setContentHuggingPriority(UILayoutPriority(801), for: .vertical) + NSLayoutConstraint(item: toprightlabel, attribute: .leading, relatedBy: .equal, toItem: topleftlabel, attribute: .trailing, multiplier: 1.0, constant: PaddingTwo).isActive = true + toprightlabel.rightAnchor.constraint(equalTo: self.rightAnchor).isActive = true + toprightlabel.topAnchor.constraint(equalTo: self.topAnchor).isActive = true + toprightlabel.textAlignment = .right + let toprightconstraint = NSLayoutConstraint(item: toprightlabel, attribute: .width, relatedBy: .equal, toItem: self, attribute: .width, multiplier: 0.5, constant: 0.0) + toprightconstraint.priority = UILayoutPriority(rawValue: 100) + toprightconstraint.isActive = true + toprightlabel.setContentHuggingPriority(UILayoutPriority(1000), for: .horizontal) + toprightlabel.setContentHuggingPriority(UILayoutPriority(802), for: .vertical) + + let progressconstraintone = NSLayoutConstraint(item: progress, attribute: .top, relatedBy: .equal, toItem: topleftlabel, attribute: .bottom, multiplier: 1.0, constant: PaddingTwo) + progressconstraintone.priority = UILayoutPriority(rawValue: 700) + progressconstraintone.isActive = true + let progressconstrainttwo = NSLayoutConstraint(item: progress, attribute: .top, relatedBy: .greaterThanOrEqual, toItem: toprightlabel, attribute: .bottom, multiplier: 1.0, constant: PaddingTwo) + progressconstrainttwo.priority = UILayoutPriority(rawValue: 1000) + progressconstrainttwo.isActive = true + progress.leftAnchor.constraint(equalTo: self.leftAnchor).isActive = true + progress.rightAnchor.constraint(equalTo: self.rightAnchor).isActive = true + + bottomleftlabel.topAnchor.constraint(equalTo: progress.bottomAnchor, constant: PaddingTwo).isActive = true + bottomleftlabel.leftAnchor.constraint(equalTo: self.leftAnchor).isActive = true + let bottomleftconstraint = NSLayoutConstraint(item: bottomleftlabel, attribute: .width, relatedBy: .equal, toItem: self, attribute: .width, multiplier: 0.5, constant: 0.0) + bottomleftconstraint.priority = UILayoutPriority(100) + bottomleftconstraint.isActive = true + bottomleftlabel.setContentHuggingPriority(UILayoutPriority(900), for: .horizontal) + bottomleftlabel.setContentHuggingPriority(UILayoutPriority(850), for: .vertical) + NSLayoutConstraint(item: bottomrightlabel, attribute: .leading, relatedBy: .equal, toItem: bottomleftlabel, attribute: .trailing, multiplier: 1.0, constant: PaddingTwo).isActive = true + bottomrightlabel.topAnchor.constraint(equalTo: progress.bottomAnchor, constant: PaddingTwo).isActive = true + bottomrightlabel.rightAnchor.constraint(equalTo: self.rightAnchor).isActive = true + let bottomrightconstraint = NSLayoutConstraint(item: bottomrightlabel, attribute: .width, relatedBy: .equal, toItem: self, attribute: .width, multiplier: 0.5, constant: 0.0) + bottomrightconstraint.priority = UILayoutPriority(100) + bottomrightconstraint.isActive = true + bottomrightlabel.textAlignment = .right + bottomrightlabel.setContentHuggingPriority(UILayoutPriority(1000), for: .horizontal) + bottomrightlabel.setContentHuggingPriority(UILayoutPriority(851), for: .vertical) + } +} + + + + + + +======= + descriptionLabel.translatesAutoresizingMaskIntoConstraints = false + + descriptionLabel.leftAnchor.constraint(equalTo: self.leftAnchor).isActive = true + descriptionLabel.rightAnchor.constraint(equalTo: self.rightAnchor).isActive = true + descriptionLabel.topAnchor.constraint(equalTo: self.topAnchor).isActive = true + progress.leftAnchor.constraint(equalTo: self.leftAnchor).isActive = true + progress.rightAnchor.constraint(equalTo: self.rightAnchor).isActive = true + progress.topAnchor.constraint(equalTo: descriptionLabel.bottomAnchor, constant: vericalSpacing).isActive = true + progress.bottomAnchor.constraint(equalTo: self.bottomAnchor).isActive = true + } + + +} +>>>>>>> 2bd55296b8719159ed079c15651de2c59a687d6f diff --git a/MVMCoreUI/Molecules/ProgressBarView_BASE_31500.swift b/MVMCoreUI/Molecules/ProgressBarView_BASE_31500.swift new file mode 100644 index 00000000..61cdde7b --- /dev/null +++ b/MVMCoreUI/Molecules/ProgressBarView_BASE_31500.swift @@ -0,0 +1,78 @@ +// +// ProgressBarView.swift +// MVMCoreUI +// +// Created by Panth Patel on 5/3/19. +// Copyright © 2019 Verizon Wireless. All rights reserved. +// + +import UIKit + +@objcMembers open class ProgressBarView: ViewConstrainingView { + + var progress = ProgressBar() + var descriptionLabel = Label() + var thickness: Float? + + public init() { + super.init(frame: .zero) + } + + public override init(frame: CGRect) { + super.init(frame: frame) + } + + required public init?(coder aDecoder: NSCoder) { + super.init(coder: aDecoder) + } + + open override func updateView(_ size: CGFloat) { + super.updateView(size) + } + + open override func needsToBeConstrained() -> Bool { + return true + } + + open override func setWithJSON(_ json: [AnyHashable: Any]?, delegateObject: DelegateObject?, additionalData: [AnyHashable: Any]?) { + + super.setWithJSON(json, delegateObject: delegateObject, additionalData: additionalData) + + if let jsonUnwrapped = json as? Dictionary { + progress.styleprogessbar(json: jsonUnwrapped) + } + + let textlabeljson = json!["label"] as! Dictionary //UILabel.init(frame: CGRect(x:0, y:0, width: 300, height: 300)) + self.descriptionLabel.setWithJSON(textlabeljson, delegateObject: delegateObject, additionalData: additionalData) + thickness = Float(json!["thickness"] as! String) + // thickness = 20.0 + } + + override open func setupView() { + super.setupView() + translatesAutoresizingMaskIntoConstraints = false + addSubview(descriptionLabel) + addSubview(progress) + + progress.translatesAutoresizingMaskIntoConstraints = false + descriptionLabel.translatesAutoresizingMaskIntoConstraints = false + + let vericalSpacing = MFStyler.defaultVerticalPaddingForApplicationWidth() + + descriptionLabel.leftAnchor.constraint(equalTo: self.leftAnchor).isActive = true + descriptionLabel.rightAnchor.constraint(equalTo: self.rightAnchor).isActive = true + descriptionLabel.topAnchor.constraint(equalTo: self.topAnchor).isActive = true + descriptionLabel.numberOfLines = 0 + descriptionLabel.sizeToFit() + + progress.leftAnchor.constraint(equalTo: self.leftAnchor).isActive = true + progress.rightAnchor.constraint(equalTo: self.rightAnchor).isActive = true + progress.heightAnchor.constraint(equalToConstant: 20).isActive = true + progress.topAnchor.constraint(equalTo: descriptionLabel.bottomAnchor, constant: vericalSpacing).isActive = true + progress.bottomAnchor.constraint(equalTo: self.bottomAnchor).isActive = true + + + } + + +} diff --git a/MVMCoreUI/Molecules/ProgressBarView_LOCAL_31500.swift b/MVMCoreUI/Molecules/ProgressBarView_LOCAL_31500.swift new file mode 100644 index 00000000..25fd0c23 --- /dev/null +++ b/MVMCoreUI/Molecules/ProgressBarView_LOCAL_31500.swift @@ -0,0 +1,115 @@ +// +// ProgressBarView.swift +// MVMCoreUI +// +// Created by Panth Patel on 5/3/19. +// Copyright © 2019 Verizon Wireless. All rights reserved. +// + +import UIKit + +@objcMembers open class ProgressBarView: ViewConstrainingView { + + var progress = ProgressBar() + var topleftlabel = Label() + var toprightlabel = Label() + var bottomleftlabel = Label() + var bottomrightlabel = Label() + var thickness: Float? + + public init() { + super.init(frame: .zero) + } + + public override init(frame: CGRect) { + super.init(frame: frame) + } + + required public init?(coder aDecoder: NSCoder) { + super.init(coder: aDecoder) + } + + open override func updateView(_ size: CGFloat) { + super.updateView(size) + } + + open override func needsToBeConstrained() -> Bool { + return true + } + + open override func setWithJSON(_ json: [AnyHashable: Any]?, delegateObject: DelegateObject?, additionalData: [AnyHashable: Any]?) { + super.setWithJSON(json, delegateObject: delegateObject, additionalData: additionalData) + progress.styleprogessbar(json: json) + let thickness = json?.floatFromStringForKey("thickness") + let topleftlabeljson = json?.optionalDictionaryForKey("label") + let toprightlabeljson = json?.optionalDictionaryForKey("toprightlabel") + let bottomleftlabeljson = json?.optionalDictionaryForKey("bottomleftlabel") + let bottomrightlabeljson = json?.optionalDictionaryForKey("bottomrightlabel") + + topleftlabel.setWithJSON(topleftlabeljson, delegateObject: delegateObject, additionalData: additionalData) + toprightlabel.setWithJSON(toprightlabeljson, delegateObject: delegateObject, additionalData: additionalData) + bottomleftlabel.setWithJSON(bottomleftlabeljson, delegateObject: delegateObject, additionalData: additionalData) + bottomrightlabel.setWithJSON(bottomrightlabeljson, delegateObject: delegateObject, additionalData: additionalData) + progress.heightAnchor.constraint(equalToConstant: CGFloat(thickness ?? Float(PaddingTwo))).isActive = true + } + + override open func setupView() { + super.setupView() + addSubview(topleftlabel) + addSubview(toprightlabel) + addSubview(bottomleftlabel) + addSubview(bottomrightlabel) + addSubview(progress) + + progress.translatesAutoresizingMaskIntoConstraints = false + + topleftlabel.leftAnchor.constraint(equalTo: self.leftAnchor).isActive = true + topleftlabel.topAnchor.constraint(equalTo: self.topAnchor).isActive = true + let topleftconstarint = NSLayoutConstraint(item: topleftlabel, attribute: .width, relatedBy: .equal, toItem: self, attribute: .width, multiplier: 0.5, constant: 0.0) + topleftconstarint.priority = UILayoutPriority(rawValue: 100) + topleftconstarint.isActive = true + topleftlabel.setContentHuggingPriority(UILayoutPriority(801), for: .horizontal) + topleftlabel.setContentHuggingPriority(UILayoutPriority(801), for: .vertical) + NSLayoutConstraint(item: toprightlabel, attribute: .leading, relatedBy: .equal, toItem: topleftlabel, attribute: .trailing, multiplier: 1.0, constant: PaddingTwo).isActive = true + toprightlabel.rightAnchor.constraint(equalTo: self.rightAnchor).isActive = true + toprightlabel.topAnchor.constraint(equalTo: self.topAnchor).isActive = true + toprightlabel.textAlignment = .right + let toprightconstraint = NSLayoutConstraint(item: toprightlabel, attribute: .width, relatedBy: .equal, toItem: self, attribute: .width, multiplier: 0.5, constant: 0.0) + toprightconstraint.priority = UILayoutPriority(rawValue: 100) + toprightconstraint.isActive = true + toprightlabel.setContentHuggingPriority(UILayoutPriority(1000), for: .horizontal) + toprightlabel.setContentHuggingPriority(UILayoutPriority(802), for: .vertical) + + let progressconstraintone = NSLayoutConstraint(item: progress, attribute: .top, relatedBy: .equal, toItem: topleftlabel, attribute: .bottom, multiplier: 1.0, constant: PaddingTwo) + progressconstraintone.priority = UILayoutPriority(rawValue: 700) + progressconstraintone.isActive = true + let progressconstrainttwo = NSLayoutConstraint(item: progress, attribute: .top, relatedBy: .greaterThanOrEqual, toItem: toprightlabel, attribute: .bottom, multiplier: 1.0, constant: PaddingTwo) + progressconstrainttwo.priority = UILayoutPriority(rawValue: 1000) + progressconstrainttwo.isActive = true + progress.leftAnchor.constraint(equalTo: self.leftAnchor).isActive = true + progress.rightAnchor.constraint(equalTo: self.rightAnchor).isActive = true + + bottomleftlabel.topAnchor.constraint(equalTo: progress.bottomAnchor, constant: PaddingTwo).isActive = true + bottomleftlabel.leftAnchor.constraint(equalTo: self.leftAnchor).isActive = true + let bottomleftconstraint = NSLayoutConstraint(item: bottomleftlabel, attribute: .width, relatedBy: .equal, toItem: self, attribute: .width, multiplier: 0.5, constant: 0.0) + bottomleftconstraint.priority = UILayoutPriority(100) + bottomleftconstraint.isActive = true + bottomleftlabel.setContentHuggingPriority(UILayoutPriority(900), for: .horizontal) + bottomleftlabel.setContentHuggingPriority(UILayoutPriority(850), for: .vertical) + NSLayoutConstraint(item: bottomrightlabel, attribute: .leading, relatedBy: .equal, toItem: bottomleftlabel, attribute: .trailing, multiplier: 1.0, constant: PaddingTwo).isActive = true + bottomrightlabel.topAnchor.constraint(equalTo: progress.bottomAnchor, constant: PaddingTwo).isActive = true + bottomrightlabel.rightAnchor.constraint(equalTo: self.rightAnchor).isActive = true + let bottomrightconstraint = NSLayoutConstraint(item: bottomrightlabel, attribute: .width, relatedBy: .equal, toItem: self, attribute: .width, multiplier: 0.5, constant: 0.0) + bottomrightconstraint.priority = UILayoutPriority(100) + bottomrightconstraint.isActive = true + bottomrightlabel.textAlignment = .right + bottomrightlabel.setContentHuggingPriority(UILayoutPriority(1000), for: .horizontal) + bottomrightlabel.setContentHuggingPriority(UILayoutPriority(851), for: .vertical) + } +} + + + + + + diff --git a/MVMCoreUI/Molecules/ProgressBarView_REMOTE_31500.swift b/MVMCoreUI/Molecules/ProgressBarView_REMOTE_31500.swift new file mode 100644 index 00000000..4abb7e52 --- /dev/null +++ b/MVMCoreUI/Molecules/ProgressBarView_REMOTE_31500.swift @@ -0,0 +1,67 @@ +// +// ProgressBarView.swift +// MVMCoreUI +// +// Created by Panth Patel on 5/3/19. +// Copyright © 2019 Verizon Wireless. All rights reserved. +// + +import UIKit + +@objcMembers open class ProgressBarView: ViewConstrainingView { + + var progress = ProgressBar() + var descriptionLabel = Label() + var thickness: Float? + + public init() { + super.init(frame: .zero) + } + + public override init(frame: CGRect) { + super.init(frame: frame) + } + + required public init?(coder aDecoder: NSCoder) { + super.init(coder: aDecoder) + } + + open override func updateView(_ size: CGFloat) { + super.updateView(size) + } + + open override func needsToBeConstrained() -> Bool { + return true + } + + open override func setWithJSON(_ json: [AnyHashable: Any]?, delegateObject: DelegateObject?, additionalData: [AnyHashable: Any]?) { + + super.setWithJSON(json, delegateObject: delegateObject, additionalData: additionalData) + progress.styleprogessbar(json: json) + let thickness = json?.floatFromStringForKey("thickness") + let textlabeljson = json?.optionalDictionaryForKey("label") + + descriptionLabel.setWithJSON(textlabeljson, delegateObject: delegateObject, additionalData: additionalData) + progress.heightAnchor.constraint(equalToConstant: CGFloat(thickness ?? Float(PaddingTwo))).isActive = true + } + + override open func setupView() { + super.setupView() + addSubview(descriptionLabel) + addSubview(progress) + + let vericalSpacing = MFStyler.defaultVerticalPaddingForApplicationWidth() + progress.translatesAutoresizingMaskIntoConstraints = false + descriptionLabel.translatesAutoresizingMaskIntoConstraints = false + + descriptionLabel.leftAnchor.constraint(equalTo: self.leftAnchor).isActive = true + descriptionLabel.rightAnchor.constraint(equalTo: self.rightAnchor).isActive = true + descriptionLabel.topAnchor.constraint(equalTo: self.topAnchor).isActive = true + progress.leftAnchor.constraint(equalTo: self.leftAnchor).isActive = true + progress.rightAnchor.constraint(equalTo: self.rightAnchor).isActive = true + progress.topAnchor.constraint(equalTo: descriptionLabel.bottomAnchor, constant: vericalSpacing).isActive = true + progress.bottomAnchor.constraint(equalTo: self.bottomAnchor).isActive = true + } + + +}