KMBatchCompressView.swift 3.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. //
  2. // KMBatchCompressView.swift
  3. // PDF Master
  4. //
  5. // Created by lizhe on 2023/1/16.
  6. //
  7. import Cocoa
  8. import KMComponentLibrary
  9. class KMBatchCompressView: KMBatchSettingItemView {
  10. @IBOutlet weak var titleLabel: NSTextField!
  11. @IBOutlet weak var titleContentView: NSView!
  12. @IBOutlet weak var applyButton: ComponentButton!
  13. @IBOutlet weak var compressView: KMCompressContentView!
  14. @IBOutlet weak var cancelButton: ComponentButton!
  15. var data: KMCompressSettingModel = KMCompressSettingModel(modelsType: .standard)
  16. override func draw(_ dirtyRect: NSRect) {
  17. super.draw(dirtyRect)
  18. // Drawing code here.
  19. }
  20. override func setup() {
  21. titleLabel.textColor = ComponentLibrary.shared.getComponentColorFromKey("colorText/1")
  22. titleLabel.font = ComponentLibrary.shared.getFontFromKey("mac/body-m-medium")
  23. self.titleContentView.border(ComponentLibrary.shared.getComponentColorFromKey("colorBorder/divider"), 0.5, 0)
  24. self.applyButton.properties = ComponentButtonProperty(type: .primary,
  25. size: .m,
  26. state: .normal,
  27. buttonText: KMLocalizedString("Apply"),
  28. keepPressState: false)
  29. self.applyButton.setTarget(self, action: #selector(compressButtonAction(_:)))
  30. self.applyButton.reloadData()
  31. self.compressView.selectTypeAction = {[unowned self] view, tModel in
  32. self.data = tModel
  33. }
  34. self.cancelButton.properties = ComponentButtonProperty(type: .primary,
  35. size: .m,
  36. state: .normal,
  37. buttonText: KMLocalizedString("Cancel"),
  38. keepPressState: false)
  39. self.cancelButton.setTarget(self, action: #selector(cancelButtonAction))
  40. self.cancelButton.reloadData()
  41. self.cancelButton.isHidden = true
  42. }
  43. override func reloadData() {
  44. if KMCompressSettingModel.isSaveCustomData() {
  45. self.compressView.model = KMCompressSettingModel(modelsType: .custom)
  46. } else {
  47. self.compressView.model = KMCompressSettingModel(modelsType: .standard)
  48. }
  49. }
  50. override func bacthProcessingNotification() {
  51. self.compressView.isDisable = self.isDisable
  52. self.applyButton.properties.isDisabled = self.isDisable
  53. self.applyButton.reloadData()
  54. self.updateCancelButtonState()
  55. }
  56. func updateCancelButtonState() {
  57. if self.isDisable {
  58. self.applyButton.isHidden = true
  59. self.cancelButton.isHidden = false
  60. } else {
  61. self.applyButton.isHidden = false
  62. self.cancelButton.isHidden = true
  63. }
  64. }
  65. }
  66. protocol KMBatchCompressViewAction {}
  67. extension KMBatchCompressView: KMBatchCompressViewAction {
  68. func compressButtonAction(_ sender: Any) {
  69. self.data = self.compressView.model
  70. if self.batchExport != nil {
  71. self.batchExport!(self, self.data)
  72. }
  73. }
  74. @objc func cancelButtonAction() {
  75. self.cancelAction?(self)
  76. self.updateCancelButtonState()
  77. }
  78. }