Skip to content
Snippets Groups Projects
Commit 8a386197 authored by cramakri's avatar cramakri
Browse files

Use a stack of openBis models

SVN: 27173
parent 805857ff
No related branches found
No related tags found
No related merge requests found
...@@ -31,7 +31,7 @@ ...@@ -31,7 +31,7 @@
@property (readonly, strong, nonatomic) NSManagedObjectContext *managedObjectContext; @property (readonly, strong, nonatomic) NSManagedObjectContext *managedObjectContext;
@property (readonly, strong, nonatomic) NSManagedObjectModel *managedObjectModel; @property (readonly, strong, nonatomic) NSManagedObjectModel *managedObjectModel;
@property (readonly, strong, nonatomic) NSPersistentStoreCoordinator *persistentStoreCoordinator; @property (readonly, strong, nonatomic) NSPersistentStoreCoordinator *persistentStoreCoordinator;
@property (readonly, strong, nonatomic) CISDOBOpenBisModel *openBisModel; @property (readonly, strong, nonatomic) CISDOBOpenBisModel *rootOpenBisModel;
- (void)saveContext; - (void)saveContext;
- (NSURL *)applicationDocumentsDirectory; - (NSURL *)applicationDocumentsDirectory;
......
...@@ -31,7 +31,7 @@ ...@@ -31,7 +31,7 @@
@synthesize managedObjectContext = _managedObjectContext; @synthesize managedObjectContext = _managedObjectContext;
@synthesize managedObjectModel = _managedObjectModel; @synthesize managedObjectModel = _managedObjectModel;
@synthesize persistentStoreCoordinator = _persistentStoreCoordinator; @synthesize persistentStoreCoordinator = _persistentStoreCoordinator;
@synthesize openBisModel = _openBisModel; @synthesize rootOpenBisModel = _rootOpenBisModel;
- (CISDOBMasterViewController *)masterViewController - (CISDOBMasterViewController *)masterViewController
{ {
...@@ -55,7 +55,7 @@ ...@@ -55,7 +55,7 @@
{ {
// Initialize the controller // Initialize the controller
CISDOBMasterViewController *controller = [self masterViewController]; CISDOBMasterViewController *controller = [self masterViewController];
controller.openBisModel = self.openBisModel; controller.openBisModel = self.rootOpenBisModel;
return YES; return YES;
} }
...@@ -147,14 +147,14 @@ ...@@ -147,14 +147,14 @@
return _persistentStoreCoordinator; return _persistentStoreCoordinator;
} }
- (CISDOBOpenBisModel *)openBisModel - (CISDOBOpenBisModel *)rootOpenBisModel
{ {
if (_openBisModel != nil) return _openBisModel; if (_rootOpenBisModel != nil) return _rootOpenBisModel;
_openBisModel = [[CISDOBOpenBisModel alloc] init]; _rootOpenBisModel = [[CISDOBOpenBisModel alloc] init];
_openBisModel.managedObjectContext = self.managedObjectContext; _rootOpenBisModel.managedObjectContext = self.managedObjectContext;
return _openBisModel; return _rootOpenBisModel;
} }
#pragma mark - Application's Documents directory #pragma mark - Application's Documents directory
......
...@@ -162,7 +162,7 @@ ...@@ -162,7 +162,7 @@
- (void)initializeDrillDownFrom:(CISDOBMasterViewController *)parent - (void)initializeDrillDownFrom:(CISDOBMasterViewController *)parent
{ {
self.openBisModel = parent.openBisModel; self.openBisModel = [[CISDOBOpenBisModel alloc] initWithParentModel: parent.openBisModel];
self.title = self.openBisModel.selectedObject.summaryHeader; self.title = self.openBisModel.selectedObject.summaryHeader;
} }
......
...@@ -30,12 +30,17 @@ ...@@ -30,12 +30,17 @@
*/ */
@interface CISDOBOpenBisModel : NSObject <NSFetchedResultsControllerDelegate> { @interface CISDOBOpenBisModel : NSObject <NSFetchedResultsControllerDelegate> {
CISDOBIpadEntity *_selectedObject; CISDOBIpadEntity *_selectedObject;
CISDOBOpenBisModel *_parentModel;
} }
@property (strong, nonatomic) NSFetchedResultsController *fetchedResultsController; @property (strong, nonatomic) NSFetchedResultsController *fetchedResultsController;
@property (strong, nonatomic) NSManagedObjectContext *managedObjectContext; @property (strong, nonatomic) NSManagedObjectContext *managedObjectContext;
@property (weak, nonatomic) id <NSFetchedResultsControllerDelegate> delegate; @property (weak, nonatomic) id <NSFetchedResultsControllerDelegate> delegate;
@property (readonly) CISDOBIpadEntity *selectedObject;
@property (readonly) CISDOBOpenBisModel *parentModel;
// Initialize
- (id)initWithParentModel:(CISDOBOpenBisModel *)parentModel;
// Model // Model
- (NSInteger)numberOfSections; //!< Get the number of categories for the current selection - (NSInteger)numberOfSections; //!< Get the number of categories for the current selection
...@@ -44,6 +49,8 @@ ...@@ -44,6 +49,8 @@
- (CISDOBIpadEntity *)objectAtIndexPath:(NSIndexPath *)indexPath; - (CISDOBIpadEntity *)objectAtIndexPath:(NSIndexPath *)indexPath;
// Selection // Selection
@property (readonly) CISDOBIpadEntity *selectedObject;
//! Select the object and return it //! Select the object and return it
- (CISDOBIpadEntity *)selectObjectAtIndexPath:(NSIndexPath *)indexPath; - (CISDOBIpadEntity *)selectObjectAtIndexPath:(NSIndexPath *)indexPath;
- (BOOL)isSelectionGroup; //!< Return YES if the selected object is a group (has children) - (BOOL)isSelectionGroup; //!< Return YES if the selected object is a group (has children)
......
...@@ -23,8 +23,28 @@ ...@@ -23,8 +23,28 @@
#import "CISDOBOpenBisModel.h" #import "CISDOBOpenBisModel.h"
#import "CISDOBIpadEntity.h" #import "CISDOBIpadEntity.h"
@interface CISDOBOpenBisModel (CISDOBOpenBisModelPrivate)
@property (weak, nonatomic) CISDOBOpenBisModel *parentModel;
@end
@implementation CISDOBOpenBisModel @implementation CISDOBOpenBisModel
#pragma mark - Initialize
- (id)initWithParentModel:(CISDOBOpenBisModel *)parentModel
{
if (!(self = [super init])) return nil;
_parentModel = parentModel;
_selectedObject = nil;
if (_parentModel) {
self.fetchedResultsController = parentModel.fetchedResultsController;
self.managedObjectContext = parentModel.managedObjectContext;
}
return self;
}
#pragma mark - Model #pragma mark - Model
- (NSInteger)numberOfSections - (NSInteger)numberOfSections
{ {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment