diff --git a/openbis-ipad/BisKit/Classes/CISDOBIpadEntity.h b/openbis-ipad/BisKit/Classes/CISDOBIpadEntity.h index 2c6eea157fb7ba345a36e25b37279e36afcc9edb..b333ee17acf9add06d8629903f9130507860c107 100644 --- a/openbis-ipad/BisKit/Classes/CISDOBIpadEntity.h +++ b/openbis-ipad/BisKit/Classes/CISDOBIpadEntity.h @@ -39,7 +39,8 @@ // Non-nil properties @property (nonatomic, retain) NSString * permId; -@property (nonatomic, retain) NSString * refcon; +@property (nonatomic, retain) NSString * refconJson; +@property (readonly) id refcon; // Potentially nil properties @property (nonatomic, retain) NSString * summaryHeader; diff --git a/openbis-ipad/BisKit/Classes/CISDOBIpadEntity.m b/openbis-ipad/BisKit/Classes/CISDOBIpadEntity.m index 33ffed9819f7287beb3a089199b2028fa2a5f7d2..bbb4aa7b1ac24dfeac048a7d9a83cf68f5deea3d 100644 --- a/openbis-ipad/BisKit/Classes/CISDOBIpadEntity.m +++ b/openbis-ipad/BisKit/Classes/CISDOBIpadEntity.m @@ -31,7 +31,7 @@ @dynamic summary; @dynamic identifier; @dynamic permId; -@dynamic refcon; +@dynamic refconJson; @dynamic category; @dynamic imageUrl; @dynamic childrenPermIdsJson; @@ -40,6 +40,24 @@ @synthesize image; +- (id)refcon +{ + [self willAccessValueForKey: @"refcon"]; + id refcon = [self primitiveValueForKey: @"refcon"]; + [self didAccessValueForKey: @"refcon"]; + + if (nil == refcon) { + NSError *error; + id refcon = [NSJSONSerialization JSONObjectWithData: [self.refconJson dataUsingEncoding: NSASCIIStringEncoding] options: 0 error: &error]; + if (error) { + NSLog(@"Could not deserialize refcon %@", error); + } + [self setPrimitiveValue: refcon forKey: @"refcon"]; + } + + return refcon; +} + - (NSArray *)properties { [self willAccessValueForKey: @"properties"]; @@ -92,7 +110,7 @@ { // These will always be non-nil self.permId = rawEntity.permId; - self.refcon = rawEntity.refcon; + self.refconJson = rawEntity.refcon; // Need to check if these values were transmitted with the raw entity if (rawEntity.category) self.category = rawEntity.category; diff --git a/openbis-ipad/BisKit/Classes/persistent-data-model.xcdatamodeld/persistent-data-model.xcdatamodel/contents b/openbis-ipad/BisKit/Classes/persistent-data-model.xcdatamodeld/persistent-data-model.xcdatamodel/contents index 8d8e35b8670c66ebe4abb15240d44718c992a391..4511c1cec68670b84a893841b96da4e740e8ee57 100644 --- a/openbis-ipad/BisKit/Classes/persistent-data-model.xcdatamodeld/persistent-data-model.xcdatamodel/contents +++ b/openbis-ipad/BisKit/Classes/persistent-data-model.xcdatamodeld/persistent-data-model.xcdatamodel/contents @@ -9,7 +9,8 @@ <attribute name="permId" optional="YES" attributeType="String" indexed="YES" syncable="YES"/> <attribute name="properties" optional="YES" transient="YES" syncable="YES"/> <attribute name="propertiesJson" optional="YES" attributeType="String" syncable="YES"/> - <attribute name="refcon" optional="YES" attributeType="String" syncable="YES"/> + <attribute name="refcon" optional="YES" transient="YES" syncable="YES"/> + <attribute name="refconJson" optional="YES" attributeType="String" syncable="YES"/> <attribute name="rootLevel" optional="YES" attributeType="Boolean" syncable="YES"/> <attribute name="summary" optional="YES" attributeType="String" syncable="YES"/> <attribute name="summaryHeader" optional="YES" attributeType="String" syncable="YES"/> @@ -17,6 +18,6 @@ <fetchRequest name="EntitiesByPermIds" entity="CISDOBIpadEntity" predicateString="permId IN $PERM_IDS" fetchBatchSize="20"/> <fetchRequest name="EntityAndChildren" entity="CISDOBIpadEntity" predicateString="SELF == $ENTITY OR permId IN $CHILDREN" fetchBatchSize="20"/> <elements> - <element name="CISDOBIpadEntity" positionX="0" positionY="0" width="128" height="225"/> + <element name="CISDOBIpadEntity" positionX="0" positionY="0" width="128" height="240"/> </elements> </model> \ No newline at end of file diff --git a/openbis-ipad/Research/BisMac.xcodeproj/project.xcworkspace/xcuserdata/cramakri.xcuserdatad/UserInterfaceState.xcuserstate b/openbis-ipad/Research/BisMac.xcodeproj/project.xcworkspace/xcuserdata/cramakri.xcuserdatad/UserInterfaceState.xcuserstate index cc8df0c5208e88bc40f7bac51417227c35f97446..8a4a3b25db2dccfcd69a2777b835c72b1be2fd0b 100644 Binary files a/openbis-ipad/Research/BisMac.xcodeproj/project.xcworkspace/xcuserdata/cramakri.xcuserdatad/UserInterfaceState.xcuserstate and b/openbis-ipad/Research/BisMac.xcodeproj/project.xcworkspace/xcuserdata/cramakri.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/openbis-ipad/openBIS/openBIS.xcodeproj/project.xcworkspace/xcuserdata/cramakri.xcuserdatad/UserInterfaceState.xcuserstate b/openbis-ipad/openBIS/openBIS.xcodeproj/project.xcworkspace/xcuserdata/cramakri.xcuserdatad/UserInterfaceState.xcuserstate index 2a0e1e971f3d0a3b9baeb267607c21fc3ed71d20..ea3a26fc9b8cf6773d55a8de848ac3f48cdc4e2e 100644 Binary files a/openbis-ipad/openBIS/openBIS.xcodeproj/project.xcworkspace/xcuserdata/cramakri.xcuserdatad/UserInterfaceState.xcuserstate and b/openbis-ipad/openBIS/openBIS.xcodeproj/project.xcworkspace/xcuserdata/cramakri.xcuserdatad/UserInterfaceState.xcuserstate differ