diff --git a/contrib/mobile/iOS/Onelab.xcodeproj/project.pbxproj b/contrib/mobile/iOS/Onelab.xcodeproj/project.pbxproj index ea43ba67aa1f9c5a366fb5ad423931e8a06baba5..13482edb65aadf2772b9237bf285c4fdfaebb55d 100644 --- a/contrib/mobile/iOS/Onelab.xcodeproj/project.pbxproj +++ b/contrib/mobile/iOS/Onelab.xcodeproj/project.pbxproj @@ -16,11 +16,6 @@ 9C96084B1712C16400E1D4A0 /* AppDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = 9C96084A1712C16300E1D4A0 /* AppDelegate.mm */; }; 9C9608511712C16400E1D4A0 /* MasterViewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 9C9608501712C16400E1D4A0 /* MasterViewController.mm */; }; 9C9608541712C16400E1D4A0 /* DetailViewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 9C9608531712C16400E1D4A0 /* DetailViewController.mm */; }; - 9C96085C1712C16400E1D4A0 /* SenTestingKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9C96085B1712C16400E1D4A0 /* SenTestingKit.framework */; }; - 9C96085D1712C16400E1D4A0 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9C96083A1712C16300E1D4A0 /* UIKit.framework */; }; - 9C96085E1712C16400E1D4A0 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9C96083C1712C16300E1D4A0 /* Foundation.framework */; }; - 9C9608661712C16400E1D4A0 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 9C9608641712C16400E1D4A0 /* InfoPlist.strings */; }; - 9C9608691712C16400E1D4A0 /* OnelabTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 9C9608681712C16400E1D4A0 /* OnelabTests.m */; }; 9C9608741712C47200E1D4A0 /* EAGLView.mm in Sources */ = {isa = PBXBuildFile; fileRef = 9C9608731712C47200E1D4A0 /* EAGLView.mm */; }; 9C9608991712C7B600E1D4A0 /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9C9608981712C7B600E1D4A0 /* Accelerate.framework */; }; 9C96089B1712C7BE00E1D4A0 /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9C96089A1712C7BE00E1D4A0 /* OpenGLES.framework */; }; @@ -45,16 +40,6 @@ 9CEAECC717A91CD20014D229 /* ModelListController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 9CEAECC617A91CD20014D229 /* ModelListController.mm */; }; /* End PBXBuildFile section */ -/* Begin PBXContainerItemProxy section */ - 9C96085F1712C16400E1D4A0 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 9C96082D1712C16300E1D4A0 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 9C9608351712C16300E1D4A0; - remoteInfo = Onelab; - }; -/* End PBXContainerItemProxy section */ - /* Begin PBXFileReference section */ 9C1C10F817BA5E7D00BFD483 /* PostProViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PostProViewController.h; sourceTree = "<group>"; }; 9C1C10F917BA5E7D00BFD483 /* PostProViewController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = PostProViewController.mm; sourceTree = "<group>"; }; @@ -71,12 +56,7 @@ 9C9608501712C16400E1D4A0 /* MasterViewController.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = MasterViewController.mm; sourceTree = "<group>"; usesTabs = 1; }; 9C9608521712C16400E1D4A0 /* DetailViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DetailViewController.h; sourceTree = "<group>"; usesTabs = 1; }; 9C9608531712C16400E1D4A0 /* DetailViewController.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = DetailViewController.mm; sourceTree = "<group>"; usesTabs = 1; }; - 9C96085A1712C16400E1D4A0 /* OnelabTests.octest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = OnelabTests.octest; sourceTree = BUILT_PRODUCTS_DIR; }; 9C96085B1712C16400E1D4A0 /* SenTestingKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SenTestingKit.framework; path = Library/Frameworks/SenTestingKit.framework; sourceTree = DEVELOPER_DIR; }; - 9C9608631712C16400E1D4A0 /* OnelabTests-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "OnelabTests-Info.plist"; sourceTree = "<group>"; }; - 9C9608651712C16400E1D4A0 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; }; - 9C9608671712C16400E1D4A0 /* OnelabTests.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OnelabTests.h; sourceTree = "<group>"; }; - 9C9608681712C16400E1D4A0 /* OnelabTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = OnelabTests.m; sourceTree = "<group>"; }; 9C9608721712C47200E1D4A0 /* EAGLView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EAGLView.h; sourceTree = "<group>"; usesTabs = 1; }; 9C9608731712C47200E1D4A0 /* EAGLView.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = EAGLView.mm; sourceTree = "<group>"; usesTabs = 1; }; 9C9608981712C7B600E1D4A0 /* Accelerate.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accelerate.framework; path = System/Library/Frameworks/Accelerate.framework; sourceTree = SDKROOT; }; @@ -129,16 +109,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 9C9608561712C16400E1D4A0 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 9C96085C1712C16400E1D4A0 /* SenTestingKit.framework in Frameworks */, - 9C96085D1712C16400E1D4A0 /* UIKit.framework in Frameworks */, - 9C96085E1712C16400E1D4A0 /* Foundation.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ @@ -148,7 +118,6 @@ 9C9F8BCE174B5A23004332C5 /* ic_launcher.png */, 9C9F8BCC174B5A1B004332C5 /* ic_launcher_retina.png */, 9C9608401712C16300E1D4A0 /* Onelab */, - 9C9608611712C16400E1D4A0 /* OnelabTests */, 9C9608391712C16300E1D4A0 /* Frameworks */, 9C9608371712C16300E1D4A0 /* Products */, ); @@ -158,7 +127,6 @@ isa = PBXGroup; children = ( 9C9608361712C16300E1D4A0 /* Onelab.app */, - 9C96085A1712C16400E1D4A0 /* OnelabTests.octest */, ); name = Products; sourceTree = "<group>"; @@ -221,25 +189,6 @@ path = Onelab; sourceTree = "<group>"; }; - 9C9608611712C16400E1D4A0 /* OnelabTests */ = { - isa = PBXGroup; - children = ( - 9C9608671712C16400E1D4A0 /* OnelabTests.h */, - 9C9608681712C16400E1D4A0 /* OnelabTests.m */, - 9C9608621712C16400E1D4A0 /* Supporting Files */, - ); - path = OnelabTests; - sourceTree = "<group>"; - }; - 9C9608621712C16400E1D4A0 /* Supporting Files */ = { - isa = PBXGroup; - children = ( - 9C9608631712C16400E1D4A0 /* OnelabTests-Info.plist */, - 9C9608641712C16400E1D4A0 /* InfoPlist.strings */, - ); - name = "Supporting Files"; - sourceTree = "<group>"; - }; 9CF1C1F017AA8A46002CD2E3 /* Supporting Files */ = { isa = PBXGroup; children = ( @@ -270,25 +219,6 @@ productReference = 9C9608361712C16300E1D4A0 /* Onelab.app */; productType = "com.apple.product-type.application"; }; - 9C9608591712C16400E1D4A0 /* OnelabTests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 9C96086F1712C16400E1D4A0 /* Build configuration list for PBXNativeTarget "OnelabTests" */; - buildPhases = ( - 9C9608551712C16400E1D4A0 /* Sources */, - 9C9608561712C16400E1D4A0 /* Frameworks */, - 9C9608571712C16400E1D4A0 /* Resources */, - 9C9608581712C16400E1D4A0 /* ShellScript */, - ); - buildRules = ( - ); - dependencies = ( - 9C9608601712C16400E1D4A0 /* PBXTargetDependency */, - ); - name = OnelabTests; - productName = OnelabTests; - productReference = 9C96085A1712C16400E1D4A0 /* OnelabTests.octest */; - productType = "com.apple.product-type.bundle"; - }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ @@ -311,7 +241,6 @@ projectRoot = ""; targets = ( 9C9608351712C16300E1D4A0 /* Onelab */, - 9C9608591712C16400E1D4A0 /* OnelabTests */, ); }; /* End PBXProject section */ @@ -329,32 +258,8 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 9C9608571712C16400E1D4A0 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 9C9608661712C16400E1D4A0 /* InfoPlist.strings in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; /* End PBXResourcesBuildPhase section */ -/* Begin PBXShellScriptBuildPhase section */ - 9C9608581712C16400E1D4A0 /* ShellScript */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "# Run the unit tests in this test bundle.\n\"${SYSTEM_DEVELOPER_DIR}/Tools/RunUnitTests\"\n"; - }; -/* End PBXShellScriptBuildPhase section */ - /* Begin PBXSourcesBuildPhase section */ 9C9608321712C16300E1D4A0 /* Sources */ = { isa = PBXSourcesBuildPhase; @@ -380,33 +285,9 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 9C9608551712C16400E1D4A0 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 9C9608691712C16400E1D4A0 /* OnelabTests.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; /* End PBXSourcesBuildPhase section */ -/* Begin PBXTargetDependency section */ - 9C9608601712C16400E1D4A0 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 9C9608351712C16300E1D4A0 /* Onelab */; - targetProxy = 9C96085F1712C16400E1D4A0 /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - /* Begin PBXVariantGroup section */ - 9C9608641712C16400E1D4A0 /* InfoPlist.strings */ = { - isa = PBXVariantGroup; - children = ( - 9C9608651712C16400E1D4A0 /* en */, - ); - name = InfoPlist.strings; - sourceTree = "<group>"; - }; 9C9608AA1712EF0900E1D4A0 /* iPadStoryboard.storyboard */ = { isa = PBXVariantGroup; children = ( @@ -437,6 +318,7 @@ CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; COPY_PHASE_STRIP = NO; GCC_C_LANGUAGE_STANDARD = gnu99; @@ -452,6 +334,8 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES; GCC_WARN_UNUSED_VARIABLE = YES; IPHONEOS_DEPLOYMENT_TARGET = 5.1; + PROVISIONING_PROFILE = ""; + "PROVISIONING_PROFILE[sdk=iphoneos*]" = ""; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = 2; }; @@ -468,6 +352,7 @@ CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; COPY_PHASE_STRIP = YES; GCC_C_LANGUAGE_STANDARD = gnu99; @@ -477,6 +362,8 @@ GCC_WARN_UNUSED_VARIABLE = YES; IPHONEOS_DEPLOYMENT_TARGET = 5.1; OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1"; + PROVISIONING_PROFILE = ""; + "PROVISIONING_PROFILE[sdk=iphoneos*]" = ""; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = 2; VALIDATE_PRODUCT = YES; @@ -487,8 +374,6 @@ isa = XCBuildConfiguration; buildSettings = { CLANG_ENABLE_OBJC_ARC = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", "\"$(SRCROOT)/Onelab/frameworks\"", @@ -500,8 +385,6 @@ LIBRARY_SEARCH_PATHS = "$(inherited)"; OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1"; PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE = ""; - "PROVISIONING_PROFILE[sdk=iphoneos*]" = ""; TARGETED_DEVICE_FAMILY = "1,2"; VALID_ARCHS = armv7; WRAPPER_EXTENSION = app; @@ -512,8 +395,6 @@ isa = XCBuildConfiguration; buildSettings = { CLANG_ENABLE_OBJC_ARC = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", "\"$(SRCROOT)/../../getdp-iOS\"", @@ -527,48 +408,12 @@ IPHONEOS_DEPLOYMENT_TARGET = 5.1; LIBRARY_SEARCH_PATHS = "$(inherited)"; PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE = ""; - "PROVISIONING_PROFILE[sdk=iphoneos*]" = ""; TARGETED_DEVICE_FAMILY = "1,2"; VALID_ARCHS = armv7; WRAPPER_EXTENSION = app; }; name = Release; }; - 9C9608701712C16400E1D4A0 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - BUNDLE_LOADER = "$(BUILT_PRODUCTS_DIR)/Onelab.app/Onelab"; - FRAMEWORK_SEARCH_PATHS = ( - "\"$(SDKROOT)/Developer/Library/Frameworks\"", - "\"$(DEVELOPER_LIBRARY_DIR)/Frameworks\"", - ); - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = "Onelab/Onelab-Prefix.pch"; - INFOPLIST_FILE = "OnelabTests/OnelabTests-Info.plist"; - PRODUCT_NAME = "$(TARGET_NAME)"; - TEST_HOST = "$(BUNDLE_LOADER)"; - WRAPPER_EXTENSION = octest; - }; - name = Debug; - }; - 9C9608711712C16400E1D4A0 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - BUNDLE_LOADER = "$(BUILT_PRODUCTS_DIR)/Onelab.app/Onelab"; - FRAMEWORK_SEARCH_PATHS = ( - "\"$(SDKROOT)/Developer/Library/Frameworks\"", - "\"$(DEVELOPER_LIBRARY_DIR)/Frameworks\"", - ); - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = "Onelab/Onelab-Prefix.pch"; - INFOPLIST_FILE = "OnelabTests/OnelabTests-Info.plist"; - PRODUCT_NAME = "$(TARGET_NAME)"; - TEST_HOST = "$(BUNDLE_LOADER)"; - WRAPPER_EXTENSION = octest; - }; - name = Release; - }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ @@ -590,15 +435,6 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 9C96086F1712C16400E1D4A0 /* Build configuration list for PBXNativeTarget "OnelabTests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 9C9608701712C16400E1D4A0 /* Debug */, - 9C9608711712C16400E1D4A0 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; /* End XCConfigurationList section */ }; rootObject = 9C96082D1712C16300E1D4A0 /* Project object */; diff --git a/contrib/mobile/iOS/Onelab/MasterViewController.mm b/contrib/mobile/iOS/Onelab/MasterViewController.mm index 6c19837356c1a333528ef7ac723b7085b2d8912e..743db7c9bcd2827bd6ed9564aaa89e0c5150d3e2 100644 --- a/contrib/mobile/iOS/Onelab/MasterViewController.mm +++ b/contrib/mobile/iOS/Onelab/MasterViewController.mm @@ -37,9 +37,10 @@ } else { - runButton = [[UIBarButtonItem alloc] initWithTitle:@"Run" style:UIBarButtonItemStyleBordered target:self action:@selector(runWithNewParameter)]; + runButton = [[UIBarButtonItem alloc] initWithTitle:@"Run" style:UIBarButtonItemStyleBordered target:self action:@selector(runWithNewParameter:)]; [runButton setTitle:@"Run"]; } + runButton.possibleTitles = [NSSet setWithObjects:@"Run", @"Stop", nil]; self.navigationItem.leftItemsSupplementBackButton = YES; // Only for iPhone/iPod self.navigationItem.leftBarButtonItem = runButton; @@ -184,20 +185,18 @@ [[NSNotificationCenter defaultCenter] postNotificationName:@"requestRender" object:nil]; } -- (void)runWithNewParameter +- (void)runWithNewParameter:(UIBarButtonItem *)sender { dispatch_async( dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ AppDelegate *appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate; appDelegate->compute = YES; - [runButton setTitle:@"Stop"]; - [self.navigationController.view setNeedsDisplay]; - [runButton setAction:@selector(stopRunning)]; + [sender setTitle:@"Stop"]; + [sender setAction:@selector(stopRunning)]; self.navigationItem.rightBarButtonItem.enabled = NO; onelab_cb("compute"); if([[UIDevice currentDevice].model isEqualToString:@"iPad"] || [[UIDevice currentDevice].model isEqualToString:@"iPad Simulator"]){ - [runButton setTitle:@"Run"]; - [self.navigationController.view setNeedsDisplay]; - [runButton setAction:@selector(runWithNewParameter)]; + [sender setTitle:@"Run"]; + [sender setAction:@selector(runWithNewParameter:)]; self.navigationItem.rightBarButtonItem.enabled = YES; } appDelegate->compute = NO; @@ -249,12 +248,12 @@ [cell addSubview:[tmp getLabel]]; if([tmp isKindOfClass:[parameterStringList class]]) { parameterStringList *param = (parameterStringList *)tmp; - [param setFrame:CGRectMake(20, cell.frame.size.height/2+5, cell.frame.size.width - 40, cell.frame.size.height/2)]; + [param setFrame:CGRectMake(20, 35, cell.frame.size.width - 40, 162)]; [cell addSubview:[param getList]]; } else if([tmp isKindOfClass:[parameterNumberList class]]) { parameterNumberList *param = (parameterNumberList *)tmp; - [param setFrame:CGRectMake(20, cell.frame.size.height/2+5, cell.frame.size.width - 40, cell.frame.size.height/2)]; + [param setFrame:CGRectMake(20, 35, cell.frame.size.width - 40, 162)]; [cell addSubview:[param getList]]; } else if([tmp isKindOfClass:[parameterNumberCheckbox class]]) { diff --git a/contrib/mobile/iOS/Onelab/parameter.h b/contrib/mobile/iOS/Onelab/parameter.h index 3db4bf00320e53faa8756f77a38ee298b9d5dd98..329e2afc87ea2b1557608f60a5c63c98b3126c83 100644 --- a/contrib/mobile/iOS/Onelab/parameter.h +++ b/contrib/mobile/iOS/Onelab/parameter.h @@ -24,6 +24,7 @@ -(UILabel *)getLabel; -(bool)isReadOnly; +(double)getHeight; +-(void)refresh; @end @interface parameterStringList : parameter <UIPickerViewDataSource, UIPickerViewDelegate> diff --git a/contrib/mobile/iOS/Onelab/parameter.mm b/contrib/mobile/iOS/Onelab/parameter.mm index 6df5bb3dc351dd90c32c6ba7124dd711a6545e4c..961adc30c6def136322c69ff7f8d1ba32b65b345 100644 --- a/contrib/mobile/iOS/Onelab/parameter.mm +++ b/contrib/mobile/iOS/Onelab/parameter.mm @@ -19,6 +19,10 @@ } return self; } +-(void)refresh +{ + return; +} -(NSString *)getName { return name; @@ -58,11 +62,21 @@ picker.showsSelectionIndicator = YES; [picker setDataSource:self]; [picker setDelegate:self]; - for(int row=0;row<string.getChoices().size();row++) - if(string.getValue() == string.getChoices()[row])[picker selectRow:row inComponent:0 animated:NO]; + 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]; } return self; } +-(void)refresh +{ + [picker reloadAllComponents]; +} -(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView { return 1; @@ -72,6 +86,9 @@ 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 @@ -79,6 +96,7 @@ 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]]; } -(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component @@ -109,7 +127,7 @@ } +(double)getHeight { - return 200.0f; + return 210.0f; } @end @@ -131,6 +149,10 @@ } return self; } +-(void)refresh +{ + [picker reloadAllComponents]; +} -(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView { return 1; @@ -177,7 +199,7 @@ } +(double)getHeight { - return 200.0f; + return 210.0f; } @end @@ -196,6 +218,12 @@ } return self; } +-(void)refresh +{ + std::vector<onelab::number> number; + onelab::server::instance()->get(number,[name UTF8String]); + [checkbox setSelected:(number[0].getValue() == 1)]; +} -(void) valueChange:(UISwitch *)sender { std::vector<onelab::number> number; @@ -246,6 +274,15 @@ } return self; } +-(void)refresh +{ + std::vector<onelab::number> number; + onelab::server::instance()->get(number,[name UTF8String]); + if(number.size() < 1) return; + [slider setMaximumValue:number[0].getMax()]; + [slider setMinimumValue:number[0].getMin()]; + [slider setValue:number[0].getValue()]; +} -(void)sliderValueChanged:(UISlider *)sender { std::vector<onelab::number> number; @@ -292,9 +329,24 @@ [textbox setKeyboardType:UIKeyboardTypeNumberPad]; [textbox setText:[NSString stringWithFormat:@"%f", number.getValue()]]; [textbox setDelegate:self]; + UIToolbar* numberToolbar = [[UIToolbar alloc]initWithFrame:CGRectMake(0, 0, 320, 50)]; + numberToolbar.barStyle = UIBarStyleBlackTranslucent; + numberToolbar.items = [NSArray arrayWithObjects: + [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil], + [[UIBarButtonItem alloc]initWithTitle:@"Apply" style:UIBarButtonItemStyleDone target:self action:@selector(doneWithNumberPad)], + nil]; + [numberToolbar sizeToFit]; + textbox.inputAccessoryView = numberToolbar; } return self; } +-(void)refresh +{ + std::vector<onelab::number> number; + onelab::server::instance()->get(number,[name UTF8String]); + if(number.size() < 1) return; + [textbox setText:[NSString stringWithFormat:@"%f", number[0].getValue()]]; +} -(BOOL)textFieldShouldEndEditing:(UITextField *)textField { std::vector<onelab::number> number; @@ -308,6 +360,10 @@ { return [textField endEditing:YES]; } +-(void)doneWithNumberPad +{ + [textbox endEditing:YES]; +} -(void)setFrame:(CGRect)frame { [textbox setFrame:frame];