From 5e11ac93c363e43c569cc362ccfa8457893a22f0 Mon Sep 17 00:00:00 2001 From: Maxime Graulich <maxime.graulich@gmail.com> Date: Tue, 25 Mar 2014 13:23:05 +0000 Subject: [PATCH] iOS: check for hidden/deleted parameters --- .../iOS/Onelab/ParametersViewController.mm | 31 ++++++++++++++----- 1 file changed, 24 insertions(+), 7 deletions(-) diff --git a/contrib/mobile/iOS/Onelab/ParametersViewController.mm b/contrib/mobile/iOS/Onelab/ParametersViewController.mm index dee73a14a3..b53b7700d6 100644 --- a/contrib/mobile/iOS/Onelab/ParametersViewController.mm +++ b/contrib/mobile/iOS/Onelab/ParametersViewController.mm @@ -104,7 +104,7 @@ [self.tableView insertRowsAtIndexPaths:[[NSArray alloc] initWithObjects:indexPath, nil] withRowAnimation:UITableViewRowAnimationAutomatic]; [self.tableView endUpdates]; } -- (void)removeParemeterNumber:(onelab::number)p atIndex:(NSIndexPath*)index +- (void)removeParemeterNumberAtIndex:(NSIndexPath*)index { [self.tableView beginUpdates]; [self.tableView deleteRowsAtIndexPaths: [NSArray arrayWithObject:index] withRowAnimation:UITableViewRowAnimationAutomatic]; @@ -133,7 +133,7 @@ std::vector<onelab::number> number; onelab::server::instance()->get(number); - // + // check for new/updated parameters (number) for(int i=0;i<number.size();i++) { if(!number[i].getVisible()) continue; // Do not add invisible parameter NSString *name=[NSString stringWithCString:number[i].getName().c_str() encoding:[NSString defaultCStringEncoding]]; @@ -146,10 +146,10 @@ for(int iparameter = 0; iparameter<[section count]; iparameter++) { if([[[section objectAtIndex: iparameter] getName] isEqualToString:name]) { // The parameter is in the section Parameter * p = [section objectAtIndex: iparameter]; - if(number[i].getVisible()) - [p refresh]; // just refresh the parameter - else - [self removeParemeterNumber:number[i] atIndex:[NSIndexPath indexPathForRow:iparameter inSection:iSection]]; + //if(number[i].getVisible()) + [p refresh]; // just refresh the parameter + //else + // [self removeParemeterNumber:number[i] atIndex:[NSIndexPath indexPathForRow:iparameter inSection:iSection]]; found = true; break; } @@ -164,10 +164,11 @@ NSMutableArray *newSection = [[NSMutableArray alloc] init]; [self addSection:newSection withTitle:sectiontitle withParameterNumber:number[0]]; } + std::vector<onelab::string> string; onelab::server::instance()->get(string); - // + // check for new/updated parameters (string) for(int i=0;i<string.size();i++) { if(!string[i].getVisible() || string[i].getKind() == "file") continue; // Do not add invisible parameter NSString *name=[NSString stringWithCString:string[i].getName().c_str() encoding:[NSString defaultCStringEncoding]]; @@ -195,6 +196,22 @@ NSMutableArray *newSection = [[NSMutableArray alloc] init]; [self addSection:newSection withTitle:sectiontitle withParameterString:string[0]]; } + + // check for hidden/deleted parameters + for(int iSection=0; iSection<[_sectionstitle count]; iSection++) { + NSMutableArray *section = [_sections objectAtIndex:iSection]; + for(int iparameter = 0; iparameter<[section count]; iparameter++) { + Parameter * p = [section objectAtIndex: iparameter]; + std::vector<onelab::number> number; + onelab::server::instance()->get(number,[[p getName] UTF8String]); + std::vector<onelab::string> string; + onelab::server::instance()->get(string,[[p getName] UTF8String]); + if((number.size() < 1 && string.size() < 1) || (number.size() > 0 && !number[0].getVisible()) || (string.size() > 0 && !string[0].getVisible())){ + [section removeObjectAtIndex:iparameter]; + [self removeParemeterNumberAtIndex:[NSIndexPath indexPathForRow:iparameter inSection:iSection]]; + } + } + } } - (void)viewDidUnload -- GitLab