123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166 |
- //
- // KMBackgroundPropertyController.swift
- // PDF Master
- //
- // Created by tangchao on 2022/12/23.
- //
- import Cocoa
- protocol KMBackgroundPropertyDelegate: KMWatermarkAdjectivePropertyDelegate {
-
- }
- typealias KMBackgroundPropertyTemplateDidSelected = (_ model: KMBackgroundModel,_ isSelected: Bool)->()
- typealias KMBackgroundPropertyTemplateMenuItemClick = (_ itemIndex: Int, _ model: KMBackgroundModel)->()
- class KMBackgroundPropertyController: KMWatermarkAdjectivePropertyBaseController {
- var templateDidSelected: KMBackgroundPropertyTemplateDidSelected!
- var menuItemClick: KMBackgroundPropertyTemplateMenuItemClick!
-
- override func viewDidLoad() {
- super.viewDidLoad()
-
- self.showBack(show: false)
- self.titleLabel.stringValue = NSLocalizedString("Background", comment: "")
- self.segementControl.items = [NSLocalizedString("Color", comment: ""),NSLocalizedString("File", comment: "")]
- self.segementControl.itemClick = {
- [self] (index: Int) in
- self.tabView.selectTabViewItem(at: index)
- }
-
- let item = NSTabViewItem(identifier: "tabID")
- item.label = "tab1";
- let controller = KMBackgroundListController()
- item.viewController = controller
- controller.emptyView.despLabel.stringValue = NSLocalizedString("Click the Add button in the upper right corner to create a new background.", comment: "")
- controller.delegate = self
-
- let item2 = NSTabViewItem(identifier: "tablID2")
- item2.label = "tab2";
- let controller2 = KMBackgroundListController()
- item2.viewController = controller2
- controller2.emptyView.despLabel.stringValue = NSLocalizedString("Click the Add button in the upper right corner to create a new background.", comment: "")
- controller2.delegate = self
-
- self.tabView.addTabViewItem(item)
- self.tabView.addTabViewItem(item2)
-
- childViewController.append(controller)
- childViewController.append(controller2)
-
- reloadDatas()
- }
-
- func findTemplateModel(in controller: KMBackgroundListController, index: Int) -> KMBackgroundModel? {
- if (index >= controller.datas.count) {
- return nil
- }
-
- return (controller.datas[index] as! KMBackgroundModel)
- }
-
- func deleteTemplateModel(_ templateModel: KMBackgroundModel) -> Bool {
- return KMBackgroundManager.defaultManager.deleteTemplate(model: templateModel)
- }
-
- func deleteTemplateModel(in controller: KMBackgroundListController, index: Int) {
- if (index >= controller.datas.count) {
- return
- }
-
- let templateModel: KMBackgroundModel = controller.datas[index] as! KMBackgroundModel
- if (deleteTemplateModel(templateModel)) { /// 删除成功,刷新数据
- reloadDatas()
- }
- }
-
- func deleteAllTemplateModel(in controller: KMBackgroundListController) {
- if (controller.isEqual(to: childViewController.first)) {
- if (KMBackgroundManager.defaultManager.deleteAllColorTemplates()) {
- reloadDatas()
- }
- } else {
- if (KMBackgroundManager.defaultManager.deleteAllFileTemplates()) {
- reloadDatas()
- }
- }
- }
-
- func reloadDatas () {
- var colorModels: Array<KMBackgroundModel> = []
- var fileModels: Array<KMBackgroundModel> = []
- for model in KMBackgroundManager.defaultManager.datas {
- if (model.type == .file) { /// 文件
- fileModels.append(model)
- } else { /// 颜色
- colorModels.append(model)
- }
- }
-
- var count: Int = 0
- for controller in childViewController {
- let listController: KMBackgroundListController = controller as! KMBackgroundListController
- if (count == 0) {
- listController.initDatas(datas: colorModels)
- } else {
- listController.initDatas(datas: fileModels)
- }
- count += 1
- }
- }
- }
- extension KMBackgroundPropertyController: KMWatermarkAdjectiveListControllerDelegate {
- func controller(controller: KMWatermarkAdjectiveListController, shouldSelectAtRow: Int) -> Bool {
- return true
- }
- func controller(controller: KMWatermarkAdjectiveListController, didSelectAtRow: Int) {
- guard let callback = templateDidSelected else {
- return
- }
-
- let isSelected = controller.selectedTemplateID.isEmpty == false
- callback(findTemplateModel(in: controller as! KMBackgroundListController, index: didSelectAtRow)!, isSelected)
- }
-
- func controller(controller: KMWatermarkAdjectiveListController, didRemoveAtRow: Int) {
- deleteTemplateModel(in: controller as! KMBackgroundListController, index: didRemoveAtRow)
- }
-
- func controller(controller: KMWatermarkAdjectiveListController, didEditAtRow: Int) {
- guard let callback = menuItemClick else {
- return
- }
-
- callback(2, findTemplateModel(in: controller as! KMBackgroundListController, index: didEditAtRow)!)
- }
-
- func controller(controller: KMWatermarkAdjectiveListController, item: NSMenuItem, itemIndex: Int) {
- if (itemIndex == 1) { /// 删除
- deleteTemplateModel(in: controller as! KMBackgroundListController, index: item.tag)
- return
- }
-
- if (itemIndex == 2) { /// 删除全部
- let alert = NSAlert()
- alert.messageText = "确认删除全部模板吗?"
- alert.addButton(withTitle: "删除")
- alert.addButton(withTitle: "取消")
- let result = alert.runModal()
- if (result == .alertSecondButtonReturn) { /// 取消
- return
- }
-
- deleteAllTemplateModel(in: controller as! KMBackgroundListController)
- return
- }
-
- /// 编辑
- guard let callback = menuItemClick else {
- return
- }
-
- callback(2, findTemplateModel(in: controller as! KMBackgroundListController, index: item.tag)!)
- }
- }
|