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 class func keyPathsForValuesAffectingShipNumberColor() -> Set<String> {
15 return [#keyPath(maxChara), #keyPath(shipCount), #keyPath(minimumColoredShipCount)]
18 @objc let managedObjectContext = ServerDataStore.default.context
22 unbind(NSBindingName(#keyPath(maxChara)))
23 unbind(NSBindingName(#keyPath(shipCount)))
26 @IBOutlet var shipController: NSArrayController!
27 @IBOutlet var basicController: NSObjectController!
29 @objc dynamic var maxChara: Int = 0
30 @objc dynamic var shipCount: Int = 0
31 @objc dynamic var shipNumberColor: NSColor {
33 if shipCount > maxChara - minimumColoredShipCount {
39 return .controlTextColor
42 @objc dynamic var minimumColoredShipCount: Int {
44 get { return UserDefaults.standard[.minimumColoredShipCount] }
45 set { UserDefaults.standard[.minimumColoredShipCount] = newValue }
48 override var nibName: NSNib.Name {
50 return .nibName(instanceOf: self)
53 override func viewDidLoad() {
57 bind(NSBindingName(#keyPath(maxChara)), to: basicController, withKeyPath: "selection.max_chara", options: nil)
58 bind(NSBindingName(#keyPath(shipCount)), to: shipController, withKeyPath: "arrangedObjects.@count", options: nil)