OSDN Git Service

不要となっていたプロパティを削除
[kcd/KCD.git] / KCD / ResourceViewController.swift
1 //
2 //  ResourceViewController.swift
3 //  KCD
4 //
5 //  Created by Hori,Masaki on 2016/12/25.
6 //  Copyright © 2016年 Hori,Masaki. All rights reserved.
7 //
8
9 import Cocoa
10
11 final class ResourceViewController: NSViewController {
12     
13     @objc override class func keyPathsForValuesAffectingValue(forKey key: String) -> Set<String> {
14         
15         switch key {
16             
17         case #keyPath(shipNumberColor): return [#keyPath(maxChara), #keyPath(shipCount), #keyPath(minimumColoredShipCount)]
18             
19         default: return []
20             
21         }
22     }
23     
24     @objc let managedObjectContext = ServerDataStore.default.context
25     
26     deinit {
27         
28         unbind(NSBindingName(#keyPath(maxChara)))
29         unbind(NSBindingName(#keyPath(shipCount)))
30     }
31     
32     @IBOutlet private var shipController: NSArrayController!
33     @IBOutlet private var basicController: NSObjectController!
34     
35     @objc dynamic var maxChara: Int = 0
36     @objc dynamic var shipCount: Int = 0
37     @objc dynamic var shipNumberColor: NSColor {
38         
39         if shipCount > maxChara - minimumColoredShipCount {
40             
41             return .orange
42         }
43         
44         return .controlTextColor
45     }
46     
47     @objc dynamic var minimumColoredShipCount: Int {
48         
49         get { return UserDefaults.standard[.minimumColoredShipCount] }
50         set { UserDefaults.standard[.minimumColoredShipCount] = newValue }
51     }
52     
53     override var nibName: NSNib.Name {
54         
55         return .nibName(instanceOf: self)
56     }
57     
58     override func viewDidLoad() {
59         
60         super.viewDidLoad()
61         
62         bind(NSBindingName(#keyPath(maxChara)), to: basicController, withKeyPath: "selection.max_chara", options: nil)
63         bind(NSBindingName(#keyPath(shipCount)), to: shipController, withKeyPath: "arrangedObjects.@count", options: nil)
64     }
65 }