OSDN Git Service

swiftlint 'line_length'の警告を修正
[kcd/KCD.git] / KCD / StrengthenListItemCellView.swift
1 //
2 //  StrengthenListItemCellView.swift
3 //  KCD
4 //
5 //  Created by Hori,Masaki on 2017/01/02.
6 //  Copyright © 2017年 Hori,Masaki. All rights reserved.
7 //
8
9 import Cocoa
10
11 class StrengthenListItemCellView: NSTableCellView {
12     
13     class func keyPathsForValuesAffectingSecondsShipList() -> Set<String> {
14         return ["objectValue"]
15     }
16     class func keyPathsForValuesAffectingRequiredEquipment01() -> Set<String> {
17         return ["objectValue"]
18     }
19     class func keyPathsForValuesAffectingRequiredEquipment02() -> Set<String> {
20         return ["objectValue"]
21     }
22     class func keyPathsForValuesAffectingRequiredEquipment03() -> Set<String> {
23         return ["objectValue"]
24     }
25     class func keyPathsForValuesAffectingTargetEquipment() -> Set<String> {
26         return ["objectValue"]
27     }
28     class func keyPathsForValuesAffectingRemodelEquipment() -> Set<String> {
29         return ["objectValue"]
30     }
31     class func keyPathsForValuesAffectingNeedsScrewString01() -> Set<String> {
32         return ["objectValue"]
33     }
34     class func keyPathsForValuesAffectingNeedsScrewString02() -> Set<String> {
35         return ["objectValue"]
36     }
37     class func keyPathsForValuesAffectingNeedsScrewString03() -> Set<String> {
38         return ["objectValue"]
39     }
40     
41     private var item: EnhancementListItem? {
42         return objectValue as? EnhancementListItem
43     }
44     
45     var secondsShipList: String? {
46         return item?.secondsShipNames.joined(separator: ", ")
47     }
48     var requiredEquipment01: RequiredEquipment? {
49         return item?.requiredEquipments.requiredEquipments.first
50     }
51     var requiredEquipment02: RequiredEquipment? {
52         guard let req = item?.requiredEquipments.requiredEquipments,
53             req.count > 1 else { return nil }
54         return req[1]
55     }
56     var requiredEquipment03: RequiredEquipment? {
57         guard let req = item?.requiredEquipments.requiredEquipments,
58             req.count > 2 else { return nil }
59         return req[2]
60     }
61     var targetEquipment: String? {
62         return item?.targetEquipment
63     }
64     var remodelEquipment: String? {
65         return item?.remodelEquipment
66     }
67     var needsScrewString01: String? {
68         return needsScrewString(screw: requiredEquipment01?.screw, ensureScrew: requiredEquipment01?.ensureScrew)
69     }
70     var needsScrewString02: String? {
71         return needsScrewString(screw: requiredEquipment02?.screw, ensureScrew: requiredEquipment02?.ensureScrew)
72     }
73     var needsScrewString03: String? {
74         return needsScrewString(screw: requiredEquipment03?.screw, ensureScrew: requiredEquipment03?.ensureScrew)
75     }
76     
77     private func needsScrewString(screw: Int?, ensureScrew: Int?) -> String? {
78         guard let screw = screw,
79             let ensureScrew = ensureScrew,
80             screw != 0
81             else { return nil }
82         let screwString = (screw == -1) ? "-" : "\(screw)"
83         let ensureScrewString = (ensureScrew == -1) ? "-" : "\(ensureScrew)"
84         return "\(screwString)/\(ensureScrewString)"
85     }
86 }