123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- //
- // SettingViewController.swift
- // KdanAuto
- //
- // Created by 朱东勇 on 2022/11/21.
- //
- import Foundation
- import AppKit
- enum PathType {
- case Origin;
- case Result;
- case Check;
- }
- public protocol SettingViewControllerDelegate : NSObjectProtocol {
- @MainActor func settingViewDidFinished()
- }
- class SettingViewController : NSViewController, NSTextFieldDelegate, NSWindowDelegate {
- static var vc : SettingViewController!
- @IBOutlet var window : NSWindow!
-
- public var delegate : SettingViewControllerDelegate!
-
- @IBOutlet var originPathTF : NSTextField!
- @IBOutlet var resultPathTF : NSTextField!
- @IBOutlet var checkPathTF : NSTextField!
-
- @IBOutlet var originPathBtn : NSButton!
- @IBOutlet var resultPathBtn : NSButton!
- @IBOutlet var checkPathBtn : NSButton!
-
- class func shared() -> SettingViewController {
- if vc == nil {
- vc = SettingViewController()
-
- Bundle.main.loadNibNamed("SettingViewController", owner: vc, topLevelObjects: nil)
- }
-
- return vc
- }
-
- override func viewDidLoad() {
-
- }
-
- override func viewWillAppear() {
- self.originPathTF.stringValue = DataModel.shared.originPath();
- self.checkPathTF.stringValue = DataModel.shared.checkPath();
- self.resultPathTF.stringValue = DataModel.shared.resultPath();
- }
-
- // IBAction
- @IBAction func pathSelected(_ sender:NSButton) {
- var openPanel = NSOpenPanel()
-
- openPanel.canChooseFiles = false
- openPanel.canChooseDirectories = true
-
- var pt:PathType = .Origin
- if (sender == self.checkPathBtn) {
- pt = .Check
- }else if sender == self.resultPathBtn {
- pt = .Result
- }
-
-
- if openPanel.runModal() == NSApplication.ModalResponse.OK {
- let path = openPanel.directoryURL?.relativePath
-
- switch (pt)
- {
-
- case .Origin: do {
- DataModel.shared.setOriginPath(path!);
- self.originPathTF.stringValue = path!;
- }
- case .Check: do {
- DataModel.shared.setCheckPath(path!);
- self.checkPathTF.stringValue = path!;
- }
-
- default: do {
- DataModel.shared.setResultPath(path!);
- self.resultPathTF.stringValue = path!;
- }
-
- }
- }
-
- }
-
- // Show
- public func show() {
- window.setIsVisible(true);
- }
-
- //Window Delegate
- func windowShouldClose(_ sender: NSWindow) -> Bool {
- if delegate != nil {
- delegate.settingViewDidFinished()
- }
-
- sender.setIsVisible(false);
-
- return false;
- }
-
- }
|