2 // HistoryWindowController.swift
5 // Created by Hori,Masaki on 2016/12/20.
6 // Copyright © 2016年 Hori,Masaki. All rights reserved.
11 final class HistoryWindowController: NSWindowController {
13 private enum HistoryWindowTabIndex: Int {
15 case kaihatuHistory = 0
20 @objc let manageObjectContext = LocalDataStore.default.context
22 @IBOutlet private var tabView: NSTabView!
23 @IBOutlet private var kaihatsuTableVC: KaihatsuHistoryTableViewController!
24 @IBOutlet private var kenzoTableVC: KenzoHistoryTableViewController!
25 @IBOutlet private var dropShipTableVC: DropShipHistoryTableViewController!
27 @IBOutlet private var searchField: NSSearchField!
29 private var currentSelection: HistoryTableViewController? {
32 window?.makeFirstResponder(currentSelection?.tableView)
34 if let controller = currentSelection?.controller,
35 let predicateFormat = currentSelection?.predicateFormat {
37 searchField.bind(.predicate,
39 withKeyPath: NSBindingName.filterPredicate.rawValue,
40 options: [.predicateFormat: predicateFormat])
43 searchField.unbind(.predicate)
48 @objc var selectedTabIndex: Int = -1 {
51 guard let tabIndex = HistoryWindowTabIndex(rawValue: selectedTabIndex) else { return }
55 currentSelection = kaihatsuTableVC
58 currentSelection = kenzoTableVC
61 currentSelection = dropShipTableVC
65 override var windowNibName: NSNib.Name {
67 return .nibName(instanceOf: self)
70 override func windowDidLoad() {
74 let vcs: [NSViewController] = [kaihatsuTableVC, kenzoTableVC, dropShipTableVC]
75 zip(vcs, tabView.tabViewItems).forEach { $0.1.viewController = $0.0 }
80 @IBAction func delete(_ sender: AnyObject?) {
82 currentSelection?.delete(sender)
86 @available(OSX 10.12.2, *)
87 private var objectForTouchBar: [Int: NSTouchBar] = [:]
88 private var object1ForTouchBar: [Int: NSButton] = [:]
90 @available(OSX 10.12.2, *)
91 extension HistoryWindowController {
93 @IBOutlet private var myTouchBar: NSTouchBar? {
95 get { return objectForTouchBar[hashValue] }
96 set { objectForTouchBar[hashValue] = newValue }
99 @IBOutlet private var searchButton: NSButton? {
101 get { return object1ForTouchBar[hashValue] }
102 set { object1ForTouchBar[hashValue] = newValue }
105 override var touchBar: NSTouchBar? {
108 if let _ = myTouchBar {
112 var topLevel: NSArray?
113 Bundle.main.loadNibNamed(NSNib.Name("HistoryWindowTouchBar"),
115 topLevelObjects: &topLevel)
122 @IBAction func selectSearchField(_ sender: AnyObject?) {
124 window?.makeFirstResponder(searchField!)