2004-10-15 17:31:28 +00:00
|
|
|
/**
|
|
|
|
EOAssociation.m
|
|
|
|
|
2005-08-17 08:07:57 +00:00
|
|
|
Copyright (C) 2004,2005 Free Software Foundation, Inc.
|
2004-10-15 17:31:28 +00:00
|
|
|
|
2006-09-14 16:06:21 +00:00
|
|
|
Author: David Ayers <ayers@fsfe.org>
|
2004-10-15 17:31:28 +00:00
|
|
|
|
|
|
|
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
|
2007-07-12 06:39:22 +00:00
|
|
|
as published by the Free Software Foundation; either version 3,
|
2004-10-15 17:31:28 +00:00
|
|
|
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.,
|
2005-08-17 08:07:57 +00:00
|
|
|
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
2004-10-15 17:31:28 +00:00
|
|
|
*/
|
|
|
|
|
|
|
|
#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>
|
2004-10-15 17:31:28 +00:00
|
|
|
#else
|
|
|
|
#include <Foundation/Foundation.h>
|
|
|
|
#endif
|
|
|
|
|
* EOInterface/EOAssociation.m ([+objectDeallocated:]):
Use makeObjectsPerformSelector: instead of makeObjectsPerform:.
* EOInterface/EORadioMatrixAssociation.m
([NSMatrix-_selectCellWithTitle:]): Do not access instance variables
directly. Use accessor methods instead.
* EOInterface/EOActionAssociation.m,
* EOInterface/EOActionInsertionAssociation.m,
* EOInterface/EOAspectConnector.m,
* EOInterface/EOAssociation.m,
* EOInterface/EOColumnAssociation.m,
* EOInterface/EOComboBoxAssociation.m,
* EOInterface/EODetailSelectionAssociation.m,
* EOInterface/EODisplayGroup.m,
* EOInterface/EOGenericControlAssociation.m,
* EOInterface/EOMasterCopyAssociation.m,
* EOInterface/EOMasterDetailAssociation.m,
* EOInterface/EOMatrixAssociation.m,
* EOInterface/EOPickTextAssociation.m,
* EOInterface/EOPopUpAssociation.m,
* EOInterface/EORadioMatrixAssociation.m,
* EOInterface/EORecursiveBrowserAssociation.m,
* EOInterface/EOTableViewAssociation.m,
* EOInterface/EOTableViewAssociation.m,
* EOInterface/EOTextAssociation.m,
* EOInterface/NSImage+Additions.m:
Add include for <GNUstepBase/GNUstep.h>.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@26321 72102866-910b-0410-8b05-ffd578937521
2008-03-16 21:43:28 +00:00
|
|
|
#include <GNUstepBase/GNUstep.h>
|
2004-10-15 17:31:28 +00:00
|
|
|
#include <GNUstepBase/GSObjCRuntime.h>
|
|
|
|
|
|
|
|
#include "EODisplayGroup.h"
|
|
|
|
|
|
|
|
#include "EOAssociation.h"
|
|
|
|
|
2005-07-09 03:01:22 +00:00
|
|
|
/* For GDL2NonRetainingArray */
|
|
|
|
#include "../EOControl/EOPrivate.h"
|
|
|
|
|
2004-10-15 17:31:28 +00:00
|
|
|
@implementation EOAssociation
|
|
|
|
static NSArray *_emptyArray = nil;
|
|
|
|
static NSMutableArray *_associationClasses = nil;
|
2005-07-09 03:01:22 +00:00
|
|
|
static NSMapTable *_objectToAssociations;
|
|
|
|
|
|
|
|
+ (void) objectDeallocated:(id)object
|
|
|
|
{
|
|
|
|
GDL2NonRetainingMutableArray *associations;
|
|
|
|
associations = NSMapGet(_objectToAssociations, object);
|
|
|
|
|
|
|
|
if (associations)
|
|
|
|
{
|
* EOInterface/EOAssociation.m ([+objectDeallocated:]):
Use makeObjectsPerformSelector: instead of makeObjectsPerform:.
* EOInterface/EORadioMatrixAssociation.m
([NSMatrix-_selectCellWithTitle:]): Do not access instance variables
directly. Use accessor methods instead.
* EOInterface/EOActionAssociation.m,
* EOInterface/EOActionInsertionAssociation.m,
* EOInterface/EOAspectConnector.m,
* EOInterface/EOAssociation.m,
* EOInterface/EOColumnAssociation.m,
* EOInterface/EOComboBoxAssociation.m,
* EOInterface/EODetailSelectionAssociation.m,
* EOInterface/EODisplayGroup.m,
* EOInterface/EOGenericControlAssociation.m,
* EOInterface/EOMasterCopyAssociation.m,
* EOInterface/EOMasterDetailAssociation.m,
* EOInterface/EOMatrixAssociation.m,
* EOInterface/EOPickTextAssociation.m,
* EOInterface/EOPopUpAssociation.m,
* EOInterface/EORadioMatrixAssociation.m,
* EOInterface/EORecursiveBrowserAssociation.m,
* EOInterface/EOTableViewAssociation.m,
* EOInterface/EOTableViewAssociation.m,
* EOInterface/EOTextAssociation.m,
* EOInterface/NSImage+Additions.m:
Add include for <GNUstepBase/GNUstep.h>.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@26321 72102866-910b-0410-8b05-ffd578937521
2008-03-16 21:43:28 +00:00
|
|
|
[associations makeObjectsPerformSelector: @selector(breakConnection)];
|
2005-07-09 03:01:22 +00:00
|
|
|
NSMapRemove(_objectToAssociations, object);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2004-10-15 17:31:28 +00:00
|
|
|
+ (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];
|
2005-07-09 03:01:22 +00:00
|
|
|
_objectToAssociations = NSCreateMapTable(NSNonOwnedPointerMapKeyCallBacks,
|
|
|
|
NSObjectMapValueCallBacks,
|
|
|
|
32);
|
2004-10-15 17:31:28 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
+ (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];
|
2004-10-15 17:31:28 +00:00
|
|
|
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])
|
2004-10-15 17:31:28 +00:00
|
|
|
{
|
|
|
|
[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;
|
2004-10-15 17:31:28 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
- (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;
|
2004-10-15 17:31:28 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
- (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];
|
2004-10-15 17:31:28 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
- (void)dealloc
|
|
|
|
{
|
2005-07-09 03:01:22 +00:00
|
|
|
[self discardPendingNotification];
|
2004-10-15 17:31:28 +00:00
|
|
|
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
|
|
|
|
2004-10-15 17:31:28 +00:00
|
|
|
- (void)establishConnection
|
|
|
|
{
|
|
|
|
if (_isConnected == NO)
|
2010-04-19 07:15:37 +00:00
|
|
|
{
|
|
|
|
NSMapEnumerator displayGroupEnum;
|
|
|
|
EODisplayGroup *displayGroup;
|
|
|
|
void *unusedKey;
|
|
|
|
GDL2NonRetainingMutableArray *associations;
|
|
|
|
|
|
|
|
displayGroupEnum = NSEnumerateMapTable(_displayGroupMap);
|
|
|
|
while (NSNextMapEnumeratorPair(&displayGroupEnum,
|
|
|
|
&unusedKey, (void*)&displayGroup))
|
2004-10-15 17:31:28 +00:00
|
|
|
{
|
2010-04-19 07:15:37 +00:00
|
|
|
[displayGroup retain];
|
|
|
|
[EOObserverCenter addObserver:self forObject:displayGroup];
|
|
|
|
}
|
|
|
|
NSEndMapTableEnumeration (&displayGroupEnum);
|
|
|
|
|
|
|
|
/* registerAssociationForDeallocHack is implemented in
|
2010-04-21 13:59:28 +00:00
|
|
|
EOControl/EOCustomObject.m this causes +objectDeallocated:
|
2010-04-19 07:15:37 +00:00
|
|
|
to be called when '_object' is deallocated, which will break the
|
|
|
|
connection which releases the association instance. */
|
|
|
|
[self retain];
|
2010-04-21 13:59:28 +00:00
|
|
|
[self registerAssociationForDeallocHack:_object];
|
2010-04-19 07:15:37 +00:00
|
|
|
|
|
|
|
associations = (id)NSMapGet(_objectToAssociations, _object);
|
|
|
|
|
|
|
|
if (!associations)
|
|
|
|
{
|
|
|
|
associations = [[GDL2NonRetainingMutableArray alloc] initWithCapacity:32];
|
|
|
|
[associations addObject:self];
|
|
|
|
NSMapInsert(_objectToAssociations, _object, associations);
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
[associations addObject:self];
|
2004-10-15 17:31:28 +00:00
|
|
|
}
|
2010-04-19 07:15:37 +00:00
|
|
|
|
|
|
|
_isConnected = YES;
|
|
|
|
}
|
2004-10-15 17:31:28 +00:00
|
|
|
}
|
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
|
|
|
|
2004-10-15 17:31:28 +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;
|
|
|
|
|
2004-10-15 17:31:28 +00:00
|
|
|
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))
|
2004-10-15 17:31:28 +00:00
|
|
|
{
|
2005-07-09 03:01:22 +00:00
|
|
|
[displayGroup release];
|
2004-10-15 17:31:28 +00:00
|
|
|
[EOObserverCenterClass removeObserver: self forObject: displayGroup];
|
|
|
|
}
|
2005-07-09 03:01:22 +00:00
|
|
|
|
2004-10-15 17:31:28 +00:00
|
|
|
NSEndMapTableEnumeration (&displayGroupEnum);
|
2005-07-09 03:01:22 +00:00
|
|
|
[self discardPendingNotification];
|
|
|
|
_isConnected = NO;
|
|
|
|
[self release];
|
2004-10-15 17:31:28 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
- (void)copyMatchingBindingsFromAssociation: (EOAssociation *)association
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
- (BOOL)canBindAspect: (NSString *)aspectName
|
|
|
|
displayGroup: (EODisplayGroup *)displayGroup
|
|
|
|
key: (NSString *)key
|
|
|
|
{
|
2006-09-05 21:16:56 +00:00
|
|
|
return YES;
|
2004-10-15 17:31:28 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
- (id)object
|
|
|
|
{
|
|
|
|
return _object;
|
|
|
|
}
|
|
|
|
|
|
|
|
- (EODisplayGroup *)displayGroupForAspect: (NSString *)aspectName
|
|
|
|
{
|
|
|
|
return NSMapGet(_displayGroupMap, aspectName);
|
|
|
|
}
|
2005-07-09 03:01:22 +00:00
|
|
|
|
2004-10-15 17:31:28 +00:00
|
|
|
- (NSString *)displayGroupKeyForAspect: (NSString *)aspectName;
|
|
|
|
{
|
|
|
|
return NSMapGet(_displayGroupKeyMap, aspectName);
|
|
|
|
}
|
|
|
|
|
2005-07-09 03:01:22 +00:00
|
|
|
/** Implemented by subclasses. */
|
2004-10-15 17:31:28 +00:00
|
|
|
- (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];
|
2004-10-15 17:31:28 +00:00
|
|
|
}
|
2005-07-09 03:01:22 +00:00
|
|
|
|
2004-10-15 17:31:28 +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];
|
2004-10-15 17:31:28 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
- (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];
|
|
|
|
|
2004-10-15 17:31:28 +00:00
|
|
|
}
|
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
|
|
|
|
2004-10-15 17:31:28 +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;
|
2004-10-15 17:31:28 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
- (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
|
|
|
|
|