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 8669d9c6f5033c419fb7a4de69f30c253bf58be8..652a92811bd5a0405b306f1dbf06a36ceeee3cd4 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/CISDOBMasterViewController.m b/openbis-ipad/openBIS/openBIS/CISDOBMasterViewController.m index 9bf428e9c41b04701ce84f394674ec8d68d258d2..298ae9096f85edd2185752e687afb3e3d0ad9920 100644 --- a/openbis-ipad/openBIS/openBIS/CISDOBMasterViewController.m +++ b/openbis-ipad/openBIS/openBIS/CISDOBMasterViewController.m @@ -157,7 +157,7 @@ CISDOBIpadEntity *object = [self.openBisModel objectAtIndexPath: indexPath]; cell.textLabel.text = object.summaryHeader; cell.detailTextLabel.text = object.summary; - if ([object.childrenPermIds count] > 0) { + if ([self.openBisModel entityHasChildren: object]) { cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; } else { cell.accessoryType = UITableViewCellAccessoryNone; diff --git a/openbis-ipad/openBIS/openBIS/CISDOBOpenBisModel.h b/openbis-ipad/openBIS/openBIS/CISDOBOpenBisModel.h index 7c36841974c144870ce8540586d01164a8c0514e..a377d638615e4ce57dceae97298d4a38ffc3c655 100644 --- a/openbis-ipad/openBIS/openBIS/CISDOBOpenBisModel.h +++ b/openbis-ipad/openBIS/openBIS/CISDOBOpenBisModel.h @@ -52,7 +52,8 @@ //! Select the object and return it - (CISDOBIpadEntity *)selectObjectAtIndexPath:(NSIndexPath *)indexPath; -- (BOOL)selectionHasChildren; //!< Return YES if the selected object is a group (has children) +- (BOOL)selectionHasChildren; //!< Return YES if the selected object has children in the selection context +- (BOOL)entityHasChildren:(CISDOBIpadEntity *)entity; //!< Return YES if the entity has children in the selection context. // Actions - (BOOL)insertNewObjectOrError:(NSError **)error; //!< Return YES if operation succeeded diff --git a/openbis-ipad/openBIS/openBIS/CISDOBOpenBisModel.m b/openbis-ipad/openBIS/openBIS/CISDOBOpenBisModel.m index e30061c63e0110934fba82d7d219967c3f263aa0..b55d0cea1de97bf8a27d2da7d2d17d36ed475322 100644 --- a/openbis-ipad/openBIS/openBIS/CISDOBOpenBisModel.m +++ b/openbis-ipad/openBIS/openBIS/CISDOBOpenBisModel.m @@ -82,7 +82,16 @@ - (BOOL)selectionHasChildren { - return [_selectedObject.childrenPermIds count] > 0; + if (!_selectedObject) return NO; + return [self entityHasChildren: _selectedObject]; +} + +- (BOOL)entityHasChildren:(CISDOBIpadEntity *)entity +{ + // In this case we are already looking at the children. No need to allow circular recursion. + if (_parentModel && [entity isEqual: _parentModel.selectedObject]) return NO; + + return [entity.childrenPermIds count] > 0; } #pragma mark - Actions