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)]
24 @objc let managedObjectContext = ServerDataStore.default.context
28 unbind(NSBindingName(#keyPath(maxChara)))
29 unbind(NSBindingName(#keyPath(shipCount)))
32 @IBOutlet private var shipController: NSArrayController!
33 @IBOutlet private var basicController: NSObjectController!
35 @objc dynamic var maxChara: Int = 0
36 @objc dynamic var shipCount: Int = 0
37 @objc dynamic var shipNumberColor: NSColor {
39 if shipCount > maxChara - minimumColoredShipCount {
44 return .controlTextColor
47 @objc dynamic var minimumColoredShipCount: Int {
49 get { return UserDefaults.standard[.minimumColoredShipCount] }
50 set { UserDefaults.standard[.minimumColoredShipCount] = newValue }
53 override var nibName: NSNib.Name {
55 return .nibName(instanceOf: self)
58 override func viewDidLoad() {
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)