2 // ResourceViewController.swift
5 // Created by Hori,Masaki on 2016/12/25.
6 // Copyright © 2016年 Hori,Masaki. All rights reserved.
11 final class ResourceViewController: NSViewController {
13 @objc override class func keyPathsForValuesAffectingValue(forKey key: String) -> Set<String> {
17 case #keyPath(shipNumberColor): return [#keyPath(maxChara), #keyPath(shipCount), #keyPath(minimumColoredShipCount)]
23 @objc let managedObjectContext = ServerDataStore.default.context
27 unbind(NSBindingName(#keyPath(maxChara)))
28 unbind(NSBindingName(#keyPath(shipCount)))
31 @IBOutlet var shipController: NSArrayController!
32 @IBOutlet var basicController: NSObjectController!
34 @objc dynamic var maxChara: Int = 0
35 @objc dynamic var shipCount: Int = 0
36 @objc dynamic var shipNumberColor: NSColor {
38 if shipCount > maxChara - minimumColoredShipCount {
43 return .controlTextColor
46 @objc dynamic var minimumColoredShipCount: Int {
48 get { return UserDefaults.standard[.minimumColoredShipCount] }
49 set { UserDefaults.standard[.minimumColoredShipCount] = newValue }
52 override var nibName: NSNib.Name {
54 return .nibName(instanceOf: self)
57 override func viewDidLoad() {
61 bind(NSBindingName(#keyPath(maxChara)), to: basicController, withKeyPath: "selection.max_chara", options: nil)
62 bind(NSBindingName(#keyPath(shipCount)), to: shipController, withKeyPath: "arrangedObjects.@count", options: nil)