123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139 |
- //
- // KMConvertCSVSettingView.swift
- // PDF Master
- //
- // Created by tangchao on 2022/12/6.
- //
- import Cocoa
- class KMConvertCSVSettingView: KMConvertSettingView, NibLoadable {
- @IBOutlet weak var oneFileForPageComboBox: NSButton!
- @IBOutlet weak var onlyGetTableBox: NSBox!
- @IBOutlet weak var tableSheetComboBox: NSComboBox!
-
- @IBOutlet weak var pageRangeBox: NSBox!
-
- var selectedSettingIndex: Int = 0
- var selectedTableFormatIndex: Int = 0
-
- var onlyGetTableVC: KMDesignButton!
-
- static var nibName: String? {
- return "KMConvertBaseWindowController"
- }
-
- static func createFromNib(in bundle: Bundle = Bundle.main) -> Self? {
- guard let nibName = nibName else { return nil }
- var topLevelArray: NSArray? = nil
- bundle.loadNibNamed(NSNib.Name(nibName), owner: nil, topLevelObjects: &topLevelArray)
- guard let results = topLevelArray else { return nil }
- let views = Array<Any>(results).filter { $0 is Self }
- return views.last as? Self
- }
-
- override func awakeFromNib() {
- super.awakeFromNib()
- onlyGetTableVC = KMDesignButton.init(withType: .CheckBox)
- onlyGetTableBox.fillColor = .clear
- onlyGetTableBox.contentView = onlyGetTableVC.view
-
- oneFileForPageComboBox.title = NSLocalizedString("Excel Worksheet Settings", comment: "")
- oneFileForPageComboBox.font = .SFProTextSemibold(12)
- oneFileForPageComboBox.setTitleColor(NSColor(hex: "#616469"))
- onlyGetTableVC.stringValue = NSLocalizedString("Only Table", comment: "")
- onlyGetTableVC.target = self
- onlyGetTableVC.action = #selector(self.radioAction(sender:))
- onlyGetTableVC.checkbox_radio()
-
- tableSheetComboBox.removeAllItems()
- tableSheetComboBox.addItems(withObjectValues: ["支持一个表格提取到单独的工作表","支持按页面提取表格到单独的工作表","支持将所有表格提取到一个工作表"])
- tableSheetComboBox.selectItem(at: 0)
- tableSheetComboBox.delegate = self
-
- // for radio in [onlyGetTableComboBox] {
- // radio?.target = self
- // radio?.action = #selector(radioAction)
- // }
- }
-
- override func viewDidMoveToWindow() {
- super.viewDidMoveToWindow()
-
- let pageRangeItemView = KMConvertPageRangeSettingItemView.createFromNib()
- pageRangeItemView?.frame = pageRangeBox.contentView!.bounds
- pageRangeItemView?.autoresizingMask = NSView.AutoresizingMask(rawValue: 18)
- pageRangeBox.contentView = pageRangeItemView
- self.pageRangeItemView = pageRangeItemView
- pageRangeItemView?.isTextDidEndCallback = true
- pageRangeItemView?.pageCount = self.pageCount
-
- pageRangeItemView?.itemClick = { [unowned self] index, _ in
- pageRangeSelectedIndex = index
-
- guard let callback = self.pageRangeDidChange else {
- return
- }
-
- callback(KMPageRange(rawValue: index)!)
- }
-
- pageRangeItemView?.textDidEndEditingCallback = { [unowned self] textString in
- let pageRange = KMPageRange(rawValue: self.pageRangeSelectedIndex)
- if (pageRange != .custom) {
- return
- }
-
- guard let callback = pageRangeDidInputFinishCallback else {
- return
- }
-
- callback(textString)
- }
- }
-
- @objc func radioAction(sender: NSButton) {
- for radio in [onlyGetTableVC] {
- if ((radio?.button.isEqual(to: sender))!) {
- if radio?.state == .Checked {
- radio?.state = .Norm
- } else {
- radio?.state = .Checked
- }
- }
- }
-
- if onlyGetTableVC.state == .Checked {
- tableSheetComboBox.isEnabled = true
- } else {
- tableSheetComboBox.isEnabled = false
- }
-
- if onlyGetTableVC.state == .Checked {
- selectedSettingIndex = 1
- } else {
- selectedSettingIndex = 0
- }
- }
-
- override func getPageRangeString() -> String {
- if let view = self.pageRangeItemView {
- return view.pageRangeValue
- }
- return ""
- }
- }
- extension KMConvertCSVSettingView: NSComboBoxDelegate {
- func comboBoxSelectionDidChange(_ notification: Notification) {
- if (tableSheetComboBox.isEqual(to: notification.object)) {
- if tableSheetComboBox.indexOfSelectedItem < 0 {
- selectedTableFormatIndex = 0
- return
- }
-
- selectedTableFormatIndex = tableSheetComboBox.indexOfSelectedItem
- }
- }
- }
|