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
22 @objc let manageObjectContext = LocalDataStore.default.context
24 @IBOutlet private var tabView: NSTabView!
25 @IBOutlet private var kaihatsuTableVC: KaihatsuHistoryTableViewController!
26 @IBOutlet private var kenzoTableVC: KenzoHistoryTableViewController!
27 @IBOutlet private var dropShipTableVC: DropShipHistoryTableViewController!
29 @IBOutlet private var searchField: NSSearchField!
31 private var currentSelection: HistoryTableViewController? {
35 window?.makeFirstResponder(currentSelection?.tableView)
37 if let controller = currentSelection?.controller,
38 let predicateFormat = currentSelection?.predicateFormat {
40 searchField.bind(.predicate,
42 withKeyPath: NSBindingName.filterPredicate.rawValue,
43 options: [.predicateFormat: predicateFormat])
46 searchField.unbind(.predicate)
51 @objc var selectedTabIndex: Int = -1 {
55 guard let tabIndex = HistoryWindowTabIndex(rawValue: selectedTabIndex) else {
63 currentSelection = kaihatsuTableVC
66 currentSelection = kenzoTableVC
69 currentSelection = dropShipTableVC
74 override var windowNibName: NSNib.Name {
76 return .nibName(instanceOf: self)
79 override func windowDidLoad() {
83 let vcs: [NSViewController] = [kaihatsuTableVC, kenzoTableVC, dropShipTableVC]
84 zip(vcs, tabView.tabViewItems).forEach { $0.1.viewController = $0.0 }
89 @IBAction func delete(_ sender: AnyObject?) {
91 currentSelection?.delete(sender)
95 @available(OSX 10.12.2, *)
96 private var objectForTouchBar: [Int: NSTouchBar] = [:]
97 private var object1ForTouchBar: [Int: NSButton] = [:]
99 @available(OSX 10.12.2, *)
100 extension HistoryWindowController {
102 @IBOutlet private var myTouchBar: NSTouchBar? {
104 get { return objectForTouchBar[hashValue] }
105 set { objectForTouchBar[hashValue] = newValue }
108 @IBOutlet private var searchButton: NSButton? {
110 get { return object1ForTouchBar[hashValue] }
111 set { object1ForTouchBar[hashValue] = newValue }
114 override var touchBar: NSTouchBar? {
118 if let _ = myTouchBar {
122 var topLevel: NSArray?
123 Bundle.main.loadNibNamed(NSNib.Name("HistoryWindowTouchBar"),
125 topLevelObjects: &topLevel)
132 @IBAction func selectSearchField(_ sender: AnyObject?) {
134 window?.makeFirstResponder(searchField!)