OSDN Git Service

HMSlotItemWindowControllerクラスをSwiftで書き換え
authormasakih <masakih@users.sourceforge.jp>
Sat, 20 Dec 2014 13:29:29 +0000 (22:29 +0900)
committermasakih <masakih@users.sourceforge.jp>
Sat, 20 Dec 2014 13:29:29 +0000 (22:29 +0900)
KCD.xcodeproj/project.pbxproj
KCD/HMAppDelegate.m
KCD/HMSlotItemWindowController.h [deleted file]
KCD/HMSlotItemWindowController.m [deleted file]
KCD/HMSlotItemWindowController.swift [new file with mode: 0644]
KCD/KCD-Bridging-Header.h [new file with mode: 0644]
KCD/ja.lproj/HMSlotItemWindowController.xib

index 18e1c2c..4c6f473 100644 (file)
@@ -10,7 +10,6 @@
                F4131ECF190F5C08004F7F9A /* HMStoreCreateSlotItemHistoryCommand.m in Sources */ = {isa = PBXBuildFile; fileRef = F4131ECE190F5C08004F7F9A /* HMStoreCreateSlotItemHistoryCommand.m */; };
                F4131ED5190F63D8004F7F9A /* HMUpdateSlotItemCommand.m in Sources */ = {isa = PBXBuildFile; fileRef = F4131ED4190F63D8004F7F9A /* HMUpdateSlotItemCommand.m */; };
                F4131ED8190FA08D004F7F9A /* HMDestroyItem2Command.m in Sources */ = {isa = PBXBuildFile; fileRef = F4131ED7190FA08D004F7F9A /* HMDestroyItem2Command.m */; };
-               F4131EDC190FEBCC004F7F9A /* HMSlotItemWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = F4131EDA190FEBCC004F7F9A /* HMSlotItemWindowController.m */; };
                F4131EDE190FEBDB004F7F9A /* HMSlotItemWindowController.xib in Resources */ = {isa = PBXBuildFile; fileRef = F4131EE0190FEBDB004F7F9A /* HMSlotItemWindowController.xib */; };
                F4131EE61910318F004F7F9A /* HMMasterSlotItemEquipTypeCommand.m in Sources */ = {isa = PBXBuildFile; fileRef = F4131EE51910318F004F7F9A /* HMMasterSlotItemEquipTypeCommand.m */; };
                F4131EE91911445F004F7F9A /* HMSlotItemEquipTypeTransformer.m in Sources */ = {isa = PBXBuildFile; fileRef = F4131EE81911445F004F7F9A /* HMSlotItemEquipTypeTransformer.m */; };
@@ -84,6 +83,7 @@
                F4B2D02B18F83A2F00542742 /* HMScreenshotWindowController.xib in Resources */ = {isa = PBXBuildFile; fileRef = F4B2D02D18F83A2F00542742 /* HMScreenshotWindowController.xib */; };
                F4B2D03118F83CBB00542742 /* HMDeckViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = F4B2D02F18F83CBB00542742 /* HMDeckViewController.m */; };
                F4B2D03318F83CC800542742 /* HMDeckViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = F4B2D03518F83CC800542742 /* HMDeckViewController.xib */; };
+               F4B30CF31A458AF2008E3D79 /* HMSlotItemWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = F4B30CF11A458AF2008E3D79 /* HMSlotItemWindowController.swift */; };
                F4B37EF019FADFC9002F371A /* HMIgnoreZeroTransformer.m in Sources */ = {isa = PBXBuildFile; fileRef = F4B37EEF19FADFC9002F371A /* HMIgnoreZeroTransformer.m */; };
                F4B37EF319FBBBED002F371A /* HMRemodelSlotCommand.m in Sources */ = {isa = PBXBuildFile; fileRef = F4B37EF219FBBBED002F371A /* HMRemodelSlotCommand.m */; };
                F4B37EF619FBE801002F371A /* HMRemodelSlotItemCommand.m in Sources */ = {isa = PBXBuildFile; fileRef = F4B37EF519FBE801002F371A /* HMRemodelSlotItemCommand.m */; };
                F4131ED4190F63D8004F7F9A /* HMUpdateSlotItemCommand.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HMUpdateSlotItemCommand.m; sourceTree = "<group>"; };
                F4131ED6190FA08D004F7F9A /* HMDestroyItem2Command.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HMDestroyItem2Command.h; sourceTree = "<group>"; };
                F4131ED7190FA08D004F7F9A /* HMDestroyItem2Command.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HMDestroyItem2Command.m; sourceTree = "<group>"; };
-               F4131ED9190FEBCC004F7F9A /* HMSlotItemWindowController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HMSlotItemWindowController.h; sourceTree = "<group>"; };
-               F4131EDA190FEBCC004F7F9A /* HMSlotItemWindowController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HMSlotItemWindowController.m; sourceTree = "<group>"; };
                F4131EDF190FEBDB004F7F9A /* ja */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ja; path = ja.lproj/HMSlotItemWindowController.xib; sourceTree = "<group>"; };
                F4131EE41910318F004F7F9A /* HMMasterSlotItemEquipTypeCommand.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HMMasterSlotItemEquipTypeCommand.h; sourceTree = "<group>"; };
                F4131EE51910318F004F7F9A /* HMMasterSlotItemEquipTypeCommand.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HMMasterSlotItemEquipTypeCommand.m; sourceTree = "<group>"; };
                F4B2D02E18F83CBB00542742 /* HMDeckViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HMDeckViewController.h; sourceTree = "<group>"; };
                F4B2D02F18F83CBB00542742 /* HMDeckViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HMDeckViewController.m; sourceTree = "<group>"; };
                F4B2D03418F83CC800542742 /* ja */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ja; path = ja.lproj/HMDeckViewController.xib; sourceTree = "<group>"; };
+               F4B30CF01A458AF1008E3D79 /* KCD-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "KCD-Bridging-Header.h"; sourceTree = "<group>"; };
+               F4B30CF11A458AF2008E3D79 /* HMSlotItemWindowController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HMSlotItemWindowController.swift; sourceTree = "<group>"; };
                F4B37EEE19FADFC9002F371A /* HMIgnoreZeroTransformer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HMIgnoreZeroTransformer.h; sourceTree = "<group>"; };
                F4B37EEF19FADFC9002F371A /* HMIgnoreZeroTransformer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HMIgnoreZeroTransformer.m; sourceTree = "<group>"; };
                F4B37EF119FBBBED002F371A /* HMRemodelSlotCommand.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HMRemodelSlotCommand.h; sourceTree = "<group>"; };
                                F4BDEB4F187252F30069D0CE /* InfoPlist.strings */,
                                F4BDEB52187252F30069D0CE /* main.m */,
                                F4BDEB54187252F30069D0CE /* KCD-Prefix.pch */,
+                               F4B30CF01A458AF1008E3D79 /* KCD-Bridging-Header.h */,
                                F43E67B618BE02A10087E5B6 /* STypeShortName.plist */,
                                F43E67B818BE060E0087E5B6 /* LevelUpExp.plist */,
                        );
                                F4B1E30619C73B6A00805879 /* HMSuppliesView.m */,
                                F49828FA1902A226000D6BBE /* HMStrokeTextFieldCell.h */,
                                F49828FB1902A226000D6BBE /* HMStrokeTextFieldCell.m */,
-                               F4131ED9190FEBCC004F7F9A /* HMSlotItemWindowController.h */,
-                               F4131EDA190FEBCC004F7F9A /* HMSlotItemWindowController.m */,
+                               F4B30CF11A458AF2008E3D79 /* HMSlotItemWindowController.swift */,
                                F4131EE0190FEBDB004F7F9A /* HMSlotItemWindowController.xib */,
                                F4A3AD8F19BDDD8D00FDBF80 /* HMPreferencePanelController.h */,
                                F4A3AD9019BDDD8E00FDBF80 /* HMPreferencePanelController.m */,
                                F4B414EF18B0BF1A00468DAF /* HMMasterMapInfoCommand.m in Sources */,
                                F4C118FC18A67B1C005D5B25 /* CustomHTTPProtocol.m in Sources */,
                                F4B3DC1B18DEAB5E0011B4FC /* HMKaihatuHistory.m in Sources */,
-                               F4131EDC190FEBCC004F7F9A /* HMSlotItemWindowController.m in Sources */,
                                F4D2CBCB18B05E58000EBC59 /* HMMaserShipCommand.m in Sources */,
                                F4513EFA18BB699700073552 /* HMShipWindowController.m in Sources */,
                                F42680121943E92D00B2C27F /* HMKCShipObject+Extensions.m in Sources */,
                                F4D2CBC818B0555A000EBC59 /* HMKCManagedObject.m in Sources */,
                                F4D2CBC218AD0E1A000EBC59 /* HMMasterSTypeCommand.m in Sources */,
                                F4B1E30919C73B6A00805879 /* HMSuppliesView.m in Sources */,
+                               F4B30CF31A458AF2008E3D79 /* HMSlotItemWindowController.swift in Sources */,
                                F43BA4A4197BE6C200CFF788 /* HMRealDestroyShipCommand.m in Sources */,
                                F46F104518AA50730063E503 /* HMBroserWindowController.m in Sources */,
                                F4B37EF619FBE801002F371A /* HMRemodelSlotItemCommand.m in Sources */,
                        isa = XCBuildConfiguration;
                        buildSettings = {
                                ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+                               CLANG_ENABLE_MODULES = YES;
                                COMBINE_HIDPI_IMAGES = YES;
                                GCC_PRECOMPILE_PREFIX_HEADER = YES;
                                GCC_PREFIX_HEADER = "KCD/KCD-Prefix.pch";
                                        "COREDATA_STORE_TYPE=0",
                                );
                                INFOPLIST_FILE = "KCD/KCD-Info.plist";
+                               LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks";
                                MACOSX_DEPLOYMENT_TARGET = 10.9;
                                PRODUCT_NAME = "$(TARGET_NAME)";
+                               SWIFT_OBJC_BRIDGING_HEADER = "KCD/KCD-Bridging-Header.h";
+                               SWIFT_OPTIMIZATION_LEVEL = "-Onone";
                                WRAPPER_EXTENSION = app;
                        };
                        name = Debug;
                        isa = XCBuildConfiguration;
                        buildSettings = {
                                ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+                               CLANG_ENABLE_MODULES = YES;
                                COMBINE_HIDPI_IMAGES = YES;
                                GCC_PRECOMPILE_PREFIX_HEADER = YES;
                                GCC_PREFIX_HEADER = "KCD/KCD-Prefix.pch";
                                GCC_PREPROCESSOR_DEFINITIONS = "COREDATA_STORE_TYPE=0";
                                INFOPLIST_FILE = "KCD/KCD-Info.plist";
+                               LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks";
                                MACOSX_DEPLOYMENT_TARGET = 10.9;
                                PRODUCT_NAME = "$(TARGET_NAME)";
+                               SWIFT_OBJC_BRIDGING_HEADER = "KCD/KCD-Bridging-Header.h";
                                WRAPPER_EXTENSION = app;
                        };
                        name = Release;
index 487f2f8..39b3041 100644 (file)
@@ -11,7 +11,6 @@
 #import "HMUserDefaults.h"
 #import "HMBroserWindowController.h"
 #import "HMHistoryWindowController.h"
-#import "HMSlotItemWindowController.h"
 #import "HMPreferencePanelController.h"
 #import "HMUpgradableShipsWindowController.h"
 #import "HMScreenshotListWindowController.h"
@@ -23,6 +22,8 @@
 
 #import "HMTSVSupport.h"
 
+#import "KCD-Swift.h"
+
 
 #ifdef DEBUG
 #import "HMShipWindowController.h"
 - (IBAction)showHideSlotItemWindow:(id)sender
 {
        if(!self.slotItemWindowController) {
-               self.slotItemWindowController = [HMSlotItemWindowController new];
+               self.slotItemWindowController = [HMSlotItemWindowController create];
        }
        
        NSWindow *window = self.slotItemWindowController.window;
diff --git a/KCD/HMSlotItemWindowController.h b/KCD/HMSlotItemWindowController.h
deleted file mode 100644 (file)
index 9d4d072..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-//
-//  HMSlotItemWindowController.h
-//  KCD
-//
-//  Created by Hori,Masaki on 2014/04/29.
-//  Copyright (c) 2014年 Hori,Masaki. All rights reserved.
-//
-
-#import <Cocoa/Cocoa.h>
-
-@interface HMSlotItemWindowController : NSWindowController
-
-@property (readonly) NSManagedObjectContext *managedObjectContext;
-
-@property (nonatomic, strong) IBOutlet NSArrayController *slotItemController;
-@end
diff --git a/KCD/HMSlotItemWindowController.m b/KCD/HMSlotItemWindowController.m
deleted file mode 100644 (file)
index 43eed8c..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-//
-//  HMSlotItemWindowController.m
-//  KCD
-//
-//  Created by Hori,Masaki on 2014/04/29.
-//  Copyright (c) 2014年 Hori,Masaki. All rights reserved.
-//
-
-#import "HMSlotItemWindowController.h"
-#import "HMUserDefaults.h"
-
-#import "HMServerDataStore.h"
-
-@interface HMSlotItemWindowController ()
-
-@end
-
-@implementation HMSlotItemWindowController
-
-- (id)init
-{
-       self = [super initWithWindowNibName:NSStringFromClass([self class])];
-       return self;
-}
-
-- (void)awakeFromNib
-{
-       [self.slotItemController fetchWithRequest:nil merge:YES error:NULL];
-       [self.slotItemController setSortDescriptors:HMStandardDefaults.slotItemSortDescriptors];
-       [self.slotItemController addObserver:self
-                                                 forKeyPath:NSSortDescriptorsBinding
-                                                        options:0
-                                                        context:NULL];
-}
-- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
-{
-       if([keyPath isEqualToString:NSSortDescriptorsBinding]) {
-               HMStandardDefaults.slotItemSortDescriptors = [self.slotItemController sortDescriptors];
-               return;
-       }
-       
-       [super observeValueForKeyPath:keyPath ofObject:object change:change context:context];
-}
-
-- (NSManagedObjectContext *)managedObjectContext
-{
-       return [HMServerDataStore defaultManager].managedObjectContext;
-}
-
-@end
diff --git a/KCD/HMSlotItemWindowController.swift b/KCD/HMSlotItemWindowController.swift
new file mode 100644 (file)
index 0000000..c8bcebd
--- /dev/null
@@ -0,0 +1,55 @@
+//
+//  HMSlotItemWindowController.swift
+//  KCD
+//
+//  Created by Hori,Masaki on 2014/12/20.
+//  Copyright (c) 2014年 Hori,Masaki. All rights reserved.
+//
+
+import Cocoa
+
+
+class HMSlotItemWindowController: NSWindowController
+{
+       override init() {
+               super.init()
+       }
+       override init(window: NSWindow?) {
+               super.init(window: window)
+       }
+       required init?(coder: NSCoder) {
+               super.init(coder: coder)
+       }
+       
+       class func create() -> HMSlotItemWindowController {
+               var hoge =  HMSlotItemWindowController.init(windowNibName:"HMSlotItemWindowController")
+               return hoge
+       }
+       
+       
+       var managedObjectContext : NSManagedObjectContext {
+               get {
+                       var store : HMServerDataStore = HMServerDataStore.defaultManager()
+                       return store.managedObjectContext
+               }
+       }
+       
+       @IBOutlet var slotItemController : NSArrayController?
+       
+       
+    override func windowDidLoad() {
+        super.windowDidLoad()
+               
+               var error : NSErrorPointer = nil
+               self.slotItemController?.fetchWithRequest(nil, merge: true, error: error)
+               self.slotItemController?.sortDescriptors = HMUserDefaults.hmStandardDefauls().slotItemSortDescriptors
+               self.slotItemController?.addObserver(self, forKeyPath: NSSortDescriptorsBinding, options: .Initial, context: nil)
+    }
+       
+       override func observeValueForKeyPath(keyPath: String, ofObject object: AnyObject, change: [NSObject : AnyObject], context: UnsafeMutablePointer<Void>) {
+               if keyPath == NSSortDescriptorsBinding {
+                       HMUserDefaults.hmStandardDefauls().slotItemSortDescriptors = self.slotItemController?.sortDescriptors
+               }
+               super.observeValueForKeyPath(keyPath, ofObject: object, change: change, context: context)
+       }
+}
diff --git a/KCD/KCD-Bridging-Header.h b/KCD/KCD-Bridging-Header.h
new file mode 100644 (file)
index 0000000..226bee0
--- /dev/null
@@ -0,0 +1,10 @@
+//
+//  Use this file to import your target's public headers that you would like to expose to Swift.
+//
+
+//#import <NSAppKit/NSApplication.h>
+
+#import "HMUserDefaults.h"
+
+
+#import "HMServerDataStore.h"
index d87d79f..2967bca 100644 (file)
@@ -5,9 +5,9 @@
         <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="6250"/>
     </dependencies>
     <objects>
-        <customObject id="-2" userLabel="File's Owner" customClass="HMSlotItemWindowController">
+        <customObject id="-2" userLabel="File's Owner" customClass="HMSlotItemWindowController" customModule="KCD" customModuleProvider="target">
             <connections>
-                <outlet property="slotItemController" destination="ceg-Ko-EOy" id="Dhw-8P-VMR"/>
+                <outlet property="slotItemController" destination="ceg-Ko-EOy" id="rh7-p9-bfV"/>
                 <outlet property="window" destination="F0z-JX-Cv5" id="gIp-Ho-8D9"/>
             </connections>
         </customObject>
@@ -31,7 +31,7 @@
                             <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                             <subviews>
                                 <tableView verticalHuggingPriority="750" allowsExpansionToolTips="YES" columnAutoresizingStyle="lastColumnOnly" alternatingRowBackgroundColors="YES" columnSelection="YES" multipleSelection="NO" autosaveColumns="NO" headerView="7Ud-zW-skg" id="kje-ie-wKU">
-                                    <rect key="frame" x="0.0" y="0.0" width="483" height="19"/>
+                                    <rect key="frame" x="0.0" y="0.0" width="486" height="19"/>
                                     <autoresizingMask key="autoresizingMask"/>
                                     <size key="intercellSpacing" width="3" height="2"/>
                                     <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>