KMBatchSettingView.swift 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179
  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. }
  110. resultView.batchExport = { [unowned self] (view, data) in
  111. KMBatchManager.manager.batch(type: type, data: data)
  112. }
  113. break
  114. case .headerAndFooter:
  115. resultView = KMBatchHeaderAndFooterView.init()
  116. if let view = resultView as? KMBatchHeaderAndFooterView {
  117. view.editSubType = .template
  118. view.reloadInfoView()
  119. }
  120. resultView.batchExport = { [unowned self] (view, data) in
  121. KMBatchManager.manager.batch(type: type, data: data)
  122. }
  123. break
  124. case .batesNumber:
  125. resultView = KMBatchBatesNumberView.init()
  126. if let view = resultView as? KMBatchBatesNumberView {
  127. view.editSubType = .template
  128. view.reloadInfoView()
  129. }
  130. resultView.batchExport = { [unowned self] (view, data) in
  131. KMBatchManager.manager.batch(type: type, data: data)
  132. }
  133. break
  134. case .batchRemove:
  135. resultView = KMBatchRemoveView.init()
  136. resultView.batchExport = { [unowned self] (view, data) in
  137. KMBatchManager.manager.batch(type: type, data: data)
  138. }
  139. break
  140. case .imageToPDF:
  141. resultView = KMBatchImageToPDFView()
  142. resultView.batchExport = { [unowned self] (view, data) in
  143. KMBatchManager.manager.batch(type: type, data: data)
  144. }
  145. default:
  146. KMPrint("找不到")
  147. break
  148. }
  149. resultView.type = type
  150. resultView.filesData = self.filesData ?? []
  151. resultView.isDisable = self.isDisable
  152. resultView.reloadData()
  153. self.itemViewArray.append(resultView)
  154. } else {
  155. if resultView.filesData.count == 0 && self.filesData?.count != 0{
  156. resultView.filesData = self.filesData ?? []
  157. }
  158. }
  159. resultView.subType = subType
  160. return resultView
  161. }
  162. }