From: masakih Date: Sat, 20 Dec 2014 13:29:29 +0000 (+0900) Subject: HMSlotItemWindowControllerクラスをSwiftで書き換え X-Git-Tag: Temporary~49 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=cba454ee4041cd71f1368c2baea04c4f0a60fbe4;p=kcd%2FKCD.git HMSlotItemWindowControllerクラスをSwiftで書き換え --- diff --git a/KCD.xcodeproj/project.pbxproj b/KCD.xcodeproj/project.pbxproj index 18e1c2c5..4c6f4732 100644 --- a/KCD.xcodeproj/project.pbxproj +++ b/KCD.xcodeproj/project.pbxproj @@ -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 */; }; @@ -166,8 +166,6 @@ F4131ED4190F63D8004F7F9A /* HMUpdateSlotItemCommand.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HMUpdateSlotItemCommand.m; sourceTree = ""; }; F4131ED6190FA08D004F7F9A /* HMDestroyItem2Command.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HMDestroyItem2Command.h; sourceTree = ""; }; F4131ED7190FA08D004F7F9A /* HMDestroyItem2Command.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HMDestroyItem2Command.m; sourceTree = ""; }; - F4131ED9190FEBCC004F7F9A /* HMSlotItemWindowController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HMSlotItemWindowController.h; sourceTree = ""; }; - F4131EDA190FEBCC004F7F9A /* HMSlotItemWindowController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HMSlotItemWindowController.m; sourceTree = ""; }; F4131EDF190FEBDB004F7F9A /* ja */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ja; path = ja.lproj/HMSlotItemWindowController.xib; sourceTree = ""; }; F4131EE41910318F004F7F9A /* HMMasterSlotItemEquipTypeCommand.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HMMasterSlotItemEquipTypeCommand.h; sourceTree = ""; }; F4131EE51910318F004F7F9A /* HMMasterSlotItemEquipTypeCommand.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HMMasterSlotItemEquipTypeCommand.m; sourceTree = ""; }; @@ -304,6 +302,8 @@ F4B2D02E18F83CBB00542742 /* HMDeckViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HMDeckViewController.h; sourceTree = ""; }; F4B2D02F18F83CBB00542742 /* HMDeckViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HMDeckViewController.m; sourceTree = ""; }; F4B2D03418F83CC800542742 /* ja */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ja; path = ja.lproj/HMDeckViewController.xib; sourceTree = ""; }; + F4B30CF01A458AF1008E3D79 /* KCD-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "KCD-Bridging-Header.h"; sourceTree = ""; }; + F4B30CF11A458AF2008E3D79 /* HMSlotItemWindowController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HMSlotItemWindowController.swift; sourceTree = ""; }; F4B37EEE19FADFC9002F371A /* HMIgnoreZeroTransformer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HMIgnoreZeroTransformer.h; sourceTree = ""; }; F4B37EEF19FADFC9002F371A /* HMIgnoreZeroTransformer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HMIgnoreZeroTransformer.m; sourceTree = ""; }; F4B37EF119FBBBED002F371A /* HMRemodelSlotCommand.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HMRemodelSlotCommand.h; sourceTree = ""; }; @@ -539,6 +539,7 @@ F4BDEB4F187252F30069D0CE /* InfoPlist.strings */, F4BDEB52187252F30069D0CE /* main.m */, F4BDEB54187252F30069D0CE /* KCD-Prefix.pch */, + F4B30CF01A458AF1008E3D79 /* KCD-Bridging-Header.h */, F43E67B618BE02A10087E5B6 /* STypeShortName.plist */, F43E67B818BE060E0087E5B6 /* LevelUpExp.plist */, ); @@ -640,8 +641,7 @@ 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 */, @@ -973,7 +973,6 @@ 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 */, @@ -1018,6 +1017,7 @@ 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 */, @@ -1276,6 +1276,7 @@ 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"; @@ -1286,8 +1287,11 @@ "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; @@ -1296,13 +1300,16 @@ 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; diff --git a/KCD/HMAppDelegate.m b/KCD/HMAppDelegate.m index 487f2f86..39b30418 100644 --- a/KCD/HMAppDelegate.m +++ b/KCD/HMAppDelegate.m @@ -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" @@ -293,7 +294,7 @@ - (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 index 9d4d0721..00000000 --- a/KCD/HMSlotItemWindowController.h +++ /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 - -@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 index 43eed8c5..00000000 --- a/KCD/HMSlotItemWindowController.m +++ /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 index 00000000..c8bcebd5 --- /dev/null +++ b/KCD/HMSlotItemWindowController.swift @@ -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) { + 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 index 00000000..226bee09 --- /dev/null +++ b/KCD/KCD-Bridging-Header.h @@ -0,0 +1,10 @@ +// +// Use this file to import your target's public headers that you would like to expose to Swift. +// + +//#import + +#import "HMUserDefaults.h" + + +#import "HMServerDataStore.h" diff --git a/KCD/ja.lproj/HMSlotItemWindowController.xib b/KCD/ja.lproj/HMSlotItemWindowController.xib index d87d79fd..2967bca8 100644 --- a/KCD/ja.lproj/HMSlotItemWindowController.xib +++ b/KCD/ja.lproj/HMSlotItemWindowController.xib @@ -5,9 +5,9 @@ - + - + @@ -31,7 +31,7 @@ - +