KMBatchSettingView.swift 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180
  1. //
  2. // KMBatchSettingView.swift
  3. // PDF Master
  4. //
  5. // Created by lizhe on 2023/1/16.
  6. //
  7. import Cocoa
  8. import KMComponentLibrary
  9. class KMBatchSettingView: BaseXibView {
  10. var currentView: KMBatchSettingItemView = KMBatchSettingItemView()
  11. lazy var itemViewArray: [KMBatchSettingItemView] = []
  12. var filesData: [KMBatchProcessingTableViewModel]? {
  13. didSet {
  14. currentView.filesData = filesData!
  15. self.reloadData()
  16. }
  17. }
  18. var type: KMBatchCollectionViewType = .convertPDF {
  19. didSet {
  20. self.reloadData()
  21. }
  22. }
  23. var subType: Any? {
  24. didSet {
  25. self.reloadData()
  26. }
  27. }
  28. var isDisable: Bool = false {
  29. didSet {
  30. for item in self.itemViewArray {
  31. if item.type == type {
  32. item.isDisable = isDisable
  33. }
  34. }
  35. }
  36. }
  37. override func setup() {
  38. super.setup()
  39. self.wantsLayer = true
  40. // self.border(ComponentLibrary.shared.getComponentColorFromKey("colorBorder/divider"), 0.5, 0)
  41. self.type = .convertPDF
  42. }
  43. func reloadData() {
  44. if (self.type != self.currentView.type) {
  45. let view: KMBatchSettingItemView = self.fetchCurrentView(type: self.type, subType: self.subType as Any)
  46. self.currentView.removeFromSuperview()
  47. self.addSubview(view)
  48. view.translatesAutoresizingMaskIntoConstraints = false
  49. NSLayoutConstraint.activate([
  50. view.topAnchor.constraint(equalTo: topAnchor),
  51. view.leftAnchor.constraint(equalTo: leftAnchor),
  52. view.rightAnchor.constraint(equalTo: rightAnchor),
  53. view.bottomAnchor.constraint(equalTo: bottomAnchor)])
  54. view.updateConstraintsForSubtreeIfNeeded()
  55. self.currentView = view
  56. } else if (self.subType.debugDescription != self.currentView.subType.debugDescription) {
  57. self.currentView.subType = self.subType
  58. }
  59. }
  60. func fetchCurrentView(type: KMBatchCollectionViewType, subType: Any) -> KMBatchSettingItemView {
  61. var resultView: KMBatchSettingItemView = KMBatchSettingItemView()
  62. var isExist = false
  63. for item in self.itemViewArray {
  64. if item.type == type {
  65. isExist = true
  66. resultView = item
  67. }
  68. }
  69. if !isExist {
  70. switch type {
  71. case .convertPDF:
  72. resultView = KMBatchConvertPDFView.init()
  73. resultView.batchExport = { [unowned self] (view, data) in
  74. KMBatchManager.manager.batch(type: type, data: data)
  75. }
  76. break
  77. case .OCR:
  78. resultView = KMBatchOCRView.init()
  79. resultView.batchExport = { [unowned self] (view, data) in
  80. KMBatchManager.manager.batch(type: type, data: data)
  81. }
  82. break
  83. case .compress:
  84. resultView = KMBatchCompressView.init()
  85. resultView.batchExport = { [unowned self] (view, data) in
  86. KMBatchManager.manager.batch(type: type, data: data)
  87. }
  88. break
  89. case .security:
  90. resultView = KMBatchSecurityView.init()
  91. resultView.batchExport = { [unowned self] (view, data) in
  92. KMBatchManager.manager.batch(type: type, data: data)
  93. }
  94. break
  95. case .watermark:
  96. resultView = KMBatchWatermarkView.init()
  97. if let view = resultView as? KMBatchWatermarkView {
  98. view.editSubType = .template
  99. view.reloadInfoView()
  100. }
  101. resultView.batchExport = { [unowned self] (view, data) in
  102. KMBatchManager.manager.batch(type: type, data: data)
  103. }
  104. break
  105. case .background:
  106. resultView = KMBatchBackgroundView.init()
  107. if let view = resultView as? KMBatchBackgroundView {
  108. view.editSubType = .template
  109. view.reloadInfoView()
  110. }
  111. resultView.batchExport = { [unowned self] (view, data) in
  112. KMBatchManager.manager.batch(type: type, data: data)
  113. }
  114. break
  115. case .headerAndFooter:
  116. resultView = KMBatchHeaderAndFooterView.init()
  117. if let view = resultView as? KMBatchHeaderAndFooterView {
  118. view.editSubType = .template
  119. view.reloadInfoView()
  120. }
  121. resultView.batchExport = { [unowned self] (view, data) in
  122. KMBatchManager.manager.batch(type: type, data: data)
  123. }
  124. break
  125. case .batesNumber:
  126. resultView = KMBatchBatesNumberView.init()
  127. if let view = resultView as? KMBatchBatesNumberView {
  128. view.editSubType = .template
  129. view.reloadInfoView()
  130. }
  131. resultView.batchExport = { [unowned self] (view, data) in
  132. KMBatchManager.manager.batch(type: type, data: data)
  133. }
  134. break
  135. case .batchRemove:
  136. resultView = KMBatchRemoveView.init()
  137. resultView.batchExport = { [unowned self] (view, data) in
  138. KMBatchManager.manager.batch(type: type, data: data)
  139. }
  140. break
  141. case .imageToPDF:
  142. resultView = KMBatchImageToPDFView()
  143. resultView.batchExport = { [unowned self] (view, data) in
  144. KMBatchManager.manager.batch(type: type, data: data)
  145. }
  146. default:
  147. KMPrint("找不到")
  148. break
  149. }
  150. resultView.type = type
  151. resultView.subType = subType
  152. resultView.filesData = self.filesData ?? []
  153. resultView.isDisable = self.isDisable
  154. resultView.reloadData()
  155. self.itemViewArray.append(resultView)
  156. } else {
  157. if resultView.filesData.count == 0 && self.filesData?.count != 0{
  158. resultView.filesData = self.filesData ?? []
  159. }
  160. }
  161. return resultView
  162. }
  163. }