2 // SlotItemWindowController.swift
5 // Created by Hori,Masaki on 2016/12/21.
6 // Copyright © 2016年 Hori,Masaki. All rights reserved.
11 class SlotItemWindowController: NSWindowController {
18 let managedObjectContext = ServerDataStore.default.context
20 @IBOutlet var slotItemController: NSArrayController!
21 @IBOutlet var searchField: NSSearchField!
23 override var windowNibName: String! {
24 return "SlotItemWindowController"
27 var showEquipmentType: Int {
28 get { return UserDefaults.standard.showEquipmentType.rawValue }
30 notifyChangeValue(forKey: #keyPath(showEquipmentTypeTitle)) {
31 UserDefaults.standard.showEquipmentType = ShowType(rawValue: newValue) ?? .all
33 slotItemController.fetchPredicate = filterPredicate
36 var filterPredicate: NSPredicate? {
37 switch UserDefaults.standard.showEquipmentType {
41 return NSPredicate(format: "equippedShip.lv = NULL && extraEquippedShip.lv = NULL")
43 return NSPredicate(format: "equippedShip.lv != NULL || extraEquippedShip.lv != NULL")
46 var showEquipmentTypeTitle: String {
47 switch UserDefaults.standard.showEquipmentType {
49 return NSLocalizedString("All", comment: "show equipment type All")
51 return NSLocalizedString("Unequiped", comment: "show equipment type Unequiped")
53 return NSLocalizedString("Equiped", comment: "show equipment type Equiped")
57 override func windowDidLoad() {
61 let type = showEquipmentType
62 showEquipmentType = type
67 @available(OSX 10.12.2, *)
68 fileprivate var objectForTouchBar: [Int: NSTouchBar] = [:]
70 @available(OSX 10.12.2, *)
71 extension SlotItemWindowController {
72 @IBOutlet var myTouchBar: NSTouchBar? {
73 get { return objectForTouchBar[hash] }
74 set { objectForTouchBar[hash] = newValue }
77 override var touchBar: NSTouchBar? {
79 if let _ = myTouchBar {
82 var topLevel: NSArray = []
83 Bundle.main.loadNibNamed("SlotItemWindowTouchBar",
85 topLevelObjects: &topLevel)
91 @IBAction func nextShowType(_ sender: AnyObject?) {
92 let next = (showEquipmentType + 2) % 3 - 1
93 showEquipmentType = next
95 @IBAction func selectSearchField(_ sender: AnyObject?) {
96 window!.makeFirstResponder(searchField)