diff --git a/openbis-ipad/BisKit/Classes/CISDOBIpadEntity.h b/openbis-ipad/BisKit/Classes/CISDOBIpadEntity.h index a59e17b519f2dd2b249d3dac3920f9a10ef8e91b..bef83a60cc0f52f70956bc83d2340deb166d6655 100644 --- a/openbis-ipad/BisKit/Classes/CISDOBIpadEntity.h +++ b/openbis-ipad/BisKit/Classes/CISDOBIpadEntity.h @@ -38,6 +38,7 @@ @property (nonatomic, retain) NSString * entityKind; @property (nonatomic, retain) NSString * entityType; @property (nonatomic, retain) NSString * propertiesJson; +@property (readonly) NSArray * properties; // Actions //! Take the values from the raw entity. diff --git a/openbis-ipad/BisKit/Classes/CISDOBIpadEntity.m b/openbis-ipad/BisKit/Classes/CISDOBIpadEntity.m index 857b36ab01934ba44b1d248c342940a1b4414249..9f1c276c37cb9ce4c00dfa116a9ba626a5df0c07 100644 --- a/openbis-ipad/BisKit/Classes/CISDOBIpadEntity.m +++ b/openbis-ipad/BisKit/Classes/CISDOBIpadEntity.m @@ -35,6 +35,31 @@ @dynamic entityType; @dynamic propertiesJson; +- (NSArray *)properties +{ + [self willAccessValueForKey: @"properties"]; + NSMutableArray *properties = [self primitiveValueForKey: @"properties"]; + [self didAccessValueForKey: @"properties"]; + + if (nil == properties) { + NSError *error; + NSDictionary *propertiesDict = [NSJSONSerialization JSONObjectWithData: [self.propertiesJson dataUsingEncoding: NSASCIIStringEncoding] options: 0 error: &error]; + properties = [[NSMutableArray alloc] init]; + for (NSString *key in [propertiesDict allKeys]) { + NSDictionary *property = [NSDictionary dictionaryWithObjectsAndKeys: + key, @"key", + [propertiesDict valueForKey: key], @"value", nil]; + [properties addObject: property]; + } + if (error) { + NSLog(@"Could not deserialize properties %@", error); + } + [self setPrimitiveValue: properties forKey: @"properties"]; + } + + return properties; +} + - (void)initializeFromRawEntity:(CISDOBIpadRawEntity *)rawEntity { self.summaryHeader = rawEntity.summaryHeader; 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 f10791dbb94ea0745278ded965c57ae3e09b208d..3f6b1e03bc1b40ba31c0ae59245d5c1d25e2330c 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 @@ -5,11 +5,12 @@ <attribute name="entityType" optional="YES" attributeType="String" indexed="YES" syncable="YES"/> <attribute name="identifier" optional="YES" attributeType="String" indexed="YES" syncable="YES"/> <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="summary" optional="YES" attributeType="String" syncable="YES"/> <attribute name="summaryHeader" optional="YES" attributeType="String" syncable="YES"/> </entity> <elements> - <element name="CISDOBIpadEntity" positionX="160" positionY="192" width="128" height="150"/> + <element name="CISDOBIpadEntity" positionX="160" positionY="192" width="128" height="165"/> </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 1bcc666816ae6af57b1d591ba349ca8a49c4173b..f715255f054a2405ba429de7ac53262fa674b932 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 a5e31cb94f110148b97d9bc2f0723dd72ade2b7a..b585cb75bfbe85fcac3e272104f8618c752e592f 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 diff --git a/openbis-ipad/openBIS/openBIS.xcodeproj/project.xcworkspace/xcuserdata/cramakri.xcuserdatad/WorkspaceSettings.xcsettings b/openbis-ipad/openBIS/openBIS.xcodeproj/project.xcworkspace/xcuserdata/cramakri.xcuserdatad/WorkspaceSettings.xcsettings new file mode 100644 index 0000000000000000000000000000000000000000..659c8766e0c01032cefc35af2bbb95b02eacd118 --- /dev/null +++ b/openbis-ipad/openBIS/openBIS.xcodeproj/project.xcworkspace/xcuserdata/cramakri.xcuserdatad/WorkspaceSettings.xcsettings @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>HasAskedToTakeAutomaticSnapshotBeforeSignificantChanges</key> + <true/> + <key>SnapshotAutomaticallyBeforeSignificantChanges</key> + <true/> +</dict> +</plist> diff --git a/openbis-ipad/openBIS/openBIS.xcodeproj/xcuserdata/cramakri.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist b/openbis-ipad/openBIS/openBIS.xcodeproj/xcuserdata/cramakri.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist index 05301bc253830381195ba116901612a8e115bfa7..02e50e1698d0a77fc7c87f0b8ddb86d4d485027b 100644 --- a/openbis-ipad/openBIS/openBIS.xcodeproj/xcuserdata/cramakri.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist +++ b/openbis-ipad/openBIS/openBIS.xcodeproj/xcuserdata/cramakri.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist @@ -2,4 +2,19 @@ <Bucket type = "1" version = "1.0"> + <FileBreakpoints> + <FileBreakpoint + shouldBeEnabled = "Yes" + ignoreCount = "0" + continueAfterRunningActions = "No" + filePath = "openBIS/CISDOBDetailViewController.m" + timestampString = "370969516.596689" + startingColumnNumber = "9223372036854775807" + endingColumnNumber = "9223372036854775807" + startingLineNumber = "104" + endingLineNumber = "104" + landmarkName = "-tableView:numberOfRowsInSection:" + landmarkType = "5"> + </FileBreakpoint> + </FileBreakpoints> </Bucket> diff --git a/openbis-ipad/openBIS/openBIS/CISDOBDetailViewController.h b/openbis-ipad/openBIS/openBIS/CISDOBDetailViewController.h index ede0785e9a37e5d487a73cc455ce13bfb8676f5b..9208c38c04959b3c70f812b292e33d4fa5d047b3 100644 --- a/openbis-ipad/openBIS/openBIS/CISDOBDetailViewController.h +++ b/openbis-ipad/openBIS/openBIS/CISDOBDetailViewController.h @@ -23,9 +23,15 @@ #import <UIKit/UIKit.h> +@class CISDOBIpadEntity; @interface CISDOBDetailViewController : UIViewController <UISplitViewControllerDelegate> -@property (strong, nonatomic) id detailItem; +@property (strong, nonatomic) CISDOBIpadEntity *detailItem; -@property (weak, nonatomic) IBOutlet UILabel *detailDescriptionLabel; +@property (weak, nonatomic) IBOutlet UITableView *propertiesTableView; + +@property (weak, nonatomic) IBOutlet UILabel *summaryHeaderLabel; +@property (weak, nonatomic) IBOutlet UILabel *summaryLabel; +@property (weak, nonatomic) IBOutlet UILabel *identifierLabel; +@property (weak, nonatomic) IBOutlet UILabel *propertiesLabel; @end diff --git a/openbis-ipad/openBIS/openBIS/CISDOBDetailViewController.m b/openbis-ipad/openBIS/openBIS/CISDOBDetailViewController.m index bca1df0719da223534c3f85e1b05ff1ff36915a6..29073d0a0012c6d1508b91f89eec626fd24d5f7e 100644 --- a/openbis-ipad/openBIS/openBIS/CISDOBDetailViewController.m +++ b/openbis-ipad/openBIS/openBIS/CISDOBDetailViewController.m @@ -22,10 +22,12 @@ // #import "CISDOBDetailViewController.h" +#import "CISDOBIpadEntity.h" @interface CISDOBDetailViewController () @property (strong, nonatomic) UIPopoverController *masterPopoverController; - (void)configureView; +- (void)configureCell:(UITableViewCell *)cell atIndexPath:(NSIndexPath *)indexPath; @end @implementation CISDOBDetailViewController @@ -49,10 +51,14 @@ - (void)configureView { // Update the user interface for the detail item. - - if (self.detailItem) { - self.detailDescriptionLabel.text = [[self.detailItem valueForKey:@"summaryHeader"] description]; - } + if (!self.detailItem) return; + + self.summaryHeaderLabel.text = [[self.detailItem valueForKey:@"summaryHeader"] description]; + self.summaryLabel.text = [[self.detailItem valueForKey:@"summary"] description]; + self.identifierLabel.text = [[self.detailItem valueForKey:@"identifier"] description]; + self.propertiesLabel.text = [[self.detailItem valueForKey:@"propertiesJson"] description]; + + [self.propertiesTableView reloadData]; } - (void)viewDidLoad @@ -84,4 +90,56 @@ self.masterPopoverController = nil; } +#pragma mark - Table View (Properties) + +- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView +{ + return 1; +} + +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section +{ + if (!self.detailItem) return 0; + + return [_detailItem.properties count]; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath +{ + + UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Property" forIndexPath:indexPath]; // This only works in iOS 6, +// UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell"]; // iOS5 + [self configureCell:cell atIndexPath:indexPath]; + return cell; +} + +- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath +{ + return NO; +} + +- (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath +{ + return NO; +} + +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath +{ + +} + +- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender +{ + +} + +- (void)configureCell:(UITableViewCell *)cell atIndexPath:(NSIndexPath *)indexPath +{ + if (!self.detailItem) return; + NSDictionary *object = [self.detailItem.properties objectAtIndex: [indexPath indexAtPosition: 0]]; + cell.textLabel.text = [object valueForKey:@"key"]; + cell.detailTextLabel.text = [object valueForKey:@"value"]; +} + + @end diff --git a/openbis-ipad/openBIS/openBIS/CISDOBMasterViewController.m b/openbis-ipad/openBIS/openBIS/CISDOBMasterViewController.m index 2130702680fb649e65de378902a96407c0ab5034..f2f916e609a99f9de6c09e311c0ba38c6af77f90 100644 --- a/openbis-ipad/openBIS/openBIS/CISDOBMasterViewController.m +++ b/openbis-ipad/openBIS/openBIS/CISDOBMasterViewController.m @@ -24,6 +24,7 @@ #import "CISDOBMasterViewController.h" #import "CISDOBDetailViewController.h" +#import "CISDOBIpadEntity.h" @interface CISDOBMasterViewController () - (void)configureCell:(UITableViewCell *)cell atIndexPath:(NSIndexPath *)indexPath; @@ -131,7 +132,7 @@ - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) { - NSManagedObject *object = [[self fetchedResultsController] objectAtIndexPath:indexPath]; + CISDOBIpadEntity *object = [[self fetchedResultsController] objectAtIndexPath:indexPath]; self.detailViewController.detailItem = object; } } @@ -140,7 +141,7 @@ { if ([[segue identifier] isEqualToString:@"showDetail"]) { NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow]; - NSManagedObject *object = [[self fetchedResultsController] objectAtIndexPath:indexPath]; + CISDOBIpadEntity *object = [[self fetchedResultsController] objectAtIndexPath:indexPath]; [[segue destinationViewController] setDetailItem:object]; } } @@ -246,7 +247,7 @@ - (void)configureCell:(UITableViewCell *)cell atIndexPath:(NSIndexPath *)indexPath { NSManagedObject *object = [self.fetchedResultsController objectAtIndexPath:indexPath]; - cell.textLabel.text = [object valueForKey:@"summaryHeader"];; + cell.textLabel.text = [object valueForKey:@"summaryHeader"]; cell.detailTextLabel.text = [object valueForKey:@"summary"]; } diff --git a/openbis-ipad/openBIS/openBIS/en.lproj/MainStoryboard_iPad.storyboard b/openbis-ipad/openBIS/openBIS/en.lproj/MainStoryboard_iPad.storyboard index c2ed5998df21dbefe9cb675d71f32d563be61e80..7eb7b5419149a545df35aa2765df46019506bab9 100644 --- a/openbis-ipad/openBIS/openBIS/en.lproj/MainStoryboard_iPad.storyboard +++ b/openbis-ipad/openBIS/openBIS/en.lproj/MainStoryboard_iPad.storyboard @@ -1,7 +1,6 @@ <?xml version="1.0" encoding="UTF-8" standalone="no"?> -<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="2.0" toolsVersion="2840" systemVersion="11G56" targetRuntime="iOS.CocoaTouch.iPad" propertyAccessControl="none" initialViewController="5"> +<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="2.0" toolsVersion="2840" systemVersion="11G56" targetRuntime="iOS.CocoaTouch.iPad" propertyAccessControl="none" useAutolayout="YES" initialViewController="5"> <dependencies> - <deployment version="1296" identifier="iOS"/> <development version="4500" identifier="xcode"/> <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="1926"/> </dependencies> @@ -29,21 +28,104 @@ <rect key="frame" x="0.0" y="64" width="703" height="704"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> <subviews> - <label clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" text="Detail view content goes here" textAlignment="center" lineBreakMode="tailTruncation" minimumFontSize="10" id="27"> - <rect key="frame" x="20" y="343" width="663" height="18"/> + <label clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" text="Summary Header" lineBreakMode="tailTruncation" minimumFontSize="10" translatesAutoresizingMaskIntoConstraints="NO" id="27"> <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> + <constraints> + <constraint firstAttribute="height" constant="28" id="j4P-P6-Ayn"/> + <constraint firstAttribute="width" constant="203" id="wKF-Ju-q3u"/> + </constraints> + <fontDescription key="fontDescription" type="boldSystem" pointSize="16"/> + <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> + <nil key="highlightedColor"/> + </label> + <label clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" text="Identifier" lineBreakMode="tailTruncation" minimumFontSize="10" translatesAutoresizingMaskIntoConstraints="NO" id="gor-tF-mFh"> + <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> + <constraints> + <constraint firstAttribute="width" constant="196" id="YtE-Yd-1LW"/> + </constraints> + <fontDescription key="fontDescription" type="system" pointSize="14"/> + <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> + <nil key="highlightedColor"/> + </label> + <label clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" text="Summary" lineBreakMode="tailTruncation" minimumFontSize="10" translatesAutoresizingMaskIntoConstraints="NO" id="T4E-dH-b3j"> + <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> + <constraints> + <constraint firstAttribute="height" constant="89" id="pDJ-pw-2We"/> + </constraints> <fontDescription key="fontDescription" type="system" size="system"/> <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> <nil key="highlightedColor"/> </label> + <label clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" text="Properties" lineBreakMode="tailTruncation" numberOfLines="4" minimumFontSize="10" preferredMaxLayoutWidth="683" translatesAutoresizingMaskIntoConstraints="NO" id="AZo-ta-Lj8"> + <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> + <constraints> + <constraint firstAttribute="height" constant="160" id="2VE-6D-Wuc"/> + </constraints> + <fontDescription key="fontDescription" type="system" size="system"/> + <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> + <nil key="highlightedColor"/> + </label> + <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" rowHeight="44" sectionHeaderHeight="22" sectionFooterHeight="22" translatesAutoresizingMaskIntoConstraints="NO" id="bUx-j7-YCF"> + <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> + <constraints> + <constraint firstAttribute="height" constant="351" id="7bz-Yw-afd"/> + </constraints> + <prototypes> + <tableViewCell contentMode="scaleToFill" selectionStyle="blue" indentationWidth="10" reuseIdentifier="Property" textLabel="qrE-EN-cse" detailTextLabel="9aq-ke-4ab" style="IBUITableViewCellStyleValue2" id="mfZ-bV-mLK"> + <rect key="frame" x="0.0" y="22" width="663" height="44"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center"> + <rect key="frame" x="0.0" y="0.0" width="663" height="43"/> + <autoresizingMask key="autoresizingMask"/> + <subviews> + <label opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="left" text="Title" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="qrE-EN-cse"> + <fontDescription key="fontDescription" type="boldSystem" pointSize="12"/> + <color key="textColor" red="0.32156862745098042" green="0.40000000000000002" blue="0.56862745098039214" alpha="1" colorSpace="calibratedRGB"/> + <color key="highlightedColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/> + </label> + <label opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="left" text="Detail" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="9aq-ke-4ab"> + <fontDescription key="fontDescription" type="boldSystem" pointSize="15"/> + <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> + <color key="highlightedColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/> + </label> + </subviews> + <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> + </view> + </tableViewCell> + </prototypes> + <connections> + <outlet property="dataSource" destination="4" id="h3d-Ne-HTG"/> + <outlet property="delegate" destination="4" id="ZAW-uH-UCE"/> + </connections> + </tableView> </subviews> <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/> + <constraints> + <constraint firstItem="T4E-dH-b3j" firstAttribute="leading" secondItem="26" secondAttribute="leading" constant="20" symbolic="YES" type="default" id="1JH-U6-rvC"/> + <constraint firstItem="bUx-j7-YCF" firstAttribute="top" secondItem="AZo-ta-Lj8" secondAttribute="bottom" constant="8" symbolic="YES" type="default" id="1jB-gC-D5h"/> + <constraint firstItem="T4E-dH-b3j" firstAttribute="trailing" secondItem="26" secondAttribute="trailing" type="default" id="EP6-bp-12F"/> + <constraint firstItem="gor-tF-mFh" firstAttribute="top" secondItem="27" secondAttribute="top" type="default" id="Ffr-3I-WNk"/> + <constraint firstItem="AZo-ta-Lj8" firstAttribute="trailing" secondItem="26" secondAttribute="trailing" type="default" id="OQA-3Z-csg"/> + <constraint firstItem="AZo-ta-Lj8" firstAttribute="leading" secondItem="26" secondAttribute="leading" constant="20" symbolic="YES" type="default" id="Pyr-0T-PsF"/> + <constraint firstItem="bUx-j7-YCF" firstAttribute="leading" secondItem="26" secondAttribute="leading" constant="20" symbolic="YES" type="default" id="SiP-YJ-bp5"/> + <constraint firstItem="AZo-ta-Lj8" firstAttribute="top" secondItem="T4E-dH-b3j" secondAttribute="bottom" constant="8" symbolic="YES" type="default" id="Wrb-Wb-bBP"/> + <constraint firstItem="gor-tF-mFh" firstAttribute="centerX" secondItem="T4E-dH-b3j" secondAttribute="centerX" type="default" id="drl-qZ-S8G"/> + <constraint firstItem="T4E-dH-b3j" firstAttribute="top" secondItem="27" secondAttribute="bottom" constant="8" symbolic="YES" type="default" id="hMK-ke-AQv"/> + <constraint firstAttribute="trailing" secondItem="bUx-j7-YCF" secondAttribute="trailing" constant="20" symbolic="YES" type="default" id="jU1-bA-JE1"/> + <constraint firstItem="27" firstAttribute="leading" secondItem="26" secondAttribute="leading" constant="20" symbolic="YES" type="default" id="lGv-yZ-eAZ"/> + <constraint firstItem="gor-tF-mFh" firstAttribute="baseline" secondItem="27" secondAttribute="baseline" type="default" id="rAC-zt-62Y"/> + <constraint firstAttribute="bottom" secondItem="bUx-j7-YCF" secondAttribute="bottom" constant="20" symbolic="YES" type="default" id="tEY-7B-KDt"/> + </constraints> <simulatedOrientationMetrics key="simulatedOrientationMetrics" orientation="landscapeRight"/> </view> <toolbarItems/> <navigationItem key="navigationItem" title="Detail" id="53"/> <connections> - <outlet property="detailDescriptionLabel" destination="27" id="29"/> + <outlet property="identifierLabel" destination="gor-tF-mFh" id="NCy-K7-tLT"/> + <outlet property="propertiesLabel" destination="AZo-ta-Lj8" id="RKv-9r-qAf"/> + <outlet property="propertiesTableView" destination="bUx-j7-YCF" id="QW1-J0-g9j"/> + <outlet property="summaryHeaderLabel" destination="27" id="f5M-Ao-eBL"/> + <outlet property="summaryLabel" destination="T4E-dH-b3j" id="qVC-t4-llZ"/> </connections> </viewController> <placeholder placeholderIdentifier="IBFirstResponder" id="15" sceneMemberID="firstResponder"/> @@ -135,12 +217,19 @@ <class className="CISDOBDetailViewController" superclassName="UIViewController"> <source key="sourceIdentifier" type="project" relativePath="./Classes/CISDOBDetailViewController.h"/> <relationships> - <relationship kind="outlet" name="detailDescriptionLabel" candidateClass="UILabel"/> + <relationship kind="outlet" name="identifierLabel" candidateClass="UILabel"/> + <relationship kind="outlet" name="propertiesLabel" candidateClass="UILabel"/> + <relationship kind="outlet" name="propertiesTableView" candidateClass="UITableView"/> + <relationship kind="outlet" name="summaryHeaderLabel" candidateClass="UILabel"/> + <relationship kind="outlet" name="summaryLabel" candidateClass="UILabel"/> </relationships> </class> <class className="CISDOBMasterViewController" superclassName="UITableViewController"> <source key="sourceIdentifier" type="project" relativePath="./Classes/CISDOBMasterViewController.h"/> </class> + <class className="NSLayoutConstraint" superclassName="NSObject"> + <source key="sourceIdentifier" type="project" relativePath="./Classes/NSLayoutConstraint.h"/> + </class> </classes> <simulatedMetricsContainer key="defaultSimulatedMetrics"> <simulatedStatusBarMetrics key="statusBar" statusBarStyle="blackTranslucent"/> diff --git a/openbis-ipad/openBIS/openBIS/en.lproj/MainStoryboard_iPhone.storyboard b/openbis-ipad/openBIS/openBIS/en.lproj/MainStoryboard_iPhone.storyboard index 63e67c26357c4ca1916d8419cc8d62cfbb0cb22c..f7db96d4178fac0024d33562f2b3e9b0986ca74e 100644 --- a/openbis-ipad/openBIS/openBIS/en.lproj/MainStoryboard_iPhone.storyboard +++ b/openbis-ipad/openBIS/openBIS/en.lproj/MainStoryboard_iPhone.storyboard @@ -85,7 +85,7 @@ </view> <navigationItem key="navigationItem" title="Detail" id="26"/> <connections> - <outlet property="detailDescriptionLabel" destination="27" id="28"/> + <outlet property="summaryHeaderLabel" destination="27" id="u71-Jh-cDK"/> </connections> </viewController> <placeholder placeholderIdentifier="IBFirstResponder" id="23" sceneMemberID="firstResponder"/>