2 // DocksViewController.swift
5 // Created by Hori,Masaki on 2016/12/25.
6 // Copyright © 2016年 Hori,Masaki. All rights reserved.
11 final class DocksViewController: MainTabVIewItemViewController {
15 [NSBindingName(#keyPath(deck2Time)), NSBindingName(#keyPath(mission2Name)),
16 NSBindingName(#keyPath(deck3Time)), NSBindingName(#keyPath(mission3Name)),
17 NSBindingName(#keyPath(deck4Time)), NSBindingName(#keyPath(mission4Name))]
19 [NSBindingName(#keyPath(nDock1Time)), NSBindingName(#keyPath(nDock1ShipName)),
20 NSBindingName(#keyPath(nDock2Time)), NSBindingName(#keyPath(nDock2ShipName)),
21 NSBindingName(#keyPath(nDock3Time)), NSBindingName(#keyPath(nDock3ShipName)),
22 NSBindingName(#keyPath(nDock4Time)), NSBindingName(#keyPath(nDock4ShipName))]
24 [NSBindingName(#keyPath(kDock1Time)), NSBindingName(#keyPath(kDock2Time)),
25 NSBindingName(#keyPath(kDock3Time)), NSBindingName(#keyPath(kDock4Time))]
29 @objc let managedObjectContext = ServerDataStore.default.context
30 let questListViewController = QuestListViewController()
31 let battleInfoViewController = BattleInformationViewController()
33 let missionStates = (2...4).flatMap { MissionStatus(number: $0) }
34 let ndockStatus = (1...4).flatMap { NyukyoDockStatus(number: $0) }
35 let kdockStatus = (1...4).flatMap { KenzoDockStatus(number: $0) }
37 @objc var nDock1Time: NSNumber?
38 @objc var nDock2Time: NSNumber?
39 @objc var nDock3Time: NSNumber?
40 @objc var nDock4Time: NSNumber?
42 @objc var nDock1ShipName: String?
43 @objc var nDock2ShipName: String?
44 @objc var nDock3ShipName: String?
45 @objc var nDock4ShipName: String?
47 @objc var kDock1Time: NSNumber?
48 @objc var kDock2Time: NSNumber?
49 @objc var kDock3Time: NSNumber?
50 @objc var kDock4Time: NSNumber?
52 @objc var deck2Time: NSNumber?
53 @objc var deck3Time: NSNumber?
54 @objc var deck4Time: NSNumber?
56 @objc var mission2Name: String?
57 @objc var mission3Name: String?
58 @objc var mission4Name: String?
60 @IBOutlet weak var battleInformationViewPlaceholder: NSView!
61 @IBOutlet weak var questListViewPlaceholder: NSView!
63 override var nibName: NSNib.Name {
65 return .nibName(instanceOf: self)
68 override func viewDidLoad() {
74 AppDelegate.shared.addCounterUpdate {
76 self.missionStates.forEach { $0.update() }
77 self.kdockStatus.forEach { $0.update() }
78 self.ndockStatus.forEach { $0.update() }
81 replace(view: battleInformationViewPlaceholder, with: battleInfoViewController)
82 replace(view: questListViewPlaceholder, with: questListViewController)
85 private func setupStatus() {
88 (#keyPath(deck2Time), #keyPath(mission2Name)),
89 (#keyPath(deck3Time), #keyPath(mission3Name)),
90 (#keyPath(deck4Time), #keyPath(mission4Name))
92 zip(missionStates, missionKeys).forEach {
94 bind(NSBindingName(rawValue: $0.1.0), to: $0.0, withKeyPath: #keyPath(MissionStatus.time), options: nil)
95 bind(NSBindingName(rawValue: $0.1.1), to: $0.0, withKeyPath: #keyPath(MissionStatus.name), options: nil)
99 (#keyPath(nDock1Time), #keyPath(nDock1ShipName)),
100 (#keyPath(nDock2Time), #keyPath(nDock2ShipName)),
101 (#keyPath(nDock3Time), #keyPath(nDock3ShipName)),
102 (#keyPath(nDock4Time), #keyPath(nDock4ShipName))
104 zip(ndockStatus, ndockKeys).forEach {
106 bind(NSBindingName(rawValue: $0.1.0), to: $0.0, withKeyPath: #keyPath(NyukyoDockStatus.time), options: nil)
107 bind(NSBindingName(rawValue: $0.1.1), to: $0.0, withKeyPath: #keyPath(NyukyoDockStatus.name), options: nil)
110 let kdockKeys = [#keyPath(kDock1Time), #keyPath(kDock2Time), #keyPath(kDock3Time), #keyPath(kDock4Time)]
111 zip(kdockStatus, kdockKeys).forEach {
113 bind(NSBindingName(rawValue: $0.1), to: $0.0, withKeyPath: #keyPath(KenzoDockStatus.time), options: nil)