KMBatchRemoveView.swift 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  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. override var subType: Any? {
  18. didSet {
  19. print("subType = \(subType)")
  20. let value = (subType as? Int) ?? 0
  21. let options = KMBatchRemoveOptions.init(rawValue: value)
  22. self.data.options = options
  23. self.reloadData()
  24. }
  25. }
  26. var data = KMBatchRemoveViewModel() {
  27. didSet {
  28. self.reloadData()
  29. }
  30. }
  31. override func draw(_ dirtyRect: NSRect) {
  32. super.draw(dirtyRect)
  33. // Drawing code here.
  34. }
  35. override func setup() {
  36. super.setup()
  37. self.titleContentView.border(ComponentLibrary.shared.getComponentColorFromKey("colorBorder/divider"), 0.5, 0)
  38. watermarkButton.properties = ComponentCheckBoxProperty(size: .s,
  39. state: .normal,
  40. isDisabled: false,
  41. showhelp: false,
  42. text: KMLocalizedString("Watermark", comment: ""),
  43. checkboxType: .normal)
  44. watermarkButton.setTarget(self, action: #selector(watermarkButtonAction(_:)))
  45. backgroundButton.properties = ComponentCheckBoxProperty(size: .s,
  46. state: .normal,
  47. isDisabled: false,
  48. showhelp: false,
  49. text: KMLocalizedString("Background", comment: ""),
  50. checkboxType: .normal)
  51. backgroundButton.setTarget(self, action: #selector(watermarkButtonAction(_:)))
  52. headerAndFooterButton.properties = ComponentCheckBoxProperty(size: .s,
  53. state: .normal,
  54. isDisabled: false,
  55. showhelp: false,
  56. text: KMLocalizedString("Header & Footer", comment: ""),
  57. checkboxType: .normal)
  58. headerAndFooterButton.setTarget(self, action: #selector(watermarkButtonAction(_:)))
  59. batesButton.properties = ComponentCheckBoxProperty(size: .s,
  60. state: .normal,
  61. isDisabled: false,
  62. showhelp: false,
  63. text: KMLocalizedString("Bates", comment: ""),
  64. checkboxType: .normal)
  65. batesButton.setTarget(self, action: #selector(watermarkButtonAction(_:)))
  66. removeButton.properties = ComponentButtonProperty(type: .primary,
  67. size: .m,
  68. state: .normal,
  69. buttonText: KMLocalizedString("Apply"),
  70. keepPressState: false)
  71. removeButton.setTarget(self, action: #selector(removeButtonAction(_:)))
  72. removeButton.reloadData()
  73. }
  74. override func reloadData() {
  75. if (self.filesData.count != 0 && self.data.options != .none) {
  76. self.removeButton.properties.isDisabled = false
  77. } else {
  78. self.removeButton.properties.isDisabled = true
  79. }
  80. if self.data.options.contains(.watermark) {
  81. self.watermarkButton.properties.checkboxType = .selected
  82. } else {
  83. self.watermarkButton.properties.checkboxType = .normal
  84. }
  85. self.watermarkButton.reloadData()
  86. if self.data.options.contains(.background) {
  87. self.backgroundButton.properties.checkboxType = .selected
  88. } else {
  89. self.backgroundButton.properties.checkboxType = .normal
  90. }
  91. self.backgroundButton.reloadData()
  92. if self.data.options.contains(.headerAndFooter) {
  93. self.headerAndFooterButton.properties.checkboxType = .selected
  94. } else {
  95. self.headerAndFooterButton.properties.checkboxType = .normal
  96. }
  97. self.headerAndFooterButton.reloadData()
  98. if self.data.options.contains(.batesNumber) {
  99. self.batesButton.properties.checkboxType = .selected
  100. } else {
  101. self.batesButton.properties.checkboxType = .normal
  102. }
  103. self.batesButton.reloadData()
  104. }
  105. override func bacthProcessingNotification() {
  106. self.watermarkButton.properties.isDisabled = self.isDisable
  107. self.watermarkButton.reloadData()
  108. self.backgroundButton.properties.isDisabled = self.isDisable
  109. self.backgroundButton.reloadData()
  110. self.headerAndFooterButton.properties.isDisabled = self.isDisable
  111. self.headerAndFooterButton.reloadData()
  112. self.batesButton.properties.isDisabled = self.isDisable
  113. self.batesButton.reloadData()
  114. self.removeButton.properties.isDisabled = self.isDisable
  115. self.removeButton.reloadData()
  116. }
  117. }
  118. extension KMBatchRemoveView {
  119. @objc func watermarkButtonAction(_ sender: ComponentButton) {
  120. if sender == watermarkButton {
  121. if self.data.options.contains(.watermark) {
  122. self.data.options.remove(.watermark)
  123. } else {
  124. self.data.options.insert(.watermark)
  125. }
  126. } else if sender == backgroundButton {
  127. if self.data.options.contains(.background) {
  128. self.data.options.remove(.background)
  129. } else {
  130. self.data.options.insert(.background)
  131. }
  132. } else if sender == headerAndFooterButton {
  133. if self.data.options.contains(.headerAndFooter) {
  134. self.data.options.remove(.headerAndFooter)
  135. } else {
  136. self.data.options.insert(.headerAndFooter)
  137. }
  138. } else if sender == batesButton {
  139. if self.data.options.contains(.batesNumber) {
  140. self.data.options.remove(.batesNumber)
  141. } else {
  142. self.data.options.insert(.batesNumber)
  143. }
  144. }
  145. self.reloadData()
  146. }
  147. @objc func removeButtonAction(_ sender: NSButton) {
  148. guard self.data != nil else {
  149. return
  150. }
  151. if self.batchExport != nil {
  152. self.batchExport!(self, self.data)
  153. }
  154. }
  155. }