OSDN Git Service

不要となっていたプロパティを削除
[kcd/KCD.git] / KCD / HistoryWindowController.swift
1 //
2 //  HistoryWindowController.swift
3 //  KCD
4 //
5 //  Created by Hori,Masaki on 2016/12/20.
6 //  Copyright © 2016年 Hori,Masaki. All rights reserved.
7 //
8
9 import Cocoa
10
11 final class HistoryWindowController: NSWindowController {
12     
13     private enum HistoryWindowTabIndex: Int {
14         
15         case kaihatuHistory = 0
16         
17         case kenzoHistory = 1
18         
19         case dropHistory = 2
20     }
21     
22     @objc let manageObjectContext = LocalDataStore.default.context
23     
24     @IBOutlet private var tabView: NSTabView!
25     @IBOutlet private var kaihatsuTableVC: KaihatsuHistoryTableViewController!
26     @IBOutlet private var kenzoTableVC: KenzoHistoryTableViewController!
27     @IBOutlet private var dropShipTableVC: DropShipHistoryTableViewController!
28     
29     @IBOutlet private var searchField: NSSearchField!
30     
31     private var currentSelection: HistoryTableViewController? {
32         
33         didSet {
34             
35             window?.makeFirstResponder(currentSelection?.tableView)
36             
37             if let controller = currentSelection?.controller,
38                 let predicateFormat = currentSelection?.predicateFormat {
39                 
40                 searchField.bind(.predicate,
41                                  to: controller,
42                                  withKeyPath: NSBindingName.filterPredicate.rawValue,
43                                  options: [.predicateFormat: predicateFormat])
44             } else {
45                 
46                 searchField.unbind(.predicate)
47             }
48         }
49     }
50     
51     @objc var selectedTabIndex: Int = -1 {
52         
53         didSet {
54             
55             guard let tabIndex = HistoryWindowTabIndex(rawValue: selectedTabIndex) else {
56                 
57                 return
58             }
59             
60             switch tabIndex {
61                 
62             case .kaihatuHistory:
63                 currentSelection = kaihatsuTableVC
64                 
65             case .kenzoHistory:
66                 currentSelection = kenzoTableVC
67                 
68             case .dropHistory:
69                 currentSelection = dropShipTableVC
70                 
71             }
72         }
73     }
74     override var windowNibName: NSNib.Name {
75         
76         return .nibName(instanceOf: self)
77     }
78     
79     override func windowDidLoad() {
80         
81         super.windowDidLoad()
82         
83         let vcs: [NSViewController] = [kaihatsuTableVC, kenzoTableVC, dropShipTableVC]
84         zip(vcs, tabView.tabViewItems).forEach { $0.1.viewController = $0.0 }
85         
86         selectedTabIndex = 0
87     }
88     
89     @IBAction func delete(_ sender: AnyObject?) {
90         
91         currentSelection?.delete(sender)
92     }
93 }
94
95 @available(OSX 10.12.2, *)
96 private var objectForTouchBar: [Int: NSTouchBar] = [:]
97 private var object1ForTouchBar: [Int: NSButton] = [:]
98
99 @available(OSX 10.12.2, *)
100 extension HistoryWindowController {
101     
102     @IBOutlet private var myTouchBar: NSTouchBar? {
103         
104         get { return objectForTouchBar[hashValue] }
105         set { objectForTouchBar[hashValue] = newValue }
106     }
107     
108     @IBOutlet private var searchButton: NSButton? {
109         
110         get { return object1ForTouchBar[hashValue] }
111         set { object1ForTouchBar[hashValue] = newValue }
112     }
113     
114     override var touchBar: NSTouchBar? {
115         
116         get {
117             
118             if let _ = myTouchBar {
119                 
120                 return myTouchBar
121             }
122             var topLevel: NSArray?
123             Bundle.main.loadNibNamed(NSNib.Name("HistoryWindowTouchBar"),
124                                      owner: self,
125                                      topLevelObjects: &topLevel)
126             
127             return myTouchBar
128         }
129         set {}
130     }
131     
132     @IBAction func selectSearchField(_ sender: AnyObject?) {
133         
134         window?.makeFirstResponder(searchField!)
135     }
136 }