2 // HistoryWindowController.swift
5 // Created by Hori,Masaki on 2016/12/20.
6 // Copyright © 2016年 Hori,Masaki. All rights reserved.
11 class HistoryWindowController: NSWindowController {
12 fileprivate enum HistoryWindowTabIndex: Int {
13 case kaihatuHistory = 0
18 let manageObjectContext = LocalDataStore.default.managedObjectContext
20 @IBOutlet var tabView: NSTabView!
21 @IBOutlet var kaihatsuTableVC: KaihatsuHistoryTableViewController!
22 @IBOutlet var kenzoTableVC: KenzoHistoryTableViewController!
23 @IBOutlet var dropShipTableVC: DropShipHistoryTableViewController!
25 @IBOutlet var searchField: NSSearchField!
27 private var currentSelection: HistoryTableViewController? {
29 window?.makeFirstResponder(currentSelection?.tableView)
31 if let controller = currentSelection?.controller,
32 let predicateFormat = currentSelection?.predicateFormat {
33 searchField.bind(NSPredicateBinding,
35 withKeyPath: NSFilterPredicateBinding,
36 options: [NSPredicateFormatBindingOption: predicateFormat])
38 searchField.unbind(NSPredicateBinding)
43 var selectedTabIndex: Int = -1 {
45 guard let tabIndex = HistoryWindowTabIndex(rawValue: selectedTabIndex)
49 currentSelection = kaihatsuTableVC
51 currentSelection = kenzoTableVC
53 currentSelection = dropShipTableVC
57 override var windowNibName: String! {
58 return "HistoryWindowController"
61 override func windowDidLoad() {
64 let vcs: [NSViewController] = [kaihatsuTableVC, kenzoTableVC, dropShipTableVC]
65 zip(vcs, tabView.tabViewItems)
66 .forEach { $0.1.viewController = $0.0 }
71 @IBAction func delete(_ sender: AnyObject?) {
72 currentSelection?.delete(sender)
76 @available(OSX 10.12.2, *)
77 fileprivate var objectForTouchBar: [Int: NSTouchBar] = [:]
78 fileprivate var object1ForTouchBar: [Int: NSButton] = [:]
80 @available(OSX 10.12.2, *)
81 extension HistoryWindowController {
82 @IBOutlet var myTouchBar: NSTouchBar? {
83 get { return objectForTouchBar[hashValue] }
84 set { objectForTouchBar[hashValue] = newValue }
86 @IBOutlet var searchButton: NSButton? {
87 get { return object1ForTouchBar[hashValue] }
88 set { object1ForTouchBar[hashValue] = newValue }
91 override var touchBar: NSTouchBar? {
93 if let _ = myTouchBar {
96 var topLevel: NSArray = []
97 Bundle.main.loadNibNamed("HistoryWindowTouchBar",
99 topLevelObjects: &topLevel)
105 @IBAction func selectSearchField(_ sender: AnyObject?) {
106 window!.makeFirstResponder(searchField!)