KMBatchRemoveView.swift 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. //
  2. // KMBatchRemoveView.swift
  3. // PDF Master
  4. //
  5. // Created by lizhe on 2023/1/16.
  6. //
  7. import Cocoa
  8. import KMComponentLibrary
  9. class KMBatchRemoveView: KMBatchSettingItemView {
  10. @IBOutlet weak var titleLabel: NSTextField!
  11. @IBOutlet weak var titleContentView: NSView!
  12. @IBOutlet weak var watermarkButton: ComponentCheckBox!
  13. @IBOutlet weak var backgroundButton: ComponentCheckBox!
  14. @IBOutlet weak var headerAndFooterButton: ComponentCheckBox!
  15. @IBOutlet weak var batesButton: ComponentCheckBox!
  16. @IBOutlet weak var removeButton: ComponentButton!
  17. var data = KMBatchRemoveViewModel()
  18. override func draw(_ dirtyRect: NSRect) {
  19. super.draw(dirtyRect)
  20. // Drawing code here.
  21. }
  22. override func setup() {
  23. super.setup()
  24. self.titleContentView.border(ComponentLibrary.shared.getComponentColorFromKey("colorBorder/divider"), 0.5, 0)
  25. watermarkButton.properties = ComponentCheckBoxProperty(size: .s,
  26. state: .normal,
  27. isDisabled: false,
  28. showhelp: false,
  29. text: KMLocalizedString("Watermark", comment: ""),
  30. checkboxType: .normal)
  31. watermarkButton.setTarget(self, action: #selector(watermarkButtonAction(_:)))
  32. backgroundButton.properties = ComponentCheckBoxProperty(size: .s,
  33. state: .normal,
  34. isDisabled: false,
  35. showhelp: false,
  36. text: KMLocalizedString("Background", comment: ""),
  37. checkboxType: .normal)
  38. backgroundButton.setTarget(self, action: #selector(watermarkButtonAction(_:)))
  39. headerAndFooterButton.properties = ComponentCheckBoxProperty(size: .s,
  40. state: .normal,
  41. isDisabled: false,
  42. showhelp: false,
  43. text: KMLocalizedString("Header & Footer", comment: ""),
  44. checkboxType: .normal)
  45. headerAndFooterButton.setTarget(self, action: #selector(watermarkButtonAction(_:)))
  46. batesButton.properties = ComponentCheckBoxProperty(size: .s,
  47. state: .normal,
  48. isDisabled: false,
  49. showhelp: false,
  50. text: KMLocalizedString("Bates", comment: ""),
  51. checkboxType: .normal)
  52. batesButton.setTarget(self, action: #selector(watermarkButtonAction(_:)))
  53. removeButton.properties = ComponentButtonProperty(type: .primary,
  54. size: .m,
  55. state: .normal,
  56. buttonText: KMLocalizedString("Apply"),
  57. keepPressState: false)
  58. removeButton.setTarget(self, action: #selector(removeButtonAction(_:)))
  59. removeButton.reloadData()
  60. }
  61. override func reloadData() {
  62. if (self.filesData.count != 0 && self.data.options != .none) {
  63. self.removeButton.properties.isDisabled = false
  64. } else {
  65. self.removeButton.properties.isDisabled = true
  66. }
  67. }
  68. override func bacthProcessingNotification() {
  69. self.watermarkButton.properties.isDisabled = self.isDisable
  70. self.watermarkButton.reloadData()
  71. self.backgroundButton.properties.isDisabled = self.isDisable
  72. self.backgroundButton.reloadData()
  73. self.headerAndFooterButton.properties.isDisabled = self.isDisable
  74. self.headerAndFooterButton.reloadData()
  75. self.batesButton.properties.isDisabled = self.isDisable
  76. self.batesButton.reloadData()
  77. self.removeButton.properties.isDisabled = self.isDisable
  78. self.removeButton.reloadData()
  79. }
  80. }
  81. extension KMBatchRemoveView {
  82. @objc func watermarkButtonAction(_ sender: ComponentButton) {
  83. if sender == watermarkButton {
  84. if self.data.options.contains(.watermark) {
  85. self.data.options.remove(.watermark)
  86. } else {
  87. self.data.options.insert(.watermark)
  88. }
  89. } else if sender == backgroundButton {
  90. if self.data.options.contains(.background) {
  91. self.data.options.remove(.background)
  92. } else {
  93. self.data.options.insert(.background)
  94. }
  95. } else if sender == headerAndFooterButton {
  96. if self.data.options.contains(.headerAndFooter) {
  97. self.data.options.remove(.headerAndFooter)
  98. } else {
  99. self.data.options.insert(.headerAndFooter)
  100. }
  101. } else if sender == batesButton {
  102. if self.data.options.contains(.batesNumber) {
  103. self.data.options.remove(.batesNumber)
  104. } else {
  105. self.data.options.insert(.batesNumber)
  106. }
  107. }
  108. self.reloadData()
  109. }
  110. @objc func removeButtonAction(_ sender: NSButton) {
  111. guard self.data != nil else {
  112. return
  113. }
  114. if self.batchExport != nil {
  115. self.batchExport!(self, self.data)
  116. }
  117. }
  118. }