OSDN Git Service

分岐係数込みの判定式(33)の値が誤っていたので修正
[kcd/KCD.git] / KCD / HistoryTableViewController.swift
index 99c160f..36ba893 100644 (file)
@@ -7,6 +7,7 @@
 //
 
 import Cocoa
+import Doutaku
 
 private protocol Markable {
     
@@ -33,7 +34,7 @@ class HistoryTableViewController: NSViewController {
     
     // Subbclass MUST override these.
     var predicateFormat: String { fatalError("Subbclass MUST implement.") }
-    func objects(of predicate: NSPredicate?, in store: LocalDataStore) throws -> [NSManagedObject] {
+    func objects(of predicate: Predicate?, in store: LocalDataStore) throws -> [NSManagedObject] {
         
         fatalError("Subbclass MUST implement.")
     }
@@ -45,11 +46,18 @@ class HistoryTableViewController: NSViewController {
         
         let store = LocalDataStore.oneTimeEditor()
         
-        guard let controller = controller else { return }
-        guard let selection = controller.selectedObjects as? [NSManagedObject] else { return }
+        guard let controller = controller else {
+            
+            return
+        }
+        guard let selection = controller.selectedObjects as? [NSManagedObject] else {
+            
+            return
+        }
         
         let selectedIndex = controller.selectionIndex
         store.sync {
+            
             selection
                 .compactMap(store.exchange)
                 .forEach(store.delete)
@@ -63,12 +71,21 @@ class HistoryTableViewController: NSViewController {
     
     @IBAction func addMark(_ sender: AnyObject?) {
         
-        guard let clickedRow = tableView?.clickedRow else { return }
-        guard let items = controller?.arrangedObjects as? [HistoryObject] else { return }
-        guard case 0..<items.count = clickedRow else { return }
+        guard let clickedRow = tableView?.clickedRow else {
+            
+            return
+        }
+        guard let items = controller?.arrangedObjects as? [HistoryObject] else {
+            
+            return
+        }
+        guard case 0..<items.count = clickedRow else {
+            
+            return
+        }
         
         let clickedObject = items[clickedRow]
-        let predicate = NSPredicate(#keyPath(KenzoMark.date), equal: clickedObject.date)
+        let predicate = Predicate(\KenzoMark.date, equalTo: clickedObject.date)
         
         let store = LocalDataStore.oneTimeEditor()
         store.sync {
@@ -86,17 +103,32 @@ class HistoryTableViewController: NSViewController {
     
     override func validateMenuItem(_ menuItem: NSMenuItem) -> Bool {
         
-        guard let itemTag = MenuItemTag(rawValue: menuItem.tag) else { return false }
+        guard let itemTag = MenuItemTag(rawValue: menuItem.tag) else {
+            
+            return false
+        }
         
         switch itemTag {
+            
         case .delete:
+            
             return controller.selectionIndex != -1
             
         case .addMark:
+            
             menuItem.isEnabled = false
-            guard let clickedRow = tableView?.clickedRow else { return false }
-            guard let items = controller?.arrangedObjects as? [Markable] else { return false }
-            guard case 0..<items.count = clickedRow else { return false }
+            guard let clickedRow = tableView?.clickedRow else {
+                
+                return false
+            }
+            guard let items = controller?.arrangedObjects as? [Markable] else {
+                
+                return false
+            }
+            guard case 0..<items.count = clickedRow else {
+                
+                return false
+            }
             
             menuItem.isEnabled = true
             if items[clickedRow].mark {
@@ -126,7 +158,7 @@ extension HistoryTableViewController: NSTableViewDelegate {
 final class KaihatsuHistoryTableViewController: HistoryTableViewController {
     
     override var predicateFormat: String { return "name contains $value" }
-    override func objects(of predicate: NSPredicate?, in store: LocalDataStore) throws -> [NSManagedObject] {
+    override func objects(of predicate: Predicate?, in store: LocalDataStore) throws -> [NSManagedObject] {
         
         return try store.objects(of: KaihatuHistory.entity, predicate: predicate)
     }
@@ -135,7 +167,7 @@ final class KaihatsuHistoryTableViewController: HistoryTableViewController {
 final class KenzoHistoryTableViewController: HistoryTableViewController {
     
     override var predicateFormat: String { return "name contains $value" }
-    override func objects(of predicate: NSPredicate?, in store: LocalDataStore) throws -> [NSManagedObject] {
+    override func objects(of predicate: Predicate?, in store: LocalDataStore) throws -> [NSManagedObject] {
         
         return try store.objects(of: KenzoHistory.entity, predicate: predicate)
     }
@@ -144,7 +176,7 @@ final class KenzoHistoryTableViewController: HistoryTableViewController {
 final class DropShipHistoryTableViewController: HistoryTableViewController {
     
     override var predicateFormat: String { return "shipName contains $value" }
-    override func objects(of predicate: NSPredicate?, in store: LocalDataStore) throws -> [NSManagedObject] {
+    override func objects(of predicate: Predicate?, in store: LocalDataStore) throws -> [NSManagedObject] {
         
         return try store.objects(of: DropShipHistory.entity, predicate: predicate)
     }