libs-gdl2/EOInterface/EOAssociation.m

439 lines
9.9 KiB
Mathematica
Raw Normal View History

/**
EOAssociation.m
Copyright (C) 2004,2005 Free Software Foundation, Inc.
Author: David Ayers <ayers@fsfe.org>
This file is part of the GNUstep Database Library
The GNUstep Database Library is free software; you can redistribute it
and/or modify it under the terms of the GNU Lesser General Public License
as published by the Free Software Foundation; either version 3,
or (at your option) any later version.
The GNUstep Database Library is distributed in the hope that it will be
useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with the GNUstep Database Library; see the file COPYING. If not,
write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
#ifdef GNUSTEP
#include <Foundation/NSString.h>
#include <Foundation/NSArray.h>
#include <Foundation/NSBundle.h>
#include <Foundation/NSNotification.h>
#include <Foundation/NSMapTable.h>
2005-05-12 Matt Rice <ratmice@yahoo.com> * ChangeLog: Fix previous ChangeLog entry. * EOInterface/EOActionAssociation.m: Implemented aspects enabled and action. (-establishConnection): Implement (-breakConnection, -subjectChanged, -action): Ditto. * EOInterface/EOAssociation.m (-associationClassesForObject:): Fixed argument passed to -isUsableWithObject:. Assign count (-init): Assign self. (-establishConnection:): Add unused local variable to pass to NSNextMapEnumeratorPair instead of 0. (-breakConnection:): Ditto. (-initWithCoder:, -encodeWithCoder:): Initial implementation of methods. (-valueForAspect:,-setValue:forAspect:,-valueForAspect:atIndex:): Ditto. (-setValueForAspect:atIndex:): Ditto. * EOInterface/SubclassFlags.h: New file. * EOInterface/EOAspectConnector.h/m: New file and implementation. * EOInterface/EOColumnAssociation.m: Implemented aspects value and enabled (-objectKeysTaken): Take identifier key. (-establishConnection, -breakConnection, -endEditing): Implement methods. (-tableView:setObjectValueForTableColumn:row:): Ditto. (-tableView:objectValueForTableColumn:row:): Ditto. (-tableView:willDisplayCell:forTableColumn:row:): Ditto. (-control:didFailToFormatString:errorDescription:): Ditto. (-control:textShouldBeginEditing:): Ditto. * EOInterface/EOControlAssociation.m: (-control): Ditto (-editingAssociation, -establishConnection, -breakConnection): Ditto. * EOInterface/EOGenericControlAssociation.m: Implemented aspects value and enabled. (+objectKeysTaken): add target key. (-establishConnection: -breakConnection:, -subjectChanged:): Ditto. (-_action:, -endEditing, -control:textShouldBeginEditing:): Ditto. * EOInterface/EOMatrixAssociation.m: Implemented aspects image, title, and enabled. (-establishConnection, -breakConnection, -subjectChanged): Ditto. * EOInterface/EOPopUpAssociation.m: Implemented aspects titles, selectedTitle, selectedTag, selectedObject, enabled. (-initWithObject:, -_action:): Implemented method. (-establishConnection:, -breakConnection, -subjectChanged): Ditto. * EOInterface/EORadioMatrixAssociation.m: Implemented aspects selectedTag, selectedTitle, enabled. (NSCell -_selectCellWithTitle:): Private category. (-initWithObject:, -_action:): Implemented method. (-establishConnection:, -breakConnection, -subjectChanged): Ditto. * EOInterface/EOTableViewAssociation.m: Implemented aspects enabled, tableView. (-establishConnection, -breakConnection, subjectChanged): Implement method. (-bindToTableView:displayGroup:, -editingAssociation): Ditto. (-numberOfRowsInTableView:): (-tableView:setObjectValue:forTableColumn:row:): Ditto. (-tableView:objectValueForTableColumn:row:): Ditto. (-tableView:shouldEditTableColumn:row:): Ditto. (-tableView:willDisplayCell:forTableColumn:row:): Ditto. (-tableView:selectionDidChange:): Ditto. (-control:didFailToFormatString:errorDescription:): Ditto. (-control:isValidObject:, -control:textShouldBeginEditing:): Ditto. (-dealloc): Ditto. * EOInterface/EOTextAssociation.m: Implemented aspect value, enabled. (-establishConnection): Implemented method. (-breakConnection, -subjectChanged, -endEditing): Ditto. (-control:isValidObject:,textShouldBeginEditing:): Ditto. (-textShouldEndEditing:): Ditto. * EOInterface/GNUmakefile: Make EOInterface a native-library, whitespace changes. * EOInterface/Makefile.preamble: Change linker flag to use FND_LIBS and GUI_LIBS variables. * EOInterface/EODisplayGroup.h: Comment on whether ivars are retained. * EOInterface/EODisplayGroup.m: (DG_SHOULD_CHANGE_SELECTION_TO_IDX): New macros. (DG_DISPLAY_ARRAY_FOR_OBJECTS, DG_SHOULD_DISPLAY_ALERT): Ditto. (DG_DID_FETCH_OBJECTS, DG_CREATE_OBJECT_FAILED): Ditto. (DG_SHOULD_INSERT_OBJECT, DG_DID_INSERT_OBJECT): Ditto. (DG_DID_CHANGE_SELECTION): Ditto. (NSArray -indexesForObjectsIdenticalTo:): Implement category method. (_presentAlertWithTitle:message:): New private methods. (-_endObserverNotification:): Implement notification observer methods. (-_beginObserverNotification:): Ditto. (-objectsInvalidatedInEditingContext:): Ditto. (-objectsChangedInEditingContext:): Ditto. (+initialize, -init, -initWithCoder:,): Implement methods. (-encodeWithCoder:, -setDataSource:, -fetch, -allObjects): Ditto. (-setObjectArray:, -redisplay, -updateDisplayedObjects): Ditto. (-selectionIndexes, -setSelectionIndexes, -selectObject): Ditto. (-selectObjectsIdenticalTo:, -clearSelection, -selectedObjects): Ditto. (-selectObjectsIdenticalTo:selectFirstOnNoMatch:): Ditto. (-setSelectedObjects, -selectedObject, -setSelectedObject:): Ditto. (-insertObjectAtIndex:, -insertObject:atIndex:): Ditto. (-setInsertedObjectDefaultValues:, -deleteSelection): Ditto. (-observingAssociations, -endEditing, -fetch:, -insert:): Ditto. (-selectionChanged, -contentsChanged, -valueForObject:key:): Ditto. (-selectedObjectValueForKey:, -valueForObjectAtIndex:): Ditto. (-setValue:forObject:key:, -setSelectedObjectValue:forKey:): Ditto. (-setValue:forObjectAtIndex:key:, -associationDidBeginEditing:): Ditto. (-associationDidEndEditing:): Ditto. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@21222 72102866-910b-0410-8b05-ffd578937521
2005-05-12 19:55:41 +00:00
#include <Foundation/NSCoder.h>
#include <Foundation/NSException.h>
#else
#include <Foundation/Foundation.h>
#endif
#include <GNUstepBase/GNUstep.h>
#include <GNUstepBase/GSObjCRuntime.h>
#include "EODisplayGroup.h"
#include "EOAssociation.h"
* EOInterface/EOAssociation.m: New variable _objectToAssociations. (+objectDeallocated:): New private method. (+initialize): initialize _objectToAssociations. (-dealloc): Discard any pending notifications. (-establishConnection): Retain display groups we're bound to. Retain our self and register our object for dealloc notification. (-breakConnection): Release display groups we're bound to. Release our self and discard any pending notifications. (-subjectChanged): Add comment * EOInterface/EOColumnAssociation.m (-establishConnection): Assign our dg ivar after establishing connection. Use the dg ivar and move 2 if statements into one. * EOInterface/EODisplayGroup.m: Remove debugging class/category for emptyArray and emptyDictionary. (-indexesForObjectsIndeticalTo:): Fix typo by renaming to -indexesForObjectsIdenticalTo:. (-dealloc): Remove our self as an observer for any notifications, as an editor or message handler for our editing context, our observer proxies as observers from the observer center. Don't release array/dictionary ivars that are emptyArray or emptyDictionary. (-setSelectionIndexes:): Update to reflect change in method name. (-deleteSelection): Remove unused local var. (-fetch:): Call -redisplay. (-updatedObjectIndex:): Return -1 instead of 0 until this is implemented. (-setValue:forObject:key:): fix comment in exception handlers. * EOInterface/EOGenericControlAssociation.m: (-subjectChanged:): Remove unused local variable. * EOMasterDetailAssociation.m: (-establishConnection, -breakConnection, -subjectChanged): Implement. * EOInterface/EOPopUpAssociation.m: Remove unused local variables. * EOInterface/EOTableViewAssociation.m: (-breakConnection:): Remove our NSTableView object from the map table. (-subjectChanged:): Remove unused local variables. Release temporary retain on selection indexes. (+bindToTableView:displayGroup:): Don't retain the table views in the map table. Release the newly created association. (-dealloc): Remove self from the tvAssociationMap. * EOInterface/SubclassFlags.h: Fix bitmask on MatchKey1AspectMask. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@21439 72102866-910b-0410-8b05-ffd578937521
2005-07-09 03:01:22 +00:00
/* For GDL2NonRetainingArray */
#include "../EOControl/EOPrivate.h"
@implementation EOAssociation
static NSArray *_emptyArray = nil;
static NSMutableArray *_associationClasses = nil;
* EOInterface/EOAssociation.m: New variable _objectToAssociations. (+objectDeallocated:): New private method. (+initialize): initialize _objectToAssociations. (-dealloc): Discard any pending notifications. (-establishConnection): Retain display groups we're bound to. Retain our self and register our object for dealloc notification. (-breakConnection): Release display groups we're bound to. Release our self and discard any pending notifications. (-subjectChanged): Add comment * EOInterface/EOColumnAssociation.m (-establishConnection): Assign our dg ivar after establishing connection. Use the dg ivar and move 2 if statements into one. * EOInterface/EODisplayGroup.m: Remove debugging class/category for emptyArray and emptyDictionary. (-indexesForObjectsIndeticalTo:): Fix typo by renaming to -indexesForObjectsIdenticalTo:. (-dealloc): Remove our self as an observer for any notifications, as an editor or message handler for our editing context, our observer proxies as observers from the observer center. Don't release array/dictionary ivars that are emptyArray or emptyDictionary. (-setSelectionIndexes:): Update to reflect change in method name. (-deleteSelection): Remove unused local var. (-fetch:): Call -redisplay. (-updatedObjectIndex:): Return -1 instead of 0 until this is implemented. (-setValue:forObject:key:): fix comment in exception handlers. * EOInterface/EOGenericControlAssociation.m: (-subjectChanged:): Remove unused local variable. * EOMasterDetailAssociation.m: (-establishConnection, -breakConnection, -subjectChanged): Implement. * EOInterface/EOPopUpAssociation.m: Remove unused local variables. * EOInterface/EOTableViewAssociation.m: (-breakConnection:): Remove our NSTableView object from the map table. (-subjectChanged:): Remove unused local variables. Release temporary retain on selection indexes. (+bindToTableView:displayGroup:): Don't retain the table views in the map table. Release the newly created association. (-dealloc): Remove self from the tvAssociationMap. * EOInterface/SubclassFlags.h: Fix bitmask on MatchKey1AspectMask. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@21439 72102866-910b-0410-8b05-ffd578937521
2005-07-09 03:01:22 +00:00
static NSMapTable *_objectToAssociations;
+ (void) objectDeallocated:(id)object
{
GDL2NonRetainingMutableArray *associations;
associations = NSMapGet(_objectToAssociations, object);
if (associations)
{
[associations makeObjectsPerformSelector: @selector(breakConnection)];
* EOInterface/EOAssociation.m: New variable _objectToAssociations. (+objectDeallocated:): New private method. (+initialize): initialize _objectToAssociations. (-dealloc): Discard any pending notifications. (-establishConnection): Retain display groups we're bound to. Retain our self and register our object for dealloc notification. (-breakConnection): Release display groups we're bound to. Release our self and discard any pending notifications. (-subjectChanged): Add comment * EOInterface/EOColumnAssociation.m (-establishConnection): Assign our dg ivar after establishing connection. Use the dg ivar and move 2 if statements into one. * EOInterface/EODisplayGroup.m: Remove debugging class/category for emptyArray and emptyDictionary. (-indexesForObjectsIndeticalTo:): Fix typo by renaming to -indexesForObjectsIdenticalTo:. (-dealloc): Remove our self as an observer for any notifications, as an editor or message handler for our editing context, our observer proxies as observers from the observer center. Don't release array/dictionary ivars that are emptyArray or emptyDictionary. (-setSelectionIndexes:): Update to reflect change in method name. (-deleteSelection): Remove unused local var. (-fetch:): Call -redisplay. (-updatedObjectIndex:): Return -1 instead of 0 until this is implemented. (-setValue:forObject:key:): fix comment in exception handlers. * EOInterface/EOGenericControlAssociation.m: (-subjectChanged:): Remove unused local variable. * EOMasterDetailAssociation.m: (-establishConnection, -breakConnection, -subjectChanged): Implement. * EOInterface/EOPopUpAssociation.m: Remove unused local variables. * EOInterface/EOTableViewAssociation.m: (-breakConnection:): Remove our NSTableView object from the map table. (-subjectChanged:): Remove unused local variables. Release temporary retain on selection indexes. (+bindToTableView:displayGroup:): Don't retain the table views in the map table. Release the newly created association. (-dealloc): Remove self from the tvAssociationMap. * EOInterface/SubclassFlags.h: Fix bitmask on MatchKey1AspectMask. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@21439 72102866-910b-0410-8b05-ffd578937521
2005-07-09 03:01:22 +00:00
NSMapRemove(_objectToAssociations, object);
}
}
+ (void)bundleLoaded: (NSNotification *)notification
{
DESTROY(_associationClasses);
}
+ (void)initialize
{
if (_emptyArray == nil)
{
NSNotificationCenter *nc;
_emptyArray = [NSArray new];
nc = [NSNotificationCenter defaultCenter];
[nc addObserver: self
selector: @selector(bundleLoaded:)
name: NSBundleDidLoadNotification
object: nil];
* EOInterface/EOAssociation.m: New variable _objectToAssociations. (+objectDeallocated:): New private method. (+initialize): initialize _objectToAssociations. (-dealloc): Discard any pending notifications. (-establishConnection): Retain display groups we're bound to. Retain our self and register our object for dealloc notification. (-breakConnection): Release display groups we're bound to. Release our self and discard any pending notifications. (-subjectChanged): Add comment * EOInterface/EOColumnAssociation.m (-establishConnection): Assign our dg ivar after establishing connection. Use the dg ivar and move 2 if statements into one. * EOInterface/EODisplayGroup.m: Remove debugging class/category for emptyArray and emptyDictionary. (-indexesForObjectsIndeticalTo:): Fix typo by renaming to -indexesForObjectsIdenticalTo:. (-dealloc): Remove our self as an observer for any notifications, as an editor or message handler for our editing context, our observer proxies as observers from the observer center. Don't release array/dictionary ivars that are emptyArray or emptyDictionary. (-setSelectionIndexes:): Update to reflect change in method name. (-deleteSelection): Remove unused local var. (-fetch:): Call -redisplay. (-updatedObjectIndex:): Return -1 instead of 0 until this is implemented. (-setValue:forObject:key:): fix comment in exception handlers. * EOInterface/EOGenericControlAssociation.m: (-subjectChanged:): Remove unused local variable. * EOMasterDetailAssociation.m: (-establishConnection, -breakConnection, -subjectChanged): Implement. * EOInterface/EOPopUpAssociation.m: Remove unused local variables. * EOInterface/EOTableViewAssociation.m: (-breakConnection:): Remove our NSTableView object from the map table. (-subjectChanged:): Remove unused local variables. Release temporary retain on selection indexes. (+bindToTableView:displayGroup:): Don't retain the table views in the map table. Release the newly created association. (-dealloc): Remove self from the tvAssociationMap. * EOInterface/SubclassFlags.h: Fix bitmask on MatchKey1AspectMask. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@21439 72102866-910b-0410-8b05-ffd578937521
2005-07-09 03:01:22 +00:00
_objectToAssociations = NSCreateMapTable(NSNonOwnedPointerMapKeyCallBacks,
NSObjectMapValueCallBacks,
32);
}
}
+ (NSArray *)aspects
{
return _emptyArray;
}
+ (NSArray *)aspectSignatures
{
unsigned int count = [[self aspects] count];
unsigned int i;
NSMutableArray *sigs = [NSMutableArray arrayWithCapacity: count];
for (i = count; i < count; i++)
{
[sigs addObject: @"A1M"];
}
return AUTORELEASE([sigs copy]);
}
+ (NSArray *)objectKeysTaken
{
return _emptyArray;
}
+ (BOOL)isUsableWithObject: (id)object
{
return NO;
}
+ (NSArray *)associationClassesSuperseded
{
return _emptyArray;
}
+ (NSString *)displayName
{
return NSStringFromClass(self);
}
+ (NSString *)primaryAspect
{
return nil;
}
+ (NSArray *)associationClassesForObject: (id)object
{
unsigned int i, count;
NSMutableArray *arr;
Class cls;
if (_associationClasses == nil)
{
_associationClasses
= RETAIN(GSObjCAllSubclassesOfClass([EOAssociation class]));
}
2005-05-12 Matt Rice <ratmice@yahoo.com> * ChangeLog: Fix previous ChangeLog entry. * EOInterface/EOActionAssociation.m: Implemented aspects enabled and action. (-establishConnection): Implement (-breakConnection, -subjectChanged, -action): Ditto. * EOInterface/EOAssociation.m (-associationClassesForObject:): Fixed argument passed to -isUsableWithObject:. Assign count (-init): Assign self. (-establishConnection:): Add unused local variable to pass to NSNextMapEnumeratorPair instead of 0. (-breakConnection:): Ditto. (-initWithCoder:, -encodeWithCoder:): Initial implementation of methods. (-valueForAspect:,-setValue:forAspect:,-valueForAspect:atIndex:): Ditto. (-setValueForAspect:atIndex:): Ditto. * EOInterface/SubclassFlags.h: New file. * EOInterface/EOAspectConnector.h/m: New file and implementation. * EOInterface/EOColumnAssociation.m: Implemented aspects value and enabled (-objectKeysTaken): Take identifier key. (-establishConnection, -breakConnection, -endEditing): Implement methods. (-tableView:setObjectValueForTableColumn:row:): Ditto. (-tableView:objectValueForTableColumn:row:): Ditto. (-tableView:willDisplayCell:forTableColumn:row:): Ditto. (-control:didFailToFormatString:errorDescription:): Ditto. (-control:textShouldBeginEditing:): Ditto. * EOInterface/EOControlAssociation.m: (-control): Ditto (-editingAssociation, -establishConnection, -breakConnection): Ditto. * EOInterface/EOGenericControlAssociation.m: Implemented aspects value and enabled. (+objectKeysTaken): add target key. (-establishConnection: -breakConnection:, -subjectChanged:): Ditto. (-_action:, -endEditing, -control:textShouldBeginEditing:): Ditto. * EOInterface/EOMatrixAssociation.m: Implemented aspects image, title, and enabled. (-establishConnection, -breakConnection, -subjectChanged): Ditto. * EOInterface/EOPopUpAssociation.m: Implemented aspects titles, selectedTitle, selectedTag, selectedObject, enabled. (-initWithObject:, -_action:): Implemented method. (-establishConnection:, -breakConnection, -subjectChanged): Ditto. * EOInterface/EORadioMatrixAssociation.m: Implemented aspects selectedTag, selectedTitle, enabled. (NSCell -_selectCellWithTitle:): Private category. (-initWithObject:, -_action:): Implemented method. (-establishConnection:, -breakConnection, -subjectChanged): Ditto. * EOInterface/EOTableViewAssociation.m: Implemented aspects enabled, tableView. (-establishConnection, -breakConnection, subjectChanged): Implement method. (-bindToTableView:displayGroup:, -editingAssociation): Ditto. (-numberOfRowsInTableView:): (-tableView:setObjectValue:forTableColumn:row:): Ditto. (-tableView:objectValueForTableColumn:row:): Ditto. (-tableView:shouldEditTableColumn:row:): Ditto. (-tableView:willDisplayCell:forTableColumn:row:): Ditto. (-tableView:selectionDidChange:): Ditto. (-control:didFailToFormatString:errorDescription:): Ditto. (-control:isValidObject:, -control:textShouldBeginEditing:): Ditto. (-dealloc): Ditto. * EOInterface/EOTextAssociation.m: Implemented aspect value, enabled. (-establishConnection): Implemented method. (-breakConnection, -subjectChanged, -endEditing): Ditto. (-control:isValidObject:,textShouldBeginEditing:): Ditto. (-textShouldEndEditing:): Ditto. * EOInterface/GNUmakefile: Make EOInterface a native-library, whitespace changes. * EOInterface/Makefile.preamble: Change linker flag to use FND_LIBS and GUI_LIBS variables. * EOInterface/EODisplayGroup.h: Comment on whether ivars are retained. * EOInterface/EODisplayGroup.m: (DG_SHOULD_CHANGE_SELECTION_TO_IDX): New macros. (DG_DISPLAY_ARRAY_FOR_OBJECTS, DG_SHOULD_DISPLAY_ALERT): Ditto. (DG_DID_FETCH_OBJECTS, DG_CREATE_OBJECT_FAILED): Ditto. (DG_SHOULD_INSERT_OBJECT, DG_DID_INSERT_OBJECT): Ditto. (DG_DID_CHANGE_SELECTION): Ditto. (NSArray -indexesForObjectsIdenticalTo:): Implement category method. (_presentAlertWithTitle:message:): New private methods. (-_endObserverNotification:): Implement notification observer methods. (-_beginObserverNotification:): Ditto. (-objectsInvalidatedInEditingContext:): Ditto. (-objectsChangedInEditingContext:): Ditto. (+initialize, -init, -initWithCoder:,): Implement methods. (-encodeWithCoder:, -setDataSource:, -fetch, -allObjects): Ditto. (-setObjectArray:, -redisplay, -updateDisplayedObjects): Ditto. (-selectionIndexes, -setSelectionIndexes, -selectObject): Ditto. (-selectObjectsIdenticalTo:, -clearSelection, -selectedObjects): Ditto. (-selectObjectsIdenticalTo:selectFirstOnNoMatch:): Ditto. (-setSelectedObjects, -selectedObject, -setSelectedObject:): Ditto. (-insertObjectAtIndex:, -insertObject:atIndex:): Ditto. (-setInsertedObjectDefaultValues:, -deleteSelection): Ditto. (-observingAssociations, -endEditing, -fetch:, -insert:): Ditto. (-selectionChanged, -contentsChanged, -valueForObject:key:): Ditto. (-selectedObjectValueForKey:, -valueForObjectAtIndex:): Ditto. (-setValue:forObject:key:, -setSelectedObjectValue:forKey:): Ditto. (-setValue:forObjectAtIndex:key:, -associationDidBeginEditing:): Ditto. (-associationDidEndEditing:): Ditto. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@21222 72102866-910b-0410-8b05-ffd578937521
2005-05-12 19:55:41 +00:00
count = [_associationClasses count];
arr = [NSMutableArray arrayWithCapacity: count];
for (i = 0; i < count; i++)
{
cls = [_associationClasses objectAtIndex: i];
2005-05-12 Matt Rice <ratmice@yahoo.com> * ChangeLog: Fix previous ChangeLog entry. * EOInterface/EOActionAssociation.m: Implemented aspects enabled and action. (-establishConnection): Implement (-breakConnection, -subjectChanged, -action): Ditto. * EOInterface/EOAssociation.m (-associationClassesForObject:): Fixed argument passed to -isUsableWithObject:. Assign count (-init): Assign self. (-establishConnection:): Add unused local variable to pass to NSNextMapEnumeratorPair instead of 0. (-breakConnection:): Ditto. (-initWithCoder:, -encodeWithCoder:): Initial implementation of methods. (-valueForAspect:,-setValue:forAspect:,-valueForAspect:atIndex:): Ditto. (-setValueForAspect:atIndex:): Ditto. * EOInterface/SubclassFlags.h: New file. * EOInterface/EOAspectConnector.h/m: New file and implementation. * EOInterface/EOColumnAssociation.m: Implemented aspects value and enabled (-objectKeysTaken): Take identifier key. (-establishConnection, -breakConnection, -endEditing): Implement methods. (-tableView:setObjectValueForTableColumn:row:): Ditto. (-tableView:objectValueForTableColumn:row:): Ditto. (-tableView:willDisplayCell:forTableColumn:row:): Ditto. (-control:didFailToFormatString:errorDescription:): Ditto. (-control:textShouldBeginEditing:): Ditto. * EOInterface/EOControlAssociation.m: (-control): Ditto (-editingAssociation, -establishConnection, -breakConnection): Ditto. * EOInterface/EOGenericControlAssociation.m: Implemented aspects value and enabled. (+objectKeysTaken): add target key. (-establishConnection: -breakConnection:, -subjectChanged:): Ditto. (-_action:, -endEditing, -control:textShouldBeginEditing:): Ditto. * EOInterface/EOMatrixAssociation.m: Implemented aspects image, title, and enabled. (-establishConnection, -breakConnection, -subjectChanged): Ditto. * EOInterface/EOPopUpAssociation.m: Implemented aspects titles, selectedTitle, selectedTag, selectedObject, enabled. (-initWithObject:, -_action:): Implemented method. (-establishConnection:, -breakConnection, -subjectChanged): Ditto. * EOInterface/EORadioMatrixAssociation.m: Implemented aspects selectedTag, selectedTitle, enabled. (NSCell -_selectCellWithTitle:): Private category. (-initWithObject:, -_action:): Implemented method. (-establishConnection:, -breakConnection, -subjectChanged): Ditto. * EOInterface/EOTableViewAssociation.m: Implemented aspects enabled, tableView. (-establishConnection, -breakConnection, subjectChanged): Implement method. (-bindToTableView:displayGroup:, -editingAssociation): Ditto. (-numberOfRowsInTableView:): (-tableView:setObjectValue:forTableColumn:row:): Ditto. (-tableView:objectValueForTableColumn:row:): Ditto. (-tableView:shouldEditTableColumn:row:): Ditto. (-tableView:willDisplayCell:forTableColumn:row:): Ditto. (-tableView:selectionDidChange:): Ditto. (-control:didFailToFormatString:errorDescription:): Ditto. (-control:isValidObject:, -control:textShouldBeginEditing:): Ditto. (-dealloc): Ditto. * EOInterface/EOTextAssociation.m: Implemented aspect value, enabled. (-establishConnection): Implemented method. (-breakConnection, -subjectChanged, -endEditing): Ditto. (-control:isValidObject:,textShouldBeginEditing:): Ditto. (-textShouldEndEditing:): Ditto. * EOInterface/GNUmakefile: Make EOInterface a native-library, whitespace changes. * EOInterface/Makefile.preamble: Change linker flag to use FND_LIBS and GUI_LIBS variables. * EOInterface/EODisplayGroup.h: Comment on whether ivars are retained. * EOInterface/EODisplayGroup.m: (DG_SHOULD_CHANGE_SELECTION_TO_IDX): New macros. (DG_DISPLAY_ARRAY_FOR_OBJECTS, DG_SHOULD_DISPLAY_ALERT): Ditto. (DG_DID_FETCH_OBJECTS, DG_CREATE_OBJECT_FAILED): Ditto. (DG_SHOULD_INSERT_OBJECT, DG_DID_INSERT_OBJECT): Ditto. (DG_DID_CHANGE_SELECTION): Ditto. (NSArray -indexesForObjectsIdenticalTo:): Implement category method. (_presentAlertWithTitle:message:): New private methods. (-_endObserverNotification:): Implement notification observer methods. (-_beginObserverNotification:): Ditto. (-objectsInvalidatedInEditingContext:): Ditto. (-objectsChangedInEditingContext:): Ditto. (+initialize, -init, -initWithCoder:,): Implement methods. (-encodeWithCoder:, -setDataSource:, -fetch, -allObjects): Ditto. (-setObjectArray:, -redisplay, -updateDisplayedObjects): Ditto. (-selectionIndexes, -setSelectionIndexes, -selectObject): Ditto. (-selectObjectsIdenticalTo:, -clearSelection, -selectedObjects): Ditto. (-selectObjectsIdenticalTo:selectFirstOnNoMatch:): Ditto. (-setSelectedObjects, -selectedObject, -setSelectedObject:): Ditto. (-insertObjectAtIndex:, -insertObject:atIndex:): Ditto. (-setInsertedObjectDefaultValues:, -deleteSelection): Ditto. (-observingAssociations, -endEditing, -fetch:, -insert:): Ditto. (-selectionChanged, -contentsChanged, -valueForObject:key:): Ditto. (-selectedObjectValueForKey:, -valueForObjectAtIndex:): Ditto. (-setValue:forObject:key:, -setSelectedObjectValue:forKey:): Ditto. (-setValue:forObjectAtIndex:key:, -associationDidBeginEditing:): Ditto. (-associationDidEndEditing:): Ditto. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@21222 72102866-910b-0410-8b05-ffd578937521
2005-05-12 19:55:41 +00:00
if ([cls isUsableWithObject: object])
{
[arr addObject: cls];
}
}
return AUTORELEASE([arr copy]);
}
- (id)initWithObject: (id)object
{
if ((self = [super init]))
{
unsigned int count = [[[self class] aspects] count];
NSZone *zone = [self zone];
_object = object;
_displayGroupMap
= NSCreateMapTableWithZone(NSObjectMapKeyCallBacks,
NSNonRetainedObjectMapValueCallBacks,
count, zone);
_displayGroupKeyMap
= NSCreateMapTableWithZone(NSObjectMapKeyCallBacks,
NSNonRetainedObjectMapValueCallBacks,
count, zone);
}
return self;
}
- (id)init
{
2005-05-12 Matt Rice <ratmice@yahoo.com> * ChangeLog: Fix previous ChangeLog entry. * EOInterface/EOActionAssociation.m: Implemented aspects enabled and action. (-establishConnection): Implement (-breakConnection, -subjectChanged, -action): Ditto. * EOInterface/EOAssociation.m (-associationClassesForObject:): Fixed argument passed to -isUsableWithObject:. Assign count (-init): Assign self. (-establishConnection:): Add unused local variable to pass to NSNextMapEnumeratorPair instead of 0. (-breakConnection:): Ditto. (-initWithCoder:, -encodeWithCoder:): Initial implementation of methods. (-valueForAspect:,-setValue:forAspect:,-valueForAspect:atIndex:): Ditto. (-setValueForAspect:atIndex:): Ditto. * EOInterface/SubclassFlags.h: New file. * EOInterface/EOAspectConnector.h/m: New file and implementation. * EOInterface/EOColumnAssociation.m: Implemented aspects value and enabled (-objectKeysTaken): Take identifier key. (-establishConnection, -breakConnection, -endEditing): Implement methods. (-tableView:setObjectValueForTableColumn:row:): Ditto. (-tableView:objectValueForTableColumn:row:): Ditto. (-tableView:willDisplayCell:forTableColumn:row:): Ditto. (-control:didFailToFormatString:errorDescription:): Ditto. (-control:textShouldBeginEditing:): Ditto. * EOInterface/EOControlAssociation.m: (-control): Ditto (-editingAssociation, -establishConnection, -breakConnection): Ditto. * EOInterface/EOGenericControlAssociation.m: Implemented aspects value and enabled. (+objectKeysTaken): add target key. (-establishConnection: -breakConnection:, -subjectChanged:): Ditto. (-_action:, -endEditing, -control:textShouldBeginEditing:): Ditto. * EOInterface/EOMatrixAssociation.m: Implemented aspects image, title, and enabled. (-establishConnection, -breakConnection, -subjectChanged): Ditto. * EOInterface/EOPopUpAssociation.m: Implemented aspects titles, selectedTitle, selectedTag, selectedObject, enabled. (-initWithObject:, -_action:): Implemented method. (-establishConnection:, -breakConnection, -subjectChanged): Ditto. * EOInterface/EORadioMatrixAssociation.m: Implemented aspects selectedTag, selectedTitle, enabled. (NSCell -_selectCellWithTitle:): Private category. (-initWithObject:, -_action:): Implemented method. (-establishConnection:, -breakConnection, -subjectChanged): Ditto. * EOInterface/EOTableViewAssociation.m: Implemented aspects enabled, tableView. (-establishConnection, -breakConnection, subjectChanged): Implement method. (-bindToTableView:displayGroup:, -editingAssociation): Ditto. (-numberOfRowsInTableView:): (-tableView:setObjectValue:forTableColumn:row:): Ditto. (-tableView:objectValueForTableColumn:row:): Ditto. (-tableView:shouldEditTableColumn:row:): Ditto. (-tableView:willDisplayCell:forTableColumn:row:): Ditto. (-tableView:selectionDidChange:): Ditto. (-control:didFailToFormatString:errorDescription:): Ditto. (-control:isValidObject:, -control:textShouldBeginEditing:): Ditto. (-dealloc): Ditto. * EOInterface/EOTextAssociation.m: Implemented aspect value, enabled. (-establishConnection): Implemented method. (-breakConnection, -subjectChanged, -endEditing): Ditto. (-control:isValidObject:,textShouldBeginEditing:): Ditto. (-textShouldEndEditing:): Ditto. * EOInterface/GNUmakefile: Make EOInterface a native-library, whitespace changes. * EOInterface/Makefile.preamble: Change linker flag to use FND_LIBS and GUI_LIBS variables. * EOInterface/EODisplayGroup.h: Comment on whether ivars are retained. * EOInterface/EODisplayGroup.m: (DG_SHOULD_CHANGE_SELECTION_TO_IDX): New macros. (DG_DISPLAY_ARRAY_FOR_OBJECTS, DG_SHOULD_DISPLAY_ALERT): Ditto. (DG_DID_FETCH_OBJECTS, DG_CREATE_OBJECT_FAILED): Ditto. (DG_SHOULD_INSERT_OBJECT, DG_DID_INSERT_OBJECT): Ditto. (DG_DID_CHANGE_SELECTION): Ditto. (NSArray -indexesForObjectsIdenticalTo:): Implement category method. (_presentAlertWithTitle:message:): New private methods. (-_endObserverNotification:): Implement notification observer methods. (-_beginObserverNotification:): Ditto. (-objectsInvalidatedInEditingContext:): Ditto. (-objectsChangedInEditingContext:): Ditto. (+initialize, -init, -initWithCoder:,): Implement methods. (-encodeWithCoder:, -setDataSource:, -fetch, -allObjects): Ditto. (-setObjectArray:, -redisplay, -updateDisplayedObjects): Ditto. (-selectionIndexes, -setSelectionIndexes, -selectObject): Ditto. (-selectObjectsIdenticalTo:, -clearSelection, -selectedObjects): Ditto. (-selectObjectsIdenticalTo:selectFirstOnNoMatch:): Ditto. (-setSelectedObjects, -selectedObject, -setSelectedObject:): Ditto. (-insertObjectAtIndex:, -insertObject:atIndex:): Ditto. (-setInsertedObjectDefaultValues:, -deleteSelection): Ditto. (-observingAssociations, -endEditing, -fetch:, -insert:): Ditto. (-selectionChanged, -contentsChanged, -valueForObject:key:): Ditto. (-selectedObjectValueForKey:, -valueForObjectAtIndex:): Ditto. (-setValue:forObject:key:, -setSelectedObjectValue:forKey:): Ditto. (-setValue:forObjectAtIndex:key:, -associationDidBeginEditing:): Ditto. (-associationDidEndEditing:): Ditto. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@21222 72102866-910b-0410-8b05-ffd578937521
2005-05-12 19:55:41 +00:00
self = [self initWithObject: nil];
return self;
}
- (id)initWithCoder: (NSCoder *)coder
{
2005-05-12 Matt Rice <ratmice@yahoo.com> * ChangeLog: Fix previous ChangeLog entry. * EOInterface/EOActionAssociation.m: Implemented aspects enabled and action. (-establishConnection): Implement (-breakConnection, -subjectChanged, -action): Ditto. * EOInterface/EOAssociation.m (-associationClassesForObject:): Fixed argument passed to -isUsableWithObject:. Assign count (-init): Assign self. (-establishConnection:): Add unused local variable to pass to NSNextMapEnumeratorPair instead of 0. (-breakConnection:): Ditto. (-initWithCoder:, -encodeWithCoder:): Initial implementation of methods. (-valueForAspect:,-setValue:forAspect:,-valueForAspect:atIndex:): Ditto. (-setValueForAspect:atIndex:): Ditto. * EOInterface/SubclassFlags.h: New file. * EOInterface/EOAspectConnector.h/m: New file and implementation. * EOInterface/EOColumnAssociation.m: Implemented aspects value and enabled (-objectKeysTaken): Take identifier key. (-establishConnection, -breakConnection, -endEditing): Implement methods. (-tableView:setObjectValueForTableColumn:row:): Ditto. (-tableView:objectValueForTableColumn:row:): Ditto. (-tableView:willDisplayCell:forTableColumn:row:): Ditto. (-control:didFailToFormatString:errorDescription:): Ditto. (-control:textShouldBeginEditing:): Ditto. * EOInterface/EOControlAssociation.m: (-control): Ditto (-editingAssociation, -establishConnection, -breakConnection): Ditto. * EOInterface/EOGenericControlAssociation.m: Implemented aspects value and enabled. (+objectKeysTaken): add target key. (-establishConnection: -breakConnection:, -subjectChanged:): Ditto. (-_action:, -endEditing, -control:textShouldBeginEditing:): Ditto. * EOInterface/EOMatrixAssociation.m: Implemented aspects image, title, and enabled. (-establishConnection, -breakConnection, -subjectChanged): Ditto. * EOInterface/EOPopUpAssociation.m: Implemented aspects titles, selectedTitle, selectedTag, selectedObject, enabled. (-initWithObject:, -_action:): Implemented method. (-establishConnection:, -breakConnection, -subjectChanged): Ditto. * EOInterface/EORadioMatrixAssociation.m: Implemented aspects selectedTag, selectedTitle, enabled. (NSCell -_selectCellWithTitle:): Private category. (-initWithObject:, -_action:): Implemented method. (-establishConnection:, -breakConnection, -subjectChanged): Ditto. * EOInterface/EOTableViewAssociation.m: Implemented aspects enabled, tableView. (-establishConnection, -breakConnection, subjectChanged): Implement method. (-bindToTableView:displayGroup:, -editingAssociation): Ditto. (-numberOfRowsInTableView:): (-tableView:setObjectValue:forTableColumn:row:): Ditto. (-tableView:objectValueForTableColumn:row:): Ditto. (-tableView:shouldEditTableColumn:row:): Ditto. (-tableView:willDisplayCell:forTableColumn:row:): Ditto. (-tableView:selectionDidChange:): Ditto. (-control:didFailToFormatString:errorDescription:): Ditto. (-control:isValidObject:, -control:textShouldBeginEditing:): Ditto. (-dealloc): Ditto. * EOInterface/EOTextAssociation.m: Implemented aspect value, enabled. (-establishConnection): Implemented method. (-breakConnection, -subjectChanged, -endEditing): Ditto. (-control:isValidObject:,textShouldBeginEditing:): Ditto. (-textShouldEndEditing:): Ditto. * EOInterface/GNUmakefile: Make EOInterface a native-library, whitespace changes. * EOInterface/Makefile.preamble: Change linker flag to use FND_LIBS and GUI_LIBS variables. * EOInterface/EODisplayGroup.h: Comment on whether ivars are retained. * EOInterface/EODisplayGroup.m: (DG_SHOULD_CHANGE_SELECTION_TO_IDX): New macros. (DG_DISPLAY_ARRAY_FOR_OBJECTS, DG_SHOULD_DISPLAY_ALERT): Ditto. (DG_DID_FETCH_OBJECTS, DG_CREATE_OBJECT_FAILED): Ditto. (DG_SHOULD_INSERT_OBJECT, DG_DID_INSERT_OBJECT): Ditto. (DG_DID_CHANGE_SELECTION): Ditto. (NSArray -indexesForObjectsIdenticalTo:): Implement category method. (_presentAlertWithTitle:message:): New private methods. (-_endObserverNotification:): Implement notification observer methods. (-_beginObserverNotification:): Ditto. (-objectsInvalidatedInEditingContext:): Ditto. (-objectsChangedInEditingContext:): Ditto. (+initialize, -init, -initWithCoder:,): Implement methods. (-encodeWithCoder:, -setDataSource:, -fetch, -allObjects): Ditto. (-setObjectArray:, -redisplay, -updateDisplayedObjects): Ditto. (-selectionIndexes, -setSelectionIndexes, -selectObject): Ditto. (-selectObjectsIdenticalTo:, -clearSelection, -selectedObjects): Ditto. (-selectObjectsIdenticalTo:selectFirstOnNoMatch:): Ditto. (-setSelectedObjects, -selectedObject, -setSelectedObject:): Ditto. (-insertObjectAtIndex:, -insertObject:atIndex:): Ditto. (-setInsertedObjectDefaultValues:, -deleteSelection): Ditto. (-observingAssociations, -endEditing, -fetch:, -insert:): Ditto. (-selectionChanged, -contentsChanged, -valueForObject:key:): Ditto. (-selectedObjectValueForKey:, -valueForObjectAtIndex:): Ditto. (-setValue:forObject:key:, -setSelectedObjectValue:forKey:): Ditto. (-setValue:forObjectAtIndex:key:, -associationDidBeginEditing:): Ditto. (-associationDidEndEditing:): Ditto. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@21222 72102866-910b-0410-8b05-ffd578937521
2005-05-12 19:55:41 +00:00
_object = [coder decodeObject];
self = [self initWithObject:_object];
return self;
}
- (void) encodeWithCoder: (NSCoder*)coder
{
2005-05-12 Matt Rice <ratmice@yahoo.com> * ChangeLog: Fix previous ChangeLog entry. * EOInterface/EOActionAssociation.m: Implemented aspects enabled and action. (-establishConnection): Implement (-breakConnection, -subjectChanged, -action): Ditto. * EOInterface/EOAssociation.m (-associationClassesForObject:): Fixed argument passed to -isUsableWithObject:. Assign count (-init): Assign self. (-establishConnection:): Add unused local variable to pass to NSNextMapEnumeratorPair instead of 0. (-breakConnection:): Ditto. (-initWithCoder:, -encodeWithCoder:): Initial implementation of methods. (-valueForAspect:,-setValue:forAspect:,-valueForAspect:atIndex:): Ditto. (-setValueForAspect:atIndex:): Ditto. * EOInterface/SubclassFlags.h: New file. * EOInterface/EOAspectConnector.h/m: New file and implementation. * EOInterface/EOColumnAssociation.m: Implemented aspects value and enabled (-objectKeysTaken): Take identifier key. (-establishConnection, -breakConnection, -endEditing): Implement methods. (-tableView:setObjectValueForTableColumn:row:): Ditto. (-tableView:objectValueForTableColumn:row:): Ditto. (-tableView:willDisplayCell:forTableColumn:row:): Ditto. (-control:didFailToFormatString:errorDescription:): Ditto. (-control:textShouldBeginEditing:): Ditto. * EOInterface/EOControlAssociation.m: (-control): Ditto (-editingAssociation, -establishConnection, -breakConnection): Ditto. * EOInterface/EOGenericControlAssociation.m: Implemented aspects value and enabled. (+objectKeysTaken): add target key. (-establishConnection: -breakConnection:, -subjectChanged:): Ditto. (-_action:, -endEditing, -control:textShouldBeginEditing:): Ditto. * EOInterface/EOMatrixAssociation.m: Implemented aspects image, title, and enabled. (-establishConnection, -breakConnection, -subjectChanged): Ditto. * EOInterface/EOPopUpAssociation.m: Implemented aspects titles, selectedTitle, selectedTag, selectedObject, enabled. (-initWithObject:, -_action:): Implemented method. (-establishConnection:, -breakConnection, -subjectChanged): Ditto. * EOInterface/EORadioMatrixAssociation.m: Implemented aspects selectedTag, selectedTitle, enabled. (NSCell -_selectCellWithTitle:): Private category. (-initWithObject:, -_action:): Implemented method. (-establishConnection:, -breakConnection, -subjectChanged): Ditto. * EOInterface/EOTableViewAssociation.m: Implemented aspects enabled, tableView. (-establishConnection, -breakConnection, subjectChanged): Implement method. (-bindToTableView:displayGroup:, -editingAssociation): Ditto. (-numberOfRowsInTableView:): (-tableView:setObjectValue:forTableColumn:row:): Ditto. (-tableView:objectValueForTableColumn:row:): Ditto. (-tableView:shouldEditTableColumn:row:): Ditto. (-tableView:willDisplayCell:forTableColumn:row:): Ditto. (-tableView:selectionDidChange:): Ditto. (-control:didFailToFormatString:errorDescription:): Ditto. (-control:isValidObject:, -control:textShouldBeginEditing:): Ditto. (-dealloc): Ditto. * EOInterface/EOTextAssociation.m: Implemented aspect value, enabled. (-establishConnection): Implemented method. (-breakConnection, -subjectChanged, -endEditing): Ditto. (-control:isValidObject:,textShouldBeginEditing:): Ditto. (-textShouldEndEditing:): Ditto. * EOInterface/GNUmakefile: Make EOInterface a native-library, whitespace changes. * EOInterface/Makefile.preamble: Change linker flag to use FND_LIBS and GUI_LIBS variables. * EOInterface/EODisplayGroup.h: Comment on whether ivars are retained. * EOInterface/EODisplayGroup.m: (DG_SHOULD_CHANGE_SELECTION_TO_IDX): New macros. (DG_DISPLAY_ARRAY_FOR_OBJECTS, DG_SHOULD_DISPLAY_ALERT): Ditto. (DG_DID_FETCH_OBJECTS, DG_CREATE_OBJECT_FAILED): Ditto. (DG_SHOULD_INSERT_OBJECT, DG_DID_INSERT_OBJECT): Ditto. (DG_DID_CHANGE_SELECTION): Ditto. (NSArray -indexesForObjectsIdenticalTo:): Implement category method. (_presentAlertWithTitle:message:): New private methods. (-_endObserverNotification:): Implement notification observer methods. (-_beginObserverNotification:): Ditto. (-objectsInvalidatedInEditingContext:): Ditto. (-objectsChangedInEditingContext:): Ditto. (+initialize, -init, -initWithCoder:,): Implement methods. (-encodeWithCoder:, -setDataSource:, -fetch, -allObjects): Ditto. (-setObjectArray:, -redisplay, -updateDisplayedObjects): Ditto. (-selectionIndexes, -setSelectionIndexes, -selectObject): Ditto. (-selectObjectsIdenticalTo:, -clearSelection, -selectedObjects): Ditto. (-selectObjectsIdenticalTo:selectFirstOnNoMatch:): Ditto. (-setSelectedObjects, -selectedObject, -setSelectedObject:): Ditto. (-insertObjectAtIndex:, -insertObject:atIndex:): Ditto. (-setInsertedObjectDefaultValues:, -deleteSelection): Ditto. (-observingAssociations, -endEditing, -fetch:, -insert:): Ditto. (-selectionChanged, -contentsChanged, -valueForObject:key:): Ditto. (-selectedObjectValueForKey:, -valueForObjectAtIndex:): Ditto. (-setValue:forObject:key:, -setSelectedObjectValue:forKey:): Ditto. (-setValue:forObjectAtIndex:key:, -associationDidBeginEditing:): Ditto. (-associationDidEndEditing:): Ditto. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@21222 72102866-910b-0410-8b05-ffd578937521
2005-05-12 19:55:41 +00:00
[coder encodeObject:_object];
}
- (void)dealloc
{
* EOInterface/EOAssociation.m: New variable _objectToAssociations. (+objectDeallocated:): New private method. (+initialize): initialize _objectToAssociations. (-dealloc): Discard any pending notifications. (-establishConnection): Retain display groups we're bound to. Retain our self and register our object for dealloc notification. (-breakConnection): Release display groups we're bound to. Release our self and discard any pending notifications. (-subjectChanged): Add comment * EOInterface/EOColumnAssociation.m (-establishConnection): Assign our dg ivar after establishing connection. Use the dg ivar and move 2 if statements into one. * EOInterface/EODisplayGroup.m: Remove debugging class/category for emptyArray and emptyDictionary. (-indexesForObjectsIndeticalTo:): Fix typo by renaming to -indexesForObjectsIdenticalTo:. (-dealloc): Remove our self as an observer for any notifications, as an editor or message handler for our editing context, our observer proxies as observers from the observer center. Don't release array/dictionary ivars that are emptyArray or emptyDictionary. (-setSelectionIndexes:): Update to reflect change in method name. (-deleteSelection): Remove unused local var. (-fetch:): Call -redisplay. (-updatedObjectIndex:): Return -1 instead of 0 until this is implemented. (-setValue:forObject:key:): fix comment in exception handlers. * EOInterface/EOGenericControlAssociation.m: (-subjectChanged:): Remove unused local variable. * EOMasterDetailAssociation.m: (-establishConnection, -breakConnection, -subjectChanged): Implement. * EOInterface/EOPopUpAssociation.m: Remove unused local variables. * EOInterface/EOTableViewAssociation.m: (-breakConnection:): Remove our NSTableView object from the map table. (-subjectChanged:): Remove unused local variables. Release temporary retain on selection indexes. (+bindToTableView:displayGroup:): Don't retain the table views in the map table. Release the newly created association. (-dealloc): Remove self from the tvAssociationMap. * EOInterface/SubclassFlags.h: Fix bitmask on MatchKey1AspectMask. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@21439 72102866-910b-0410-8b05-ffd578937521
2005-07-09 03:01:22 +00:00
[self discardPendingNotification];
NSFreeMapTable (_displayGroupMap);
NSFreeMapTable (_displayGroupKeyMap);
[super dealloc];
}
- (void)bindAspect: (NSString *)aspectName
displayGroup: (EODisplayGroup *)displayGroup
key: (NSString *)key
{
NSMapInsert(_displayGroupMap, aspectName, displayGroup);
NSMapInsert(_displayGroupKeyMap, aspectName, key);
}
2005-05-12 Matt Rice <ratmice@yahoo.com> * ChangeLog: Fix previous ChangeLog entry. * EOInterface/EOActionAssociation.m: Implemented aspects enabled and action. (-establishConnection): Implement (-breakConnection, -subjectChanged, -action): Ditto. * EOInterface/EOAssociation.m (-associationClassesForObject:): Fixed argument passed to -isUsableWithObject:. Assign count (-init): Assign self. (-establishConnection:): Add unused local variable to pass to NSNextMapEnumeratorPair instead of 0. (-breakConnection:): Ditto. (-initWithCoder:, -encodeWithCoder:): Initial implementation of methods. (-valueForAspect:,-setValue:forAspect:,-valueForAspect:atIndex:): Ditto. (-setValueForAspect:atIndex:): Ditto. * EOInterface/SubclassFlags.h: New file. * EOInterface/EOAspectConnector.h/m: New file and implementation. * EOInterface/EOColumnAssociation.m: Implemented aspects value and enabled (-objectKeysTaken): Take identifier key. (-establishConnection, -breakConnection, -endEditing): Implement methods. (-tableView:setObjectValueForTableColumn:row:): Ditto. (-tableView:objectValueForTableColumn:row:): Ditto. (-tableView:willDisplayCell:forTableColumn:row:): Ditto. (-control:didFailToFormatString:errorDescription:): Ditto. (-control:textShouldBeginEditing:): Ditto. * EOInterface/EOControlAssociation.m: (-control): Ditto (-editingAssociation, -establishConnection, -breakConnection): Ditto. * EOInterface/EOGenericControlAssociation.m: Implemented aspects value and enabled. (+objectKeysTaken): add target key. (-establishConnection: -breakConnection:, -subjectChanged:): Ditto. (-_action:, -endEditing, -control:textShouldBeginEditing:): Ditto. * EOInterface/EOMatrixAssociation.m: Implemented aspects image, title, and enabled. (-establishConnection, -breakConnection, -subjectChanged): Ditto. * EOInterface/EOPopUpAssociation.m: Implemented aspects titles, selectedTitle, selectedTag, selectedObject, enabled. (-initWithObject:, -_action:): Implemented method. (-establishConnection:, -breakConnection, -subjectChanged): Ditto. * EOInterface/EORadioMatrixAssociation.m: Implemented aspects selectedTag, selectedTitle, enabled. (NSCell -_selectCellWithTitle:): Private category. (-initWithObject:, -_action:): Implemented method. (-establishConnection:, -breakConnection, -subjectChanged): Ditto. * EOInterface/EOTableViewAssociation.m: Implemented aspects enabled, tableView. (-establishConnection, -breakConnection, subjectChanged): Implement method. (-bindToTableView:displayGroup:, -editingAssociation): Ditto. (-numberOfRowsInTableView:): (-tableView:setObjectValue:forTableColumn:row:): Ditto. (-tableView:objectValueForTableColumn:row:): Ditto. (-tableView:shouldEditTableColumn:row:): Ditto. (-tableView:willDisplayCell:forTableColumn:row:): Ditto. (-tableView:selectionDidChange:): Ditto. (-control:didFailToFormatString:errorDescription:): Ditto. (-control:isValidObject:, -control:textShouldBeginEditing:): Ditto. (-dealloc): Ditto. * EOInterface/EOTextAssociation.m: Implemented aspect value, enabled. (-establishConnection): Implemented method. (-breakConnection, -subjectChanged, -endEditing): Ditto. (-control:isValidObject:,textShouldBeginEditing:): Ditto. (-textShouldEndEditing:): Ditto. * EOInterface/GNUmakefile: Make EOInterface a native-library, whitespace changes. * EOInterface/Makefile.preamble: Change linker flag to use FND_LIBS and GUI_LIBS variables. * EOInterface/EODisplayGroup.h: Comment on whether ivars are retained. * EOInterface/EODisplayGroup.m: (DG_SHOULD_CHANGE_SELECTION_TO_IDX): New macros. (DG_DISPLAY_ARRAY_FOR_OBJECTS, DG_SHOULD_DISPLAY_ALERT): Ditto. (DG_DID_FETCH_OBJECTS, DG_CREATE_OBJECT_FAILED): Ditto. (DG_SHOULD_INSERT_OBJECT, DG_DID_INSERT_OBJECT): Ditto. (DG_DID_CHANGE_SELECTION): Ditto. (NSArray -indexesForObjectsIdenticalTo:): Implement category method. (_presentAlertWithTitle:message:): New private methods. (-_endObserverNotification:): Implement notification observer methods. (-_beginObserverNotification:): Ditto. (-objectsInvalidatedInEditingContext:): Ditto. (-objectsChangedInEditingContext:): Ditto. (+initialize, -init, -initWithCoder:,): Implement methods. (-encodeWithCoder:, -setDataSource:, -fetch, -allObjects): Ditto. (-setObjectArray:, -redisplay, -updateDisplayedObjects): Ditto. (-selectionIndexes, -setSelectionIndexes, -selectObject): Ditto. (-selectObjectsIdenticalTo:, -clearSelection, -selectedObjects): Ditto. (-selectObjectsIdenticalTo:selectFirstOnNoMatch:): Ditto. (-setSelectedObjects, -selectedObject, -setSelectedObject:): Ditto. (-insertObjectAtIndex:, -insertObject:atIndex:): Ditto. (-setInsertedObjectDefaultValues:, -deleteSelection): Ditto. (-observingAssociations, -endEditing, -fetch:, -insert:): Ditto. (-selectionChanged, -contentsChanged, -valueForObject:key:): Ditto. (-selectedObjectValueForKey:, -valueForObjectAtIndex:): Ditto. (-setValue:forObject:key:, -setSelectedObjectValue:forKey:): Ditto. (-setValue:forObjectAtIndex:key:, -associationDidBeginEditing:): Ditto. (-associationDidEndEditing:): Ditto. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@21222 72102866-910b-0410-8b05-ffd578937521
2005-05-12 19:55:41 +00:00
- (void)establishConnection
{
if (_isConnected == NO)
{
NSMapEnumerator displayGroupEnum;
EODisplayGroup *displayGroup;
void *unusedKey;
GDL2NonRetainingMutableArray *associations;
displayGroupEnum = NSEnumerateMapTable(_displayGroupMap);
while (NSNextMapEnumeratorPair(&displayGroupEnum,
&unusedKey, (void*)&displayGroup))
{
[displayGroup retain];
[EOObserverCenter addObserver:self forObject:displayGroup];
}
NSEndMapTableEnumeration (&displayGroupEnum);
/* registerAssociationForDeallocHack is implemented in
EOControl/EOCustomObject.m this causes +objectDeallocated:
to be called when '_object' is deallocated, which will break the
connection which releases the association instance. */
[self retain];
[self registerAssociationForDeallocHack:_object];
associations = (id)NSMapGet(_objectToAssociations, _object);
if (!associations)
{
associations = [[GDL2NonRetainingMutableArray alloc] initWithCapacity:32];
[associations addObject:self];
NSMapInsert(_objectToAssociations, _object, associations);
}
else
{
[associations addObject:self];
}
_isConnected = YES;
}
}
2005-05-12 Matt Rice <ratmice@yahoo.com> * ChangeLog: Fix previous ChangeLog entry. * EOInterface/EOActionAssociation.m: Implemented aspects enabled and action. (-establishConnection): Implement (-breakConnection, -subjectChanged, -action): Ditto. * EOInterface/EOAssociation.m (-associationClassesForObject:): Fixed argument passed to -isUsableWithObject:. Assign count (-init): Assign self. (-establishConnection:): Add unused local variable to pass to NSNextMapEnumeratorPair instead of 0. (-breakConnection:): Ditto. (-initWithCoder:, -encodeWithCoder:): Initial implementation of methods. (-valueForAspect:,-setValue:forAspect:,-valueForAspect:atIndex:): Ditto. (-setValueForAspect:atIndex:): Ditto. * EOInterface/SubclassFlags.h: New file. * EOInterface/EOAspectConnector.h/m: New file and implementation. * EOInterface/EOColumnAssociation.m: Implemented aspects value and enabled (-objectKeysTaken): Take identifier key. (-establishConnection, -breakConnection, -endEditing): Implement methods. (-tableView:setObjectValueForTableColumn:row:): Ditto. (-tableView:objectValueForTableColumn:row:): Ditto. (-tableView:willDisplayCell:forTableColumn:row:): Ditto. (-control:didFailToFormatString:errorDescription:): Ditto. (-control:textShouldBeginEditing:): Ditto. * EOInterface/EOControlAssociation.m: (-control): Ditto (-editingAssociation, -establishConnection, -breakConnection): Ditto. * EOInterface/EOGenericControlAssociation.m: Implemented aspects value and enabled. (+objectKeysTaken): add target key. (-establishConnection: -breakConnection:, -subjectChanged:): Ditto. (-_action:, -endEditing, -control:textShouldBeginEditing:): Ditto. * EOInterface/EOMatrixAssociation.m: Implemented aspects image, title, and enabled. (-establishConnection, -breakConnection, -subjectChanged): Ditto. * EOInterface/EOPopUpAssociation.m: Implemented aspects titles, selectedTitle, selectedTag, selectedObject, enabled. (-initWithObject:, -_action:): Implemented method. (-establishConnection:, -breakConnection, -subjectChanged): Ditto. * EOInterface/EORadioMatrixAssociation.m: Implemented aspects selectedTag, selectedTitle, enabled. (NSCell -_selectCellWithTitle:): Private category. (-initWithObject:, -_action:): Implemented method. (-establishConnection:, -breakConnection, -subjectChanged): Ditto. * EOInterface/EOTableViewAssociation.m: Implemented aspects enabled, tableView. (-establishConnection, -breakConnection, subjectChanged): Implement method. (-bindToTableView:displayGroup:, -editingAssociation): Ditto. (-numberOfRowsInTableView:): (-tableView:setObjectValue:forTableColumn:row:): Ditto. (-tableView:objectValueForTableColumn:row:): Ditto. (-tableView:shouldEditTableColumn:row:): Ditto. (-tableView:willDisplayCell:forTableColumn:row:): Ditto. (-tableView:selectionDidChange:): Ditto. (-control:didFailToFormatString:errorDescription:): Ditto. (-control:isValidObject:, -control:textShouldBeginEditing:): Ditto. (-dealloc): Ditto. * EOInterface/EOTextAssociation.m: Implemented aspect value, enabled. (-establishConnection): Implemented method. (-breakConnection, -subjectChanged, -endEditing): Ditto. (-control:isValidObject:,textShouldBeginEditing:): Ditto. (-textShouldEndEditing:): Ditto. * EOInterface/GNUmakefile: Make EOInterface a native-library, whitespace changes. * EOInterface/Makefile.preamble: Change linker flag to use FND_LIBS and GUI_LIBS variables. * EOInterface/EODisplayGroup.h: Comment on whether ivars are retained. * EOInterface/EODisplayGroup.m: (DG_SHOULD_CHANGE_SELECTION_TO_IDX): New macros. (DG_DISPLAY_ARRAY_FOR_OBJECTS, DG_SHOULD_DISPLAY_ALERT): Ditto. (DG_DID_FETCH_OBJECTS, DG_CREATE_OBJECT_FAILED): Ditto. (DG_SHOULD_INSERT_OBJECT, DG_DID_INSERT_OBJECT): Ditto. (DG_DID_CHANGE_SELECTION): Ditto. (NSArray -indexesForObjectsIdenticalTo:): Implement category method. (_presentAlertWithTitle:message:): New private methods. (-_endObserverNotification:): Implement notification observer methods. (-_beginObserverNotification:): Ditto. (-objectsInvalidatedInEditingContext:): Ditto. (-objectsChangedInEditingContext:): Ditto. (+initialize, -init, -initWithCoder:,): Implement methods. (-encodeWithCoder:, -setDataSource:, -fetch, -allObjects): Ditto. (-setObjectArray:, -redisplay, -updateDisplayedObjects): Ditto. (-selectionIndexes, -setSelectionIndexes, -selectObject): Ditto. (-selectObjectsIdenticalTo:, -clearSelection, -selectedObjects): Ditto. (-selectObjectsIdenticalTo:selectFirstOnNoMatch:): Ditto. (-setSelectedObjects, -selectedObject, -setSelectedObject:): Ditto. (-insertObjectAtIndex:, -insertObject:atIndex:): Ditto. (-setInsertedObjectDefaultValues:, -deleteSelection): Ditto. (-observingAssociations, -endEditing, -fetch:, -insert:): Ditto. (-selectionChanged, -contentsChanged, -valueForObject:key:): Ditto. (-selectedObjectValueForKey:, -valueForObjectAtIndex:): Ditto. (-setValue:forObject:key:, -setSelectedObjectValue:forKey:): Ditto. (-setValue:forObjectAtIndex:key:, -associationDidBeginEditing:): Ditto. (-associationDidEndEditing:): Ditto. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@21222 72102866-910b-0410-8b05-ffd578937521
2005-05-12 19:55:41 +00:00
- (void)breakConnection
{
if (_isConnected)
{
NSMapEnumerator displayGroupEnum;
EODisplayGroup *displayGroup;
2005-05-12 Matt Rice <ratmice@yahoo.com> * ChangeLog: Fix previous ChangeLog entry. * EOInterface/EOActionAssociation.m: Implemented aspects enabled and action. (-establishConnection): Implement (-breakConnection, -subjectChanged, -action): Ditto. * EOInterface/EOAssociation.m (-associationClassesForObject:): Fixed argument passed to -isUsableWithObject:. Assign count (-init): Assign self. (-establishConnection:): Add unused local variable to pass to NSNextMapEnumeratorPair instead of 0. (-breakConnection:): Ditto. (-initWithCoder:, -encodeWithCoder:): Initial implementation of methods. (-valueForAspect:,-setValue:forAspect:,-valueForAspect:atIndex:): Ditto. (-setValueForAspect:atIndex:): Ditto. * EOInterface/SubclassFlags.h: New file. * EOInterface/EOAspectConnector.h/m: New file and implementation. * EOInterface/EOColumnAssociation.m: Implemented aspects value and enabled (-objectKeysTaken): Take identifier key. (-establishConnection, -breakConnection, -endEditing): Implement methods. (-tableView:setObjectValueForTableColumn:row:): Ditto. (-tableView:objectValueForTableColumn:row:): Ditto. (-tableView:willDisplayCell:forTableColumn:row:): Ditto. (-control:didFailToFormatString:errorDescription:): Ditto. (-control:textShouldBeginEditing:): Ditto. * EOInterface/EOControlAssociation.m: (-control): Ditto (-editingAssociation, -establishConnection, -breakConnection): Ditto. * EOInterface/EOGenericControlAssociation.m: Implemented aspects value and enabled. (+objectKeysTaken): add target key. (-establishConnection: -breakConnection:, -subjectChanged:): Ditto. (-_action:, -endEditing, -control:textShouldBeginEditing:): Ditto. * EOInterface/EOMatrixAssociation.m: Implemented aspects image, title, and enabled. (-establishConnection, -breakConnection, -subjectChanged): Ditto. * EOInterface/EOPopUpAssociation.m: Implemented aspects titles, selectedTitle, selectedTag, selectedObject, enabled. (-initWithObject:, -_action:): Implemented method. (-establishConnection:, -breakConnection, -subjectChanged): Ditto. * EOInterface/EORadioMatrixAssociation.m: Implemented aspects selectedTag, selectedTitle, enabled. (NSCell -_selectCellWithTitle:): Private category. (-initWithObject:, -_action:): Implemented method. (-establishConnection:, -breakConnection, -subjectChanged): Ditto. * EOInterface/EOTableViewAssociation.m: Implemented aspects enabled, tableView. (-establishConnection, -breakConnection, subjectChanged): Implement method. (-bindToTableView:displayGroup:, -editingAssociation): Ditto. (-numberOfRowsInTableView:): (-tableView:setObjectValue:forTableColumn:row:): Ditto. (-tableView:objectValueForTableColumn:row:): Ditto. (-tableView:shouldEditTableColumn:row:): Ditto. (-tableView:willDisplayCell:forTableColumn:row:): Ditto. (-tableView:selectionDidChange:): Ditto. (-control:didFailToFormatString:errorDescription:): Ditto. (-control:isValidObject:, -control:textShouldBeginEditing:): Ditto. (-dealloc): Ditto. * EOInterface/EOTextAssociation.m: Implemented aspect value, enabled. (-establishConnection): Implemented method. (-breakConnection, -subjectChanged, -endEditing): Ditto. (-control:isValidObject:,textShouldBeginEditing:): Ditto. (-textShouldEndEditing:): Ditto. * EOInterface/GNUmakefile: Make EOInterface a native-library, whitespace changes. * EOInterface/Makefile.preamble: Change linker flag to use FND_LIBS and GUI_LIBS variables. * EOInterface/EODisplayGroup.h: Comment on whether ivars are retained. * EOInterface/EODisplayGroup.m: (DG_SHOULD_CHANGE_SELECTION_TO_IDX): New macros. (DG_DISPLAY_ARRAY_FOR_OBJECTS, DG_SHOULD_DISPLAY_ALERT): Ditto. (DG_DID_FETCH_OBJECTS, DG_CREATE_OBJECT_FAILED): Ditto. (DG_SHOULD_INSERT_OBJECT, DG_DID_INSERT_OBJECT): Ditto. (DG_DID_CHANGE_SELECTION): Ditto. (NSArray -indexesForObjectsIdenticalTo:): Implement category method. (_presentAlertWithTitle:message:): New private methods. (-_endObserverNotification:): Implement notification observer methods. (-_beginObserverNotification:): Ditto. (-objectsInvalidatedInEditingContext:): Ditto. (-objectsChangedInEditingContext:): Ditto. (+initialize, -init, -initWithCoder:,): Implement methods. (-encodeWithCoder:, -setDataSource:, -fetch, -allObjects): Ditto. (-setObjectArray:, -redisplay, -updateDisplayedObjects): Ditto. (-selectionIndexes, -setSelectionIndexes, -selectObject): Ditto. (-selectObjectsIdenticalTo:, -clearSelection, -selectedObjects): Ditto. (-selectObjectsIdenticalTo:selectFirstOnNoMatch:): Ditto. (-setSelectedObjects, -selectedObject, -setSelectedObject:): Ditto. (-insertObjectAtIndex:, -insertObject:atIndex:): Ditto. (-setInsertedObjectDefaultValues:, -deleteSelection): Ditto. (-observingAssociations, -endEditing, -fetch:, -insert:): Ditto. (-selectionChanged, -contentsChanged, -valueForObject:key:): Ditto. (-selectedObjectValueForKey:, -valueForObjectAtIndex:): Ditto. (-setValue:forObject:key:, -setSelectedObjectValue:forKey:): Ditto. (-setValue:forObjectAtIndex:key:, -associationDidBeginEditing:): Ditto. (-associationDidEndEditing:): Ditto. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@21222 72102866-910b-0410-8b05-ffd578937521
2005-05-12 19:55:41 +00:00
void *unusedKey;
Class EOObserverCenterClass = [EOObserverCenter class];
displayGroupEnum = NSEnumerateMapTable(_displayGroupMap);
while (NSNextMapEnumeratorPair(&displayGroupEnum,
2005-05-12 Matt Rice <ratmice@yahoo.com> * ChangeLog: Fix previous ChangeLog entry. * EOInterface/EOActionAssociation.m: Implemented aspects enabled and action. (-establishConnection): Implement (-breakConnection, -subjectChanged, -action): Ditto. * EOInterface/EOAssociation.m (-associationClassesForObject:): Fixed argument passed to -isUsableWithObject:. Assign count (-init): Assign self. (-establishConnection:): Add unused local variable to pass to NSNextMapEnumeratorPair instead of 0. (-breakConnection:): Ditto. (-initWithCoder:, -encodeWithCoder:): Initial implementation of methods. (-valueForAspect:,-setValue:forAspect:,-valueForAspect:atIndex:): Ditto. (-setValueForAspect:atIndex:): Ditto. * EOInterface/SubclassFlags.h: New file. * EOInterface/EOAspectConnector.h/m: New file and implementation. * EOInterface/EOColumnAssociation.m: Implemented aspects value and enabled (-objectKeysTaken): Take identifier key. (-establishConnection, -breakConnection, -endEditing): Implement methods. (-tableView:setObjectValueForTableColumn:row:): Ditto. (-tableView:objectValueForTableColumn:row:): Ditto. (-tableView:willDisplayCell:forTableColumn:row:): Ditto. (-control:didFailToFormatString:errorDescription:): Ditto. (-control:textShouldBeginEditing:): Ditto. * EOInterface/EOControlAssociation.m: (-control): Ditto (-editingAssociation, -establishConnection, -breakConnection): Ditto. * EOInterface/EOGenericControlAssociation.m: Implemented aspects value and enabled. (+objectKeysTaken): add target key. (-establishConnection: -breakConnection:, -subjectChanged:): Ditto. (-_action:, -endEditing, -control:textShouldBeginEditing:): Ditto. * EOInterface/EOMatrixAssociation.m: Implemented aspects image, title, and enabled. (-establishConnection, -breakConnection, -subjectChanged): Ditto. * EOInterface/EOPopUpAssociation.m: Implemented aspects titles, selectedTitle, selectedTag, selectedObject, enabled. (-initWithObject:, -_action:): Implemented method. (-establishConnection:, -breakConnection, -subjectChanged): Ditto. * EOInterface/EORadioMatrixAssociation.m: Implemented aspects selectedTag, selectedTitle, enabled. (NSCell -_selectCellWithTitle:): Private category. (-initWithObject:, -_action:): Implemented method. (-establishConnection:, -breakConnection, -subjectChanged): Ditto. * EOInterface/EOTableViewAssociation.m: Implemented aspects enabled, tableView. (-establishConnection, -breakConnection, subjectChanged): Implement method. (-bindToTableView:displayGroup:, -editingAssociation): Ditto. (-numberOfRowsInTableView:): (-tableView:setObjectValue:forTableColumn:row:): Ditto. (-tableView:objectValueForTableColumn:row:): Ditto. (-tableView:shouldEditTableColumn:row:): Ditto. (-tableView:willDisplayCell:forTableColumn:row:): Ditto. (-tableView:selectionDidChange:): Ditto. (-control:didFailToFormatString:errorDescription:): Ditto. (-control:isValidObject:, -control:textShouldBeginEditing:): Ditto. (-dealloc): Ditto. * EOInterface/EOTextAssociation.m: Implemented aspect value, enabled. (-establishConnection): Implemented method. (-breakConnection, -subjectChanged, -endEditing): Ditto. (-control:isValidObject:,textShouldBeginEditing:): Ditto. (-textShouldEndEditing:): Ditto. * EOInterface/GNUmakefile: Make EOInterface a native-library, whitespace changes. * EOInterface/Makefile.preamble: Change linker flag to use FND_LIBS and GUI_LIBS variables. * EOInterface/EODisplayGroup.h: Comment on whether ivars are retained. * EOInterface/EODisplayGroup.m: (DG_SHOULD_CHANGE_SELECTION_TO_IDX): New macros. (DG_DISPLAY_ARRAY_FOR_OBJECTS, DG_SHOULD_DISPLAY_ALERT): Ditto. (DG_DID_FETCH_OBJECTS, DG_CREATE_OBJECT_FAILED): Ditto. (DG_SHOULD_INSERT_OBJECT, DG_DID_INSERT_OBJECT): Ditto. (DG_DID_CHANGE_SELECTION): Ditto. (NSArray -indexesForObjectsIdenticalTo:): Implement category method. (_presentAlertWithTitle:message:): New private methods. (-_endObserverNotification:): Implement notification observer methods. (-_beginObserverNotification:): Ditto. (-objectsInvalidatedInEditingContext:): Ditto. (-objectsChangedInEditingContext:): Ditto. (+initialize, -init, -initWithCoder:,): Implement methods. (-encodeWithCoder:, -setDataSource:, -fetch, -allObjects): Ditto. (-setObjectArray:, -redisplay, -updateDisplayedObjects): Ditto. (-selectionIndexes, -setSelectionIndexes, -selectObject): Ditto. (-selectObjectsIdenticalTo:, -clearSelection, -selectedObjects): Ditto. (-selectObjectsIdenticalTo:selectFirstOnNoMatch:): Ditto. (-setSelectedObjects, -selectedObject, -setSelectedObject:): Ditto. (-insertObjectAtIndex:, -insertObject:atIndex:): Ditto. (-setInsertedObjectDefaultValues:, -deleteSelection): Ditto. (-observingAssociations, -endEditing, -fetch:, -insert:): Ditto. (-selectionChanged, -contentsChanged, -valueForObject:key:): Ditto. (-selectedObjectValueForKey:, -valueForObjectAtIndex:): Ditto. (-setValue:forObject:key:, -setSelectedObjectValue:forKey:): Ditto. (-setValue:forObjectAtIndex:key:, -associationDidBeginEditing:): Ditto. (-associationDidEndEditing:): Ditto. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@21222 72102866-910b-0410-8b05-ffd578937521
2005-05-12 19:55:41 +00:00
&unusedKey, (void *)&displayGroup))
{
* EOInterface/EOAssociation.m: New variable _objectToAssociations. (+objectDeallocated:): New private method. (+initialize): initialize _objectToAssociations. (-dealloc): Discard any pending notifications. (-establishConnection): Retain display groups we're bound to. Retain our self and register our object for dealloc notification. (-breakConnection): Release display groups we're bound to. Release our self and discard any pending notifications. (-subjectChanged): Add comment * EOInterface/EOColumnAssociation.m (-establishConnection): Assign our dg ivar after establishing connection. Use the dg ivar and move 2 if statements into one. * EOInterface/EODisplayGroup.m: Remove debugging class/category for emptyArray and emptyDictionary. (-indexesForObjectsIndeticalTo:): Fix typo by renaming to -indexesForObjectsIdenticalTo:. (-dealloc): Remove our self as an observer for any notifications, as an editor or message handler for our editing context, our observer proxies as observers from the observer center. Don't release array/dictionary ivars that are emptyArray or emptyDictionary. (-setSelectionIndexes:): Update to reflect change in method name. (-deleteSelection): Remove unused local var. (-fetch:): Call -redisplay. (-updatedObjectIndex:): Return -1 instead of 0 until this is implemented. (-setValue:forObject:key:): fix comment in exception handlers. * EOInterface/EOGenericControlAssociation.m: (-subjectChanged:): Remove unused local variable. * EOMasterDetailAssociation.m: (-establishConnection, -breakConnection, -subjectChanged): Implement. * EOInterface/EOPopUpAssociation.m: Remove unused local variables. * EOInterface/EOTableViewAssociation.m: (-breakConnection:): Remove our NSTableView object from the map table. (-subjectChanged:): Remove unused local variables. Release temporary retain on selection indexes. (+bindToTableView:displayGroup:): Don't retain the table views in the map table. Release the newly created association. (-dealloc): Remove self from the tvAssociationMap. * EOInterface/SubclassFlags.h: Fix bitmask on MatchKey1AspectMask. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@21439 72102866-910b-0410-8b05-ffd578937521
2005-07-09 03:01:22 +00:00
[displayGroup release];
[EOObserverCenterClass removeObserver: self forObject: displayGroup];
}
* EOInterface/EOAssociation.m: New variable _objectToAssociations. (+objectDeallocated:): New private method. (+initialize): initialize _objectToAssociations. (-dealloc): Discard any pending notifications. (-establishConnection): Retain display groups we're bound to. Retain our self and register our object for dealloc notification. (-breakConnection): Release display groups we're bound to. Release our self and discard any pending notifications. (-subjectChanged): Add comment * EOInterface/EOColumnAssociation.m (-establishConnection): Assign our dg ivar after establishing connection. Use the dg ivar and move 2 if statements into one. * EOInterface/EODisplayGroup.m: Remove debugging class/category for emptyArray and emptyDictionary. (-indexesForObjectsIndeticalTo:): Fix typo by renaming to -indexesForObjectsIdenticalTo:. (-dealloc): Remove our self as an observer for any notifications, as an editor or message handler for our editing context, our observer proxies as observers from the observer center. Don't release array/dictionary ivars that are emptyArray or emptyDictionary. (-setSelectionIndexes:): Update to reflect change in method name. (-deleteSelection): Remove unused local var. (-fetch:): Call -redisplay. (-updatedObjectIndex:): Return -1 instead of 0 until this is implemented. (-setValue:forObject:key:): fix comment in exception handlers. * EOInterface/EOGenericControlAssociation.m: (-subjectChanged:): Remove unused local variable. * EOMasterDetailAssociation.m: (-establishConnection, -breakConnection, -subjectChanged): Implement. * EOInterface/EOPopUpAssociation.m: Remove unused local variables. * EOInterface/EOTableViewAssociation.m: (-breakConnection:): Remove our NSTableView object from the map table. (-subjectChanged:): Remove unused local variables. Release temporary retain on selection indexes. (+bindToTableView:displayGroup:): Don't retain the table views in the map table. Release the newly created association. (-dealloc): Remove self from the tvAssociationMap. * EOInterface/SubclassFlags.h: Fix bitmask on MatchKey1AspectMask. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@21439 72102866-910b-0410-8b05-ffd578937521
2005-07-09 03:01:22 +00:00
NSEndMapTableEnumeration (&displayGroupEnum);
* EOInterface/EOAssociation.m: New variable _objectToAssociations. (+objectDeallocated:): New private method. (+initialize): initialize _objectToAssociations. (-dealloc): Discard any pending notifications. (-establishConnection): Retain display groups we're bound to. Retain our self and register our object for dealloc notification. (-breakConnection): Release display groups we're bound to. Release our self and discard any pending notifications. (-subjectChanged): Add comment * EOInterface/EOColumnAssociation.m (-establishConnection): Assign our dg ivar after establishing connection. Use the dg ivar and move 2 if statements into one. * EOInterface/EODisplayGroup.m: Remove debugging class/category for emptyArray and emptyDictionary. (-indexesForObjectsIndeticalTo:): Fix typo by renaming to -indexesForObjectsIdenticalTo:. (-dealloc): Remove our self as an observer for any notifications, as an editor or message handler for our editing context, our observer proxies as observers from the observer center. Don't release array/dictionary ivars that are emptyArray or emptyDictionary. (-setSelectionIndexes:): Update to reflect change in method name. (-deleteSelection): Remove unused local var. (-fetch:): Call -redisplay. (-updatedObjectIndex:): Return -1 instead of 0 until this is implemented. (-setValue:forObject:key:): fix comment in exception handlers. * EOInterface/EOGenericControlAssociation.m: (-subjectChanged:): Remove unused local variable. * EOMasterDetailAssociation.m: (-establishConnection, -breakConnection, -subjectChanged): Implement. * EOInterface/EOPopUpAssociation.m: Remove unused local variables. * EOInterface/EOTableViewAssociation.m: (-breakConnection:): Remove our NSTableView object from the map table. (-subjectChanged:): Remove unused local variables. Release temporary retain on selection indexes. (+bindToTableView:displayGroup:): Don't retain the table views in the map table. Release the newly created association. (-dealloc): Remove self from the tvAssociationMap. * EOInterface/SubclassFlags.h: Fix bitmask on MatchKey1AspectMask. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@21439 72102866-910b-0410-8b05-ffd578937521
2005-07-09 03:01:22 +00:00
[self discardPendingNotification];
_isConnected = NO;
[self release];
}
}
- (void)copyMatchingBindingsFromAssociation: (EOAssociation *)association
{
}
- (BOOL)canBindAspect: (NSString *)aspectName
displayGroup: (EODisplayGroup *)displayGroup
key: (NSString *)key
{
2006-09-05 21:16:56 +00:00
return YES;
}
- (id)object
{
return _object;
}
- (EODisplayGroup *)displayGroupForAspect: (NSString *)aspectName
{
return NSMapGet(_displayGroupMap, aspectName);
}
* EOInterface/EOAssociation.m: New variable _objectToAssociations. (+objectDeallocated:): New private method. (+initialize): initialize _objectToAssociations. (-dealloc): Discard any pending notifications. (-establishConnection): Retain display groups we're bound to. Retain our self and register our object for dealloc notification. (-breakConnection): Release display groups we're bound to. Release our self and discard any pending notifications. (-subjectChanged): Add comment * EOInterface/EOColumnAssociation.m (-establishConnection): Assign our dg ivar after establishing connection. Use the dg ivar and move 2 if statements into one. * EOInterface/EODisplayGroup.m: Remove debugging class/category for emptyArray and emptyDictionary. (-indexesForObjectsIndeticalTo:): Fix typo by renaming to -indexesForObjectsIdenticalTo:. (-dealloc): Remove our self as an observer for any notifications, as an editor or message handler for our editing context, our observer proxies as observers from the observer center. Don't release array/dictionary ivars that are emptyArray or emptyDictionary. (-setSelectionIndexes:): Update to reflect change in method name. (-deleteSelection): Remove unused local var. (-fetch:): Call -redisplay. (-updatedObjectIndex:): Return -1 instead of 0 until this is implemented. (-setValue:forObject:key:): fix comment in exception handlers. * EOInterface/EOGenericControlAssociation.m: (-subjectChanged:): Remove unused local variable. * EOMasterDetailAssociation.m: (-establishConnection, -breakConnection, -subjectChanged): Implement. * EOInterface/EOPopUpAssociation.m: Remove unused local variables. * EOInterface/EOTableViewAssociation.m: (-breakConnection:): Remove our NSTableView object from the map table. (-subjectChanged:): Remove unused local variables. Release temporary retain on selection indexes. (+bindToTableView:displayGroup:): Don't retain the table views in the map table. Release the newly created association. (-dealloc): Remove self from the tvAssociationMap. * EOInterface/SubclassFlags.h: Fix bitmask on MatchKey1AspectMask. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@21439 72102866-910b-0410-8b05-ffd578937521
2005-07-09 03:01:22 +00:00
- (NSString *)displayGroupKeyForAspect: (NSString *)aspectName;
{
return NSMapGet(_displayGroupKeyMap, aspectName);
}
* EOInterface/EOAssociation.m: New variable _objectToAssociations. (+objectDeallocated:): New private method. (+initialize): initialize _objectToAssociations. (-dealloc): Discard any pending notifications. (-establishConnection): Retain display groups we're bound to. Retain our self and register our object for dealloc notification. (-breakConnection): Release display groups we're bound to. Release our self and discard any pending notifications. (-subjectChanged): Add comment * EOInterface/EOColumnAssociation.m (-establishConnection): Assign our dg ivar after establishing connection. Use the dg ivar and move 2 if statements into one. * EOInterface/EODisplayGroup.m: Remove debugging class/category for emptyArray and emptyDictionary. (-indexesForObjectsIndeticalTo:): Fix typo by renaming to -indexesForObjectsIdenticalTo:. (-dealloc): Remove our self as an observer for any notifications, as an editor or message handler for our editing context, our observer proxies as observers from the observer center. Don't release array/dictionary ivars that are emptyArray or emptyDictionary. (-setSelectionIndexes:): Update to reflect change in method name. (-deleteSelection): Remove unused local var. (-fetch:): Call -redisplay. (-updatedObjectIndex:): Return -1 instead of 0 until this is implemented. (-setValue:forObject:key:): fix comment in exception handlers. * EOInterface/EOGenericControlAssociation.m: (-subjectChanged:): Remove unused local variable. * EOMasterDetailAssociation.m: (-establishConnection, -breakConnection, -subjectChanged): Implement. * EOInterface/EOPopUpAssociation.m: Remove unused local variables. * EOInterface/EOTableViewAssociation.m: (-breakConnection:): Remove our NSTableView object from the map table. (-subjectChanged:): Remove unused local variables. Release temporary retain on selection indexes. (+bindToTableView:displayGroup:): Don't retain the table views in the map table. Release the newly created association. (-dealloc): Remove self from the tvAssociationMap. * EOInterface/SubclassFlags.h: Fix bitmask on MatchKey1AspectMask. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@21439 72102866-910b-0410-8b05-ffd578937521
2005-07-09 03:01:22 +00:00
/** Implemented by subclasses. */
- (void)subjectChanged
{
}
- (BOOL)endEditing
{
return NO;
}
- (id)valueForAspect: (NSString *)aspectName
{
2005-05-12 Matt Rice <ratmice@yahoo.com> * ChangeLog: Fix previous ChangeLog entry. * EOInterface/EOActionAssociation.m: Implemented aspects enabled and action. (-establishConnection): Implement (-breakConnection, -subjectChanged, -action): Ditto. * EOInterface/EOAssociation.m (-associationClassesForObject:): Fixed argument passed to -isUsableWithObject:. Assign count (-init): Assign self. (-establishConnection:): Add unused local variable to pass to NSNextMapEnumeratorPair instead of 0. (-breakConnection:): Ditto. (-initWithCoder:, -encodeWithCoder:): Initial implementation of methods. (-valueForAspect:,-setValue:forAspect:,-valueForAspect:atIndex:): Ditto. (-setValueForAspect:atIndex:): Ditto. * EOInterface/SubclassFlags.h: New file. * EOInterface/EOAspectConnector.h/m: New file and implementation. * EOInterface/EOColumnAssociation.m: Implemented aspects value and enabled (-objectKeysTaken): Take identifier key. (-establishConnection, -breakConnection, -endEditing): Implement methods. (-tableView:setObjectValueForTableColumn:row:): Ditto. (-tableView:objectValueForTableColumn:row:): Ditto. (-tableView:willDisplayCell:forTableColumn:row:): Ditto. (-control:didFailToFormatString:errorDescription:): Ditto. (-control:textShouldBeginEditing:): Ditto. * EOInterface/EOControlAssociation.m: (-control): Ditto (-editingAssociation, -establishConnection, -breakConnection): Ditto. * EOInterface/EOGenericControlAssociation.m: Implemented aspects value and enabled. (+objectKeysTaken): add target key. (-establishConnection: -breakConnection:, -subjectChanged:): Ditto. (-_action:, -endEditing, -control:textShouldBeginEditing:): Ditto. * EOInterface/EOMatrixAssociation.m: Implemented aspects image, title, and enabled. (-establishConnection, -breakConnection, -subjectChanged): Ditto. * EOInterface/EOPopUpAssociation.m: Implemented aspects titles, selectedTitle, selectedTag, selectedObject, enabled. (-initWithObject:, -_action:): Implemented method. (-establishConnection:, -breakConnection, -subjectChanged): Ditto. * EOInterface/EORadioMatrixAssociation.m: Implemented aspects selectedTag, selectedTitle, enabled. (NSCell -_selectCellWithTitle:): Private category. (-initWithObject:, -_action:): Implemented method. (-establishConnection:, -breakConnection, -subjectChanged): Ditto. * EOInterface/EOTableViewAssociation.m: Implemented aspects enabled, tableView. (-establishConnection, -breakConnection, subjectChanged): Implement method. (-bindToTableView:displayGroup:, -editingAssociation): Ditto. (-numberOfRowsInTableView:): (-tableView:setObjectValue:forTableColumn:row:): Ditto. (-tableView:objectValueForTableColumn:row:): Ditto. (-tableView:shouldEditTableColumn:row:): Ditto. (-tableView:willDisplayCell:forTableColumn:row:): Ditto. (-tableView:selectionDidChange:): Ditto. (-control:didFailToFormatString:errorDescription:): Ditto. (-control:isValidObject:, -control:textShouldBeginEditing:): Ditto. (-dealloc): Ditto. * EOInterface/EOTextAssociation.m: Implemented aspect value, enabled. (-establishConnection): Implemented method. (-breakConnection, -subjectChanged, -endEditing): Ditto. (-control:isValidObject:,textShouldBeginEditing:): Ditto. (-textShouldEndEditing:): Ditto. * EOInterface/GNUmakefile: Make EOInterface a native-library, whitespace changes. * EOInterface/Makefile.preamble: Change linker flag to use FND_LIBS and GUI_LIBS variables. * EOInterface/EODisplayGroup.h: Comment on whether ivars are retained. * EOInterface/EODisplayGroup.m: (DG_SHOULD_CHANGE_SELECTION_TO_IDX): New macros. (DG_DISPLAY_ARRAY_FOR_OBJECTS, DG_SHOULD_DISPLAY_ALERT): Ditto. (DG_DID_FETCH_OBJECTS, DG_CREATE_OBJECT_FAILED): Ditto. (DG_SHOULD_INSERT_OBJECT, DG_DID_INSERT_OBJECT): Ditto. (DG_DID_CHANGE_SELECTION): Ditto. (NSArray -indexesForObjectsIdenticalTo:): Implement category method. (_presentAlertWithTitle:message:): New private methods. (-_endObserverNotification:): Implement notification observer methods. (-_beginObserverNotification:): Ditto. (-objectsInvalidatedInEditingContext:): Ditto. (-objectsChangedInEditingContext:): Ditto. (+initialize, -init, -initWithCoder:,): Implement methods. (-encodeWithCoder:, -setDataSource:, -fetch, -allObjects): Ditto. (-setObjectArray:, -redisplay, -updateDisplayedObjects): Ditto. (-selectionIndexes, -setSelectionIndexes, -selectObject): Ditto. (-selectObjectsIdenticalTo:, -clearSelection, -selectedObjects): Ditto. (-selectObjectsIdenticalTo:selectFirstOnNoMatch:): Ditto. (-setSelectedObjects, -selectedObject, -setSelectedObject:): Ditto. (-insertObjectAtIndex:, -insertObject:atIndex:): Ditto. (-setInsertedObjectDefaultValues:, -deleteSelection): Ditto. (-observingAssociations, -endEditing, -fetch:, -insert:): Ditto. (-selectionChanged, -contentsChanged, -valueForObject:key:): Ditto. (-selectedObjectValueForKey:, -valueForObjectAtIndex:): Ditto. (-setValue:forObject:key:, -setSelectedObjectValue:forKey:): Ditto. (-setValue:forObjectAtIndex:key:, -associationDidBeginEditing:): Ditto. (-associationDidEndEditing:): Ditto. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@21222 72102866-910b-0410-8b05-ffd578937521
2005-05-12 19:55:41 +00:00
EODisplayGroup *dg = [self displayGroupForAspect: aspectName];
NSString *key;
if (dg == nil)
return nil;
key = [self displayGroupKeyForAspect: aspectName];
if (key == nil)
return nil;
return [dg selectedObjectValueForKey: key];
}
* EOInterface/EOAssociation.m: New variable _objectToAssociations. (+objectDeallocated:): New private method. (+initialize): initialize _objectToAssociations. (-dealloc): Discard any pending notifications. (-establishConnection): Retain display groups we're bound to. Retain our self and register our object for dealloc notification. (-breakConnection): Release display groups we're bound to. Release our self and discard any pending notifications. (-subjectChanged): Add comment * EOInterface/EOColumnAssociation.m (-establishConnection): Assign our dg ivar after establishing connection. Use the dg ivar and move 2 if statements into one. * EOInterface/EODisplayGroup.m: Remove debugging class/category for emptyArray and emptyDictionary. (-indexesForObjectsIndeticalTo:): Fix typo by renaming to -indexesForObjectsIdenticalTo:. (-dealloc): Remove our self as an observer for any notifications, as an editor or message handler for our editing context, our observer proxies as observers from the observer center. Don't release array/dictionary ivars that are emptyArray or emptyDictionary. (-setSelectionIndexes:): Update to reflect change in method name. (-deleteSelection): Remove unused local var. (-fetch:): Call -redisplay. (-updatedObjectIndex:): Return -1 instead of 0 until this is implemented. (-setValue:forObject:key:): fix comment in exception handlers. * EOInterface/EOGenericControlAssociation.m: (-subjectChanged:): Remove unused local variable. * EOMasterDetailAssociation.m: (-establishConnection, -breakConnection, -subjectChanged): Implement. * EOInterface/EOPopUpAssociation.m: Remove unused local variables. * EOInterface/EOTableViewAssociation.m: (-breakConnection:): Remove our NSTableView object from the map table. (-subjectChanged:): Remove unused local variables. Release temporary retain on selection indexes. (+bindToTableView:displayGroup:): Don't retain the table views in the map table. Release the newly created association. (-dealloc): Remove self from the tvAssociationMap. * EOInterface/SubclassFlags.h: Fix bitmask on MatchKey1AspectMask. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@21439 72102866-910b-0410-8b05-ffd578937521
2005-07-09 03:01:22 +00:00
- (BOOL)setValue: (id)value forAspect: (NSString *)aspectName
{
2005-05-12 Matt Rice <ratmice@yahoo.com> * ChangeLog: Fix previous ChangeLog entry. * EOInterface/EOActionAssociation.m: Implemented aspects enabled and action. (-establishConnection): Implement (-breakConnection, -subjectChanged, -action): Ditto. * EOInterface/EOAssociation.m (-associationClassesForObject:): Fixed argument passed to -isUsableWithObject:. Assign count (-init): Assign self. (-establishConnection:): Add unused local variable to pass to NSNextMapEnumeratorPair instead of 0. (-breakConnection:): Ditto. (-initWithCoder:, -encodeWithCoder:): Initial implementation of methods. (-valueForAspect:,-setValue:forAspect:,-valueForAspect:atIndex:): Ditto. (-setValueForAspect:atIndex:): Ditto. * EOInterface/SubclassFlags.h: New file. * EOInterface/EOAspectConnector.h/m: New file and implementation. * EOInterface/EOColumnAssociation.m: Implemented aspects value and enabled (-objectKeysTaken): Take identifier key. (-establishConnection, -breakConnection, -endEditing): Implement methods. (-tableView:setObjectValueForTableColumn:row:): Ditto. (-tableView:objectValueForTableColumn:row:): Ditto. (-tableView:willDisplayCell:forTableColumn:row:): Ditto. (-control:didFailToFormatString:errorDescription:): Ditto. (-control:textShouldBeginEditing:): Ditto. * EOInterface/EOControlAssociation.m: (-control): Ditto (-editingAssociation, -establishConnection, -breakConnection): Ditto. * EOInterface/EOGenericControlAssociation.m: Implemented aspects value and enabled. (+objectKeysTaken): add target key. (-establishConnection: -breakConnection:, -subjectChanged:): Ditto. (-_action:, -endEditing, -control:textShouldBeginEditing:): Ditto. * EOInterface/EOMatrixAssociation.m: Implemented aspects image, title, and enabled. (-establishConnection, -breakConnection, -subjectChanged): Ditto. * EOInterface/EOPopUpAssociation.m: Implemented aspects titles, selectedTitle, selectedTag, selectedObject, enabled. (-initWithObject:, -_action:): Implemented method. (-establishConnection:, -breakConnection, -subjectChanged): Ditto. * EOInterface/EORadioMatrixAssociation.m: Implemented aspects selectedTag, selectedTitle, enabled. (NSCell -_selectCellWithTitle:): Private category. (-initWithObject:, -_action:): Implemented method. (-establishConnection:, -breakConnection, -subjectChanged): Ditto. * EOInterface/EOTableViewAssociation.m: Implemented aspects enabled, tableView. (-establishConnection, -breakConnection, subjectChanged): Implement method. (-bindToTableView:displayGroup:, -editingAssociation): Ditto. (-numberOfRowsInTableView:): (-tableView:setObjectValue:forTableColumn:row:): Ditto. (-tableView:objectValueForTableColumn:row:): Ditto. (-tableView:shouldEditTableColumn:row:): Ditto. (-tableView:willDisplayCell:forTableColumn:row:): Ditto. (-tableView:selectionDidChange:): Ditto. (-control:didFailToFormatString:errorDescription:): Ditto. (-control:isValidObject:, -control:textShouldBeginEditing:): Ditto. (-dealloc): Ditto. * EOInterface/EOTextAssociation.m: Implemented aspect value, enabled. (-establishConnection): Implemented method. (-breakConnection, -subjectChanged, -endEditing): Ditto. (-control:isValidObject:,textShouldBeginEditing:): Ditto. (-textShouldEndEditing:): Ditto. * EOInterface/GNUmakefile: Make EOInterface a native-library, whitespace changes. * EOInterface/Makefile.preamble: Change linker flag to use FND_LIBS and GUI_LIBS variables. * EOInterface/EODisplayGroup.h: Comment on whether ivars are retained. * EOInterface/EODisplayGroup.m: (DG_SHOULD_CHANGE_SELECTION_TO_IDX): New macros. (DG_DISPLAY_ARRAY_FOR_OBJECTS, DG_SHOULD_DISPLAY_ALERT): Ditto. (DG_DID_FETCH_OBJECTS, DG_CREATE_OBJECT_FAILED): Ditto. (DG_SHOULD_INSERT_OBJECT, DG_DID_INSERT_OBJECT): Ditto. (DG_DID_CHANGE_SELECTION): Ditto. (NSArray -indexesForObjectsIdenticalTo:): Implement category method. (_presentAlertWithTitle:message:): New private methods. (-_endObserverNotification:): Implement notification observer methods. (-_beginObserverNotification:): Ditto. (-objectsInvalidatedInEditingContext:): Ditto. (-objectsChangedInEditingContext:): Ditto. (+initialize, -init, -initWithCoder:,): Implement methods. (-encodeWithCoder:, -setDataSource:, -fetch, -allObjects): Ditto. (-setObjectArray:, -redisplay, -updateDisplayedObjects): Ditto. (-selectionIndexes, -setSelectionIndexes, -selectObject): Ditto. (-selectObjectsIdenticalTo:, -clearSelection, -selectedObjects): Ditto. (-selectObjectsIdenticalTo:selectFirstOnNoMatch:): Ditto. (-setSelectedObjects, -selectedObject, -setSelectedObject:): Ditto. (-insertObjectAtIndex:, -insertObject:atIndex:): Ditto. (-setInsertedObjectDefaultValues:, -deleteSelection): Ditto. (-observingAssociations, -endEditing, -fetch:, -insert:): Ditto. (-selectionChanged, -contentsChanged, -valueForObject:key:): Ditto. (-selectedObjectValueForKey:, -valueForObjectAtIndex:): Ditto. (-setValue:forObject:key:, -setSelectedObjectValue:forKey:): Ditto. (-setValue:forObjectAtIndex:key:, -associationDidBeginEditing:): Ditto. (-associationDidEndEditing:): Ditto. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@21222 72102866-910b-0410-8b05-ffd578937521
2005-05-12 19:55:41 +00:00
EODisplayGroup *dg = [self displayGroupForAspect: aspectName];
NSString *key;
if (dg == nil)
return NO;
key = [self displayGroupKeyForAspect: aspectName];
if (key == nil)
return NO;
return [dg setSelectedObjectValue: value forKey: key];
}
- (id)valueForAspect: (NSString *)aspectName
atIndex: (unsigned int)index
{
2005-05-12 Matt Rice <ratmice@yahoo.com> * ChangeLog: Fix previous ChangeLog entry. * EOInterface/EOActionAssociation.m: Implemented aspects enabled and action. (-establishConnection): Implement (-breakConnection, -subjectChanged, -action): Ditto. * EOInterface/EOAssociation.m (-associationClassesForObject:): Fixed argument passed to -isUsableWithObject:. Assign count (-init): Assign self. (-establishConnection:): Add unused local variable to pass to NSNextMapEnumeratorPair instead of 0. (-breakConnection:): Ditto. (-initWithCoder:, -encodeWithCoder:): Initial implementation of methods. (-valueForAspect:,-setValue:forAspect:,-valueForAspect:atIndex:): Ditto. (-setValueForAspect:atIndex:): Ditto. * EOInterface/SubclassFlags.h: New file. * EOInterface/EOAspectConnector.h/m: New file and implementation. * EOInterface/EOColumnAssociation.m: Implemented aspects value and enabled (-objectKeysTaken): Take identifier key. (-establishConnection, -breakConnection, -endEditing): Implement methods. (-tableView:setObjectValueForTableColumn:row:): Ditto. (-tableView:objectValueForTableColumn:row:): Ditto. (-tableView:willDisplayCell:forTableColumn:row:): Ditto. (-control:didFailToFormatString:errorDescription:): Ditto. (-control:textShouldBeginEditing:): Ditto. * EOInterface/EOControlAssociation.m: (-control): Ditto (-editingAssociation, -establishConnection, -breakConnection): Ditto. * EOInterface/EOGenericControlAssociation.m: Implemented aspects value and enabled. (+objectKeysTaken): add target key. (-establishConnection: -breakConnection:, -subjectChanged:): Ditto. (-_action:, -endEditing, -control:textShouldBeginEditing:): Ditto. * EOInterface/EOMatrixAssociation.m: Implemented aspects image, title, and enabled. (-establishConnection, -breakConnection, -subjectChanged): Ditto. * EOInterface/EOPopUpAssociation.m: Implemented aspects titles, selectedTitle, selectedTag, selectedObject, enabled. (-initWithObject:, -_action:): Implemented method. (-establishConnection:, -breakConnection, -subjectChanged): Ditto. * EOInterface/EORadioMatrixAssociation.m: Implemented aspects selectedTag, selectedTitle, enabled. (NSCell -_selectCellWithTitle:): Private category. (-initWithObject:, -_action:): Implemented method. (-establishConnection:, -breakConnection, -subjectChanged): Ditto. * EOInterface/EOTableViewAssociation.m: Implemented aspects enabled, tableView. (-establishConnection, -breakConnection, subjectChanged): Implement method. (-bindToTableView:displayGroup:, -editingAssociation): Ditto. (-numberOfRowsInTableView:): (-tableView:setObjectValue:forTableColumn:row:): Ditto. (-tableView:objectValueForTableColumn:row:): Ditto. (-tableView:shouldEditTableColumn:row:): Ditto. (-tableView:willDisplayCell:forTableColumn:row:): Ditto. (-tableView:selectionDidChange:): Ditto. (-control:didFailToFormatString:errorDescription:): Ditto. (-control:isValidObject:, -control:textShouldBeginEditing:): Ditto. (-dealloc): Ditto. * EOInterface/EOTextAssociation.m: Implemented aspect value, enabled. (-establishConnection): Implemented method. (-breakConnection, -subjectChanged, -endEditing): Ditto. (-control:isValidObject:,textShouldBeginEditing:): Ditto. (-textShouldEndEditing:): Ditto. * EOInterface/GNUmakefile: Make EOInterface a native-library, whitespace changes. * EOInterface/Makefile.preamble: Change linker flag to use FND_LIBS and GUI_LIBS variables. * EOInterface/EODisplayGroup.h: Comment on whether ivars are retained. * EOInterface/EODisplayGroup.m: (DG_SHOULD_CHANGE_SELECTION_TO_IDX): New macros. (DG_DISPLAY_ARRAY_FOR_OBJECTS, DG_SHOULD_DISPLAY_ALERT): Ditto. (DG_DID_FETCH_OBJECTS, DG_CREATE_OBJECT_FAILED): Ditto. (DG_SHOULD_INSERT_OBJECT, DG_DID_INSERT_OBJECT): Ditto. (DG_DID_CHANGE_SELECTION): Ditto. (NSArray -indexesForObjectsIdenticalTo:): Implement category method. (_presentAlertWithTitle:message:): New private methods. (-_endObserverNotification:): Implement notification observer methods. (-_beginObserverNotification:): Ditto. (-objectsInvalidatedInEditingContext:): Ditto. (-objectsChangedInEditingContext:): Ditto. (+initialize, -init, -initWithCoder:,): Implement methods. (-encodeWithCoder:, -setDataSource:, -fetch, -allObjects): Ditto. (-setObjectArray:, -redisplay, -updateDisplayedObjects): Ditto. (-selectionIndexes, -setSelectionIndexes, -selectObject): Ditto. (-selectObjectsIdenticalTo:, -clearSelection, -selectedObjects): Ditto. (-selectObjectsIdenticalTo:selectFirstOnNoMatch:): Ditto. (-setSelectedObjects, -selectedObject, -setSelectedObject:): Ditto. (-insertObjectAtIndex:, -insertObject:atIndex:): Ditto. (-setInsertedObjectDefaultValues:, -deleteSelection): Ditto. (-observingAssociations, -endEditing, -fetch:, -insert:): Ditto. (-selectionChanged, -contentsChanged, -valueForObject:key:): Ditto. (-selectedObjectValueForKey:, -valueForObjectAtIndex:): Ditto. (-setValue:forObject:key:, -setSelectedObjectValue:forKey:): Ditto. (-setValue:forObjectAtIndex:key:, -associationDidBeginEditing:): Ditto. (-associationDidEndEditing:): Ditto. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@21222 72102866-910b-0410-8b05-ffd578937521
2005-05-12 19:55:41 +00:00
EODisplayGroup *dg = [self displayGroupForAspect: aspectName];
NSString *key;
if (dg == nil)
return nil;
key = [self displayGroupKeyForAspect: aspectName];
if (key == nil)
return NO;
return [dg valueForObjectAtIndex:index
key: key];
}
2005-05-12 Matt Rice <ratmice@yahoo.com> * ChangeLog: Fix previous ChangeLog entry. * EOInterface/EOActionAssociation.m: Implemented aspects enabled and action. (-establishConnection): Implement (-breakConnection, -subjectChanged, -action): Ditto. * EOInterface/EOAssociation.m (-associationClassesForObject:): Fixed argument passed to -isUsableWithObject:. Assign count (-init): Assign self. (-establishConnection:): Add unused local variable to pass to NSNextMapEnumeratorPair instead of 0. (-breakConnection:): Ditto. (-initWithCoder:, -encodeWithCoder:): Initial implementation of methods. (-valueForAspect:,-setValue:forAspect:,-valueForAspect:atIndex:): Ditto. (-setValueForAspect:atIndex:): Ditto. * EOInterface/SubclassFlags.h: New file. * EOInterface/EOAspectConnector.h/m: New file and implementation. * EOInterface/EOColumnAssociation.m: Implemented aspects value and enabled (-objectKeysTaken): Take identifier key. (-establishConnection, -breakConnection, -endEditing): Implement methods. (-tableView:setObjectValueForTableColumn:row:): Ditto. (-tableView:objectValueForTableColumn:row:): Ditto. (-tableView:willDisplayCell:forTableColumn:row:): Ditto. (-control:didFailToFormatString:errorDescription:): Ditto. (-control:textShouldBeginEditing:): Ditto. * EOInterface/EOControlAssociation.m: (-control): Ditto (-editingAssociation, -establishConnection, -breakConnection): Ditto. * EOInterface/EOGenericControlAssociation.m: Implemented aspects value and enabled. (+objectKeysTaken): add target key. (-establishConnection: -breakConnection:, -subjectChanged:): Ditto. (-_action:, -endEditing, -control:textShouldBeginEditing:): Ditto. * EOInterface/EOMatrixAssociation.m: Implemented aspects image, title, and enabled. (-establishConnection, -breakConnection, -subjectChanged): Ditto. * EOInterface/EOPopUpAssociation.m: Implemented aspects titles, selectedTitle, selectedTag, selectedObject, enabled. (-initWithObject:, -_action:): Implemented method. (-establishConnection:, -breakConnection, -subjectChanged): Ditto. * EOInterface/EORadioMatrixAssociation.m: Implemented aspects selectedTag, selectedTitle, enabled. (NSCell -_selectCellWithTitle:): Private category. (-initWithObject:, -_action:): Implemented method. (-establishConnection:, -breakConnection, -subjectChanged): Ditto. * EOInterface/EOTableViewAssociation.m: Implemented aspects enabled, tableView. (-establishConnection, -breakConnection, subjectChanged): Implement method. (-bindToTableView:displayGroup:, -editingAssociation): Ditto. (-numberOfRowsInTableView:): (-tableView:setObjectValue:forTableColumn:row:): Ditto. (-tableView:objectValueForTableColumn:row:): Ditto. (-tableView:shouldEditTableColumn:row:): Ditto. (-tableView:willDisplayCell:forTableColumn:row:): Ditto. (-tableView:selectionDidChange:): Ditto. (-control:didFailToFormatString:errorDescription:): Ditto. (-control:isValidObject:, -control:textShouldBeginEditing:): Ditto. (-dealloc): Ditto. * EOInterface/EOTextAssociation.m: Implemented aspect value, enabled. (-establishConnection): Implemented method. (-breakConnection, -subjectChanged, -endEditing): Ditto. (-control:isValidObject:,textShouldBeginEditing:): Ditto. (-textShouldEndEditing:): Ditto. * EOInterface/GNUmakefile: Make EOInterface a native-library, whitespace changes. * EOInterface/Makefile.preamble: Change linker flag to use FND_LIBS and GUI_LIBS variables. * EOInterface/EODisplayGroup.h: Comment on whether ivars are retained. * EOInterface/EODisplayGroup.m: (DG_SHOULD_CHANGE_SELECTION_TO_IDX): New macros. (DG_DISPLAY_ARRAY_FOR_OBJECTS, DG_SHOULD_DISPLAY_ALERT): Ditto. (DG_DID_FETCH_OBJECTS, DG_CREATE_OBJECT_FAILED): Ditto. (DG_SHOULD_INSERT_OBJECT, DG_DID_INSERT_OBJECT): Ditto. (DG_DID_CHANGE_SELECTION): Ditto. (NSArray -indexesForObjectsIdenticalTo:): Implement category method. (_presentAlertWithTitle:message:): New private methods. (-_endObserverNotification:): Implement notification observer methods. (-_beginObserverNotification:): Ditto. (-objectsInvalidatedInEditingContext:): Ditto. (-objectsChangedInEditingContext:): Ditto. (+initialize, -init, -initWithCoder:,): Implement methods. (-encodeWithCoder:, -setDataSource:, -fetch, -allObjects): Ditto. (-setObjectArray:, -redisplay, -updateDisplayedObjects): Ditto. (-selectionIndexes, -setSelectionIndexes, -selectObject): Ditto. (-selectObjectsIdenticalTo:, -clearSelection, -selectedObjects): Ditto. (-selectObjectsIdenticalTo:selectFirstOnNoMatch:): Ditto. (-setSelectedObjects, -selectedObject, -setSelectedObject:): Ditto. (-insertObjectAtIndex:, -insertObject:atIndex:): Ditto. (-setInsertedObjectDefaultValues:, -deleteSelection): Ditto. (-observingAssociations, -endEditing, -fetch:, -insert:): Ditto. (-selectionChanged, -contentsChanged, -valueForObject:key:): Ditto. (-selectedObjectValueForKey:, -valueForObjectAtIndex:): Ditto. (-setValue:forObject:key:, -setSelectedObjectValue:forKey:): Ditto. (-setValue:forObjectAtIndex:key:, -associationDidBeginEditing:): Ditto. (-associationDidEndEditing:): Ditto. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@21222 72102866-910b-0410-8b05-ffd578937521
2005-05-12 19:55:41 +00:00
- (BOOL)setValue: (id)value
forAspect: (NSString *)aspectName
atIndex: (unsigned int)index
{
2005-05-12 Matt Rice <ratmice@yahoo.com> * ChangeLog: Fix previous ChangeLog entry. * EOInterface/EOActionAssociation.m: Implemented aspects enabled and action. (-establishConnection): Implement (-breakConnection, -subjectChanged, -action): Ditto. * EOInterface/EOAssociation.m (-associationClassesForObject:): Fixed argument passed to -isUsableWithObject:. Assign count (-init): Assign self. (-establishConnection:): Add unused local variable to pass to NSNextMapEnumeratorPair instead of 0. (-breakConnection:): Ditto. (-initWithCoder:, -encodeWithCoder:): Initial implementation of methods. (-valueForAspect:,-setValue:forAspect:,-valueForAspect:atIndex:): Ditto. (-setValueForAspect:atIndex:): Ditto. * EOInterface/SubclassFlags.h: New file. * EOInterface/EOAspectConnector.h/m: New file and implementation. * EOInterface/EOColumnAssociation.m: Implemented aspects value and enabled (-objectKeysTaken): Take identifier key. (-establishConnection, -breakConnection, -endEditing): Implement methods. (-tableView:setObjectValueForTableColumn:row:): Ditto. (-tableView:objectValueForTableColumn:row:): Ditto. (-tableView:willDisplayCell:forTableColumn:row:): Ditto. (-control:didFailToFormatString:errorDescription:): Ditto. (-control:textShouldBeginEditing:): Ditto. * EOInterface/EOControlAssociation.m: (-control): Ditto (-editingAssociation, -establishConnection, -breakConnection): Ditto. * EOInterface/EOGenericControlAssociation.m: Implemented aspects value and enabled. (+objectKeysTaken): add target key. (-establishConnection: -breakConnection:, -subjectChanged:): Ditto. (-_action:, -endEditing, -control:textShouldBeginEditing:): Ditto. * EOInterface/EOMatrixAssociation.m: Implemented aspects image, title, and enabled. (-establishConnection, -breakConnection, -subjectChanged): Ditto. * EOInterface/EOPopUpAssociation.m: Implemented aspects titles, selectedTitle, selectedTag, selectedObject, enabled. (-initWithObject:, -_action:): Implemented method. (-establishConnection:, -breakConnection, -subjectChanged): Ditto. * EOInterface/EORadioMatrixAssociation.m: Implemented aspects selectedTag, selectedTitle, enabled. (NSCell -_selectCellWithTitle:): Private category. (-initWithObject:, -_action:): Implemented method. (-establishConnection:, -breakConnection, -subjectChanged): Ditto. * EOInterface/EOTableViewAssociation.m: Implemented aspects enabled, tableView. (-establishConnection, -breakConnection, subjectChanged): Implement method. (-bindToTableView:displayGroup:, -editingAssociation): Ditto. (-numberOfRowsInTableView:): (-tableView:setObjectValue:forTableColumn:row:): Ditto. (-tableView:objectValueForTableColumn:row:): Ditto. (-tableView:shouldEditTableColumn:row:): Ditto. (-tableView:willDisplayCell:forTableColumn:row:): Ditto. (-tableView:selectionDidChange:): Ditto. (-control:didFailToFormatString:errorDescription:): Ditto. (-control:isValidObject:, -control:textShouldBeginEditing:): Ditto. (-dealloc): Ditto. * EOInterface/EOTextAssociation.m: Implemented aspect value, enabled. (-establishConnection): Implemented method. (-breakConnection, -subjectChanged, -endEditing): Ditto. (-control:isValidObject:,textShouldBeginEditing:): Ditto. (-textShouldEndEditing:): Ditto. * EOInterface/GNUmakefile: Make EOInterface a native-library, whitespace changes. * EOInterface/Makefile.preamble: Change linker flag to use FND_LIBS and GUI_LIBS variables. * EOInterface/EODisplayGroup.h: Comment on whether ivars are retained. * EOInterface/EODisplayGroup.m: (DG_SHOULD_CHANGE_SELECTION_TO_IDX): New macros. (DG_DISPLAY_ARRAY_FOR_OBJECTS, DG_SHOULD_DISPLAY_ALERT): Ditto. (DG_DID_FETCH_OBJECTS, DG_CREATE_OBJECT_FAILED): Ditto. (DG_SHOULD_INSERT_OBJECT, DG_DID_INSERT_OBJECT): Ditto. (DG_DID_CHANGE_SELECTION): Ditto. (NSArray -indexesForObjectsIdenticalTo:): Implement category method. (_presentAlertWithTitle:message:): New private methods. (-_endObserverNotification:): Implement notification observer methods. (-_beginObserverNotification:): Ditto. (-objectsInvalidatedInEditingContext:): Ditto. (-objectsChangedInEditingContext:): Ditto. (+initialize, -init, -initWithCoder:,): Implement methods. (-encodeWithCoder:, -setDataSource:, -fetch, -allObjects): Ditto. (-setObjectArray:, -redisplay, -updateDisplayedObjects): Ditto. (-selectionIndexes, -setSelectionIndexes, -selectObject): Ditto. (-selectObjectsIdenticalTo:, -clearSelection, -selectedObjects): Ditto. (-selectObjectsIdenticalTo:selectFirstOnNoMatch:): Ditto. (-setSelectedObjects, -selectedObject, -setSelectedObject:): Ditto. (-insertObjectAtIndex:, -insertObject:atIndex:): Ditto. (-setInsertedObjectDefaultValues:, -deleteSelection): Ditto. (-observingAssociations, -endEditing, -fetch:, -insert:): Ditto. (-selectionChanged, -contentsChanged, -valueForObject:key:): Ditto. (-selectedObjectValueForKey:, -valueForObjectAtIndex:): Ditto. (-setValue:forObject:key:, -setSelectedObjectValue:forKey:): Ditto. (-setValue:forObjectAtIndex:key:, -associationDidBeginEditing:): Ditto. (-associationDidEndEditing:): Ditto. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@21222 72102866-910b-0410-8b05-ffd578937521
2005-05-12 19:55:41 +00:00
EODisplayGroup *dg = [self displayGroupForAspect: aspectName];
NSString *key;
BOOL flag;
if (dg == nil)
{
return NO;
}
key = [self displayGroupKeyForAspect: aspectName];
if (key == nil)
{
return NO;
}
flag = [dg setValue: value forObjectAtIndex: index key: key];
return flag;
}
- (BOOL)shouldEndEditingForAspect: (NSString *)aspectName
invalidInput: (NSString *)input
errorDescription: (NSString *)description
{
EODisplayGroup *displayGroup;
BOOL reply = YES;
displayGroup = [self displayGroupForAspect: aspectName];
if (displayGroup)
{
NSString *displayGroupString
= [self displayGroupKeyForAspect: aspectName];
id selectedObject = [displayGroup selectedObject];
reply = [displayGroup association: self
failedToValidateValue: input
forKey: displayGroupString
object: selectedObject
errorDescription: description];
}
return reply;
}
- (BOOL)shouldEndEditingForAspect: (NSString *)aspectName
invalidInput: (NSString *)input
errorDescription: (NSString *)description
index: (unsigned int)index
{
EODisplayGroup *displayGroup;
BOOL reply = YES;
displayGroup = [self displayGroupForAspect: aspectName];
if (displayGroup)
{
NSString *displayGroupString
= [self displayGroupKeyForAspect: aspectName];
NSArray *displayedObjects = [displayGroup displayedObjects];
id object = [displayedObjects objectAtIndex: index];
reply = [displayGroup association: self
failedToValidateValue: input
forKey: displayGroupString
object: object
errorDescription: description];
}
return reply;
}
@end