2 // StrengthenListItemCellView.swift
5 // Created by Hori,Masaki on 2017/01/02.
6 // Copyright © 2017年 Hori,Masaki. All rights reserved.
11 final class StrengthenListItemCellView: NSTableCellView {
13 @objc override class func keyPathsForValuesAffectingValue(forKey key: String) -> Set<String> {
17 case #keyPath(secondsShipList),
18 #keyPath(requiredEquipment01), #keyPath(requiredEquipment02), #keyPath(requiredEquipment03),
19 #keyPath(targetEquipment), #keyPath(remodelEquipment),
20 #keyPath(needsScrewString01), #keyPath(needsScrewString02), #keyPath(needsScrewString03):
22 return [#keyPath(objectValue)]
29 private var item: StrengthenListEnhancementItem? {
31 return objectValue as? StrengthenListEnhancementItem
34 @objc var secondsShipList: String? {
36 return item?.secondsShipNames.joined(separator: ", ")
39 @objc var requiredEquipment01: RequiredEquipment? {
41 return item?.requiredEquipments.requiredEquipments.first
44 @objc var requiredEquipment02: RequiredEquipment? {
46 guard let req = item?.requiredEquipments.requiredEquipments, req.count > 1 else {
54 @objc var requiredEquipment03: RequiredEquipment? {
56 guard let req = item?.requiredEquipments.requiredEquipments, req.count > 2 else {
64 @objc var targetEquipment: String? {
66 return item?.targetEquipment
69 @objc var remodelEquipment: String? {
71 return item?.remodelEquipment
74 @objc var needsScrewString01: String? {
76 return needsScrewString(screw: requiredEquipment01?.screw, ensureScrew: requiredEquipment01?.ensureScrew)
79 @objc var needsScrewString02: String? {
81 return needsScrewString(screw: requiredEquipment02?.screw, ensureScrew: requiredEquipment02?.ensureScrew)
84 @objc var needsScrewString03: String? {
86 return needsScrewString(screw: requiredEquipment03?.screw, ensureScrew: requiredEquipment03?.ensureScrew)
89 private func needsScrewString(screw: Int?, ensureScrew: Int?) -> String? {
91 guard let screw = screw else {
95 guard let ensureScrew = ensureScrew else {
99 guard ensureScrew != 0 else {
104 let screwString = (screw == -1) ? "-" : "\(screw)"
105 let ensureScrewString = (ensureScrew == -1) ? "-" : "\(ensureScrew)"
107 return "\(screwString)/\(ensureScrewString)"
111 extension StrengthenListItemCellView: StrengthenListCellType {
113 static var cellIdentifier: NSUserInterfaceItemIdentifier {
115 return NSUserInterfaceItemIdentifier("ItemCell")
118 static func estimateCellHeightForItem(item: StrengthenListItem, tableView: NSTableView) -> CGFloat {