From 74c79a45d29f5e1f2e697935b4955c76dbf5efae Mon Sep 17 00:00:00 2001
From: Maxime Graulich <maxime.graulich@gmail.com>
Date: Thu, 3 Oct 2013 12:57:59 +0000
Subject: [PATCH] iOS: replace UIPickerView & update storyboard for iOS7

---
 contrib/mobile/iOS/Onelab/Parameter.h         |  12 +-
 contrib/mobile/iOS/Onelab/Parameter.mm        | 129 +++++++-----------
 .../iOS/Onelab/ParametersViewController.h     |   2 +-
 .../iOS/Onelab/ParametersViewController.mm    |   8 +-
 .../Onelab/en.lproj/iPadStoryboard.storyboard |  72 +++++-----
 .../en.lproj/iPhoneiPodStoryboard.storyboard  |  33 +++--
 6 files changed, 121 insertions(+), 135 deletions(-)

diff --git a/contrib/mobile/iOS/Onelab/Parameter.h b/contrib/mobile/iOS/Onelab/Parameter.h
index 2bc3ad64a2..d226ef2ad0 100644
--- a/contrib/mobile/iOS/Onelab/Parameter.h
+++ b/contrib/mobile/iOS/Onelab/Parameter.h
@@ -27,23 +27,23 @@
 -(void)refresh;
 @end
 
-@interface ParameterStringList : Parameter <UIPickerViewDataSource, UIPickerViewDelegate>
+@interface ParameterStringList : Parameter <UIActionSheetDelegate>
 {
     @protected
-    UIPickerView *picker;
+    UIButton *button;
 }
 -(id)initWithString:(onelab::string)string;
--(UIPickerView *)getList;
+-(UIPickerView *)getUIView;
 @end
 
 
-@interface ParameterNumberList : Parameter <UIPickerViewDataSource, UIPickerViewDelegate, UITextFieldDelegate>
+@interface ParameterNumberList : Parameter <UIActionSheetDelegate>
 {
     @protected
-    UIPickerView *picker;
+	UIButton *button;
 }
 -(id)initWithNumber:(onelab::number)number;
--(UIPickerView *)getList;
+-(UITextField *)getUIView;
 @end
 
 @interface ParameterNumberCheckbox : Parameter
diff --git a/contrib/mobile/iOS/Onelab/Parameter.mm b/contrib/mobile/iOS/Onelab/Parameter.mm
index 1d8c00e351..be8d85c63d 100644
--- a/contrib/mobile/iOS/Onelab/Parameter.mm
+++ b/contrib/mobile/iOS/Onelab/Parameter.mm
@@ -58,65 +58,47 @@
         label.alpha = (string.getReadOnly())? 0.439216f : 1.0f;
         [label setText:[NSString stringWithCString:string.getShortName().c_str() encoding:[NSString defaultCStringEncoding]]];
         name = [NSString stringWithCString:string.getName().c_str() encoding:[NSString defaultCStringEncoding]];
-        picker = [[UIPickerView alloc] init];
-        picker.showsSelectionIndicator = YES;
-        [picker setDataSource:self];
-        [picker setDelegate:self];
-		bool valueInChoices = true;
-        for(int row=0;row<string.getChoices().size();row++){
-            if(string.getValue() == string.getChoices()[row]) {
-				[picker selectRow:row inComponent:0 animated:NO];
-				valueInChoices = false;
-			}
-		}
-		if(valueInChoices) [picker selectRow:string.getChoices().size() inComponent:0 animated:YES];
+        button = [UIButton buttonWithType:UIButtonTypeSystem];
+		[button addTarget:self action:@selector(selectValue) forControlEvents:UIControlEventTouchDown];
+        [button setTitle:[NSString stringWithFormat:@"%s", string.getValue().c_str()] forState:UIControlStateNormal];
     }
     return self;
 }
--(void)refresh
-{
-	[picker reloadAllComponents];
-}
--(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
-{
-    return 1;
-}
--(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
-{
-    std::vector<onelab::string> string;
-    onelab::server::instance()->get(string,[name UTF8String]);
-    if(string.size() < 1) return 0;
-	bool valueInChoices = true;
-	for(int row=0;row<string[0].getChoices().size();row++) if(string[0].getValue() == string[0].getChoices()[row])valueInChoices=false;
-	if(valueInChoices) return string[0].getChoices().size()+1;
-    return string[0].getChoices().size();
-}
--(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
+-(void)selectValue
 {
-    std::vector<onelab::string> string;
+	std::vector<onelab::string> string;
     onelab::server::instance()->get(string,[name UTF8String]);
-    if(string.size() < 1) return @"NULL";
-	if(row >= string[0].getChoices().size()) return [NSString stringWithCString:string[0].getValue().c_str() encoding:[NSString defaultCStringEncoding]];
-    return [NSString stringWithCString:string[0].getChoices()[row].c_str() encoding:[NSString defaultCStringEncoding]];
+    if(string.size() < 1) return;
+	UIActionSheet *popupSelectValue = [[UIActionSheet alloc] initWithTitle:[NSString stringWithFormat:@"%s", string[0].getLabel().c_str()] delegate:self cancelButtonTitle:nil destructiveButtonTitle:nil otherButtonTitles:nil];
+	std::vector<std::string> choices = string[0].getChoices();
+	for(int i=0;i<choices.size();i++)
+		[popupSelectValue addButtonWithTitle:[NSString stringWithFormat:@"%s", choices[i].c_str()]];
+	[popupSelectValue showInView:button];
 }
--(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
+-(void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex
 {
-    std::vector<onelab::string> string;
+	std::vector<onelab::string> string;
     onelab::server::instance()->get(string,[name UTF8String]);
     if(string.size() < 1) return;
-    std::string selected = string[0].getChoices()[row];
+    std::string selected = string[0].getChoices()[buttonIndex];
     string[0].setValue(selected);
     onelab::server::instance()->set(string[0]);
     if(onelab_cb("check") == 1)
         [[NSNotificationCenter defaultCenter] postNotificationName:@"requestRender" object:nil];
 }
+-(void)refresh
+{
+	std::vector<onelab::string> string;
+    onelab::server::instance()->get(string,[name UTF8String]);
+	[button setTitle:[NSString stringWithFormat:@"%s", string[0].getValue().c_str()] forState:UIControlStateNormal];
+}
 -(void)setFrame:(CGRect)frame
 {
-    [picker setFrame:frame];
+    [button setFrame:frame];
 }
--(UIPickerView *)getList
+-(UIButton *)getUIView
 {
-    return picker;
+    return button;
 }
 -(bool)isReadOnly
 {
@@ -127,7 +109,7 @@
 }
 +(double)getHeight
 {
-    return 210.0f;
+    return 60.f;
 }
 @end
 
@@ -140,55 +122,48 @@
         label.alpha = (number.getReadOnly())? 0.439216f : 1.0f;
         [label setText:[NSString stringWithCString:number.getShortName().c_str() encoding:[NSString defaultCStringEncoding]]];
         name = [NSString stringWithCString:number.getName().c_str() encoding:[NSString defaultCStringEncoding]];
-        picker = [[UIPickerView alloc] init];
-        picker.showsSelectionIndicator = YES;
-        [picker setDataSource:self];
-        [picker setDelegate:self];
-        for(int row=0;row<number.getChoices().size();row++)
-            if(number.getValue() == number.getChoices()[row])[picker selectRow:row inComponent:0 animated:NO];
+		button = [UIButton buttonWithType:UIButtonTypeSystem];
+		[button addTarget:self action:@selector(selectValue) forControlEvents:UIControlEventTouchDown];
+        [button setTitle:[NSString stringWithFormat:@"%s", number.getValueLabel(number.getValue()).c_str()] forState:UIControlStateNormal];
     }
     return self;
 }
--(void)refresh
-{
-	[picker reloadAllComponents];
-}
--(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
+-(void)selectValue
 {
-    return 1;
-}
--(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
-{
-    std::vector<onelab::number> number;
+	std::vector<onelab::number> number;
     onelab::server::instance()->get(number,[name UTF8String]);
-    if(number.size() < 1) return 0;
-    return number[0].getChoices().size();
+    if(number.size() < 1) return;
+	UIActionSheet *popupSelectValue = [[UIActionSheet alloc] initWithTitle:[NSString stringWithFormat:@"%s", number[0].getLabel().c_str()] delegate:self cancelButtonTitle:nil destructiveButtonTitle:nil otherButtonTitles:nil];
+	std::vector<double> choices = number[0].getChoices();
+	for(int i=0;i<choices.size();i++)
+		[popupSelectValue addButtonWithTitle:[NSString stringWithFormat:@"%s", number[0].getValueLabel(choices[i]).c_str()]];
+	[popupSelectValue showInView:button];
 }
--(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
+-(void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex
 {
-    std::vector<onelab::number> number;
-    onelab::server::instance()->get(number,[name UTF8String]);
-    if(number.size() < 1) return @"NULL";
-    return [NSString stringWithCString:number[0].getValueLabel(number[0].getChoices()[row]).c_str() encoding:[NSString defaultCStringEncoding]];
+	std::vector<onelab::number> number;
+	onelab::server::instance()->get(number,[name UTF8String]);
+	if(number.size() < 1) return;
+	double selected = number[0].getChoices()[buttonIndex];
+	number[0].setValue(selected);
+	onelab::server::instance()->set(number[0]);
+	[button setTitle:[NSString stringWithFormat:@"%s", number[0].getValueLabel(number[0].getValue()).c_str()] forState:UIControlStateNormal];
+	if(onelab_cb("check") == 1)
+		[[NSNotificationCenter defaultCenter] postNotificationName:@"requestRender" object:nil];
 }
--(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
+-(void)refresh
 {
-    std::vector<onelab::number> number;
+	std::vector<onelab::number> number;
     onelab::server::instance()->get(number,[name UTF8String]);
-    if(number.size() < 1) return;
-    double selected = number[0].getChoices()[row];
-    number[0].setValue(selected);
-    onelab::server::instance()->set(number[0]);
-    if(onelab_cb("check") == 1)
-        [[NSNotificationCenter defaultCenter] postNotificationName:@"requestRender" object:nil];
+	[button setTitle:[NSString stringWithFormat:@"%s", number[0].getValueLabel(number[0].getValue()).c_str()] forState:UIControlStateNormal];
 }
 -(void)setFrame:(CGRect)frame
 {
-    [picker setFrame:frame];
+    [button setFrame:frame];
 }
--(UIPickerView *)getList
+-(UIButton *)getUIView
 {
-    return picker;
+	return button;
 }
 -(bool)isReadOnly
 {
@@ -199,7 +174,7 @@
 }
 +(double)getHeight
 {
-    return 210.0f;
+    return 60.f;
 }
 @end
 
diff --git a/contrib/mobile/iOS/Onelab/ParametersViewController.h b/contrib/mobile/iOS/Onelab/ParametersViewController.h
index 51bb5e273b..d21a96423e 100644
--- a/contrib/mobile/iOS/Onelab/ParametersViewController.h
+++ b/contrib/mobile/iOS/Onelab/ParametersViewController.h
@@ -17,7 +17,7 @@
     NSMutableArray *_sections;
     NSMutableArray *_sectionstitle;
 	NSDate *_lastRefresh;
-    
+
     UIBarButtonItem *runButton;
     UIBarButtonItem *stopButton;
 	
diff --git a/contrib/mobile/iOS/Onelab/ParametersViewController.mm b/contrib/mobile/iOS/Onelab/ParametersViewController.mm
index 468ed6f9e2..d29af6217b 100644
--- a/contrib/mobile/iOS/Onelab/ParametersViewController.mm
+++ b/contrib/mobile/iOS/Onelab/ParametersViewController.mm
@@ -277,13 +277,13 @@
     [cell addSubview:[tmp getLabel]];
     if([tmp isKindOfClass:[ParameterStringList class]]) {
         ParameterStringList *param = (ParameterStringList *)tmp;
-        [param setFrame:CGRectMake(20, 35, cell.frame.size.width - 40, 162)];
-        [cell addSubview:[param getList]];
+        [param setFrame:CGRectMake(20, 35, cell.frame.size.width - 40, cell.frame.size.height/2)];
+        [cell addSubview:[param getUIView]];
     }
     else if([tmp isKindOfClass:[ParameterNumberList class]]) {
         ParameterNumberList *param = (ParameterNumberList *)tmp;
-        [param setFrame:CGRectMake(20, 35, cell.frame.size.width - 40, 162)];
-        [cell addSubview:[param getList]];
+        [param setFrame:CGRectMake(20, 35, cell.frame.size.width - 40, cell.frame.size.height/2)];
+        [cell addSubview:[param getUIView]];
     }
     else if([tmp isKindOfClass:[ParameterNumberCheckbox class]]) {
         ParameterNumberCheckbox *param = (ParameterNumberCheckbox *)tmp;
diff --git a/contrib/mobile/iOS/Onelab/en.lproj/iPadStoryboard.storyboard b/contrib/mobile/iOS/Onelab/en.lproj/iPadStoryboard.storyboard
index 53ab1f6397..58fd86ca03 100644
--- a/contrib/mobile/iOS/Onelab/en.lproj/iPadStoryboard.storyboard
+++ b/contrib/mobile/iOS/Onelab/en.lproj/iPadStoryboard.storyboard
@@ -1,20 +1,21 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="2.0" toolsVersion="3084" systemVersion="12E55" targetRuntime="iOS.CocoaTouch.iPad" propertyAccessControl="none" initialViewController="dwa-Pq-2vA">
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="4510" systemVersion="12E55" targetRuntime="iOS.CocoaTouch.iPad" propertyAccessControl="none" initialViewController="dwa-Pq-2vA">
     <dependencies>
-        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="2083"/>
+        <deployment defaultVersion="1536" identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="3742"/>
     </dependencies>
     <scenes>
         <!--Navigation Controller-->
         <scene sceneID="14">
             <objects>
                 <navigationController toolbarHidden="NO" id="3" sceneMemberID="viewController">
-                    <simulatedNavigationBarMetrics key="simulatedTopBarMetrics" barStyle="blackTranslucent" prompted="NO"/>
-                    <simulatedToolbarMetrics key="simulatedBottomBarMetrics" barStyle="blackTranslucent"/>
-                    <navigationBar key="navigationBar" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" barStyle="blackTranslucent" id="6">
+                    <simulatedNavigationBarMetrics key="simulatedTopBarMetrics"/>
+                    <simulatedToolbarMetrics key="simulatedBottomBarMetrics"/>
+                    <navigationBar key="navigationBar" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" id="6">
                         <rect key="frame" x="0.0" y="-44" width="0.0" height="44"/>
                         <autoresizingMask key="autoresizingMask"/>
                     </navigationBar>
-                    <toolbar key="toolbar" opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" barStyle="blackTranslucent" id="YDU-Oo-Ie9">
+                    <toolbar key="toolbar" opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="YDU-Oo-Ie9">
                         <rect key="frame" x="0.0" y="724" width="320" height="44"/>
                         <autoresizingMask key="autoresizingMask"/>
                     </toolbar>
@@ -31,7 +32,7 @@
             <objects>
                 <viewController storyboardIdentifier="ModelViewController" title="ONELAB" id="4" customClass="ModelViewController" sceneMemberID="viewController">
                     <view key="view" multipleTouchEnabled="YES" contentMode="scaleToFill" id="26" customClass="EAGLView">
-                        <rect key="frame" x="0.0" y="20" width="703" height="748"/>
+                        <rect key="frame" x="0.0" y="0.0" width="703" height="768"/>
                         <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                         <subviews>
                             <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="HN2-fw-mfe">
@@ -87,20 +88,19 @@
         <scene sceneID="i13-tZ-4on">
             <objects>
                 <tableViewController storyboardIdentifier="PostProViewController" id="89M-FT-oxV" customClass="PostProViewController" sceneMemberID="viewController">
-                    <tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" rowHeight="44" sectionHeaderHeight="22" sectionFooterHeight="22" id="4WQ-dq-nwm">
-                        <rect key="frame" x="0.0" y="20" width="320" height="748"/>
+                    <tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="default" rowHeight="44" sectionHeaderHeight="22" sectionFooterHeight="22" id="4WQ-dq-nwm">
+                        <rect key="frame" x="0.0" y="0.0" width="320" height="768"/>
                         <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                         <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
                         <simulatedOrientationMetrics key="simulatedOrientationMetrics" orientation="landscapeRight"/>
                         <prototypes>
                             <tableViewCell contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="postProCell" id="rgB-ht-LVb">
-                                <rect key="frame" x="0.0" y="22" width="320" height="44"/>
+                                <rect key="frame" x="0.0" y="86" width="320" height="44"/>
                                 <autoresizingMask key="autoresizingMask"/>
-                                <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
+                                <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="rgB-ht-LVb" id="4vv-Gp-Zf0">
                                     <rect key="frame" x="0.0" y="0.0" width="320" height="43"/>
                                     <autoresizingMask key="autoresizingMask"/>
-                                    <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
-                                </view>
+                                </tableViewCellContentView>
                             </tableViewCell>
                         </prototypes>
                         <connections>
@@ -122,7 +122,7 @@
             <objects>
                 <viewController storyboardIdentifier="PostProcessingViewController" id="59P-em-ZXH" customClass="PostProcessingViewController" sceneMemberID="viewController">
                     <view key="view" contentMode="scaleToFill" id="bA2-5p-eQu">
-                        <rect key="frame" x="0.0" y="20" width="320" height="748"/>
+                        <rect key="frame" x="0.0" y="0.0" width="320" height="768"/>
                         <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                         <subviews>
                             <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="PView Name" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="zvL-DY-CD8">
@@ -157,11 +157,11 @@
                                 <nil key="highlightedColor"/>
                             </label>
                             <slider opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" minValue="-5" maxValue="5" id="mjo-81-vMy">
-                                <rect key="frame" x="115" y="355" width="187" height="23"/>
+                                <rect key="frame" x="115" y="355" width="187" height="29"/>
                                 <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                             </slider>
                             <stepper opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" maximumValue="100" id="p1D-j1-egi">
-                                <rect key="frame" x="219" y="319" width="94" height="27"/>
+                                <rect key="frame" x="219" y="319" width="94" height="23"/>
                                 <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                                 <connections>
                                     <action selector="stepperValueChanged:" destination="59P-em-ZXH" eventType="valueChanged" id="lia-6x-IaS"/>
@@ -190,7 +190,7 @@
                 <splitViewController storyboardIdentifier="SplitViewController" id="5" customClass="SplitViewController" sceneMemberID="viewController">
                     <toolbarItems/>
                     <navigationItem key="navigationItem" id="Pnc-za-KDo"/>
-                    <simulatedStatusBarMetrics key="simulatedStatusBarMetrics" statusBarStyle="blackTranslucent"/>
+                    <simulatedStatusBarMetrics key="simulatedStatusBarMetrics"/>
                     <simulatedOrientationMetrics key="simulatedOrientationMetrics" orientation="landscapeRight"/>
                     <connections>
                         <segue destination="3" kind="relationship" relationship="masterViewController" id="9"/>
@@ -205,19 +205,18 @@
         <scene sceneID="af3-vl-hzw">
             <objects>
                 <tableViewController id="dVI-Oo-Sq4" customClass="ModelListController" sceneMemberID="viewController">
-                    <tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" rowHeight="44" sectionHeaderHeight="22" sectionFooterHeight="22" id="OmH-vi-qhj">
-                        <rect key="frame" x="0.0" y="20" width="768" height="1004"/>
+                    <tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="default" rowHeight="44" sectionHeaderHeight="22" sectionFooterHeight="22" id="OmH-vi-qhj">
+                        <rect key="frame" x="0.0" y="0.0" width="768" height="1024"/>
                         <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                         <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
                         <prototypes>
                             <tableViewCell contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="ModelsCell" id="dad-rm-zwY">
-                                <rect key="frame" x="0.0" y="22" width="768" height="44"/>
+                                <rect key="frame" x="0.0" y="86" width="768" height="44"/>
                                 <autoresizingMask key="autoresizingMask"/>
-                                <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
+                                <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="dad-rm-zwY" id="smI-Gj-Wpi">
                                     <rect key="frame" x="0.0" y="0.0" width="768" height="43"/>
                                     <autoresizingMask key="autoresizingMask"/>
-                                    <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
-                                </view>
+                                </tableViewCellContentView>
                             </tableViewCell>
                         </prototypes>
                     </tableView>
@@ -231,9 +230,9 @@
         <scene sceneID="Rhc-IE-crY">
             <objects>
                 <navigationController definesPresentationContext="YES" id="dwa-Pq-2vA" sceneMemberID="viewController">
-                    <simulatedNavigationBarMetrics key="simulatedTopBarMetrics" barStyle="blackTranslucent"/>
+                    <simulatedNavigationBarMetrics key="simulatedTopBarMetrics" prompted="NO"/>
                     <nil key="simulatedBottomBarMetrics"/>
-                    <navigationBar key="navigationBar" contentMode="scaleToFill" barStyle="blackTranslucent" id="3bj-vr-d0C">
+                    <navigationBar key="navigationBar" contentMode="scaleToFill" id="3bj-vr-d0C">
                         <rect key="frame" x="0.0" y="-44" width="0.0" height="44"/>
                         <autoresizingMask key="autoresizingMask"/>
                     </navigationBar>
@@ -248,30 +247,29 @@
         <!--Parameters View Controller - Master-->
         <scene sceneID="24">
             <objects>
-                <tableViewController storyboardIdentifier="" title="Master" clearsSelectionOnViewWillAppear="NO" id="19" customClass="ParametersViewController" sceneMemberID="viewController">
-                    <tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="grouped" separatorStyle="singleLineEtched" allowsSelection="NO" rowHeight="44" sectionHeaderHeight="10" sectionFooterHeight="10" id="20">
-                        <rect key="frame" x="0.0" y="20" width="320" height="748"/>
+                <tableViewController title="Master" clearsSelectionOnViewWillAppear="NO" id="19" customClass="ParametersViewController" sceneMemberID="viewController">
+                    <tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="grouped" separatorStyle="default" allowsSelection="NO" rowHeight="44" sectionHeaderHeight="10" sectionFooterHeight="10" id="20">
+                        <rect key="frame" x="0.0" y="0.0" width="320" height="768"/>
                         <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                         <color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/>
                         <simulatedOrientationMetrics key="simulatedOrientationMetrics" orientation="landscapeRight"/>
                         <prototypes>
                             <tableViewCell contentMode="scaleToFill" selectionStyle="gray" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="SettingsCell" textLabel="tIi-5l-S0i" style="IBUITableViewCellStyleDefault" id="ZSw-0O-9Pw">
-                                <rect key="frame" x="0.0" y="34" width="320" height="46"/>
+                                <rect key="frame" x="0.0" y="119" width="320" height="44"/>
                                 <autoresizingMask key="autoresizingMask"/>
-                                <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
-                                    <rect key="frame" x="10" y="1" width="300" height="43"/>
+                                <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="ZSw-0O-9Pw" id="PXw-eV-JUQ">
+                                    <rect key="frame" x="0.0" y="0.0" width="320" height="43"/>
                                     <autoresizingMask key="autoresizingMask"/>
                                     <subviews>
                                         <label opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" text="Title" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="tIi-5l-S0i">
-                                            <rect key="frame" x="10" y="0.0" width="280" height="43"/>
+                                            <rect key="frame" x="15" y="0.0" width="290" height="43"/>
                                             <autoresizingMask key="autoresizingMask"/>
                                             <fontDescription key="fontDescription" type="boldSystem" pointSize="20"/>
                                             <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>
+                                </tableViewCellContentView>
                                 <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
                             </tableViewCell>
                         </prototypes>
@@ -294,9 +292,9 @@
         <scene sceneID="50">
             <objects>
                 <navigationController id="42" sceneMemberID="viewController">
-                    <simulatedNavigationBarMetrics key="simulatedTopBarMetrics" barStyle="blackTranslucent" prompted="NO"/>
+                    <simulatedNavigationBarMetrics key="simulatedTopBarMetrics" prompted="NO"/>
                     <nil key="simulatedBottomBarMetrics"/>
-                    <navigationBar key="navigationBar" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" barStyle="blackTranslucent" id="43">
+                    <navigationBar key="navigationBar" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" id="43">
                         <rect key="frame" x="0.0" y="-44" width="0.0" height="44"/>
                         <autoresizingMask key="autoresizingMask"/>
                     </navigationBar>
@@ -310,7 +308,7 @@
         </scene>
     </scenes>
     <simulatedMetricsContainer key="defaultSimulatedMetrics">
-        <simulatedStatusBarMetrics key="statusBar" statusBarStyle="blackTranslucent"/>
+        <simulatedStatusBarMetrics key="statusBar"/>
         <simulatedOrientationMetrics key="orientation"/>
         <simulatedScreenMetrics key="destination"/>
     </simulatedMetricsContainer>
diff --git a/contrib/mobile/iOS/Onelab/en.lproj/iPhoneiPodStoryboard.storyboard b/contrib/mobile/iOS/Onelab/en.lproj/iPhoneiPodStoryboard.storyboard
index 74951164b1..b39d3ccf2f 100644
--- a/contrib/mobile/iOS/Onelab/en.lproj/iPhoneiPodStoryboard.storyboard
+++ b/contrib/mobile/iOS/Onelab/en.lproj/iPhoneiPodStoryboard.storyboard
@@ -1,7 +1,9 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="2.0" toolsVersion="3084" systemVersion="12E55" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" initialViewController="vAG-uz-hfU">
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="2.0" toolsVersion="4510" systemVersion="12E55" targetRuntime="iOS.CocoaTouch" variant="6xAndEarlier" propertyAccessControl="none" useAutolayout="YES" initialViewController="vAG-uz-hfU">
     <dependencies>
-        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="2083"/>
+        <deployment defaultVersion="1536" identifier="iOS"/>
+        <development version="4600" identifier="xcode"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="3742"/>
     </dependencies>
     <scenes>
         <!--Model List Controller - Models list-->
@@ -9,7 +11,7 @@
             <objects>
                 <tableViewController id="aNd-kg-MlN" customClass="ModelListController" sceneMemberID="viewController">
                     <tableView key="view" opaque="NO" clipsSubviews="YES" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" rowHeight="44" sectionHeaderHeight="22" sectionFooterHeight="22" id="E1y-UA-Su2">
-                        <rect key="frame" x="0.0" y="20" width="320" height="548"/>
+                        <rect key="frame" x="0.0" y="64" width="320" height="504"/>
                         <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                         <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
                         <prototypes>
@@ -38,15 +40,17 @@
             <objects>
                 <viewController storyboardIdentifier="ModelViewController" id="NyB-7w-cP0" customClass="ModelViewController" sceneMemberID="viewController">
                     <view key="view" contentMode="scaleToFill" id="zrj-Dd-WPc" customClass="EAGLView">
-                        <rect key="frame" x="0.0" y="20" width="320" height="548"/>
+                        <rect key="frame" x="0.0" y="64" width="320" height="504"/>
                         <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                         <subviews>
                             <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="yT7-IR-qUJ">
+                                <rect key="frame" x="48" y="464" width="252" height="20"/>
                                 <fontDescription key="fontDescription" type="system" pointSize="17"/>
                                 <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
                                 <nil key="highlightedColor"/>
                             </label>
                             <activityIndicatorView opaque="NO" contentMode="scaleToFill" style="gray" translatesAutoresizingMaskIntoConstraints="NO" id="Fuh-zG-zVR">
+                                <rect key="frame" x="20" y="464" width="20" height="20"/>
                                 <constraints>
                                     <constraint firstAttribute="width" constant="20" id="f9c-ZY-6q4"/>
                                 </constraints>
@@ -100,9 +104,9 @@
         <scene sceneID="YFg-Co-Dc2">
             <objects>
                 <navigationController definesPresentationContext="YES" id="vAG-uz-hfU" sceneMemberID="viewController">
-                    <simulatedNavigationBarMetrics key="simulatedTopBarMetrics" barStyle="blackTranslucent"/>
+                    <simulatedNavigationBarMetrics key="simulatedTopBarMetrics" prompted="NO"/>
                     <nil key="simulatedBottomBarMetrics"/>
-                    <navigationBar key="navigationBar" contentMode="scaleToFill" barStyle="blackTranslucent" id="HV6-65-Zcg">
+                    <navigationBar key="navigationBar" contentMode="scaleToFill" id="HV6-65-Zcg">
                         <rect key="frame" x="0.0" y="0.0" width="0.0" height="44"/>
                         <autoresizingMask key="autoresizingMask"/>
                     </navigationBar>
@@ -119,7 +123,7 @@
             <objects>
                 <tableViewController id="0h7-h3-thM" customClass="ParametersViewController" sceneMemberID="viewController">
                     <tableView key="view" opaque="NO" clipsSubviews="YES" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" rowHeight="44" sectionHeaderHeight="22" sectionFooterHeight="22" id="XKe-Ex-Vcl">
-                        <rect key="frame" x="0.0" y="20" width="320" height="548"/>
+                        <rect key="frame" x="0.0" y="64" width="320" height="504"/>
                         <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                         <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
                         <prototypes>
@@ -154,7 +158,7 @@
             <objects>
                 <tableViewController id="tLo-wG-spu" customClass="OptionsViewController" sceneMemberID="viewController">
                     <tableView key="view" opaque="NO" clipsSubviews="YES" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" rowHeight="44" sectionHeaderHeight="22" sectionFooterHeight="22" id="AUf-bU-fWv">
-                        <rect key="frame" x="0.0" y="20" width="320" height="548"/>
+                        <rect key="frame" x="0.0" y="64" width="320" height="504"/>
                         <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                         <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
                         <prototypes>
@@ -187,10 +191,11 @@
             <objects>
                 <viewController storyboardIdentifier="PostProcessingViewController" id="pfu-w8-zq5" customClass="PostProcessingViewController" sceneMemberID="viewController">
                     <view key="view" contentMode="scaleToFill" id="Lh8-gQ-vBl">
-                        <rect key="frame" x="0.0" y="20" width="320" height="548"/>
+                        <rect key="frame" x="0.0" y="64" width="320" height="504"/>
                         <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                         <subviews>
                             <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="PView Name" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="z3z-Xo-nQF">
+                                <rect key="frame" x="20" y="53" width="280" height="36"/>
                                 <constraints>
                                     <constraint firstAttribute="height" constant="36" id="Mei-3P-M3i"/>
                                 </constraints>
@@ -199,8 +204,10 @@
                                 <nil key="highlightedColor"/>
                             </label>
                             <scrollView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="h3e-8g-CWy">
+                                <rect key="frame" x="14" y="97" width="292" height="387"/>
                                 <subviews>
                                     <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Intervals" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="elK-Av-NO2">
+                                        <rect key="frame" x="-8" y="224" width="91" height="21"/>
                                         <constraints>
                                             <constraint firstAttribute="width" constant="91" id="BzM-Ls-Hjm"/>
                                         </constraints>
@@ -209,6 +216,7 @@
                                         <nil key="highlightedColor"/>
                                     </label>
                                     <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="rgB-dz-6XG">
+                                        <rect key="frame" x="91" y="224" width="99" height="30"/>
                                         <constraints>
                                             <constraint firstAttribute="width" constant="99" id="TZK-Y4-wsY"/>
                                         </constraints>
@@ -216,17 +224,22 @@
                                         <textInputTraits key="textInputTraits"/>
                                     </textField>
                                     <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Raise (Z)" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Bfu-t9-dAj">
+                                        <rect key="frame" x="-8" y="265" width="91" height="21"/>
                                         <fontDescription key="fontDescription" type="system" pointSize="17"/>
                                         <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
                                         <nil key="highlightedColor"/>
                                     </label>
-                                    <slider opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" minValue="-5" maxValue="5" translatesAutoresizingMaskIntoConstraints="NO" id="BC5-E7-rEF"/>
+                                    <slider opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" minValue="-5" maxValue="5" translatesAutoresizingMaskIntoConstraints="NO" id="BC5-E7-rEF">
+                                        <rect key="frame" x="89" y="264" width="185" height="23"/>
+                                    </slider>
                                     <pickerView contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="xW0-cN-kxL">
+                                        <rect key="frame" x="0.0" y="0.0" width="292" height="216"/>
                                         <constraints>
                                             <constraint firstAttribute="height" constant="216" id="eIi-6g-osP"/>
                                         </constraints>
                                     </pickerView>
                                     <stepper opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" maximumValue="100" translatesAutoresizingMaskIntoConstraints="NO" id="fq0-E8-V07">
+                                        <rect key="frame" x="198" y="225" width="94" height="27"/>
                                         <connections>
                                             <action selector="stepperValueChanged:" destination="pfu-w8-zq5" eventType="valueChanged" id="d8w-ZF-KcK"/>
                                         </connections>
-- 
GitLab