OSDN Git Service

遠征先および残り時間を表示できるようにした
authormasakih <masakih@users.sourceforge.jp>
Sat, 22 Feb 2014 13:39:24 +0000 (22:39 +0900)
committermasakih <masakih@users.sourceforge.jp>
Sat, 22 Feb 2014 13:39:24 +0000 (22:39 +0900)
KCD/HMDocksViewController.h
KCD/HMDocksViewController.m
KCD/HMDocksViewController.xib
KCD/KCD.xcdatamodeld/KCD.xcdatamodel/contents

index 54d5e2d..4e6ec04 100644 (file)
 @property (nonatomic, strong) NSNumber *kDock4Time;
 
 
+@property (nonatomic, strong) IBOutlet NSObjectController *deck2;
+@property (nonatomic, strong) IBOutlet NSObjectController *deck3;
+@property (nonatomic, strong) IBOutlet NSObjectController *deck4;
+
+@property (nonatomic, strong) NSNumber *deck2Time;
+@property (nonatomic, strong) NSNumber *deck3Time;
+@property (nonatomic, strong) NSNumber *deck4Time;
+
 
 @end
index 45ee57b..aab10f5 100644 (file)
 #import "HMCoreDataManager.h"
 
 @interface HMDocksViewController ()
+@property BOOL deck2Flag;
+@property BOOL deck3Flag;
+@property BOOL deck4Flag;
+
 
 @end
 
        
        NSNumber *compTimeValue = [nDock valueForKeyPath:@"selection.complete_time"];
        if(![compTimeValue isKindOfClass:[NSNumber class]]) return nil;
+//     if([compTimeValue isEqualToNumber:@0]) return nil;
+       
+       NSTimeInterval compTime = (NSUInteger)([compTimeValue doubleValue] / 1000.0);
+       NSDate *now = [NSDate dateWithTimeIntervalSinceNow:0];
+       NSTimeInterval diff = compTime - [now timeIntervalSince1970];
+       
+       if(diff < 0) {
+               return @( - [[NSTimeZone systemTimeZone] secondsFromGMT]);
+       } else {
+               return @(diff - [[NSTimeZone systemTimeZone] secondsFromGMT]);
+       }
+}
+
+- (NSString *)mission2Name
+{
+       NSArray *array = [self.deck2 valueForKeyPath:@"selection.missionName.name"];
+       if(![array isKindOfClass:[NSArray class]] || [array count] == 0) {
+               self.deck2Flag = NO;
+               return nil;
+       }
+       
+       NSString *name = array[0];
+       if(name && !self.deck2Flag) {
+               self.deck2Flag = YES;
+       }
+       return name;
+}
+- (NSString *)mission3Name
+{
+       NSArray *array = [self.deck3 valueForKeyPath:@"selection.missionName.name"];
+       if(![array isKindOfClass:[NSArray class]] || [array count] == 0) {
+               self.deck3Flag = NO;
+               return nil;
+       }
+       
+       NSString *name = array[0];
+       if(name && !self.deck3Flag) {
+               self.deck3Flag = YES;
+       }
+       return name;
+}
+- (NSString *)mission4Name
+{
+       NSArray *array = [self.deck4 valueForKeyPath:@"selection.missionName.name"];
+       if(![array isKindOfClass:[NSArray class]] || [array count] == 0) {
+               self.deck4Flag = NO;
+               return nil;
+       }
+       
+       NSString *name = array[0];
+       if(name && !self.deck4Flag) {
+               self.deck4Flag = YES;
+       }
+       return name;
+}
+- (NSNumber *)missionTimeForDeck:(NSObjectController *)deck
+{
+       NSNumber *compTimeValue = [deck valueForKeyPath:@"selection.mission_2"];
+       if(![compTimeValue isKindOfClass:[NSNumber class]]) return nil;
        if([compTimeValue isEqualToNumber:@0]) return nil;
        
        NSTimeInterval compTime = (NSUInteger)([compTimeValue doubleValue] / 1000.0);
                return @(diff - [[NSTimeZone systemTimeZone] secondsFromGMT]);
        }
 }
+- (void)checkMission:(id)timeValue flagKey:(NSString *)flagKey nameKey:(NSString *)nameKey
+{
+       BOOL flag = [[self valueForKey:flagKey] boolValue];
+       if(flag && !timeValue) {
+               [self setValue:@NO forKey:flagKey];
+               [self willChangeValueForKey:nameKey];
+               [self didChangeValueForKey:nameKey];
+       } else if(!flag && timeValue) {
+               [self setValue:@YES forKey:flagKey];
+               [self willChangeValueForKey:nameKey];
+               [self didChangeValueForKey:nameKey];
+       }
+}
 - (void)fire:(id)timer
 {
        self.nDock1Time = [self nDockTimeForNDock:self.nDock1];
        self.kDock2Time = [self nDockTimeForNDock:self.kDock2];
        self.kDock3Time = [self nDockTimeForNDock:self.kDock3];
        self.kDock4Time = [self nDockTimeForNDock:self.kDock4];
+       
+       self.deck2Time = [self missionTimeForDeck:self.deck2];
+       self.deck3Time = [self missionTimeForDeck:self.deck3];
+       self.deck4Time = [self missionTimeForDeck:self.deck4];
+       [self checkMission:self.deck2Time flagKey:@"deck2Flag" nameKey:@"mission2Name"];
+       [self checkMission:self.deck3Time flagKey:@"deck3Flag" nameKey:@"mission3Name"];
+       [self checkMission:self.deck4Time flagKey:@"deck4Flag" nameKey:@"mission4Name"];
 }
 @end
index 81b139e..cf08046 100644 (file)
@@ -7,6 +7,9 @@
     <objects>
         <customObject id="-2" userLabel="File's Owner" customClass="HMDocksViewController">
             <connections>
+                <outlet property="deck2" destination="JD2-Is-0N3" id="wQh-E9-nRq"/>
+                <outlet property="deck3" destination="fW3-eV-iD2" id="lQi-zP-O6b"/>
+                <outlet property="deck4" destination="mcD-xj-hLm" id="ruP-jL-rGm"/>
                 <outlet property="kDock1" destination="3jk-7x-v7s" id="mZw-i1-5SC"/>
                 <outlet property="kDock2" destination="aXv-ob-wVw" id="I5h-NB-KNj"/>
                 <outlet property="kDock3" destination="ZCV-fJ-s2q" id="2Kk-bO-cMO"/>
                         <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
                         <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
                     </textFieldCell>
+                    <connections>
+                        <binding destination="-2" name="value" keyPath="mission2Name" id="lWL-mo-CDI">
+                            <dictionary key="options">
+                                <string key="NSNullPlaceholder">母港にいます</string>
+                            </dictionary>
+                        </binding>
+                    </connections>
                 </textField>
                 <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="sTn-uJ-Phx">
                     <rect key="frame" x="218" y="333" width="62" height="17"/>
                         <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
                         <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
                     </textFieldCell>
+                    <connections>
+                        <binding destination="-2" name="value" keyPath="deck2Time" id="Rf3-Ch-BqQ">
+                            <dictionary key="options">
+                                <string key="NSNullPlaceholder">--:--:--</string>
+                            </dictionary>
+                        </binding>
+                    </connections>
                 </textField>
                 <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="ImV-DF-NX7">
                     <rect key="frame" x="24" y="226" width="82" height="17"/>
                         <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
                         <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
                     </textFieldCell>
+                    <connections>
+                        <binding destination="-2" name="value" keyPath="mission3Name" id="cZO-cl-ccO">
+                            <dictionary key="options">
+                                <string key="NSNullPlaceholder">母港にいます</string>
+                            </dictionary>
+                        </binding>
+                    </connections>
                 </textField>
                 <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="YPL-iZ-5QI">
                     <rect key="frame" x="218" y="308" width="62" height="17"/>
                         <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
                         <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
                     </textFieldCell>
+                    <connections>
+                        <binding destination="-2" name="value" keyPath="deck3Time" id="c5M-aS-Cqc">
+                            <dictionary key="options">
+                                <string key="NSNullPlaceholder">--:--:--</string>
+                            </dictionary>
+                        </binding>
+                    </connections>
                 </textField>
                 <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="cSE-HO-9tA">
                     <rect key="frame" x="24" y="283" width="65" height="17"/>
                         <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
                         <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
                     </textFieldCell>
+                    <connections>
+                        <binding destination="-2" name="value" keyPath="mission4Name" id="RGv-h5-cMS">
+                            <dictionary key="options">
+                                <string key="NSNullPlaceholder">母港にいます</string>
+                            </dictionary>
+                        </binding>
+                    </connections>
                 </textField>
                 <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="aaL-Hq-rXW">
                     <rect key="frame" x="218" y="283" width="62" height="17"/>
                         <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
                         <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
                     </textFieldCell>
+                    <connections>
+                        <binding destination="-2" name="value" keyPath="deck4Time" id="BBn-yb-VWf">
+                            <dictionary key="options">
+                                <string key="NSNullPlaceholder">--:--:--</string>
+                            </dictionary>
+                        </binding>
+                    </connections>
                 </textField>
                 <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="mOt-g2-cwL">
                     <rect key="frame" x="24" y="201" width="82" height="17"/>
                 <binding destination="-2" name="managedObjectContext" keyPath="managedObjectContext" id="Mv1-18-kk6"/>
             </connections>
         </objectController>
+        <objectController mode="entity" entityName="Deck" fetchPredicateFormat="id = 2" editable="NO" automaticallyPreparesContent="YES" id="JD2-Is-0N3" userLabel="deck2">
+            <connections>
+                <binding destination="-2" name="managedObjectContext" keyPath="managedObjectContext" id="Cyf-Be-eNZ"/>
+            </connections>
+        </objectController>
+        <objectController mode="entity" entityName="Deck" fetchPredicateFormat="id = 3" editable="NO" automaticallyPreparesContent="YES" id="fW3-eV-iD2" userLabel="deck3">
+            <connections>
+                <binding destination="-2" name="managedObjectContext" keyPath="managedObjectContext" id="rM9-jv-lrc"/>
+            </connections>
+        </objectController>
+        <objectController mode="entity" entityName="Deck" fetchPredicateFormat="id = 4" editable="NO" automaticallyPreparesContent="YES" id="mcD-xj-hLm" userLabel="deck4">
+            <connections>
+                <binding destination="-2" name="managedObjectContext" keyPath="managedObjectContext" id="ZGl-49-2A3"/>
+            </connections>
+        </objectController>
     </objects>
 </document>
\ No newline at end of file
index 021b806..952659a 100644 (file)
@@ -16,6 +16,9 @@
         <attribute name="ship_3" optional="YES" attributeType="Integer 32" defaultValueString="0" syncable="YES"/>
         <attribute name="ship_4" optional="YES" attributeType="Integer 32" defaultValueString="0" syncable="YES"/>
         <attribute name="ship_5" optional="YES" attributeType="Integer 32" defaultValueString="0" syncable="YES"/>
+        <fetchedProperty name="missionName" optional="YES" syncable="YES">
+            <fetchRequest name="fetchedPropertyFetchRequest" entity="MasterMission" predicateString="id = $FETCH_SOURCE.mission_1 AND maparea_id = $FETCH_SOURCE.mission_0"/>
+        </fetchedProperty>
     </entity>
     <entity name="KenzoDock" representedClassName="HMKCManagedObject" syncable="YES">
         <attribute name="complete_time" optional="YES" attributeType="Integer 64" defaultValueString="0" syncable="YES"/>