2002-01-26 Manuel Guesdon <mguesdon@orange-concept.com>

* GSWeb.framework/GSWSwitchComponent.m:
		o logs
		o corected bug: use GSWComponentName__Key[]
	* GSWeb.framework/GSWSession.m:
		o logs
	* GSWExtensions.framework/GSWExtensions.m:
		o added better formatting
	* GSWExtensions.framework/GSWExtensions.gswc/GSWExtensions.HTML:
		o added better formatting
	* GSWExtensions.framework/French.lproj/GSWExtensions.gswc/GSWExtensions.HTML:
		o added better formatting
	* GSWExtensionsGSW.framework/GSWLogin.m:
		o added -login exception cataching to add exception verbosity.
	* GSWeb.framework/GSWDynamicElement.m/.h:
		o logs
		o added ivar _definitionName and associated methods
	* GSWeb.framework/GSWElement.m/.h:
		o added ivar -definitionName
	* GSWeb.framework/GSWTemplateParserANTLR.m:
		o set dynamic element definition name
	* GSWeb.framework/GSWTemplateParserXML.m:
		o set dynamic element definition name
	* GSWeb.framework/GSWConditional.m:
		o logs
	* GSWeb.framework/GSWComponent.m:
		o logs
		o remove GDL2  code in -valueForBinding: and setValue:forBinding:
		    I don't see a reason for this code and it may make a loop
	* GSWeb.framework/GSWAssociation.m:
		o logs
		o Fix in validateValue:forKeyPath: test & call
	* GSWeb.framework/GSWDisplayGroup.m:
		o logs
	* GSWeb.framework/GSWBundle.m:
		o logs
	* GSWeb.framework/GSWImageButton.m:
		o logs (element definition name)
	* GSWeb.framework/GSWForm.m:
		o logs (element definition name)
		o stop invokeActionForRequest:inContext: when the current Id is after senderID
	* GSWeb.framework: GSWElementIDString.m
		o added -compare:options:range:
	* GSWeb.framework: GSWHTMLDynamicElement.m
		o stop invokeActionForRequest:inContext: when the current Id is after senderID
	* GSWeb.framework: GSWHTMLStaticElement.m
		o stop invokeActionForRequest:inContext: when the current Id is after senderID
	* GSWExtensions.framework/WebServerResources:
		o converted .gif to .png
	* GSWeb.framework/GSWUtils.m:
		o removed members in NSUserDefaults description


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gsweb/trunk@12219 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
mguesdon 2002-01-26 10:43:23 +00:00
parent bb8d9887cd
commit 7976caba68
50 changed files with 1121 additions and 619 deletions

View file

@ -1,3 +1,56 @@
2002-01-26 Manuel Guesdon <mguesdon@orange-concept.com>
* GSWeb.framework/GSWSwitchComponent.m:
o logs
o corected bug: use GSWComponentName__Key[]
* GSWeb.framework/GSWSession.m:
o logs
* GSWExtensions.framework/GSWExtensions.m:
o added better formatting
* GSWExtensions.framework/GSWExtensions.gswc/GSWExtensions.HTML:
o added better formatting
* GSWExtensions.framework/French.lproj/GSWExtensions.gswc/GSWExtensions.HTML:
o added better formatting
* GSWExtensionsGSW.framework/GSWLogin.m:
o added -login exception cataching to add exception verbosity.
* GSWeb.framework/GSWDynamicElement.m/.h:
o logs
o added ivar _definitionName and associated methods
* GSWeb.framework/GSWElement.m/.h:
o added ivar -definitionName
* GSWeb.framework/GSWTemplateParserANTLR.m:
o set dynamic element definition name
* GSWeb.framework/GSWTemplateParserXML.m:
o set dynamic element definition name
* GSWeb.framework/GSWConditional.m:
o logs
* GSWeb.framework/GSWComponent.m:
o logs
o remove GDL2 code in -valueForBinding: and setValue:forBinding:
I don't see a reason for this code and it may make a loop
* GSWeb.framework/GSWAssociation.m:
o logs
o Fix in validateValue:forKeyPath: test & call
* GSWeb.framework/GSWDisplayGroup.m:
o logs
* GSWeb.framework/GSWBundle.m:
o logs
* GSWeb.framework/GSWImageButton.m:
o logs (element definition name)
* GSWeb.framework/GSWForm.m:
o logs (element definition name)
o stop invokeActionForRequest:inContext: when the current Id is after senderID
* GSWeb.framework: GSWElementIDString.m
o added -compare:options:range:
* GSWeb.framework: GSWHTMLDynamicElement.m
o stop invokeActionForRequest:inContext: when the current Id is after senderID
* GSWeb.framework: GSWHTMLStaticElement.m
o stop invokeActionForRequest:inContext: when the current Id is after senderID
* GSWExtensions.framework/WebServerResources:
o converted .gif to .png
* GSWeb.framework/GSWUtils.m:
o removed members in NSUserDefaults description
2001-12-11 Manuel Guesdon <mguesdon@orange-concept.com> 2001-12-11 Manuel Guesdon <mguesdon@orange-concept.com>
* GSWeb.framework/GSWResourceManager.m: logs * GSWeb.framework/GSWResourceManager.m: logs

View file

@ -22,7 +22,7 @@
<b>Application:</b> <b>Application:</b>
</td> </td>
<td align="left" valign="top"> <td align="left" valign="top">
<gsweb name="ApplicationNameString"></gsweb> <PRE><gsweb name="ApplicationNameString"></gsweb></PRE>
</td> </td>
</tr> </tr>
<tr> <tr>
@ -30,7 +30,7 @@
<b>Erreur:</b> <b>Erreur:</b>
</td> </td>
<td align="left" valign="top"> <td align="left" valign="top">
<gsweb name="ExceptionNameString"></gsweb> <PRE><gsweb name="ExceptionNameString"></gsweb></PRE>
</td> </td>
</tr> </tr>
<tr> <tr>
@ -39,7 +39,7 @@
</td> </td>
<td align="left" valign="top"> <td align="left" valign="top">
<gsweb name="ReasonRepetition"> <gsweb name="ReasonRepetition">
<gsweb name="ReasonString"></gsweb><br> <PRE><gsweb name="ReasonString"></gsweb></PRE><br>
</gsweb> </gsweb>
</td> </td>
</tr> </tr>
@ -53,10 +53,10 @@
<gsweb name="UserInfoRowRepetition"> <gsweb name="UserInfoRowRepetition">
<tr> <tr>
<td align="right" valign="top"> <td align="right" valign="top">
<b><gsweb name="UserInfoKeyString"></gsweb>:</b> <b><PRE><gsweb name="UserInfoKeyString"></gsweb>:</PRE></b>
</td> </td>
<td align="left" valign="top"> <td align="left" valign="top">
<gsweb name="UserInfoValueString"></gsweb> <PRE><gsweb name="UserInfoValueString"></gsweb></PRE>
</td> </td>
</tr> </tr>
</gsweb> </gsweb>

View file

@ -72,24 +72,24 @@ French
GSWExtensions_RESOURCE_DIRS = GSWExtensions_RESOURCE_DIRS =
GSWExtensions_WEBSERVER_RESOURCE_FILES = \ GSWExtensions_WEBSERVER_RESOURCE_FILES = \
Ascending.gif \ Ascending.png \
Descending.gif \ Descending.png \
DownTriangle.gif \ DownTriangle.png \
PoweredByGNUstep.gif \ PoweredByGNUstep.png \
PoweredByGNUstepWeb.gif \ PoweredByGNUstepWeb.png \
RightTriangle.gif \ RightTriangle.png \
Unsorted.gif \ Unsorted.png \
appOff.gif \ appOff.png \
appOn.gif \ appOn.png \
back.gif \ back.png \
dir.gif \ dir.png \
exclamation.gif \ exclamation.gif \
eye.gif \ eye.png \
lft-OSarw.gif \ lft-OSarw.png \
rt-OSarw.gif \ rt-OSarw.png \
text.gif \ text.png \
gswapp.gif \ gswapp.png \
gswappsrv.gif \ gswappsrv.png \
warning.gif \ warning.gif \
error.gif error.gif

View file

@ -95,7 +95,7 @@
else if ([self hasBinding:@"helpString"]) else if ([self hasBinding:@"helpString"])
ASSIGN(openedImageFileName,[self valueForBinding:@"helpString"]); ASSIGN(openedImageFileName,[self valueForBinding:@"helpString"]);
else else
ASSIGN(openedImageFileName,@"DownTriangle.gif"); ASSIGN(openedImageFileName,@"DownTriangle.png");
}; };
_image=openedImageFileName; _image=openedImageFileName;
} }
@ -109,7 +109,7 @@
else if ([self hasBinding:@"helpString"]) else if ([self hasBinding:@"helpString"])
ASSIGN(closedImageFileName,[self valueForBinding:@"helpString"]); ASSIGN(closedImageFileName,[self valueForBinding:@"helpString"]);
else else
ASSIGN(closedImageFileName,@"RightTriangle.gif"); ASSIGN(closedImageFileName,@"RightTriangle.png");
}; };
_image=closedImageFileName; _image=closedImageFileName;
}; };

View file

@ -22,7 +22,7 @@
<b>Application:</b> <b>Application:</b>
</td> </td>
<td align="LEFT" Valign="TOP"> <td align="LEFT" Valign="TOP">
<gsweb name="ApplicationNameString"></gsweb> <PRE><gsweb name="ApplicationNameString"></gsweb></PRE>
</td> </td>
</tr> </tr>
<tr> <tr>
@ -30,7 +30,7 @@
<b>Error:</b> <b>Error:</b>
</td> </td>
<td align="LEFT" Valign="TOP"> <td align="LEFT" Valign="TOP">
<gsweb name="ExceptionNameString"></gsweb> <PRE><gsweb name="ExceptionNameString"></gsweb></PRE>
</td> </td>
</tr> </tr>
<tr> <tr>
@ -39,7 +39,7 @@
</td> </td>
<td align="LEFT" Valign="TOP"> <td align="LEFT" Valign="TOP">
<gsweb name="ReasonRepetition"> <gsweb name="ReasonRepetition">
<gsweb name="ReasonString"></gsweb><br> <PRE><gsweb name="ReasonString"></gsweb></PRE><br>
</gsweb> </gsweb>
</td> </td>
</tr> </tr>
@ -53,10 +53,10 @@
<gsweb name="UserInfoRowRepetition"> <gsweb name="UserInfoRowRepetition">
<tr> <tr>
<td align="RIGHT" Valign="TOP"> <td align="RIGHT" Valign="TOP">
<b><gsweb name="UserInfoKeyString"></gsweb>:</b> <b><PRE><gsweb name="UserInfoKeyString"></gsweb>:</PRE></b>
</td> </td>
<td align="LEFT" Valign="TOP"> <td align="LEFT" Valign="TOP">
<gsweb name="UserInfoValueString"></gsweb> <PRE><gsweb name="UserInfoValueString"></gsweb></PRE>
</td> </td>
</tr> </tr>
</gsweb> </gsweb>

View file

@ -51,7 +51,7 @@
{ {
if (!reasons) if (!reasons)
{ {
ASSIGN(reasons,[[exception description] componentsSeparatedByString:@"\n"]); ASSIGN(reasons,[[exception reason] componentsSeparatedByString:@"\n"]);
}; };
return reasons; return reasons;
}; };
@ -69,4 +69,12 @@
ASSIGN(exception,exception_); ASSIGN(exception,exception_);
}; };
-(id)getTmpUserInfoValue
{
//If array, print it nicely
if ([tmpUserInfoValue isKindOfClass:[NSArray class]])
return [tmpUserInfoValue componentsJoinedByString:@"\n"];
else
return tmpUserInfoValue;
}
@end @end

View file

@ -224,7 +224,7 @@ PoweredByImage: GSWImage
BORDER = 0; BORDER = 0;
HEIGHT = 49; HEIGHT = 49;
WIDTH = 221; WIDTH = 221;
filename = "PoweredByGNUstepWeb.gif"; filename = "PoweredByGNUstepWeb.png";
} }
REFRESH: GSWSubmitButton REFRESH: GSWSubmitButton

Binary file not shown.

After

Width:  |  Height:  |  Size: 179 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 177 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 477 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 485 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 166 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 264 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 264 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 277 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 290 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 629 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 278 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 252 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 253 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 285 B

View file

@ -75,6 +75,8 @@
LOGObjectFnStart(); LOGObjectFnStart();
NSDebugMLog(@"user=%@ password=%@",user,password); NSDebugMLog(@"user=%@ password=%@",user,password);
NSDebugMLog(@"associationsKeys=%@",associationsKeys); NSDebugMLog(@"associationsKeys=%@",associationsKeys);
NS_DURING
{
if ([self hasBinding:@"password"]) if ([self hasBinding:@"password"])
{ {
if ([self hasBinding:@"user"]) if ([self hasBinding:@"user"])
@ -105,6 +107,17 @@
message=[self valueForBinding:@"message"]; message=[self valueForBinding:@"message"];
}; };
NSDebugMLog(@"message=%@",message); NSDebugMLog(@"message=%@",message);
}
NS_HANDLER
{
LOGException0(@"exception in GSWLogin login action");
LOGException(@"exception=%@",localException);
localException=ExceptionByAddingUserInfoObjectFrameInfo(localException,
@"In GSWLogin login action");
LOGException(@"exception=%@",localException);
[localException raise];
}
NS_ENDHANDLER;
LOGObjectFnStop(); LOGObjectFnStop();
return _nextPage; return _nextPage;
}; };

View file

@ -1114,7 +1114,7 @@ int GSWApplicationMain(NSString* applicationClassName,
NSString* _language=nil; NSString* _language=nil;
int iLanguage=0; int iLanguage=0;
LOGObjectFnStart(); LOGObjectFnStart();
NSDebugMLLog(@"application",@"_Name=%@",_name); NSDebugMLLog(@"application",@"_Name %p=%@",_name,_name);
for(iLanguage=0;iLanguage<[_languages count] && !_componentDefinition;iLanguage++) for(iLanguage=0;iLanguage<[_languages count] && !_componentDefinition;iLanguage++)
{ {
_language=[_languages objectAtIndex:iLanguage]; _language=[_languages objectAtIndex:iLanguage];
@ -1190,8 +1190,9 @@ int GSWApplicationMain(NSString* applicationClassName,
(_language ? _language : @""), (_language ? _language : @""),
(isCachedComponent ? "" : "Not ")]; (isCachedComponent ? "" : "Not ")];
}; };
NSDebugMLLog(@"application",@"%s componentDefinition for %@ class=%@ %s", NSDebugMLLog(@"application",@"%s componentDefinition (%p) for %@ class=%@ %s",
(_componentDefinition ? "FOUND" : "NOTFOUND"), (_componentDefinition ? "FOUND" : "NOTFOUND"),
_componentDefinition,
_name, _name,
(_componentDefinition ? [[_componentDefinition class] description]: @""), (_componentDefinition ? [[_componentDefinition class] description]: @""),
(_componentDefinition ? (isCachedComponent ? "(Cached)" : "(Not Cached)") : "")); (_componentDefinition ? (isCachedComponent ? "(Cached)" : "(Not Cached)") : ""));
@ -2014,7 +2015,7 @@ int GSWApplicationMain(NSString* applicationClassName,
GSWComponentDefinition* _componentDefinition=nil; GSWComponentDefinition* _componentDefinition=nil;
NSArray* _languages=nil; NSArray* _languages=nil;
LOGObjectFnStart(); LOGObjectFnStart();
NSDebugMLLog(@"info",@"name_=%@",name_); NSDebugMLLog(@"info",@"name_ %p=%@",name_,name_);
NSAssert(context_,@"No Context"); NSAssert(context_,@"No Context");
[self lock]; [self lock];
NS_DURING NS_DURING
@ -2026,7 +2027,10 @@ int GSWApplicationMain(NSString* applicationClassName,
_languages=[context_ languages]; _languages=[context_ languages];
_componentDefinition=[self lockedComponentDefinitionWithName:name_ _componentDefinition=[self lockedComponentDefinitionWithName:name_
languages:_languages]; languages:_languages];
NSDebugMLLog(@"application",@"_componentDefinition=%@ (%@)",_componentDefinition,[_componentDefinition class]); NSDebugMLLog(@"info",@"_componentDefinition %p=%@ (%@)",
_componentDefinition,
_componentDefinition,
[_componentDefinition class]);
} }
NS_HANDLER NS_HANDLER
{ {
@ -2042,7 +2046,7 @@ int GSWApplicationMain(NSString* applicationClassName,
if (!_componentDefinition) if (!_componentDefinition)
{ {
//TODO //TODO
NSDebugMLLog0(@"application",@"GSWApplication _pageWithName no _componentDefinition"); NSDebugMLLog0(@"info",@"GSWApplication _pageWithName no _componentDefinition");
} }
else else
{ {
@ -2110,16 +2114,16 @@ int GSWApplicationMain(NSString* applicationClassName,
if ([associations_ isAssociationDebugEnabledInComponent:nil]) if ([associations_ isAssociationDebugEnabledInComponent:nil])
[associations_ associationsSetDebugEnabled]; [associations_ associationsSetDebugEnabled];
_elementClass=NSClassFromString(name_); _elementClass=NSClassFromString(name_);
NSDebugMLLog(@"application",@"_elementClass:%@",_elementClass); NSDebugMLLog(@"info",@"_elementClass %p:%@",_elementClass,_elementClass);
NSDebugMLLog(@"application",@"_elementClass superClass:%@",[_elementClass superClass]); NSDebugMLLog(@"info",@"_elementClass superClass:%@",[_elementClass superClass]);
if (_elementClass && !ClassIsKindOfClass(_elementClass,NSClassFromString(@"GSWComponent"))) if (_elementClass && !ClassIsKindOfClass(_elementClass,NSClassFromString(@"GSWComponent")))
{ {
NSDebugMLLog(@"application",@"CREATE Element of Class:%@",name_); NSDebugMLLog(@"info",@"CREATE Element of Class %p:%@",name_,name_);
_element=[[[_elementClass alloc] initWithName:name_ _element=[[[_elementClass alloc] initWithName:name_
associations:associations_ associations:associations_
template:templateElement_] template:templateElement_]
autorelease]; autorelease];
NSDebugMLLog(@"application",@"Created Element: %@",_element); NSDebugMLLog(@"info",@"Created Element %p: %@",_element,_element);
} }
else else
{ {
@ -2128,10 +2132,10 @@ int GSWApplicationMain(NSString* applicationClassName,
languages:languages_]; languages:languages_];
if (_componentDefinition) if (_componentDefinition)
{ {
NSDebugMLLog(@"application",@"CREATE SubComponent:%@",name_); NSDebugMLLog(@"info",@"CREATE SubComponent %p:%@",name_,name_);
_element=[_componentDefinition componentReferenceWithAssociations:associations_ _element=[_componentDefinition componentReferenceWithAssociations:associations_
template:templateElement_]; template:templateElement_];
NSDebugMLLog(@"application",@"Created SubComponent: %@",_element); NSDebugMLLog(@"info",@"Created SubComponent %p: %@",_element,_element);
} }
else else
{ {

View file

@ -653,22 +653,32 @@ static NSMutableArray* associationsLogsHandlerClasses=nil;
for(i=0;!v && i<count;i++) for(i=0;!v && i<count;i++)
{ {
id language=[languages objectAtIndex:i]; id language=[languages objectAtIndex:i];
v=[retValue getIVarNamed:language]; //MGNEW v=[retValue getIVarNamed:language];
v=[retValue valueForKey:language];
}; };
retValue=v; retValue=v;
} }
else else
{ {
BOOL skipping = NO; BOOL skipping = NO;
NSDebugMLLog(@"associations",@"call %@ valueForKey:%@",
[retValue class],
_part);
NS_DURING NS_DURING
{
retValue=[retValue getIVarNamed:_part]; //MGNEW retValue=[retValue getIVarNamed:_part];
retValue=[retValue valueForKey:_part];
}
NS_HANDLER NS_HANDLER
NSLog(@"Attempt to get %@/%@ raised an exception (%@)",[retValue class],_part,localException); {
NSLog(@"Attempt to get %@ -%@ raised an exception (%@)",
[retValue class],
_part,
localException);
localException = [localException exceptionByAddingToUserInfoKey:@"Invalid Ivars/Methods" format:@"-[%@ %@]",[retValue class],_part]; localException = [localException exceptionByAddingToUserInfoKey:@"Invalid Ivars/Methods" format:@"-[%@ %@]",[retValue class],_part];
[localException raise]; [localException raise];
NS_ENDHANDLER }
NS_ENDHANDLER;
}; };
if (retValue==EONullNull) if (retValue==EONullNull)
retValue=nil; retValue=nil;
@ -740,17 +750,22 @@ if (retValue) {
_object=nil; _object=nil;
} }
else { else {
_object=[_object getIVarNamed:_part]; //MGNEW _object=[_object getIVarNamed:_part];
_object=[_object valueForKey:_part];//MGNEW
} }
} }
else else
{ {
GSWLogAssertGood(_object); GSWLogAssertGood(_object);
[_object setIVarNamed:_part /* //MGNEW [_object setIVarNamed:_part
withValue:value_]; withValue:value_];*/
[_object takeValue:value_
forKey:_part];//MGNEW
#ifdef GDL2 #ifdef GDL2
NSDebugMLLog(@"associations",@"object_ class=%@",[object_ class]);
NSDebugMLLog(@"associations",@"_object class=%@",[_object class]);
// Turbocat // Turbocat
if (object_ && [object_ isKindOfClass:[GSWComponent class]]) { if (_object && [_object isKindOfClass:[GSWComponent class]]) {
NSException* _exp = [_object validateValue:&value_ forKey:_part]; NSException* _exp = [_object validateValue:&value_ forKey:_part];
if (_exp) { if (_exp) {

View file

@ -372,26 +372,42 @@ objectForReference:(NSString*)keyPath
NSDictionary* variables=nil; NSDictionary* variables=nil;
NSEnumerator* variablesEnum=nil; NSEnumerator* variablesEnum=nil;
id variableName=nil; id variableName=nil;
//NSDebugMLLog(@"bundles",@"archive_:%@",archive_); NSDebugMLLog(@"bundles",@"archive_ %p:%@",archive_,archive_);
unarchiver=[[[EOKeyValueUnarchiver alloc] initWithDictionary:archive_] unarchiver=[[[EOKeyValueUnarchiver alloc] initWithDictionary:archive_]
autorelease]; autorelease];
//NSDebugMLLog(@"bundles",@"unarchiver:%@",unarchiver); NSDebugMLLog(@"bundles",@"unarchiver %p:%@",unarchiver,unarchiver);
bundleDelegate=[[[GSWBundleUnarchiverDelegate alloc] initWithObject:object_] bundleDelegate=[[[GSWBundleUnarchiverDelegate alloc] initWithObject:object_]
autorelease]; autorelease];
//NSDebugMLLog(@"bundles",@"bundleDelegate:%@",bundleDelegate); NSDebugMLLog(@"bundles",@"bundleDelegate %p:%@",bundleDelegate,bundleDelegate);
[unarchiver setDelegate:bundleDelegate]; [unarchiver setDelegate:bundleDelegate];
//NSDebugMLLog(@"bundles",@"decodevar"); NSDebugMLLog(@"bundles",@"decodevar here=%p",[NSString string]);
variables=[unarchiver decodeObjectForKey:@"variables"]; variables=[unarchiver decodeObjectForKey:@"variables"];
//NSDebugMLLog(@"bundles",@"variables:%@",variables); NSDebugMLLog(@"bundles",@"variables %p:%@",variables,variables);
[unarchiver finishInitializationOfObjects]; [unarchiver finishInitializationOfObjects];
NSDebugMLLog(@"bundles",@"here=%p",[NSString string]);
[unarchiver awakeObjects]; [unarchiver awakeObjects];
variablesEnum=[variables keyEnumerator]; variablesEnum=[variables keyEnumerator];
NSDebugMLLog(@"bundles",@"here=%p",[NSString string]);
NSDebugMLLog0(@"bundles",@"Will set variables");
while ((variableName = [variablesEnum nextObject])) while ((variableName = [variablesEnum nextObject]))
{ {
id variableValue=[variables objectForKey:variableName]; id variableValue=[variables objectForKey:variableName];
//NSDebugMLLog(@"bundles",@"variableName:%@ variableValue:%@",variableName,variableValue); NSDebugMLLog(@"bundles",@"ObjectClas=%@ variableName %p:%@ variableValue %p:%@",
[object_ class],
variableName,
variableName,
variableValue,
variableValue);
NSDebugMLLog(@"bundles",@"BEF variableValue %p:%@ [RC=%d]",
variableValue,
variableValue,
[variableValue retainCount]);
[object_ takeValue:variableValue [object_ takeValue:variableValue
forKey:variableName]; forKey:variableName];
NSDebugMLLog(@"bundles",@"AFT variableValue %p:%@ [RC=%d]",
variableValue,
variableValue,
[variableValue retainCount]);
}; };
}; };
#else #else

View file

@ -258,45 +258,10 @@ static char rcsId[] = "$Id$";
//TODO //TODO
NSString* _dscr=nil; NSString* _dscr=nil;
GSWLogAssertGood(self); GSWLogAssertGood(self);
// GSWLogC("GSWComponent description A"); NSDebugMLLog(@"gswcomponents",@"GSWComponent description self=%p",self);
NSDebugMLLog(@"gswcomponents",@"GSWComponent description Self=%p",self); _dscr=[NSString stringWithFormat:@"<%s %p>",
_dscr=[NSString stringWithFormat:@"<%s %p - ",
object_get_class_name(self), object_get_class_name(self),
(void*)self]; (void*)self];
/*
// GSWLogC("GSWComponent description B");
_dscr=[_dscr stringByAppendingFormat:@"name:[%@] subComponents:[%@] templateName:[%@] ",
name,
subComponents,
templateName];
// GSWLogC("GSWComponent description C");
_dscr=[_dscr stringByAppendingFormat:@"template:[%@] ",
template];
// GSWLogC("GSWComponent description D");
_dscr=[_dscr stringByAppendingFormat:@"componentDefinition:[%p] ",
(void*)componentDefinition];
// GSWLogC("GSWComponent description D2");
_dscr=[_dscr stringByAppendingFormat:@"[%@] ",
componentDefinition];
// GSWLogC("GSWComponent description E");
_dscr=[_dscr stringByAppendingFormat:@"parent:[%p] ",
(void*)parent];
// GSWLogC("GSWComponent description F");
_dscr=[_dscr stringByAppendingFormat:@"associationsKeys:[%@] associations:[%@] childTemplate:[%@] ",
associationsKeys,
associations,
childTemplate];
// GSWLogC("GSWComponent description G");
_dscr=[_dscr stringByAppendingFormat:@"context:[%p] session:[%p] ",
(void*)context,
(void*)session];
// GSWLogC("GSWComponent description H");
_dscr=[_dscr stringByAppendingFormat:@"isPage:[%s] isCachingEnabled:[%s] isSynchronized:[%s]>",
isPage ? "YES" : "NO",
isCachingEnabled ? "YES" : "NO",
isSynchronized ? "YES" : "NO"];
// GSWLogC("GSWComponent description I");
*/
return _dscr; return _dscr;
}; };
@ -372,7 +337,9 @@ associationsKeys:(NSArray*)_associationsKeys
//OK //OK
LOGObjectFnStart(); LOGObjectFnStart();
parent=_parent; parent=_parent;
NSDebugMLLog(@"gswcomponents",@"parent=%p (%@)",(void*)parent,[parent class]); NSDebugMLLog(@"gswcomponents",@"name=%@ parent=%p (%@)",
[self definitionName],
(void*)parent,[parent class]);
ASSIGN(associations,_associations); ASSIGN(associations,_associations);
NSDebugMLLog(@"gswcomponents",@"associations=%@",associations); NSDebugMLLog(@"gswcomponents",@"associations=%@",associations);
ASSIGN(associationsKeys,_associationsKeys); ASSIGN(associationsKeys,_associationsKeys);
@ -395,7 +362,8 @@ associationsKeys:(NSArray*)_associationsKeys
id _value=nil; id _value=nil;
id _logValue=[self valueForBinding:@"GSWDebug"]; id _logValue=[self valueForBinding:@"GSWDebug"];
BOOL _log=boolValueWithDefaultFor(_logValue,NO); BOOL _log=boolValueWithDefaultFor(_logValue,NO);
NSDebugMLog0(@"Synchro SubComponent->Component"); NSDebugMLog(@"defName=%@ - Synchro SubComponent->Component",
[self definitionName]);
for(i=0;i<[associationsKeys count];i++) for(i=0;i<[associationsKeys count];i++)
{ {
_key=[associationsKeys objectAtIndex:i]; _key=[associationsKeys objectAtIndex:i];
@ -404,7 +372,8 @@ associationsKeys:(NSArray*)_associationsKeys
if ([_assoc isValueSettable] if ([_assoc isValueSettable]
&& ![_assoc isKindOfClass:[GSWBindingNameAssociation class]]) //TODOV && ![_assoc isKindOfClass:[GSWBindingNameAssociation class]]) //TODOV
{ {
_value=[self getIVarNamed:_key]; //MGNEW _value=[self getIVarNamed:_key];
_value=[self valueForKey:_key];//MGNEW
NSDebugMLLog(@"gswcomponents",@"_value=%@",_value); NSDebugMLLog(@"gswcomponents",@"_value=%@",_value);
if (_log) if (_log)
[_assoc logSynchronizeComponentToParentForValue:_value [_assoc logSynchronizeComponentToParentForValue:_value
@ -429,7 +398,8 @@ associationsKeys:(NSArray*)_associationsKeys
id _value=nil; id _value=nil;
id _logValue=[self valueForBinding:@"GSWDebug"]; id _logValue=[self valueForBinding:@"GSWDebug"];
BOOL _log=boolValueWithDefaultFor(_logValue,NO); BOOL _log=boolValueWithDefaultFor(_logValue,NO);
NSDebugMLog0(@"Synchro Component->SubComponent"); NSDebugMLog(@"Nme=%@ - Synchro Component->SubComponent",
[self definitionName]);
for(i=0;i<[associationsKeys count];i++) for(i=0;i<[associationsKeys count];i++)
{ {
_key=[associationsKeys objectAtIndex:i]; _key=[associationsKeys objectAtIndex:i];
@ -442,8 +412,10 @@ associationsKeys:(NSArray*)_associationsKeys
if (_log) if (_log)
[_assoc logSynchronizeParentToComponentForValue:_value [_assoc logSynchronizeParentToComponentForValue:_value
inComponent:self]; inComponent:self];
[self setIVarNamed:_key /*//MGNEW [self setIVarNamed:_key
withValue:_value]; withValue:_value];*/
[self takeValue:_value
forKey:_key];
}; };
}; };
}; };
@ -768,7 +740,7 @@ associationsKeys:(NSArray*)_associationsKeys
unsigned int _index=NSNotFound; unsigned int _index=NSNotFound;
LOGObjectFnStart(); LOGObjectFnStart();
NSDebugMLLog(@"gswcomponents",@"associationsKeys=%@",associationsKeys); NSDebugMLLog(@"gswcomponents",@"associationsKeys=%@",associationsKeys);
NSDebugMLLog(@"gswcomponents",@"associations=%@",associations); //NSDebugMLLog(@"gswcomponents",@"associations=%@",[associations description]);
if (associationsKeys) if (associationsKeys)
{ {
_index=[associationsKeys indexOfObject:_name]; _index=[associationsKeys indexOfObject:_name];
@ -796,14 +768,18 @@ associationsKeys:(NSArray*)_associationsKeys
//OK //OK
BOOL _hasBinding=NO; BOOL _hasBinding=NO;
LOGObjectFnStart(); LOGObjectFnStart();
NSDebugMLLog(@"gswcomponents",@"parentBindingName_=%@",parentBindingName_); NSDebugMLLog(@"gswcomponents",@"defName=%@ - parentBindingName_=%@",
[self definitionName],
parentBindingName_);
if (associationsKeys) if (associationsKeys)
{ {
int _index=[associationsKeys indexOfObject:parentBindingName_]; int _index=[associationsKeys indexOfObject:parentBindingName_];
NSDebugMLLog(@"gswcomponents",@"_index=%u",_index); NSDebugMLLog(@"gswcomponents",@"_index=%u",_index);
_hasBinding=(_index!=NSNotFound); _hasBinding=(_index!=NSNotFound);
}; };
NSDebugMLLog(@"gswcomponents",@"hasBinding=%s",(_hasBinding ? "YES" : "NO")); NSDebugMLLog(@"gswcomponents",@"defName=%@ - hasBinding=%s",
[self definitionName],
(_hasBinding ? "YES" : "NO"));
if (!WOStrictFlag && !_hasBinding) if (!WOStrictFlag && !_hasBinding)
{ {
_hasBinding=([defaultAssociations objectForKey:parentBindingName_]!=nil); _hasBinding=([defaultAssociations objectForKey:parentBindingName_]!=nil);
@ -819,7 +795,9 @@ associationsKeys:(NSArray*)_associationsKeys
//OK //OK
GSWAssociation* _assoc=nil; GSWAssociation* _assoc=nil;
LOGObjectFnStart(); LOGObjectFnStart();
NSDebugMLLog(@"gswcomponents",@"parentBindingName_=%@",parentBindingName_); NSDebugMLLog(@"gswcomponents",@"defName=%@ - parentBindingName_=%@",
[self definitionName],
parentBindingName_);
NSDebugMLLog(@"gswcomponents",@"value_=%@",value_); NSDebugMLLog(@"gswcomponents",@"value_=%@",value_);
NSDebugMLLog(@"gswcomponents",@"parent=%p",(void*)parent); NSDebugMLLog(@"gswcomponents",@"parent=%p",(void*)parent);
if (parent) if (parent)
@ -829,15 +807,23 @@ associationsKeys:(NSArray*)_associationsKeys
if(_assoc) if(_assoc)
[_assoc setValue:value_ [_assoc setValue:value_
inComponent:parent]; inComponent:parent];
/* // Why doing this ? Be carefull: it may make a loop !
#if GDL2 #if GDL2
else else
{ {
NS_DURING NS_DURING
[self takeValue:value_ forKey:parentBindingName_]; {
[self takeValue:value_
forKey:parentBindingName_];
}
NS_HANDLER; NS_HANDLER;
{
//TODO
}
NS_ENDHANDLER; NS_ENDHANDLER;
} }
#endif #endif
*/
}; };
LOGObjectFnStop(); LOGObjectFnStop();
}; };
@ -849,7 +835,10 @@ associationsKeys:(NSArray*)_associationsKeys
id _value=nil; id _value=nil;
GSWAssociation* _assoc=nil; GSWAssociation* _assoc=nil;
LOGObjectFnStart(); LOGObjectFnStart();
NSDebugMLLog(@"gswcomponents",@"parentBindingName_=%@",parentBindingName_); NSDebugMLLog(@"gswcomponents",@"defName=%@",
[self definitionName]);
NSDebugMLLog(@"gswcomponents",@"parentBindingName_=%@",
parentBindingName_);
NSDebugMLLog(@"gswcomponents",@"parent=%p of class %@",(void*)parent,[parent class]); NSDebugMLLog(@"gswcomponents",@"parent=%p of class %@",(void*)parent,[parent class]);
if (parent) if (parent)
{ {
@ -857,15 +846,22 @@ associationsKeys:(NSArray*)_associationsKeys
NSDebugMLLog(@"gswcomponents",@"_assoc=%@",_assoc); NSDebugMLLog(@"gswcomponents",@"_assoc=%@",_assoc);
if(_assoc) if(_assoc)
_value=[_assoc valueInComponent:parent]; _value=[_assoc valueInComponent:parent];
/* // Why doing this ? Be carefull: it may make a loop !
#if GDL2 #if GDL2
else else
{ {
NS_DURING NS_DURING
{
_value = [self valueForKey:parentBindingName_]; _value = [self valueForKey:parentBindingName_];
NS_HANDLER; }
NS_HANDLER
{
//TODO
}
NS_ENDHANDLER; NS_ENDHANDLER;
} }
#endif #endif
*/
NSDebugMLLog(@"gswcomponents",@"_value=%@",_value); NSDebugMLLog(@"gswcomponents",@"_value=%@",_value);
}; };
LOGObjectFnStop(); LOGObjectFnStop();
@ -879,7 +875,9 @@ associationsKeys:(NSArray*)_associationsKeys
NSDictionary* _userDictionary=[self userDictionary]; NSDictionary* _userDictionary=[self userDictionary];
id _synchronizesVariablesWithBindingsValue=[_userDictionary objectForKey:@"synchronizesVariablesWithBindings"]; id _synchronizesVariablesWithBindingsValue=[_userDictionary objectForKey:@"synchronizesVariablesWithBindings"];
BOOL _synchronizesVariablesWithBindings=YES; BOOL _synchronizesVariablesWithBindings=YES;
NSDebugMLLog(@"gswcomponents",@"userDictionary _synchronizesVariablesWithBindingsValue=%@",_synchronizesVariablesWithBindingsValue); NSDebugMLLog(@"gswcomponents",@"defName=%@ - userDictionary _synchronizesVariablesWithBindingsValue=%@",
[self definitionName],
_synchronizesVariablesWithBindingsValue);
//NDFN //NDFN
if (_synchronizesVariablesWithBindingsValue) if (_synchronizesVariablesWithBindingsValue)
{ {
@ -923,7 +921,9 @@ associationsKeys:(NSArray*)_associationsKeys
[_componentDefinition sleep]; [_componentDefinition sleep];
[self sleep]; [self sleep];
[self _setContext:nil]; [self _setContext:nil];
NSDebugMLLog(@"gswcomponents",@"subComponents=%@",subComponents); NSDebugMLLog(@"gswcomponents",@"defName=%@ - subComponents=%@",
[self definitionName],
subComponents);
[subComponents makeObjectsPerformSelector:@selector(sleepInContext:) [subComponents makeObjectsPerformSelector:@selector(sleepInContext:)
withObject:context_]; withObject:context_];
LOGObjectFnStop(); LOGObjectFnStop();
@ -945,6 +945,7 @@ associationsKeys:(NSArray*)_associationsKeys
#endif #endif
LOGObjectFnStart(); LOGObjectFnStart();
NSDebugMLLog(@"gswcomponents",@"ET=%@ id=%@",[self class],[context_ elementID]); NSDebugMLLog(@"gswcomponents",@"ET=%@ id=%@",[self class],[context_ elementID]);
NSDebugMLLog(@"gswcomponents",@"defName=%@",[self definitionName]);
GSWSaveAppendToResponseElementID(context_);//Debug Only GSWSaveAppendToResponseElementID(context_);//Debug Only
_template=[self _template]; _template=[self _template];
@ -960,6 +961,7 @@ associationsKeys:(NSArray*)_associationsKeys
[context_ deleteLastElementIDComponent]; [context_ deleteLastElementIDComponent];
NSDebugMLLog(@"gswcomponents",@"ET=%@ id=%@",[self class],[context_ elementID]); NSDebugMLLog(@"gswcomponents",@"ET=%@ id=%@",[self class],[context_ elementID]);
NSDebugMLLog(@"gswcomponents",@"defName=%@",[self definitionName]);
#ifndef NDEBUG #ifndef NDEBUG
if (![debugElementID isEqualToString:[context_ elementID]]) if (![debugElementID isEqualToString:[context_ elementID]])
{ {
@ -987,6 +989,7 @@ associationsKeys:(NSArray*)_associationsKeys
#endif #endif
LOGObjectFnStart(); LOGObjectFnStart();
NSDebugMLLog(@"gswcomponents",@"ET=%@ id=%@",[self class],[context_ elementID]); NSDebugMLLog(@"gswcomponents",@"ET=%@ id=%@",[self class],[context_ elementID]);
NSDebugMLLog(@"gswcomponents",@"defName=%@",[self definitionName]);
NS_DURING NS_DURING
{ {
GSWAssertCorrectElementID(context_);// Debug Only GSWAssertCorrectElementID(context_);// Debug Only
@ -1007,6 +1010,7 @@ associationsKeys:(NSArray*)_associationsKeys
} }
NS_ENDHANDLER; NS_ENDHANDLER;
NSDebugMLLog(@"gswcomponents",@"ET=%@ id=%@",[self class],[context_ elementID]); NSDebugMLLog(@"gswcomponents",@"ET=%@ id=%@",[self class],[context_ elementID]);
NSDebugMLLog(@"gswcomponents",@"defName=%@",[self definitionName]);
#ifndef NDEBUG #ifndef NDEBUG
if (![debugElementID isEqualToString:[context_ elementID]]) if (![debugElementID isEqualToString:[context_ elementID]])
{ {
@ -1014,7 +1018,8 @@ associationsKeys:(NSArray*)_associationsKeys
}; };
#endif #endif
if (![context_ _wasActionInvoked] && [[[context_ elementID] parentElementIDString] compare:[context_ senderID]]==NSOrderedDescending) // if (![context_ _wasActionInvoked] && [[[context_ elementID] parentElementIDString] compare:[context_ senderID]]==NSOrderedDescending)
if (![context_ _wasActionInvoked] && [[[context_ elementID] parentElementIDString] isSearchOverForSenderID:[context_ senderID]])
{ {
LOGError(@"Action not invoked at the end of %@ (id=%@) senderId=%@", LOGError(@"Action not invoked at the end of %@ (id=%@) senderId=%@",
[self class], [self class],
@ -1044,12 +1049,14 @@ associationsKeys:(NSArray*)_associationsKeys
_oldValidateFlag=[context_ isValidate]; _oldValidateFlag=[context_ isValidate];
[context_ setValidate:YES]; [context_ setValidate:YES];
NSDebugMLLog(@"gswcomponents",@"ET=%@ id=%@",[self class],[context_ elementID]); NSDebugMLLog(@"gswcomponents",@"ET=%@ id=%@",[self class],[context_ elementID]);
NSDebugMLLog(@"gswcomponents",@"defName=%@",[self definitionName]);
_template=[self _template]; _template=[self _template];
[context_ appendZeroElementIDComponent]; [context_ appendZeroElementIDComponent];
[_template takeValuesFromRequest:request_ [_template takeValuesFromRequest:request_
inContext:context_]; inContext:context_];
[context_ deleteLastElementIDComponent]; [context_ deleteLastElementIDComponent];
NSDebugMLLog(@"gswcomponents",@"ET=%@ id=%@",[self class],[context_ elementID]); NSDebugMLLog(@"gswcomponents",@"ET=%@ id=%@",[self class],[context_ elementID]);
NSDebugMLLog(@"gswcomponents",@"defName=%@",[self definitionName]);
#ifndef NDEBUG #ifndef NDEBUG
if (![debugElementID isEqualToString:[context_ elementID]]) if (![debugElementID isEqualToString:[context_ elementID]])
{ {
@ -1159,6 +1166,7 @@ associationsKeys:(NSArray*)_associationsKeys
GSWComponentDefinition* _componentDefinition=nil; GSWComponentDefinition* _componentDefinition=nil;
LOGObjectFnStart(); LOGObjectFnStart();
NSDebugMLLog(@"gswcomponents",@"context_=%@",context_); NSDebugMLLog(@"gswcomponents",@"context_=%@",context_);
NSDebugMLLog(@"gswcomponents",@"defName=%@",[self definitionName]);
NSAssert(context_,@"No Context"); NSAssert(context_,@"No Context");
[self _setContext:context_]; [self _setContext:context_];
_componentDefinition=[self _componentDefinition]; _componentDefinition=[self _componentDefinition];
@ -1185,7 +1193,9 @@ associationsKeys:(NSArray*)_associationsKeys
id _ret=nil; id _ret=nil;
LOGObjectFnStart(); LOGObjectFnStart();
NSDebugMLLog(@"gswcomponents", @"parent=%p", (void*)parent); NSDebugMLLog(@"gswcomponents", @"name=%@ - parent=%p",
[self definitionName],
(void*)parent);
if (parent) if (parent)
{ {
_assoc = [self _associationWithName:attribute]; _assoc = [self _associationWithName:attribute];

View file

@ -103,6 +103,13 @@ static char rcsId[] = "$Id$";
NSDebugMLLog(@"gswdync",@"elementID=%@",[context_ elementID]); NSDebugMLLog(@"gswdync",@"elementID=%@",[context_ elementID]);
if (_negate) if (_negate)
_doIt=!_doIt; _doIt=!_doIt;
NSDebugMLLog(@"gswdync",@"defname=%@ condition=%@ negate=%@ evaluatedCondition=%s evaluatedNegate=%s _doIt=%s",
[self definitionName],
condition,
negate,
(_condition ? "YES" : "NO"),
(_negate ? "YES" : "NO"),
(_doIt ? "YES" : "NO"));
if (_doIt) if (_doIt)
{ {
GSWRequest* _request=[context_ request]; GSWRequest* _request=[context_ request];
@ -135,7 +142,13 @@ static char rcsId[] = "$Id$";
_doIt=_condition; _doIt=_condition;
if (_negate) if (_negate)
_doIt=!_doIt; _doIt=!_doIt;
NSDebugMLLog(@"gswdync",@"_doIt=%s",_doIt ? "YES" : "NO"); NSDebugMLLog(@"gswdync",@"defname=%@ condition=%@ negate=%@ evaluatedCondition=%s evaluatedNegate=%s _doIt=%s",
[self definitionName],
condition,
negate,
(_condition ? "YES" : "NO"),
(_negate ? "YES" : "NO"),
(_doIt ? "YES" : "NO"));
if (_doIt) if (_doIt)
{ {
GSWRequest* _request=[context_ request]; GSWRequest* _request=[context_ request];
@ -172,7 +185,13 @@ static char rcsId[] = "$Id$";
_doIt=_condition; _doIt=_condition;
if (_negate) if (_negate)
_doIt=!_doIt; _doIt=!_doIt;
NSDebugMLLog(@"gswdync",@"_doIt=%s",_doIt ? "YES" : "NO"); NSDebugMLLog(@"gswdync",@"defname=%@ condition=%@ negate=%@ evaluatedCondition=%s evaluatedNegate=%s _doIt=%s",
[self definitionName],
condition,
negate,
(_condition ? "YES" : "NO"),
(_negate ? "YES" : "NO"),
(_doIt ? "YES" : "NO"));
if (_doIt) if (_doIt)
{ {
GSWRequest* _request=[context_ request]; GSWRequest* _request=[context_ request];

View file

@ -25,7 +25,7 @@
static char rcsId[] = "$Id$"; static char rcsId[] = "$Id$";
#include <GSWeb/GSWeb.h> #include <GSWeb/GSWeb.h>
@class EOUndoManager;
//==================================================================== //====================================================================
@implementation GSWDisplayGroup @implementation GSWDisplayGroup
@ -102,6 +102,7 @@ Description: <EOKeyValueUnarchiver: 0x1a84d20>
if ((self=[self init])) if ((self=[self init]))
{ {
LOGObjectFnStart(); LOGObjectFnStart();
NSDebugMLLog(@"gswdisplaygroup",@"GSWDisplayGroup %p",self);
[self setNumberOfObjectsPerBatch: [self setNumberOfObjectsPerBatch:
[unarchiver decodeIntForKey:@"numberOfObjectsPerBatch"]]; [unarchiver decodeIntForKey:@"numberOfObjectsPerBatch"]];
[self setFetchesOnLoad: [self setFetchesOnLoad:
@ -210,21 +211,85 @@ Description: <EOKeyValueUnarchiver: 0x1a84d20>
LOGObjectFnStop(); LOGObjectFnStop();
}; };
-(void)_addQualifiersToArray:(id)array_ -(void)_addQualifiersToArray:(NSMutableArray*)array
forValues:(id)values_ forValues:(NSDictionary*)values
operatorSelector:(SEL)selector_ operatorSelector:(SEL)sel
{ {
//OK
NSEnumerator *enumerator=nil;
NSString *key=nil;
NSString *op=nil;
LOGObjectFnStart(); LOGObjectFnStart();
LOGObjectFnNotImplemented(); //TODOFN NSDebugMLLog(@"gswdisplaygroup",@"array=%@",array);
NSDebugMLLog(@"gswdisplaygroup",@"values=%@",values);
NSDebugMLLog(@"gswdisplaygroup",@"operatorSelector=%p: %@",
(void*)sel,
NSStringFromSelector(sel));
enumerator = [values keyEnumerator];
while((key = [enumerator nextObject]))
{
EOQualifier* qualifier=nil;
id value=[values objectForKey:key];
NSDebugMLLog(@"gswdisplaygroup",@"key=%@ value=%@",key,value);
qualifier=[self _qualifierForKey:key
value:value
operatorSelector:sel];
NSDebugMLLog(@"gswdisplaygroup",@"qualifier=%@",qualifier);
if (qualifier)
[array addObject:qualifier];
};
NSDebugMLLog(@"gswdisplaygroup",@"array=%@",array);
LOGObjectFnStop(); LOGObjectFnStop();
}; };
-(id)_qualifierForKey:(id)key -(EOQualifier*)_qualifierForKey:(id)key
value:(id)value value:(id)value
operatorSelector:(SEL)selector_ operatorSelector:(SEL)sel
{ {
LOGObjectFnNotImplemented(); //TODOFN //near OK (see VERIFY)
return nil; EOClassDescription* cd=nil;
EOQualifier* qualifier=nil;
NSException* validateException=nil;
LOGObjectFnStart();
NSDebugMLLog(@"gswdisplaygroup",@"value=%@",value);
NSDebugMLLog(@"gswdisplaygroup",@"operatorSelector=%p: %@",
(void*)sel,
NSStringFromSelector(sel));
cd=[_dataSource classDescriptionForObjects];// //ret [EOEntityClassDescription]: <EOEntityClassDescription: 0x1a3c7b0>
validateException=[cd validateValue:value
forKey:key];
NSDebugMLLog(@"gswdisplaygroup",@"validateException=%@",validateException);
if (validateException)
{
[validateException raise]; //VERIFY
}
else
{
NSString* op=nil;
NSString* fvalue=value;
//VERIFY!!
op = [_queryOperator objectForKey:key];
NSDebugMLLog(@"gswdisplaygroup",@"op=%@",op);
if(op)
sel = [EOQualifier operatorSelectorForString:op];
NSDebugMLLog(@"gswdisplaygroup",@"operatorSelector=%p: %@",
(void*)sel,
NSStringFromSelector(sel));
NSDebugMLLog(@"gswdisplaygroup",@"_defaultStringMatchFormat=%@",_defaultStringMatchFormat);
if (_defaultStringMatchFormat)
fvalue=[NSString stringWithFormat:_defaultStringMatchFormat,
value];//VERIFY !!!
NSDebugMLLog(@"gswdisplaygroup",@"fvalue=%@",fvalue);
qualifier=[[[EOKeyValueQualifier alloc]
initWithKey:key
operatorSelector:sel
value:fvalue] autorelease];
};
NSDebugMLLog(@"gswdisplaygroup",@"qualifier=%@",qualifier);
return qualifier;
}; };
-(BOOL)_deleteObjectsAtIndexes:(id)indexes_ -(BOOL)_deleteObjectsAtIndexes:(id)indexes_
@ -271,7 +336,7 @@ Description: <EOKeyValueUnarchiver: 0x1a84d20>
-(void)_notifySelectionChanged -(void)_notifySelectionChanged
{ {
LOGObjectFnStart(); LOGObjectFnStart();
LOGObjectFnNotImplemented(); //TODOFN [EOObserverCenter notifyObserversObjectWillChange:nil];//OK ?
LOGObjectFnStop(); LOGObjectFnStop();
}; };
@ -280,7 +345,8 @@ Description: <EOKeyValueUnarchiver: 0x1a84d20>
-(void)_notifyRowChanged:(int)row_ -(void)_notifyRowChanged:(int)row_
{ {
LOGObjectFnStart(); LOGObjectFnStart();
LOGObjectFnNotImplemented(); //TODOFN //-1 ==> nil ?
[EOObserverCenter notifyObserversObjectWillChange:nil]; //VERIFY
LOGObjectFnStop(); LOGObjectFnStop();
}; };
@ -292,9 +358,20 @@ Description: <EOKeyValueUnarchiver: 0x1a84d20>
{ {
LOGObjectFnStart(); LOGObjectFnStart();
//TODOFN
if (selector_==@selector(displayGroup:didFetchObjects:)) //TODO ????
{
//Do it on object1
if(_delegateRespondsTo.didFetchObjects)
[delegate displayGroup:object1
didFetchObjects:object2];
}
else
{
LOGObjectFnNotImplemented(); //TODOFN LOGObjectFnNotImplemented(); //TODOFN
};
LOGObjectFnStop(); LOGObjectFnStop();
return nil; return self; //??
}; };
@ -308,12 +385,13 @@ Description: <EOKeyValueUnarchiver: 0x1a84d20>
}; };
-(id)undoManager -(EOUndoManager*)undoManager
{ {
EOUndoManager* undoManager=nil;
LOGObjectFnStart(); LOGObjectFnStart();
LOGObjectFnNotImplemented(); //TODOFN undoManager=[[_dataSource editingContext] undoManager];
LOGObjectFnStop(); LOGObjectFnStop();
return nil; return undoManager;
}; };
-(void)objectsInvalidatedInEditingContext:(id)object_ -(void)objectsInvalidatedInEditingContext:(id)object_
@ -714,6 +792,7 @@ Description: <EOKeyValueUnarchiver: 0x1a84d20>
- (NSArray *)displayedObjects - (NSArray *)displayedObjects
{ {
//OK
return _displayedObjects; return _displayedObjects;
} }
@ -825,10 +904,18 @@ Description: <EOKeyValueUnarchiver: 0x1a84d20>
// fetch // fetch
- (id)fetch - (id)fetch
//Near OK
{ {
BOOL fetch = YES; BOOL fetch = YES;
EOUndoManager* undoManager=nil;
LOGObjectFnStart(); LOGObjectFnStart();
//[self endEditing];//WO45P3 ret 1 //TODO if NO ?
[[NSNotificationCenter defaultCenter]
postNotificationName:@"WODisplayGroupWillFetch" //TODO Name
object:self];
undoManager=[self undoManager];//<EOUndoManager: 0x1832190> //WO45P3
[undoManager removeAllActionsWithTarget:self];//WO45P3
[_dataSource setQualifierBindings:_queryBindings];//WO45P3
if(_delegateRespondsTo.shouldFetchObjects == YES) if(_delegateRespondsTo.shouldFetchObjects == YES)
fetch = [delegate displayGroupShouldFetch:self]; fetch = [delegate displayGroupShouldFetch:self];
@ -837,20 +924,18 @@ Description: <EOKeyValueUnarchiver: 0x1a84d20>
{ {
NSArray *objects=nil; NSArray *objects=nil;
objects = [_dataSource fetchObjects]; objects = [_dataSource fetchObjects];//OK WO45P3
[self setObjectArray:objects]; [self setObjectArray:objects];//OK
[self _notify:@selector(displayGroup:didFetchObjects:)
if(_delegateRespondsTo.didFetchObjects == YES) with:self
[delegate displayGroup:self with:_allObjects];
didFetchObjects:_allObjects]; /*IN setObjectArray: // selection
// selection
if ([self selectsFirstObjectAfterFetch] == YES) { if ([self selectsFirstObjectAfterFetch] == YES) {
[self setCurrentBatchIndex:1]; [self setCurrentBatchIndex:1];
} */
}; };
LOGObjectFnStop(); LOGObjectFnStop();
return nil;//FIXME ??
return nil;//FIXME
} }
//-------------------------------------------------------------------- //--------------------------------------------------------------------
@ -1112,50 +1197,38 @@ Description: <EOKeyValueUnarchiver: 0x1a84d20>
- (EOQualifier *)qualifierFromQueryValues - (EOQualifier *)qualifierFromQueryValues
{ {
//Near OK
EOQualifier* resultQualifier=nil; EOQualifier* resultQualifier=nil;
NSMutableArray *array=nil; NSMutableArray *array=nil;
NSEnumerator *enumerator=nil;
NSString *key=nil;
NSString *op=nil;
SEL operatorSelector=nil;
LOGObjectFnStart(); LOGObjectFnStart();
NSDebugMLLog(@"gswdisplaygroup",@"_queryMatch=%@",
_queryMatch);
NSDebugMLLog(@"gswdisplaygroup",@"_defaultStringMatchOperator=%@ EOQualifier sel:%p",
_defaultStringMatchOperator,
(void*)[EOQualifier operatorSelectorForString:_defaultStringMatchOperator]);
array = [NSMutableArray arrayWithCapacity:8]; array = [NSMutableArray arrayWithCapacity:8];
enumerator = [_queryMatch keyEnumerator]; [self _addQualifiersToArray:array
while((key = [enumerator nextObject])) forValues:_queryMax
{ operatorSelector:EOQualifierOperatorLessThan];//LessThan ??
op = [_queryOperator objectForKey:key]; [self _addQualifiersToArray:array
forValues:_queryMin
operatorSelector:EOQualifierOperatorGreaterThan];//GreaterThan ??
if(op == nil) NSDebugMLLog(@"gswdisplaygroup",@"_defaultStringMatchOperator=%@ EOQualifier sel:%p",
operatorSelector = EOQualifierOperatorEqual; _defaultStringMatchOperator,
else (void*)[EOQualifier operatorSelectorForString:_defaultStringMatchOperator]);
operatorSelector = [EOQualifier operatorSelectorForString:op]; [self _addQualifiersToArray:array
forValues:_queryMatch
operatorSelector:[EOQualifier operatorSelectorForString:_defaultStringMatchOperator]];//VERIFY
[array addObject:[[[EOKeyValueQualifier alloc] NSDebugMLLog(@"gswdisplaygroup",@"array=%@",array);
initWithKey:key if ([array count]==1)
operatorSelector:operatorSelector resultQualifier=[array objectAtIndex:0];
value:[_queryMatch objectForKey:key]] autorelease]]; else if ([array count]>1)
}
enumerator = [_queryMax keyEnumerator];
while((key = [enumerator nextObject]))
{
[array addObject:[[[EOKeyValueQualifier alloc]
initWithKey:key
operatorSelector:EOQualifierOperatorLessThan
value:[_queryMax objectForKey:key]] autorelease]];
}
enumerator = [_queryMin keyEnumerator];
while((key = [enumerator nextObject]))
{
[array addObject:[[[EOKeyValueQualifier alloc]
initWithKey:key
operatorSelector:EOQualifierOperatorGreaterThan
value:[_queryMin objectForKey:key]] autorelease]];
}
resultQualifier=[[[EOAndQualifier alloc] initWithQualifierArray:array] autorelease]; resultQualifier=[[[EOAndQualifier alloc] initWithQualifierArray:array] autorelease];
NSDebugMLLog(@"gswdisplaygroup",@"resultQualifier=%@",resultQualifier);
LOGObjectFnStop(); LOGObjectFnStop();
return resultQualifier; return resultQualifier;
} }
@ -1165,13 +1238,29 @@ Description: <EOKeyValueUnarchiver: 0x1a84d20>
- (void)qualifyDataSource - (void)qualifyDataSource
{ {
// near OK
EOQualifier* qualifier=nil;
LOGObjectFnStart(); LOGObjectFnStart();
[_dataSource setQualifier:[self qualifierFromQueryValues]]; NS_DURING //for trace purpose
{
//TODO
//[self endEditing];//WO45P3 ret 1 //TODO if NO ?
[self setInQueryMode:NO];
qualifier=[self qualifierFromQueryValues];//OK
NSDebugMLLog(@"gswdisplaygroup",@"qualifier=%@",qualifier);
[_dataSource setAuxiliaryQualifier:qualifier];//OK
_flags.queryMode = NO; NSDebugMLLog0(@"gswdisplaygroup",@"Will fetch");
[self fetch]; [self fetch];//OK use ret Value ?
NSDebugMLLog0(@"gswdisplaygroup",@"End fetch");
LOGObjectFnNotImplemented(); //TODOFN }
NS_HANDLER
{
NSLog(@"%@ (%@)",localException,[localException reason]);
LOGException(@"%@ (%@)",localException,[localException reason]);
[localException raise];
}
NS_ENDHANDLER;
LOGObjectFnStop(); LOGObjectFnStop();
}; };
@ -1180,11 +1269,15 @@ Description: <EOKeyValueUnarchiver: 0x1a84d20>
- (void)qualifyDisplayGroup - (void)qualifyDisplayGroup
{ {
EOQualifier* qualifier=nil;
LOGObjectFnStart(); LOGObjectFnStart();
[self setQualifier:[self qualifierFromQueryValues]]; [self setInQueryMode:NO];
qualifier=[self qualifierFromQueryValues];
NSDebugMLLog(@"gswdisplaygroup",@"qualifier=%@",qualifier);
[self setQualifier:qualifier];
NSDebugMLLog0(@"gswdisplaygroup",@"updateDisplayedObjects");
[self updateDisplayedObjects]; [self updateDisplayedObjects];
_flags.queryMode = NO;
LOGObjectFnStop(); LOGObjectFnStop();
} }
@ -1233,8 +1326,9 @@ Description: <EOKeyValueUnarchiver: 0x1a84d20>
-(void)redisplay -(void)redisplay
{ {
//VERIFY
LOGObjectFnStart(); LOGObjectFnStart();
LOGObjectFnNotImplemented(); //TODOFN [self _notifyRowChanged:-1]; // -1 ??
LOGObjectFnStop(); LOGObjectFnStop();
}; };
@ -1264,8 +1358,10 @@ Description: <EOKeyValueUnarchiver: 0x1a84d20>
{ {
id obj=nil; id obj=nil;
LOGObjectFnStart(); LOGObjectFnStart();
NSDebugMLLog(@"gswdisplaygroup",@"_selectedObjects count=%d",[_selectedObjects count]);
if([_selectedObjects count]) if([_selectedObjects count])
obj=[_selectedObjects objectAtIndex:0]; obj=[_selectedObjects objectAtIndex:0];
NSDebugMLLog(@"gswdisplaygroup",@"selectedObject=%@",obj);
LOGObjectFnStop(); LOGObjectFnStop();
return obj; return obj;
@ -1338,7 +1434,11 @@ Description: <EOKeyValueUnarchiver: 0x1a84d20>
{ {
BOOL result=NO; BOOL result=NO;
LOGObjectFnStart(); LOGObjectFnStart();
if([_allObjects containsObject:object] == NO) NSDebugMLLog(@"gswdisplaygroup",@"object=%@",object);
NSDebugMLLog(@"gswdisplaygroup",@"_allObjects=%@",_allObjects);
NSDebugMLLog(@"gswdisplaygroup",@"[_allObjects containsObject:object]=%d",
(int)[_allObjects containsObject:object]);
if(![_allObjects containsObject:object])
result=NO; result=NO;
else else
result=[self setSelectionIndexes: result=[self setSelectionIndexes:
@ -1346,13 +1446,13 @@ Description: <EOKeyValueUnarchiver: 0x1a84d20>
[NSNumber numberWithUnsignedInt: [NSNumber numberWithUnsignedInt:
[_allObjects [_allObjects
indexOfObject:object]]]]; indexOfObject:object]]]];
NSDebugMLLog(@"gswdisplaygroup",@"result=%d",(int)result);
LOGObjectFnStop(); LOGObjectFnStop();
return result; return result;
} }
//-------------------------------------------------------------------- //--------------------------------------------------------------------
// selectObjectsIdenticalTo: // selectObjectsIdenticalTo:
- (BOOL)selectObjectsIdenticalTo:(NSArray *)objects - (BOOL)selectObjectsIdenticalTo:(NSArray *)objects
{ {
BOOL result=NO; BOOL result=NO;
@ -1363,22 +1463,32 @@ Description: <EOKeyValueUnarchiver: 0x1a84d20>
id dispObj=nil; id dispObj=nil;
LOGObjectFnStart(); LOGObjectFnStart();
// Array of new selected indexes
array = [NSMutableArray arrayWithCapacity:8]; array = [NSMutableArray arrayWithCapacity:8];
// ENumeratoe Objects to select
objsEnum = [objects objectEnumerator]; objsEnum = [objects objectEnumerator];
// For each object to select
while((object = [objsEnum nextObject])) while((object = [objsEnum nextObject]))
{ {
//Enumerated displayed objects
dispEnum = [_displayedObjects objectEnumerator]; dispEnum = [_displayedObjects objectEnumerator];
// For each already displayed object
while((dispObj = [dispEnum nextObject])) while((dispObj = [dispEnum nextObject]))
{ {
//if object to select is displayed
if(dispObj == object) if(dispObj == object)
{ {
// Add it to array of selected indexes
[array addObject:[NSNumber numberWithUnsignedInt: [array addObject:[NSNumber numberWithUnsignedInt:
[_allObjects indexOfObject:object]]]; [_allObjects indexOfObject:object]]];
break; break;
}; };
}; };
//???
if(dispObj == nil) if(dispObj == nil)
{ {
[array removeAllObjects]; [array removeAllObjects];
@ -1396,6 +1506,20 @@ Description: <EOKeyValueUnarchiver: 0x1a84d20>
- (BOOL)selectObjectsIdenticalTo:(NSArray *)objects - (BOOL)selectObjectsIdenticalTo:(NSArray *)objects
selectFirstOnNoMatch:(BOOL)flag selectFirstOnNoMatch:(BOOL)flag
{ {
/*
//--------------------------------------------------------------------
// selectObjectsIdenticalTo:selectFirstOnNoMatch: //WO45
-(BOOL)selectObjectsIdenticalTo:(NSArray*)objects //0x1962ca8
selectFirstOnNoMatch:(int)index //0
{
self setSelectionIndexes:indexes of objects in objects? //ret 1
return 1; ??
}
*/
BOOL result=NO; BOOL result=NO;
unsigned index=0; unsigned index=0;
LOGObjectFnStart(); LOGObjectFnStart();
@ -1601,6 +1725,7 @@ Description: <EOKeyValueUnarchiver: 0x1a84d20>
- (void)setInQueryMode:(BOOL)flag - (void)setInQueryMode:(BOOL)flag
{ {
LOGObjectFnStart(); LOGObjectFnStart();
//[self inQueryMode]//WO45P3
_flags.queryMode = flag; _flags.queryMode = flag;
LOGObjectFnStop(); LOGObjectFnStop();
} }
@ -1661,12 +1786,21 @@ Description: <EOKeyValueUnarchiver: 0x1a84d20>
- (void)setObjectArray:(NSArray *)objects - (void)setObjectArray:(NSArray *)objects
{ {
LOGObjectFnStart(); LOGObjectFnStart();
//self selectedObjects
// self updateDisplayedObjects
NSDebugMLog(@"objects=%@",objects); NSDebugMLog(@"objects=%@",objects);
[_allObjects removeAllObjects]; [_allObjects removeAllObjects];
[_allObjects addObjectsFromArray:objects]; [_allObjects addObjectsFromArray:objects];
[self updateDisplayedObjects]; [self updateDisplayedObjects];
if ([self selectsFirstObjectAfterFetch])
{
[self selectObjectsIdenticalTo:_selection //TODO _selection ??
selectFirstOnNoMatch:1];
[self redisplay];
}
// TODO selection // TODO selection
LOGObjectFnStop(); LOGObjectFnStop();
} }
@ -1721,16 +1855,33 @@ Description: <EOKeyValueUnarchiver: 0x1a84d20>
- (BOOL)setSelectionIndexes:(NSArray *)selection_ - (BOOL)setSelectionIndexes:(NSArray *)selection_
{ {
NSEnumerator *objsEnum; //(0) object 0x2859148
NSNumber *number; /*
if objects to selet and no prev selection
{
[self endEditing]//ret 1
ASSIGN(_selection,selection_); //Array of indexes
[self _notifySelectionChanged]
STOP ?
}
*/
NSEnumerator *objsEnum=nil;
NSNumber *number=nil;
BOOL stop = NO; BOOL stop = NO;
BOOL retValue=NO;
LOGObjectFnStart(); LOGObjectFnStart();
//call selectedObjects //0x1a38b78
if(_delegateRespondsTo.shouldChangeSelection == YES) if(_delegateRespondsTo.shouldChangeSelection == YES
if([delegate displayGroup:self && [delegate displayGroup:self
shouldChangeSelectionToIndexes:selection_] == NO) shouldChangeSelectionToIndexes:selection_] == NO)
return NO; retValue=NO;
else
{
objsEnum = [selection_ objectEnumerator]; objsEnum = [selection_ objectEnumerator];
while((number = [objsEnum nextObject])) while((number = [objsEnum nextObject]))
{ {
@ -1743,14 +1894,13 @@ Description: <EOKeyValueUnarchiver: 0x1a84d20>
{ {
//return NO; //return NO;
stop = YES; stop = YES;
retValue=NO;
} }
return NO;
NS_ENDHANDLER; NS_ENDHANDLER;
} }
if (stop) { if (!stop)
return NO; {
}
[_selectedObjects removeAllObjects]; [_selectedObjects removeAllObjects];
objsEnum = [selection_ objectEnumerator]; objsEnum = [selection_ objectEnumerator];
@ -1766,9 +1916,10 @@ Description: <EOKeyValueUnarchiver: 0x1a84d20>
if(_delegateRespondsTo.didChangeSelectedObjects == YES) if(_delegateRespondsTo.didChangeSelectedObjects == YES)
[delegate displayGroupDidChangeSelectedObjects:self]; [delegate displayGroupDidChangeSelectedObjects:self];
};
};
LOGObjectFnStop(); LOGObjectFnStop();
return YES; return retValue;
} }
//-------------------------------------------------------------------- //--------------------------------------------------------------------
@ -1819,7 +1970,12 @@ Description: <EOKeyValueUnarchiver: 0x1a84d20>
NSEnumerator *objsEnum=nil; NSEnumerator *objsEnum=nil;
id object=nil; id object=nil;
LOGObjectFnStart(); LOGObjectFnStart();
//TODO
//self selectedObjects //() 0x1a38b78
//self allObjects 0x27cadf8
//self selectObjectsIdenticalTo:_selection selectFirstOnNoMatch:0
//self redisplay
//STOP
[_displayedObjects removeAllObjects]; [_displayedObjects removeAllObjects];
if(_delegateRespondsTo.displayArrayForObjects == YES) if(_delegateRespondsTo.displayArrayForObjects == YES)

View file

@ -30,12 +30,14 @@
//==================================================================== //====================================================================
@interface GSWDynamicElement : GSWElement @interface GSWDynamicElement : GSWElement
{ {
NSString* _definitionName; // Name of element in def file (.gswd) - Mainly for debugging purpose
}; };
-(id)initWithName:(NSString*)name_ -(id)initWithName:(NSString*)name_
associations:(NSDictionary*)associations_ associations:(NSDictionary*)associations_
template:(GSWElement*)template_; template:(GSWElement*)template_;
-(NSString*)definitionName;
-(void)setDefinitionName:(NSString*)definitionName;
@end @end
//==================================================================== //====================================================================

View file

@ -43,7 +43,31 @@ static char rcsId[] = "$Id$";
return self; return self;
}; };
//--------------------------------------------------------------------
-(void)dealloc
{
GSWLogAssertGood(self);
GSWLogC("Dealloc GSWDynamicElement");
GSWLogC("Dealloc GSWDynamicElement: name");
DESTROY(_definitionName);
GSWLogC("Dealloc GSWDynamicElement Super");
[super dealloc];
GSWLogC("End Dealloc GSWDynamicElement");
}
-(NSString*)definitionName
{
return _definitionName;
};
-(void)setDefinitionName:(NSString*)definitionName
{
NSDebugMLLog(@"gswdync",@"setDefinitionName1 in %p: %p %@",self,definitionName,definitionName);
ASSIGN(_definitionName,definitionName);
NSDebugMLLog(@"gswdync",@"setDefinitionName2 in %p: %p %@",self,_definitionName,_definitionName);
};
@end
//==================================================================== //====================================================================
@implementation GSWDynamicElement (GSWDynamicElement) @implementation GSWDynamicElement (GSWDynamicElement)
@ -54,7 +78,8 @@ static char rcsId[] = "$Id$";
//OK //OK
BOOL _result=NO; BOOL _result=NO;
LOGObjectFnStart(); LOGObjectFnStart();
NSDebugMLLog(@"gswdync",@"condition_=%@",condition_); NSDebugMLLog(@"gswdync",@"condition_=%@",
condition_);
if (condition_) if (condition_)
{ {
GSWComponent* _component=[_context component]; GSWComponent* _component=[_context component];
@ -68,6 +93,8 @@ static char rcsId[] = "$Id$";
#endif #endif
_result=boolValueWithDefaultFor(_value,YES); _result=boolValueWithDefaultFor(_value,YES);
}; };
NSDebugMLLog(@"gswdync",@"result=%s",
(_result ? "YES" : "NO"));
LOGObjectFnStop(); LOGObjectFnStop();
return _result; return _result;
}; };

View file

@ -48,6 +48,8 @@ extern BYTE ElementsMap_attributeElement;
file:(const char*)file_ file:(const char*)file_
line:(int)line_; line:(int)line_;
#endif #endif
-(NSString*)definitionName; //return nil (for non dynamic element)
@end @end
#ifdef NDEBBUG #ifdef NDEBBUG

View file

@ -72,6 +72,11 @@ BYTE ElementsMap_attributeElement = (BYTE)0x41;
}; };
}; };
#endif #endif
-(NSString*)definitionName
{
return nil; //return nil (for non dynamic element)
};
@end @end
//==================================================================== //====================================================================

View file

@ -108,11 +108,11 @@ static char rcsId[] = "$Id$";
LOGObjectFnStart(); LOGObjectFnStart();
GSWLogAssertGood(self); GSWLogAssertGood(self);
GSWLogAssertGood(_string); GSWLogAssertGood(_string);
//GSWLogC("_string deallocate"); GSWLogC("_string deallocate");
DESTROY(_string); DESTROY(_string);
//GSWLogC("_string deallocated"); GSWLogC("_string deallocated");
[super dealloc]; [super dealloc];
//GSWLogC("GSWElementIDString end of dealloc"); GSWLogC("GSWElementIDString end of dealloc");
}; };
-(void)getCString:(char*)buffer -(void)getCString:(char*)buffer
@ -180,6 +180,110 @@ static char rcsId[] = "$Id$";
return obj; return obj;
}; };
-(BOOL)isSearchOverForSenderID:senderID
{
BOOL over=NO;
if (senderID == nil)
[NSException raise:NSInvalidArgumentException
format:@"compare with nil"];
else
{
BOOL finished=NO;
NSCharacterSet* nonNumericSet=[[NSCharacterSet decimalDigitCharacterSet] invertedSet];
NSArray* selfElements=[self componentsSeparatedByString:@"."];
NSArray* senderIDElements=[senderID componentsSeparatedByString:@"."];
int i=0;
int selfElementsCount=[selfElements count];
int senderIDElementsCount=[senderIDElements count];
int count=min(selfElementsCount,senderIDElementsCount);
for(i=0;i<count && !over && !finished;i++)
{
NSString* selfElement=[selfElements objectAtIndex:i];
NSString* senderIDElement=[senderIDElements objectAtIndex:i];
BOOL selfElementIsNumeric=[selfElement rangeOfCharacterFromSet:nonNumericSet].length==0;
BOOL selfAStringIsNumeric=[senderIDElement rangeOfCharacterFromSet:nonNumericSet].length==0;
if (selfElementIsNumeric && selfAStringIsNumeric) //Numeric comparison
{
int selfIntValue=[selfElement intValue];
int senderIDIntValue=[senderIDElement intValue];
if (selfIntValue>senderIDIntValue)
over=YES;
}
else if (!selfElementIsNumeric && !selfAStringIsNumeric)//string comparison
{
if ([selfElement compare:senderIDElement]==NSOrderedDescending)
over=YES;
}
else
finished=YES;
};
if (!over && !finished)
{
if (selfElementsCount>senderIDElementsCount)
over=YES;
};
};
return over;
}
/*
{
NSComparisonResult result=NSOrderedSame;
if (aString == nil)
[NSException raise:NSInvalidArgumentException
format:@"compare with nil"];
else if (mask!=0) //TODO
[NSException raise:NSInvalidArgumentException
format:@"no options are allowed in GSWElementIDString compare"];
else if (aRange.location!=0)
[NSException raise:NSInvalidArgumentException
format:@"GSWElementIDString compare only on full string (range.location=%d instead of 0)",
aRange.location];
else if (aRange.length!=[self length])
[NSException raise:NSInvalidArgumentException
format:@"GSWElementIDString compare only on full string (range.length=%d instead of %d)",
aRange.length,
[self length]];
else
{
NSCharacterSet* nonNumericSet=[[NSCharacterSet decimalDigitCharacterSet] invertedSet];
NSArray* selfElements=[self componentsSeparatedByString:@"."];
NSArray* aStringElements=[aString componentsSeparatedByString:@"."];
int i=0;
int selfElementsCount=[selfElements count];
int aStringElementsCount=[aStringElements count];
int count=min(selfElementsCount,aStringElementsCount);
for(i=0;i<count && result==NSOrderedSame;i++)
{
NSString* selfElement=[selfElements objectAtIndex:i];
NSString* aStringElement=[aStringElements objectAtIndex:i];
BOOL selfElementIsNumeric=[selfElement rangeOfCharacterFromSet:nonNumericSet].length==0;
BOOL selfAStringIsNumeric=[aStringElement rangeOfCharacterFromSet:nonNumericSet].length==0;
if (selfElementIsNumeric && selfAStringIsNumeric) //Numeric comparison
{
int selfIntValue=[selfElement intValue];
int aStringIntValue=[aStringElement intValue];
result=(selfIntValue==aStringIntValue ? 0 : (selfIntValue>aStringIntValue ? NSOrderedDescending : NSOrderedAscending));
}
else if (selfElementIsNumeric) //we consider strictly num < string
result=NSOrderedAscending;
else if (selfAStringIsNumeric) //we consider strictly num < string
result=NSOrderedDescending;
else //string comparison
result=[selfElement compare:aStringElement];
};
if (result==NSOrderedSame)
{
if (selfElementsCount<aStringElementsCount)
result=NSOrderedAscending;
else if (selfElementsCount>aStringElementsCount)
result=NSOrderedDescending;
};
};
return result;
}
*/
@end @end
//==================================================================== //====================================================================

View file

@ -249,12 +249,14 @@ static char rcsId[] = "$Id$";
LOGObjectFnStartC("GSWForm"); LOGObjectFnStartC("GSWForm");
_senderID=[context_ senderID]; _senderID=[context_ senderID];
_elementID=[context_ elementID]; _elementID=[context_ elementID];
NSDebugMLLog(@"gswdync",@"ET=%@ id=%@ senderId=%@",[self class],_elementID,_senderID); NSDebugMLLog(@"gswdync",@"ET=%@ definition name=%@ id=%@ senderId=%@",
[self class],[self definitionName],_elementID,_senderID);
NS_DURING NS_DURING
{ {
GSWAssertCorrectElementID(context_);// Debug Only GSWAssertCorrectElementID(context_);// Debug Only
if ([self prefixMatchSenderIDInContext:context_]) //Avoid trying to find action if we are not the good component if ([self prefixMatchSenderIDInContext:context_]) //Avoid trying to find action if we are not the good component
{ {
BOOL searchIsOver=NO;
_isFormSubmited=[_elementID isEqualToString:_senderID]; _isFormSubmited=[_elementID isEqualToString:_senderID];
NSDebugMLLog(@"gswdync",@"ET=%@ id=%@ senderId=%@ _isFormSubmited=%s", NSDebugMLLog(@"gswdync",@"ET=%@ id=%@ senderId=%@ _isFormSubmited=%s",
[self class], [self class],
@ -278,11 +280,21 @@ static char rcsId[] = "$Id$";
[context_ _setIsMultipleSubmitForm:_multipleSubmit]; [context_ _setIsMultipleSubmitForm:_multipleSubmit];
}; };
[context_ appendZeroElementIDComponent]; [context_ appendZeroElementIDComponent];
for(i=0;!_element && i<[dynamicChildren count];i++) for(i=0;!_element && !searchIsOver && i<[dynamicChildren count];i++)
{ {
NSDebugMLLog(@"gswdync",@"ET=%@ id=%@",[[dynamicChildren objectAtIndex:i] class],[context_ elementID]); NSDebugMLLog(@"gswdync",@"ET=%@ id=%@",
[[dynamicChildren objectAtIndex:i] class],
[context_ elementID]);
_element=[[dynamicChildren objectAtIndex:i] invokeActionForRequest:request_ _element=[[dynamicChildren objectAtIndex:i] invokeActionForRequest:request_
inContext:context_]; inContext:context_];
// if (![context_ _wasFormSubmitted] && [[context_ elementID] compare:_senderID]==NSOrderedDescending)
if (![context_ _wasFormSubmitted] && [[context_ elementID] isSearchOverForSenderID:_senderID])
{
NSDebugMLLog(@"gswdync",@"id=%@ senderid=%@ => search is over",
[context_ elementID],
_senderID);
searchIsOver=YES;
};
[context_ incrementLastElementIDComponent]; [context_ incrementLastElementIDComponent];
}; };
[context_ deleteLastElementIDComponent]; [context_ deleteLastElementIDComponent];
@ -298,9 +310,13 @@ static char rcsId[] = "$Id$";
[context_ _setFormSubmitted:NO]; [context_ _setFormSubmitted:NO];
}; };
_elementID=[context_ elementID]; _elementID=[context_ elementID];
NSDebugMLLog(@"gswdync",@"END ET=%@ id=%@",[self class],_elementID); NSDebugMLLog(@"gswdync",@"END ET=%@ def name=%@ id=%@",
[self class],
[self definitionName],
_elementID);
#ifndef NDEBBUG #ifndef NDEBBUG
NSAssert(elementsNb==[(GSWElementIDString*)_elementID elementsNb],@"GSWForm invokeActionForRequest: bad elementID"); NSAssert(elementsNb==[(GSWElementIDString*)_elementID elementsNb],
@"GSWForm invokeActionForRequest: bad elementID");
#endif #endif
}; };
} }
@ -316,10 +332,12 @@ static char rcsId[] = "$Id$";
NS_ENDHANDLER; NS_ENDHANDLER;
_senderID=[context_ senderID]; _senderID=[context_ senderID];
_elementID=[context_ elementID]; _elementID=[context_ elementID];
if (![context_ _wasActionInvoked] && [_elementID compare:_senderID]!=NSOrderedAscending) //if (![context_ _wasActionInvoked] && [_elementID compare:_senderID]!=NSOrderedAscending)
if (![context_ _wasActionInvoked] && [_elementID isSearchOverForSenderID:_senderID])
{ {
LOGError(@"Action not invoked at the end of %@ (id=%@) senderId=%@", LOGError(@"Action not invoked at the end of %@ (def name=%@) (id=%@) senderId=%@",
[self class], [self class],
[self definitionName],
_elementID, _elementID,
_senderID); _senderID);
}; };

View file

@ -500,6 +500,8 @@ static char rcsId[] = "$Id$";
BYTE element=0; BYTE element=0;
int elementsN[4]={0,0,0,0}; int elementsN[4]={0,0,0,0};
BOOL inChildren=NO; BOOL inChildren=NO;
BOOL searchIsOver=NO;
NSString* _senderID=nil;
#ifndef NDEBUG #ifndef NDEBUG
NSString* debugElementID=nil; NSString* debugElementID=nil;
#endif #endif
@ -507,7 +509,8 @@ static char rcsId[] = "$Id$";
NSDebugMLLog(@"gswdync",@"ET=%@ id=%@",[self class],[context_ elementID]); NSDebugMLLog(@"gswdync",@"ET=%@ id=%@",[self class],[context_ elementID]);
NSDebugMLLog(@"gswdync",@"_senderID=%@",[context_ senderID]); NSDebugMLLog(@"gswdync",@"_senderID=%@",[context_ senderID]);
GSWAssertCorrectElementID(context_);// Debug Only GSWAssertCorrectElementID(context_);// Debug Only
for(elementN=0;!_element && elementN<[elementsMap length];elementN++) _senderID=[context_ senderID];
for(elementN=0;!_element && !searchIsOver && elementN<[elementsMap length];elementN++)
{ {
element=(BYTE)elements[elementN]; element=(BYTE)elements[elementN];
if (element==ElementsMap_dynamicElement) if (element==ElementsMap_dynamicElement)
@ -530,7 +533,10 @@ static char rcsId[] = "$Id$";
#ifndef NDEBUG #ifndef NDEBUG
if (![debugElementID isEqualToString:[context_ elementID]]) if (![debugElementID isEqualToString:[context_ elementID]])
{ {
NSDebugMLLog(@"gswdync",@"ERROR class=%@ debugElementID=%@ [context_ elementID]=%@",[self class],debugElementID,[context_ elementID]); NSDebugMLLog(@"gswdync",@"ERROR class=%@ debugElementID=%@ [context_ elementID]=%@",
[self class],
debugElementID,
[context_ elementID]);
}; };
#endif #endif
@ -543,9 +549,19 @@ static char rcsId[] = "$Id$";
elementsN[1]++; elementsN[1]++;
else if (element==ElementsMap_dynamicElement) else if (element==ElementsMap_dynamicElement)
{ {
NSDebugMLLog(@"gswdync",@"ET=%@ id=%@",[[_dynamicChildren objectAtIndex:elementsN[2]] class],[context_ elementID]); NSDebugMLLog(@"gswdync",@"ET=%@ id=%@",
[[_dynamicChildren objectAtIndex:elementsN[2]] class],
[context_ elementID]);
_element=[[_dynamicChildren objectAtIndex:elementsN[2]] invokeActionForRequest:request_ _element=[[_dynamicChildren objectAtIndex:elementsN[2]] invokeActionForRequest:request_
inContext:context_]; inContext:context_];
//if (![context_ _wasFormSubmitted] && [[context_ elementID] compare:_senderID]==NSOrderedDescending)
if (![context_ _wasFormSubmitted] && [[context_ elementID] isSearchOverForSenderID:_senderID])
{
NSDebugMLLog(@"gswdync",@"id=%@ senderid=%@ => search is over",
[context_ elementID],
_senderID);
searchIsOver=YES;
};
[context_ incrementLastElementIDComponent]; [context_ incrementLastElementIDComponent];
elementsN[2]++; elementsN[2]++;
} }

View file

@ -363,9 +363,12 @@ static char rcsId[] = "$Id$";
const BYTE* elements=[elementsMap bytes]; const BYTE* elements=[elementsMap bytes];
BYTE element=0; BYTE element=0;
int elementsN[3]={0,0,0}; int elementsN[3]={0,0,0};
BOOL searchIsOver=NO;
NSString* _senderID=nil;
NSDebugMLLog(@"gswdync",@"ET=%@ id=%@ senderId=%@",[self class],[context_ elementID],[context_ senderID]); NSDebugMLLog(@"gswdync",@"ET=%@ id=%@ senderId=%@",[self class],[context_ elementID],[context_ senderID]);
GSWAssertCorrectElementID(context_);// Debug Only GSWAssertCorrectElementID(context_);// Debug Only
for(elementN=0;!_element && elementN<[elementsMap length];elementN++) _senderID=[context_ senderID];
for(elementN=0;!_element && !searchIsOver && elementN<[elementsMap length];elementN++)
{ {
element=(BYTE)elements[elementN]; element=(BYTE)elements[elementN];
if (element==ElementsMap_htmlBareString) if (element==ElementsMap_htmlBareString)
@ -375,6 +378,14 @@ static char rcsId[] = "$Id$";
NSDebugMLLog(@"gswdync",@"ET=%@ id=%@",[[_dynamicChildren objectAtIndex:elementsN[1]] class],[context_ elementID]); NSDebugMLLog(@"gswdync",@"ET=%@ id=%@",[[_dynamicChildren objectAtIndex:elementsN[1]] class],[context_ elementID]);
_element=[[_dynamicChildren objectAtIndex:elementsN[1]] invokeActionForRequest:request_ _element=[[_dynamicChildren objectAtIndex:elementsN[1]] invokeActionForRequest:request_
inContext:context_]; inContext:context_];
// if (![context_ _wasFormSubmitted] && [[context_ elementID] compare:_senderID]==NSOrderedDescending)
if (![context_ _wasFormSubmitted] && [[context_ elementID] isSearchOverForSenderID:_senderID])
{
NSDebugMLLog(@"gswdync",@"id=%@ senderid=%@ => search is over",
[context_ elementID],
_senderID);
searchIsOver=YES;
};
[context_ incrementLastElementIDComponent]; [context_ incrementLastElementIDComponent];
elementsN[1]++; elementsN[1]++;
} }

View file

@ -547,7 +547,9 @@ static char rcsId[] = "$Id$";
int elementsNb=[(GSWElementIDString*)[context_ elementID]elementsNb]; int elementsNb=[(GSWElementIDString*)[context_ elementID]elementsNb];
#endif #endif
LOGObjectFnStart(); LOGObjectFnStart();
NSDebugMLLog(@"gswdync",@"ET=%@ id=%@ senderId=%@",[self class],[context_ elementID],[context_ senderID]); NSDebugMLLog(@"gswdync",@"ET=%@ definition name=%@ id=%@ senderId=%@",
[self class],[self definitionName],
[context_ elementID],[context_ senderID]);
GSWAssertCorrectElementID(context_);// Debug Only GSWAssertCorrectElementID(context_);// Debug Only
_senderID=[context_ senderID]; _senderID=[context_ senderID];
_elementID=[context_ elementID]; _elementID=[context_ elementID];
@ -646,7 +648,8 @@ static char rcsId[] = "$Id$";
NSDebugMLLog(@"gswdync",@"GSWHTMLURLValuedElement invoke _element=%@",_element); NSDebugMLLog(@"gswdync",@"GSWHTMLURLValuedElement invoke _element=%@",_element);
NSDebugMLLog(@"gswdync",@"_senderID=%@",[context_ senderID]); NSDebugMLLog(@"gswdync",@"_senderID=%@",[context_ senderID]);
NSDebugMLLog(@"gswdync",@"_elementID=%@",[context_ elementID]); NSDebugMLLog(@"gswdync",@"_elementID=%@",[context_ elementID]);
NSDebugMLLog(@"gswdync",@"END ET=%@ id=%@",[self class],[context_ elementID]); NSDebugMLLog(@"gswdync",@"END ET=%@ definition name=%@ id=%@",
[self class],[self definitionName],[context_ elementID]);
#ifndef NDEBBUG #ifndef NDEBBUG
NSAssert(elementsNb==[(GSWElementIDString*)[context_ elementID]elementsNb],@"GSWHyperlink invokeActionForRequest: bad elementID"); NSAssert(elementsNb==[(GSWElementIDString*)[context_ elementID]elementsNb],@"GSWHyperlink invokeActionForRequest: bad elementID");
#endif #endif

View file

@ -201,7 +201,8 @@ static char rcsId[] = "$Id$";
_disabledInContext=[self disabledInContext:context_]; _disabledInContext=[self disabledInContext:context_];
[response_ _appendContentAsciiString:@" type=image"]; [response_ _appendContentAsciiString:@" type=image"];
_name=[self nameInContext:context_]; _name=[self nameInContext:context_];
NSDebugMLLog(@"gswdync",@"_name=%@",_name); NSDebugMLLog(@"gswdync",@"definition name=%@ _name=%@",
[self definitionName],_name);
[response_ _appendContentAsciiString:@" name=\""]; [response_ _appendContentAsciiString:@" name=\""];
[response_ appendContentHTMLAttributeValue:_name]; [response_ appendContentHTMLAttributeValue:_name];
[response_ appendContentCharacter:'"']; [response_ appendContentCharacter:'"'];
@ -337,7 +338,8 @@ static char rcsId[] = "$Id$";
_senderID=[context_ senderID]; _senderID=[context_ senderID];
NSDebugMLog(@"_senderID=%@",_senderID); NSDebugMLog(@"_senderID=%@",_senderID);
_elementID=[context_ elementID]; _elementID=[context_ elementID];
NSDebugMLog(@"_elementID=%@",_elementID); NSDebugMLog(@"definition name=%@ _elementID=%@",
[self definitionName],_elementID);
if ([_elementID isEqualToString:_senderID]) if ([_elementID isEqualToString:_senderID])
{ {
//TODO //TODO

View file

@ -107,11 +107,14 @@ static char rcsId[] = "$Id$";
//-------------------------------------------------------------------- //--------------------------------------------------------------------
-(NSString*)description -(NSString*)description
{ {
NSString* dscr=nil;
GSWLogAssertGood(self); GSWLogAssertGood(self);
return [NSString stringWithFormat:@"<%s %p - keyPath=%@>", dscr=[NSString stringWithFormat:@"<%s %p -",
object_get_class_name(self), object_get_class_name(self),
(void*)self, (void*)self];
dscr=[dscr stringByAppendingFormat:@" keyPath=%@>",
keyPath]; keyPath];
return dscr;
}; };
@end @end

View file

@ -246,6 +246,7 @@ static char rcsId[] = "$Id$";
{ {
//OK //OK
LOGObjectFnStart(); LOGObjectFnStart();
NSDebugMLLog(@"sessions",@"newflag=%d",(int)_flag);
storesIDsInCookies=_flag; storesIDsInCookies=_flag;
LOGObjectFnStop(); LOGObjectFnStop();
}; };

View file

@ -186,7 +186,8 @@ static char rcsId[] = "$Id$";
[localException raise]; [localException raise];
} }
NS_ENDHANDLER; NS_ENDHANDLER;
if (![context_ _wasActionInvoked] && [[[context_ elementID] parentElementIDString] compare:[context_ senderID]]!=NSOrderedAscending) //if (![context_ _wasActionInvoked] && [[[context_ elementID] parentElementIDString] compare:[context_ senderID]]!=NSOrderedAscending)
if (![context_ _wasActionInvoked] && [[[context_ elementID] parentElementIDString] isSearchOverForSenderID:[context_ senderID]])
{ {
LOGError(@"Action not invoked at the end of %@ (id=%@) senderId=%@", LOGError(@"Action not invoked at the end of %@ (id=%@) senderId=%@",
[self class], [self class],

View file

@ -39,9 +39,11 @@ static char rcsId[] = "$Id$";
template:nil])) template:nil]))
{ {
NSMutableDictionary* _associations=[NSMutableDictionary dictionaryWithDictionary:associations_]; NSMutableDictionary* _associations=[NSMutableDictionary dictionaryWithDictionary:associations_];
[_associations removeObjectForKey:GSWComponentName__Key]; NSDebugMLLog(@"gswdync",@"GSWSwitchComponent: _associations=%@",_associations);
NSDebugMLLog(@"gswdync",@"GSWSwitchComponent: GSWComponentName__Key=%@",GSWComponentName__Key[GSWebNamingConv]);
[_associations removeObjectForKey:GSWComponentName__Key[GSWebNamingConv]];
componentName = [[associations_ objectForKey:GSWComponentName__Key componentName = [[associations_ objectForKey:GSWComponentName__Key[GSWebNamingConv]
withDefaultObject:[componentName autorelease]] retain]; withDefaultObject:[componentName autorelease]] retain];
NSDebugMLLog(@"gswdync",@"GSWSwitchComponent: componentName=%@",componentName); NSDebugMLLog(@"gswdync",@"GSWSwitchComponent: componentName=%@",componentName);

View file

@ -397,7 +397,9 @@ static char rcsId[] = "$Id$";
associations:_associations associations:_associations
template:[[[GSWHTMLStaticGroup alloc]initWithContentElements:children]autorelease] template:[[[GSWHTMLStaticGroup alloc]initWithContentElements:children]autorelease]
languages:_languages]; languages:_languages];
if (!element) if (element)
[element setDefinitionName:[pageDefElement elementName]];
else
{ {
ExceptionRaise(@"GSWTemplateParser", ExceptionRaise(@"GSWTemplateParser",
@"GSWTemplateParser: Creation failed for element named:%@ className:%@ in template named %@", @"GSWTemplateParser: Creation failed for element named:%@ className:%@ in template named %@",

View file

@ -834,7 +834,9 @@ text [Type:XML_TEXT_NODE] [{}] ####
template:[[[GSWHTMLStaticGroup alloc]initWithContentElements:children]autorelease] template:[[[GSWHTMLStaticGroup alloc]initWithContentElements:children]autorelease]
languages:_languages]; languages:_languages];
NSDebugMLog(@"node=%p element=%@",currentNode,elem); NSDebugMLog(@"node=%p element=%@",currentNode,elem);
if (!elem) if (elem)
[elem setDefinitionName:[definitionsElement elementName]];
else
{ {
ExceptionRaise(@"GSWTemplateParser", ExceptionRaise(@"GSWTemplateParser",
@"%@ Creation failed for element named:%@ className:%@", @"%@ Creation failed for element named:%@ className:%@",

View file

@ -1737,7 +1737,7 @@ NSData* HexStringToData(NSString* _string)
//-------------------------------------------------------------------- //--------------------------------------------------------------------
-(NSString*)description -(NSString*)description
{ {
return [NSString stringWithFormat:@"<%s %p - searchList:\n%@\n persDomains:\n%@\n tempDomains:\n%@\n changedDomains:\n%@\n dictionaryRep:\n%@\n defaultsDatabase:\n%@\n defaultsDatabaseLockName:\n%@\n defaultsDatabaseLock:\n%@\n tickingTimer:\n%@\n>", return [NSString stringWithFormat:@"<%s %p - searchList:\n%@\n persDomains:\n%@\n tempDomains:\n%@\n changedDomains:\n%@\n dictionaryRep:\n%@\n defaultsDatabase:\n%@\n tickingTimer:\n%@\n>",
object_get_class_name(self), object_get_class_name(self),
(void*)self, (void*)self,
_searchList, _searchList,
@ -1746,8 +1746,6 @@ NSData* HexStringToData(NSString* _string)
_changedDomains, _changedDomains,
_dictionaryRep, _dictionaryRep,
_defaultsDatabase, _defaultsDatabase,
_defaultsDatabaseLockName,
_defaultsDatabaseLock,
_tickingTimer]; _tickingTimer];
}; };

View file

@ -179,18 +179,27 @@ const char* GSGetInstanceVariableType(id obj,
- (id)getIVarNamed:(NSString *)name_ - (id)getIVarNamed:(NSString *)name_
{ {
id value; id value=nil;
SEL sel = @selector(valueForKey:);//NEW NSSelectorFromString(@"valueForKey:"); SEL sel = @selector(valueForKey:);//NEW NSSelectorFromString(@"valueForKey:");
id (*imp)(id, SEL, id) = (id (*)(id, SEL, id))[NSObject instanceMethodForSelector: sel]; //MGNEW id (*imp)(id, SEL, id) = (id (*)(id, SEL, id))[NSObject instanceMethodForSelector: sel];
NSDebugMLLog(@"low",@"getIVarNamed %@ in %@ %p (superClass:%@)",
name_,
[self class],
self,
[self superclass]);
//NSLog(@"%@",name_); //NSLog(@"%@",name_);
//NSLog(@"sel (valueForKey <NSObject>) : %d", (int)sel); //NSLog(@"sel (valueForKey <NSObject>) : %d", (int)sel);
NS_DURING NS_DURING
//value = [self valueForKey:name_]; value = [self valueForKey:name_];//MGNEW
value = (*imp)(self, sel, name_); //MGNEW value = (*imp)(self, sel, name_);
NS_HANDLER NS_HANDLER
{ {
NSDebugMLLog(@"low",@"getIVarNamed %@ in %@ %p (superClass:%@). valueForKey: exception",
name_,
[self class],
self,
[self superclass]);
if([self respondsToSelector:@selector(objectForKey:)] == YES) { if([self respondsToSelector:@selector(objectForKey:)] == YES) {
if (name_) { if (name_) {
value = [self objectForKey:name_]; value = [self objectForKey:name_];
@ -219,7 +228,7 @@ const char* GSGetInstanceVariableType(id obj,
withValue:(id)value_ withValue:(id)value_
{ {
SEL sel = @selector(takeValue:forKey:);//NEW NSSelectorFromString(@"takeValue:forKey:"); SEL sel = @selector(takeValue:forKey:);//NEW NSSelectorFromString(@"takeValue:forKey:");
id (*imp)(id, SEL, id, id) = (id (*)(id, SEL, id, id))[NSObject instanceMethodForSelector: sel]; //MGNEW id (*imp)(id, SEL, id, id) = (id (*)(id, SEL, id, id))[NSObject instanceMethodForSelector: sel];
//NSLog(@"sel (takeValue:forKey: <NSObject>) : %d", (int)sel); //NSLog(@"sel (takeValue:forKey: <NSObject>) : %d", (int)sel);
@ -227,8 +236,8 @@ const char* GSGetInstanceVariableType(id obj,
//NSLog(@"setIVarNamed : self = %@", NSStringFromClass([self class])); //NSLog(@"setIVarNamed : self = %@", NSStringFromClass([self class]));
//NSLog(@"setIVarNamed : name_ = %@ (%@)", name_, NSStringFromClass([name_ class])); //NSLog(@"setIVarNamed : name_ = %@ (%@)", name_, NSStringFromClass([name_ class]));
//NSLog(@"setIVarNamed : value_ = %@ (%@)", value_, NSStringFromClass([value_ class])); //NSLog(@"setIVarNamed : value_ = %@ (%@)", value_, NSStringFromClass([value_ class]));
//[self takeValue:value_ forKey:name_]; [self takeValue:value_ forKey:name_];//MGNEW
(*imp)(self, sel, value_, name_); //MGNEW (*imp)(self, sel, value_, name_);
NS_HANDLER NS_HANDLER
{ {
if (![name_ isEqualToString:@"self"]) { if (![name_ isEqualToString:@"self"]) {

View file

@ -2,4 +2,4 @@
# #
# #
DYNAMIC_LINKER=simple DYNAMIC_LINKER=simple
GDL2=yes GDL2=no