@end
#endif
+
+@interface NSObject(EditingContext)
+- (id)editingContext;
+- (void)addEditor:(id)_editor;
+- (void)removeEditor:(id)_editor;
+- (void)setMessageHandler:(id)_handler;
+- (id)messageHandler;
+@end
+
+
@implementation WODisplayGroup
static NSNumber *uint0 = nil;
[[NSNotificationCenter defaultCenter] removeObserver:self];
[self setDataSource:nil];
- RELEASE(self->_queryMatch);
- RELEASE(self->_queryMin);
- RELEASE(self->_queryMax);
- RELEASE(self->_queryOperator);
- RELEASE(self->_queryBindings);
- RELEASE(self->defaultStringMatchFormat);
- RELEASE(self->defaultStringMatchOperator);
- RELEASE(self->qualifier);
- RELEASE(self->objects);
- RELEASE(self->displayObjects);
- RELEASE(self->selectionIndexes);
- RELEASE(self->sortOrderings);
- RELEASE(self->insertedObjectDefaults);
+ [self->_queryMatch release];
+ [self->_queryMin release];
+ [self->_queryMax release];
+ [self->_queryOperator release];
+ [self->_queryBindings release];
+ [self->defaultStringMatchFormat release];
+ [self->defaultStringMatchOperator release];
+ [self->qualifier release];
+ [self->objects release];
+ [self->displayObjects release];
+ [self->selectionIndexes release];
+ [self->sortOrderings release];
+ [self->insertedObjectDefaults release];
[super dealloc];
}
BOOL doRedisplay;
doRedisplay = YES;
- if ((d = [self delegate])) {
+ if ((d = [self delegate]) != nil) {
if ([d respondsToSelector:
- @selector(displayGroup:shouldRedisplayForChangesInEditingContext:)]) {
+ @selector(displayGroup:shouldRedisplayForChangesInEditingContext:)]) {
doRedisplay = [d displayGroup:self
shouldRedisplayForEditingContextChangeNotification:
_notification];
}
- (void)setDataSource:(EODataSource *)_ds {
- if (_ds != self->dataSource) {
-#if WITH_EC
- NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];
-
- id ec;
-
- if ((ec = [self->dataSource editingContext])) {
+ NSNotificationCenter *nc = nil;
+ id ec;
+
+ if (_ds == self->dataSource)
+ return;
+
+ /* unregister with old editing context */
+ if ([self->dataSource respondsToSelector:@selector(editingContext)]) {
+ if ((ec = [self->dataSource editingContext]) != nil) {
[ec removeEditor:self];
if ([ec messageHandler] == self)
[ec setMessageHandler:nil];
- [nc removeObserver:self
- name:@"EOObjectsChangedInEditingContext"
- object:ec];
+ [[NSNotificationCenter defaultCenter]
+ removeObserver:self
+ name:@"EOObjectsChangedInEditingContext"
+ object:ec];
}
-#endif
-
- ASSIGN(self->dataSource, _ds);
-
-#if WITH_EC
- if ((ec = [_ds editingContext])) {
+ }
+
+ ASSIGN(self->dataSource, _ds);
+
+ /* register with new editing context */
+ if ([self->dataSource respondsToSelector:@selector(editingContext)]) {
+ if ((ec = [self->dataSource editingContext]) != nil) {
[ec addEditor:self];
if ([ec messageHandler] == nil)
[ec setMessageHandler:self];
name:@"EOObjectsChangedInEditingContext"
object:ec];
}
-#endif
-
- if ([self->delegate respondsToSelector:
- @selector(displayGroupDidChangeDataSource:)])
- [self->delegate displayGroupDidChangeDataSource:self];
}
+
+ if ([self->delegate respondsToSelector:
+ @selector(displayGroupDidChangeDataSource:)])
+ [self->delegate displayGroupDidChangeDataSource:self];
}
- (EODataSource *)dataSource {
return self->dataSource;
}
- (void)setSortOrderings:(NSArray *)_orderings {
- id tmp = self->sortOrderings;
- self->sortOrderings = [_orderings copy];
- RELEASE(tmp);
+ ASSIGNCOPY(self->sortOrderings, _orderings);
}
- (NSArray *)sortOrderings {
return self->sortOrderings;
}
- (void)setInsertedObjectDefaultValues:(NSDictionary *)_values {
- id tmp = self->insertedObjectDefaults;
- self->insertedObjectDefaults = [_values copy];
- RELEASE(tmp);
+ ASSIGNCOPY(self->insertedObjectDefaults, [_values copy]);
}
- (NSDictionary *)insertedObjectDefaultValues {
return self->insertedObjectDefaults;
[self dataSource]];
}
-@end /* WODisplayGroup */
-
-@implementation WODisplayGroup(KVCArchiving)
+/* KVCArchiving */
- (id)initWithKeyValueUnarchiver:(EOKeyValueUnarchiver *)_unarchiver {
- if ((self = [self init])) {
+ if ((self = [self init]) != nil) {
id tmp;
if ((tmp = [_unarchiver decodeObjectForKey:@"formatForLikeQualifier"]))
forKey:@"selectFirstAfterFetch"];
}
-@end /* KVCArchiving */
-
-@implementation WODisplayGroup(EOEditorsImpl)
-
-#if 0
+/* EOEditorsImpl */
- (void)editingContextWillSaveChanges:(id)_ec {
}
return NO;
}
-#endif
-
-@end /* WODisplayGroup(EOEditorsImpl) */
-
-@implementation WODisplayGroup(EOMessageHandlersImpl)
-
-#if 0
+/* EOMessageHandlersImpl */
- (void)editingContext:(id)_ec
presentErrorMessage:(NSString *)_msg
- (BOOL)editingContext:(id)_ec
shouldContinueFetchingWithCurrentObjectCount:(unsigned)_oc
originalLimit:(unsigned)_olimit
- objectStore:(EOObjectStore *)_store
+ objectStore:(id)_store
{
return NO;
}
-#endif
-
-@end /* WODisplayGroup(EOMessageHandlersImpl) */
+@end /* WODisplayGroup */