From 7976caba6893b9c1dfcee2c758c0dca96946af45 Mon Sep 17 00:00:00 2001 From: mguesdon Date: Sat, 26 Jan 2002 10:43:23 +0000 Subject: [PATCH] 2002-01-26 Manuel Guesdon * 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 --- ChangeLog | 53 +++ .../GSWExceptionPage.html | 10 +- GSWExtensions.framework/GNUmakefile | 34 +- .../GSWCollapsibleComponentContent.m | 4 +- .../GSWExceptionPage.html | 10 +- GSWExtensions.framework/GSWExceptionPage.m | 10 +- .../GSWStatsPage.gswc/GSWStatsPage.gswd | 2 +- .../WebServerResources/Ascending.png | Bin 0 -> 179 bytes .../WebServerResources/Descending.png | Bin 0 -> 177 bytes .../WebServerResources/DownTriangle.png | Bin 0 -> 477 bytes .../WebServerResources/PoweredByGNUstep.png | Bin 0 -> 2640 bytes .../PoweredByGNUstepWeb.png | Bin 0 -> 5382 bytes .../WebServerResources/RightTriangle.png | Bin 0 -> 485 bytes .../WebServerResources/Unsorted.png | Bin 0 -> 166 bytes .../WebServerResources/appOff.png | Bin 0 -> 264 bytes .../WebServerResources/appOn.png | Bin 0 -> 264 bytes .../WebServerResources/back.png | Bin 0 -> 277 bytes .../WebServerResources/dir.png | Bin 0 -> 290 bytes .../WebServerResources/eye.png | Bin 0 -> 1060 bytes .../WebServerResources/gswapp.png | Bin 0 -> 629 bytes .../WebServerResources/gswappsrv.png | Bin 0 -> 278 bytes .../WebServerResources/lft-OSarw.png | Bin 0 -> 252 bytes .../WebServerResources/rt-OSarw.png | Bin 0 -> 253 bytes .../WebServerResources/text.png | Bin 0 -> 285 bytes GSWExtensionsGSW.framework/GSWLogin.m | 49 +- GSWeb.framework/GSWApplication.m | 312 ++++++------- GSWeb.framework/GSWAssociation.m | 49 +- GSWeb.framework/GSWBundle.m | 28 +- GSWeb.framework/GSWComponent.m | 120 ++--- GSWeb.framework/GSWConditional.m | 51 +- GSWeb.framework/GSWDisplayGroup.m | 436 ++++++++++++------ GSWeb.framework/GSWDynamicElement.h | 4 +- GSWeb.framework/GSWDynamicElement.m | 29 +- GSWeb.framework/GSWElement.h | 2 + GSWeb.framework/GSWElement.m | 5 + GSWeb.framework/GSWElementIDString.m | 110 ++++- GSWeb.framework/GSWForm.m | 154 ++++--- GSWeb.framework/GSWHTMLDynamicElement.m | 116 +++-- GSWeb.framework/GSWHTMLStaticElement.m | 49 +- GSWeb.framework/GSWHyperlink.m | 7 +- GSWeb.framework/GSWImageButton.m | 6 +- GSWeb.framework/GSWKeyValueAssociation.m | 11 +- GSWeb.framework/GSWSession.m | 1 + GSWeb.framework/GSWSubmitButton.m | 3 +- GSWeb.framework/GSWSwitchComponent.m | 36 +- GSWeb.framework/GSWTemplateParserANTLR.m | 4 +- GSWeb.framework/GSWTemplateParserXML.m | 4 +- GSWeb.framework/GSWUtils.m | 4 +- .../NSObject+IVarAccess+PerformSel.m | 25 +- config.mak | 2 +- 50 files changed, 1121 insertions(+), 619 deletions(-) create mode 100644 GSWExtensions.framework/WebServerResources/Ascending.png create mode 100644 GSWExtensions.framework/WebServerResources/Descending.png create mode 100644 GSWExtensions.framework/WebServerResources/DownTriangle.png create mode 100644 GSWExtensions.framework/WebServerResources/PoweredByGNUstep.png create mode 100644 GSWExtensions.framework/WebServerResources/PoweredByGNUstepWeb.png create mode 100644 GSWExtensions.framework/WebServerResources/RightTriangle.png create mode 100644 GSWExtensions.framework/WebServerResources/Unsorted.png create mode 100644 GSWExtensions.framework/WebServerResources/appOff.png create mode 100644 GSWExtensions.framework/WebServerResources/appOn.png create mode 100644 GSWExtensions.framework/WebServerResources/back.png create mode 100644 GSWExtensions.framework/WebServerResources/dir.png create mode 100644 GSWExtensions.framework/WebServerResources/eye.png create mode 100644 GSWExtensions.framework/WebServerResources/gswapp.png create mode 100644 GSWExtensions.framework/WebServerResources/gswappsrv.png create mode 100644 GSWExtensions.framework/WebServerResources/lft-OSarw.png create mode 100644 GSWExtensions.framework/WebServerResources/rt-OSarw.png create mode 100644 GSWExtensions.framework/WebServerResources/text.png diff --git a/ChangeLog b/ChangeLog index 32c5864..1130c30 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,56 @@ +2002-01-26 Manuel Guesdon + + * 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 * GSWeb.framework/GSWResourceManager.m: logs diff --git a/GSWExtensions.framework/French.lproj/GSWExceptionPage.gswc/GSWExceptionPage.html b/GSWExtensions.framework/French.lproj/GSWExceptionPage.gswc/GSWExceptionPage.html index fda84a0..4ad07e9 100644 --- a/GSWExtensions.framework/French.lproj/GSWExceptionPage.gswc/GSWExceptionPage.html +++ b/GSWExtensions.framework/French.lproj/GSWExceptionPage.gswc/GSWExceptionPage.html @@ -22,7 +22,7 @@ Application: - +
@@ -30,7 +30,7 @@ Erreur: - +
@@ -39,7 +39,7 @@ -
+

@@ -53,10 +53,10 @@ - : +
:
- +
diff --git a/GSWExtensions.framework/GNUmakefile b/GSWExtensions.framework/GNUmakefile index 9d0e2d3..ab7fa69 100644 --- a/GSWExtensions.framework/GNUmakefile +++ b/GSWExtensions.framework/GNUmakefile @@ -72,24 +72,24 @@ French GSWExtensions_RESOURCE_DIRS = GSWExtensions_WEBSERVER_RESOURCE_FILES = \ -Ascending.gif \ -Descending.gif \ -DownTriangle.gif \ -PoweredByGNUstep.gif \ -PoweredByGNUstepWeb.gif \ -RightTriangle.gif \ -Unsorted.gif \ -appOff.gif \ -appOn.gif \ -back.gif \ -dir.gif \ +Ascending.png \ +Descending.png \ +DownTriangle.png \ +PoweredByGNUstep.png \ +PoweredByGNUstepWeb.png \ +RightTriangle.png \ +Unsorted.png \ +appOff.png \ +appOn.png \ +back.png \ +dir.png \ exclamation.gif \ -eye.gif \ -lft-OSarw.gif \ -rt-OSarw.gif \ -text.gif \ -gswapp.gif \ -gswappsrv.gif \ +eye.png \ +lft-OSarw.png \ +rt-OSarw.png \ +text.png \ +gswapp.png \ +gswappsrv.png \ warning.gif \ error.gif diff --git a/GSWExtensions.framework/GSWCollapsibleComponentContent.m b/GSWExtensions.framework/GSWCollapsibleComponentContent.m index e54d74e..d083aef 100644 --- a/GSWExtensions.framework/GSWCollapsibleComponentContent.m +++ b/GSWExtensions.framework/GSWCollapsibleComponentContent.m @@ -95,7 +95,7 @@ else if ([self hasBinding:@"helpString"]) ASSIGN(openedImageFileName,[self valueForBinding:@"helpString"]); else - ASSIGN(openedImageFileName,@"DownTriangle.gif"); + ASSIGN(openedImageFileName,@"DownTriangle.png"); }; _image=openedImageFileName; } @@ -109,7 +109,7 @@ else if ([self hasBinding:@"helpString"]) ASSIGN(closedImageFileName,[self valueForBinding:@"helpString"]); else - ASSIGN(closedImageFileName,@"RightTriangle.gif"); + ASSIGN(closedImageFileName,@"RightTriangle.png"); }; _image=closedImageFileName; }; diff --git a/GSWExtensions.framework/GSWExceptionPage.gswc/GSWExceptionPage.html b/GSWExtensions.framework/GSWExceptionPage.gswc/GSWExceptionPage.html index f0b38aa..44fcda3 100644 --- a/GSWExtensions.framework/GSWExceptionPage.gswc/GSWExceptionPage.html +++ b/GSWExtensions.framework/GSWExceptionPage.gswc/GSWExceptionPage.html @@ -22,7 +22,7 @@ Application: - +
@@ -30,7 +30,7 @@ Error: - +
@@ -39,7 +39,7 @@ -
+

@@ -53,10 +53,10 @@ - : +
:
- +
diff --git a/GSWExtensions.framework/GSWExceptionPage.m b/GSWExtensions.framework/GSWExceptionPage.m index a2d7bcd..fbea62d 100644 --- a/GSWExtensions.framework/GSWExceptionPage.m +++ b/GSWExtensions.framework/GSWExceptionPage.m @@ -51,7 +51,7 @@ { if (!reasons) { - ASSIGN(reasons,[[exception description] componentsSeparatedByString:@"\n"]); + ASSIGN(reasons,[[exception reason] componentsSeparatedByString:@"\n"]); }; return reasons; }; @@ -69,4 +69,12 @@ ASSIGN(exception,exception_); }; +-(id)getTmpUserInfoValue +{ + //If array, print it nicely + if ([tmpUserInfoValue isKindOfClass:[NSArray class]]) + return [tmpUserInfoValue componentsJoinedByString:@"\n"]; + else + return tmpUserInfoValue; +} @end diff --git a/GSWExtensions.framework/GSWStatsPage.gswc/GSWStatsPage.gswd b/GSWExtensions.framework/GSWStatsPage.gswc/GSWStatsPage.gswd index 6d65ecd..c99c4d9 100644 --- a/GSWExtensions.framework/GSWStatsPage.gswc/GSWStatsPage.gswd +++ b/GSWExtensions.framework/GSWStatsPage.gswc/GSWStatsPage.gswd @@ -224,7 +224,7 @@ PoweredByImage: GSWImage BORDER = 0; HEIGHT = 49; WIDTH = 221; - filename = "PoweredByGNUstepWeb.gif"; + filename = "PoweredByGNUstepWeb.png"; } REFRESH: GSWSubmitButton diff --git a/GSWExtensions.framework/WebServerResources/Ascending.png b/GSWExtensions.framework/WebServerResources/Ascending.png new file mode 100644 index 0000000000000000000000000000000000000000..cbe754a43fc323d80a77c882590cf54de465e77c GIT binary patch literal 179 zcmeAS@N?(olHy`uVBq!ia0vp^oIuRY2qYLksjgB0(o7{me!&ckj8p!u1Mwc6x=<11L{&` zrvg=Ic)B=-RNP9oI8e~AkdZ^)K!)M4e8LY#&THldC(I2tm>U?F85kHaFr1kpaNhJE RzXwncgQu&X%Q~loCIA`qFdzT` literal 0 HcmV?d00001 diff --git a/GSWExtensions.framework/WebServerResources/Descending.png b/GSWExtensions.framework/WebServerResources/Descending.png new file mode 100644 index 0000000000000000000000000000000000000000..3715fa9d32da7bbb9f7ad67440edbae9eb2ee1d2 GIT binary patch literal 177 zcmeAS@N?(olHy`uVBq!ia0vp^oIuRY2qYLksjgB0(o7{me!&ckj8p!u1Mwc6x=<11L{&` zrvg=|dAc};RNP9oI8e~AkdZ^)K!)M4e8LY#PA0}=X69<<<{D<_T4sj*Zv@Uyet&ZT PPzQsjtDnm{r-UW|r#dhY literal 0 HcmV?d00001 diff --git a/GSWExtensions.framework/WebServerResources/DownTriangle.png b/GSWExtensions.framework/WebServerResources/DownTriangle.png new file mode 100644 index 0000000000000000000000000000000000000000..cbb5299f3620a062621c5631e692c45cedacf978 GIT binary patch literal 477 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 literal 0 HcmV?d00001 diff --git a/GSWExtensions.framework/WebServerResources/Unsorted.png b/GSWExtensions.framework/WebServerResources/Unsorted.png new file mode 100644 index 0000000000000000000000000000000000000000..98540682eac5f23903a50038a8a215029f1c4956 GIT binary patch literal 166 zcmeAS@N?(olHy`uVBq!ia0vp^oIuRY2qYLksjgB0(o7{me!&ckj8p!u1Mwc6x=<11L{&` zrvg<-d%8G=RNP9oI8e~AkdZ^)K!)M4e8LY#&P7ZNn+5nZzwY~N2UN!3>FVdQ&MBb@ E0Jz00Qvd(} literal 0 HcmV?d00001 diff --git a/GSWExtensions.framework/WebServerResources/appOff.png b/GSWExtensions.framework/WebServerResources/appOff.png new file mode 100644 index 0000000000000000000000000000000000000000..e10711cecebd5a4d280c79ec970246192826aa2c GIT binary patch literal 264 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!7%)r1n>(-?sK#ov=Pl)UP|NlcnL$$TFSFKvr z(9i%B{`Ws}3Xozf3GxeOaCmkj4agBIag8Vm&QB{TPb^AhNY6|&D#%M$Fw!&8Gw=;i zQ-Y~*&d<$F%`0K>O-xBuD9ltz!TAQa$3A&%Ju}r+{R(Ntw ztgqjXn|)Jl=Ex?=$tBD*xGb*nzw4NIdeI$Y{wPn8!o6&_I)QdEc)I$ztaD0e0szYV BTde>9 literal 0 HcmV?d00001 diff --git a/GSWExtensions.framework/WebServerResources/appOn.png b/GSWExtensions.framework/WebServerResources/appOn.png new file mode 100644 index 0000000000000000000000000000000000000000..dc72d37b36183963a4bd30a281111587d43fbdd5 GIT binary patch literal 264 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!7%)r1n>(-?sK#ov=Pl)UP|Nj{n{)dK!u3EJU zD8``1aIj`!1(3m5666=m;PC858jvGa;u=vBoS#-wo>-L1ke-=lRFIdhV5DcFXW$#4 zrUX;roS&PUnpeW$o0yWSP@Y+mq2TW68&H=jI~AxR!PCVtq~ezA>5IG#1{^FGR^MXG zILy?`ZBoi2?vV07bjj9ZzjxR$F>o*#H7SOO>o^9z_oz|abSBD6vv&VNA^8qFj>)fNSCuf$D?BBf>$4AWX~1*>LzIa!$IhtMdkZ9dspPLOS1NS zR6de6Eo{a^argBLGSjqYnNF7Yu=eLk->b8;w|_g{aC`f&yb|UW8j73p+%K;OTFl_- L>gTe~DWM4f>sDf= literal 0 HcmV?d00001 diff --git a/GSWExtensions.framework/WebServerResources/dir.png b/GSWExtensions.framework/WebServerResources/dir.png new file mode 100644 index 0000000000000000000000000000000000000000..4f4b653e1e742ad40501b73cdc100edd690442e9 GIT binary patch literal 290 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaN%)r2y8Yd772-NQ z(wY8J=H}+t48#n9LX0Ire!&b5&u*jvIbtQQ5hcO-X(i=}MX3zwnQ2A^dFcv9dM0`X zz5!}VFcr@Exw)x%B@DiaDX9wOnI#zt?w-B@b*Zvbfhx*9T^vIyZp}S!%h#a5!*(J6 z;7m5l4n?^G2N)Ap7*GCg-}Lmng@HtTP?QiCD?^aWrAdj5T}vI5qLUZcHhI`z)LeIb zrm*K?o%Ks1TztOn>&?-;Rxn|rdCSSqTiOI_^2*a{mfTX{wGMRK{Iz{NIjHh=Lgpc5E8UHx3vIVCg!0Pd_~lmGw# literal 0 HcmV?d00001 diff --git a/GSWExtensions.framework/WebServerResources/eye.png b/GSWExtensions.framework/WebServerResources/eye.png new file mode 100644 index 0000000000000000000000000000000000000000..42c22d96953beda30670a744f40c380d7b97ce72 GIT binary patch literal 1060 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!6%)r1HuVsIffq|JJz$e7@|Ns9$aZK?4%uFnT zGt)2yDHJ(#<_z&BoJlh#UNMC#XQmm`z`GFVdQ&MBb@0DM1acmMzZ literal 0 HcmV?d00001 diff --git a/GSWExtensions.framework/WebServerResources/gswappsrv.png b/GSWExtensions.framework/WebServerResources/gswappsrv.png new file mode 100644 index 0000000000000000000000000000000000000000..af47be0024c82fbffe1dd1b4ec4536b3f52449a7 GIT binary patch literal 278 zcmeAS@N?(olHy`uVBq!ia0vp^G9b(WBp4MEH{1i#OeH~n!3+o9e&_E1^2AD9BT9nv z(@M${i&7cVGt-O;^3oNI^i1>&d;`>!U@DyRb8}PkN*H_-Q&JVmGfOfQ+&z5*>QZH= z0#$T-x;TbZ+}bDsX$8^qpueav6xLHLk)@v+YUwh=v&V>is)}4Gd zf%}K(@99r0W3%^0Y5PC3n7<_3c&5;Fq3iSRl^oW5(6i?<+htGB{YUhl{$}v7Q%{bz SzpxYNECx?kKbLh*2~7Z*d}hZ0 literal 0 HcmV?d00001 diff --git a/GSWExtensions.framework/WebServerResources/lft-OSarw.png b/GSWExtensions.framework/WebServerResources/lft-OSarw.png new file mode 100644 index 0000000000000000000000000000000000000000..dc439b165eb9c749821b0053b12d54f3ac71136c GIT binary patch literal 252 zcmeAS@N?(olHy`uVBq!ia0vp^+(0bA!py+H=sIP^Z6HT9z$e7@|Ns9SAi%J9@BgJs z|1&U10A;32JnsQgj3q&S!3+-1ZlnP@VkNE-CBgY=CFO}lsSN3vX+{Nk=?X@ACVB?G z0cuJx70&s&xv6<248DmesS4$pB^e6tp1uKfsj^dnDgr%S978H@sdnGyJYc}X+;6wV zL7bE2SF8scr%B0wL9OHR%Z)en?r2~aJ@=?n_SUHtSA@3R;QhXgm(RGDXZ^*F_`BNK n9=1#7&9Xfm`T0q#lf3=?MxGhhircmW4QKFl^>bP0l+XkK({VaS+h0o_M!nJ0GPvts oYnA1{Wu}C2Vq->Fx7Qna#hJW%uN8uFfTlBey85}Sb4q9e0Mn^d!T4pR8isS;uunKYi{pr-opw4&9+Q-5(^aA zPH;@P_s{sM!&H{9@w$HU`_vh(v`M-AsF~?i>F{kPi}Hj?i|z+{SsFxn8dh(=-ca8A zWXpnEQ3gvIcXo@3m9S)eF-sIaCvT8DL8`3Rddm-!9{%Ea?@wRw+RM9h=9l%2^-JHg Z&t5EX", object_get_class_name(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; }; @@ -372,7 +337,9 @@ associationsKeys:(NSArray*)_associationsKeys //OK LOGObjectFnStart(); parent=_parent; - NSDebugMLLog(@"gswcomponents",@"parent=%p (%@)",(void*)parent,[parent class]); + NSDebugMLLog(@"gswcomponents",@"name=%@ parent=%p (%@)", + [self definitionName], + (void*)parent,[parent class]); ASSIGN(associations,_associations); NSDebugMLLog(@"gswcomponents",@"associations=%@",associations); ASSIGN(associationsKeys,_associationsKeys); @@ -395,7 +362,8 @@ associationsKeys:(NSArray*)_associationsKeys id _value=nil; id _logValue=[self valueForBinding:@"GSWDebug"]; BOOL _log=boolValueWithDefaultFor(_logValue,NO); - NSDebugMLog0(@"Synchro SubComponent->Component"); + NSDebugMLog(@"defName=%@ - Synchro SubComponent->Component", + [self definitionName]); for(i=0;i<[associationsKeys count];i++) { _key=[associationsKeys objectAtIndex:i]; @@ -404,7 +372,8 @@ associationsKeys:(NSArray*)_associationsKeys if ([_assoc isValueSettable] && ![_assoc isKindOfClass:[GSWBindingNameAssociation class]]) //TODOV { - _value=[self getIVarNamed:_key]; + //MGNEW _value=[self getIVarNamed:_key]; + _value=[self valueForKey:_key];//MGNEW NSDebugMLLog(@"gswcomponents",@"_value=%@",_value); if (_log) [_assoc logSynchronizeComponentToParentForValue:_value @@ -429,7 +398,8 @@ associationsKeys:(NSArray*)_associationsKeys id _value=nil; id _logValue=[self valueForBinding:@"GSWDebug"]; BOOL _log=boolValueWithDefaultFor(_logValue,NO); - NSDebugMLog0(@"Synchro Component->SubComponent"); + NSDebugMLog(@"Nme=%@ - Synchro Component->SubComponent", + [self definitionName]); for(i=0;i<[associationsKeys count];i++) { _key=[associationsKeys objectAtIndex:i]; @@ -442,8 +412,10 @@ associationsKeys:(NSArray*)_associationsKeys if (_log) [_assoc logSynchronizeParentToComponentForValue:_value inComponent:self]; - [self setIVarNamed:_key - withValue:_value]; + /*//MGNEW [self setIVarNamed:_key + withValue:_value];*/ + [self takeValue:_value + forKey:_key]; }; }; }; @@ -768,7 +740,7 @@ associationsKeys:(NSArray*)_associationsKeys unsigned int _index=NSNotFound; LOGObjectFnStart(); NSDebugMLLog(@"gswcomponents",@"associationsKeys=%@",associationsKeys); - NSDebugMLLog(@"gswcomponents",@"associations=%@",associations); + //NSDebugMLLog(@"gswcomponents",@"associations=%@",[associations description]); if (associationsKeys) { _index=[associationsKeys indexOfObject:_name]; @@ -796,14 +768,18 @@ associationsKeys:(NSArray*)_associationsKeys //OK BOOL _hasBinding=NO; LOGObjectFnStart(); - NSDebugMLLog(@"gswcomponents",@"parentBindingName_=%@",parentBindingName_); + NSDebugMLLog(@"gswcomponents",@"defName=%@ - parentBindingName_=%@", + [self definitionName], + parentBindingName_); if (associationsKeys) { int _index=[associationsKeys indexOfObject:parentBindingName_]; NSDebugMLLog(@"gswcomponents",@"_index=%u",_index); _hasBinding=(_index!=NSNotFound); }; - NSDebugMLLog(@"gswcomponents",@"hasBinding=%s",(_hasBinding ? "YES" : "NO")); + NSDebugMLLog(@"gswcomponents",@"defName=%@ - hasBinding=%s", + [self definitionName], + (_hasBinding ? "YES" : "NO")); if (!WOStrictFlag && !_hasBinding) { _hasBinding=([defaultAssociations objectForKey:parentBindingName_]!=nil); @@ -819,7 +795,9 @@ associationsKeys:(NSArray*)_associationsKeys //OK GSWAssociation* _assoc=nil; LOGObjectFnStart(); - NSDebugMLLog(@"gswcomponents",@"parentBindingName_=%@",parentBindingName_); + NSDebugMLLog(@"gswcomponents",@"defName=%@ - parentBindingName_=%@", + [self definitionName], + parentBindingName_); NSDebugMLLog(@"gswcomponents",@"value_=%@",value_); NSDebugMLLog(@"gswcomponents",@"parent=%p",(void*)parent); if (parent) @@ -829,15 +807,23 @@ associationsKeys:(NSArray*)_associationsKeys if(_assoc) [_assoc setValue:value_ inComponent:parent]; +/* // Why doing this ? Be carefull: it may make a loop ! #if GDL2 else { NS_DURING - [self takeValue:value_ forKey:parentBindingName_]; + { + [self takeValue:value_ + forKey:parentBindingName_]; + } NS_HANDLER; + { + //TODO + } NS_ENDHANDLER; } #endif +*/ }; LOGObjectFnStop(); }; @@ -849,7 +835,10 @@ associationsKeys:(NSArray*)_associationsKeys id _value=nil; GSWAssociation* _assoc=nil; LOGObjectFnStart(); - NSDebugMLLog(@"gswcomponents",@"parentBindingName_=%@",parentBindingName_); + NSDebugMLLog(@"gswcomponents",@"defName=%@", + [self definitionName]); + NSDebugMLLog(@"gswcomponents",@"parentBindingName_=%@", + parentBindingName_); NSDebugMLLog(@"gswcomponents",@"parent=%p of class %@",(void*)parent,[parent class]); if (parent) { @@ -857,15 +846,22 @@ associationsKeys:(NSArray*)_associationsKeys NSDebugMLLog(@"gswcomponents",@"_assoc=%@",_assoc); if(_assoc) _value=[_assoc valueInComponent:parent]; +/* // Why doing this ? Be carefull: it may make a loop ! #if GDL2 else { NS_DURING - _value = [self valueForKey:parentBindingName_]; - NS_HANDLER; + { + _value = [self valueForKey:parentBindingName_]; + } + NS_HANDLER + { + //TODO + } NS_ENDHANDLER; } #endif +*/ NSDebugMLLog(@"gswcomponents",@"_value=%@",_value); }; LOGObjectFnStop(); @@ -879,7 +875,9 @@ associationsKeys:(NSArray*)_associationsKeys NSDictionary* _userDictionary=[self userDictionary]; id _synchronizesVariablesWithBindingsValue=[_userDictionary objectForKey:@"synchronizesVariablesWithBindings"]; BOOL _synchronizesVariablesWithBindings=YES; - NSDebugMLLog(@"gswcomponents",@"userDictionary _synchronizesVariablesWithBindingsValue=%@",_synchronizesVariablesWithBindingsValue); + NSDebugMLLog(@"gswcomponents",@"defName=%@ - userDictionary _synchronizesVariablesWithBindingsValue=%@", + [self definitionName], + _synchronizesVariablesWithBindingsValue); //NDFN if (_synchronizesVariablesWithBindingsValue) { @@ -923,7 +921,9 @@ associationsKeys:(NSArray*)_associationsKeys [_componentDefinition sleep]; [self sleep]; [self _setContext:nil]; - NSDebugMLLog(@"gswcomponents",@"subComponents=%@",subComponents); + NSDebugMLLog(@"gswcomponents",@"defName=%@ - subComponents=%@", + [self definitionName], + subComponents); [subComponents makeObjectsPerformSelector:@selector(sleepInContext:) withObject:context_]; LOGObjectFnStop(); @@ -945,6 +945,7 @@ associationsKeys:(NSArray*)_associationsKeys #endif LOGObjectFnStart(); NSDebugMLLog(@"gswcomponents",@"ET=%@ id=%@",[self class],[context_ elementID]); + NSDebugMLLog(@"gswcomponents",@"defName=%@",[self definitionName]); GSWSaveAppendToResponseElementID(context_);//Debug Only _template=[self _template]; @@ -960,6 +961,7 @@ associationsKeys:(NSArray*)_associationsKeys [context_ deleteLastElementIDComponent]; NSDebugMLLog(@"gswcomponents",@"ET=%@ id=%@",[self class],[context_ elementID]); + NSDebugMLLog(@"gswcomponents",@"defName=%@",[self definitionName]); #ifndef NDEBUG if (![debugElementID isEqualToString:[context_ elementID]]) { @@ -987,6 +989,7 @@ associationsKeys:(NSArray*)_associationsKeys #endif LOGObjectFnStart(); NSDebugMLLog(@"gswcomponents",@"ET=%@ id=%@",[self class],[context_ elementID]); + NSDebugMLLog(@"gswcomponents",@"defName=%@",[self definitionName]); NS_DURING { GSWAssertCorrectElementID(context_);// Debug Only @@ -1007,6 +1010,7 @@ associationsKeys:(NSArray*)_associationsKeys } NS_ENDHANDLER; NSDebugMLLog(@"gswcomponents",@"ET=%@ id=%@",[self class],[context_ elementID]); + NSDebugMLLog(@"gswcomponents",@"defName=%@",[self definitionName]); #ifndef NDEBUG if (![debugElementID isEqualToString:[context_ elementID]]) { @@ -1014,7 +1018,8 @@ associationsKeys:(NSArray*)_associationsKeys }; #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=%@", [self class], @@ -1044,12 +1049,14 @@ associationsKeys:(NSArray*)_associationsKeys _oldValidateFlag=[context_ isValidate]; [context_ setValidate:YES]; NSDebugMLLog(@"gswcomponents",@"ET=%@ id=%@",[self class],[context_ elementID]); + NSDebugMLLog(@"gswcomponents",@"defName=%@",[self definitionName]); _template=[self _template]; [context_ appendZeroElementIDComponent]; [_template takeValuesFromRequest:request_ inContext:context_]; [context_ deleteLastElementIDComponent]; NSDebugMLLog(@"gswcomponents",@"ET=%@ id=%@",[self class],[context_ elementID]); + NSDebugMLLog(@"gswcomponents",@"defName=%@",[self definitionName]); #ifndef NDEBUG if (![debugElementID isEqualToString:[context_ elementID]]) { @@ -1159,6 +1166,7 @@ associationsKeys:(NSArray*)_associationsKeys GSWComponentDefinition* _componentDefinition=nil; LOGObjectFnStart(); NSDebugMLLog(@"gswcomponents",@"context_=%@",context_); + NSDebugMLLog(@"gswcomponents",@"defName=%@",[self definitionName]); NSAssert(context_,@"No Context"); [self _setContext:context_]; _componentDefinition=[self _componentDefinition]; @@ -1185,7 +1193,9 @@ associationsKeys:(NSArray*)_associationsKeys id _ret=nil; LOGObjectFnStart(); - NSDebugMLLog(@"gswcomponents", @"parent=%p", (void*)parent); + NSDebugMLLog(@"gswcomponents", @"name=%@ - parent=%p", + [self definitionName], + (void*)parent); if (parent) { _assoc = [self _associationWithName:attribute]; diff --git a/GSWeb.framework/GSWConditional.m b/GSWeb.framework/GSWConditional.m index d5e78d8..ab789f6 100644 --- a/GSWeb.framework/GSWConditional.m +++ b/GSWeb.framework/GSWConditional.m @@ -103,6 +103,13 @@ static char rcsId[] = "$Id$"; NSDebugMLLog(@"gswdync",@"elementID=%@",[context_ elementID]); if (_negate) _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) { GSWRequest* _request=[context_ request]; @@ -118,7 +125,7 @@ static char rcsId[] = "$Id$"; //-------------------------------------------------------------------- -(GSWElement*)invokeActionForRequest:(GSWRequest*)request_ - inContext:(GSWContext*)context_ + inContext:(GSWContext*)context_ { //OK GSWElement* _element=nil; @@ -129,24 +136,30 @@ static char rcsId[] = "$Id$"; NSDebugMLLog(@"gswdync",@"ET=%@ id=%@ senderId=%@",[self class],[context_ elementID],[context_ senderID]); GSWAssertCorrectElementID(context_);// Debug Only _condition=[self evaluateCondition:condition - inContext:context_]; + inContext:context_]; _negate=[self evaluateCondition:negate - inContext:context_]; + inContext:context_]; _doIt=_condition; if (_negate) - _doIt=!_doIt; - NSDebugMLLog(@"gswdync",@"_doIt=%s",_doIt ? "YES" : "NO"); + _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) - { - GSWRequest* _request=[context_ request]; - BOOL _isFromClientComponent=[_request isFromClientComponent]; - [context_ appendZeroElementIDComponent]; - NSDebugMLLog(@"gswdync",@"childrenGroup=%@",childrenGroup); - _element=[childrenGroup invokeActionForRequest:request_ - inContext:context_]; - NSDebugMLLog(@"gswdync",@"_element=%@",_element); - [context_ deleteLastElementIDComponent]; - }; + { + GSWRequest* _request=[context_ request]; + BOOL _isFromClientComponent=[_request isFromClientComponent]; + [context_ appendZeroElementIDComponent]; + NSDebugMLLog(@"gswdync",@"childrenGroup=%@",childrenGroup); + _element=[childrenGroup invokeActionForRequest:request_ + inContext:context_]; + NSDebugMLLog(@"gswdync",@"_element=%@",_element); + [context_ deleteLastElementIDComponent]; + }; NSDebugMLLog(@"gswdync",@"END ET=%@ id=%@",[self class],[context_ elementID]); LOGObjectFnStop(); return _element; @@ -172,7 +185,13 @@ static char rcsId[] = "$Id$"; _doIt=_condition; if (_negate) _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) { GSWRequest* _request=[context_ request]; diff --git a/GSWeb.framework/GSWDisplayGroup.m b/GSWeb.framework/GSWDisplayGroup.m index 56d11ce..c6d24f3 100644 --- a/GSWeb.framework/GSWDisplayGroup.m +++ b/GSWeb.framework/GSWDisplayGroup.m @@ -25,7 +25,7 @@ static char rcsId[] = "$Id$"; #include - +@class EOUndoManager; //==================================================================== @implementation GSWDisplayGroup @@ -102,6 +102,7 @@ Description: if ((self=[self init])) { LOGObjectFnStart(); + NSDebugMLLog(@"gswdisplaygroup",@"GSWDisplayGroup %p",self); [self setNumberOfObjectsPerBatch: [unarchiver decodeIntForKey:@"numberOfObjectsPerBatch"]]; [self setFetchesOnLoad: @@ -210,21 +211,85 @@ Description: LOGObjectFnStop(); }; --(void)_addQualifiersToArray:(id)array_ - forValues:(id)values_ - operatorSelector:(SEL)selector_ +-(void)_addQualifiersToArray:(NSMutableArray*)array + forValues:(NSDictionary*)values + operatorSelector:(SEL)sel { + //OK + NSEnumerator *enumerator=nil; + NSString *key=nil; + NSString *op=nil; 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(); }; --(id)_qualifierForKey:(id)key - value:(id)value - operatorSelector:(SEL)selector_ +-(EOQualifier*)_qualifierForKey:(id)key + value:(id)value + operatorSelector:(SEL)sel { - LOGObjectFnNotImplemented(); //TODOFN - return nil; + //near OK (see VERIFY) + 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]: + 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_ @@ -271,7 +336,7 @@ Description: -(void)_notifySelectionChanged { LOGObjectFnStart(); - LOGObjectFnNotImplemented(); //TODOFN + [EOObserverCenter notifyObserversObjectWillChange:nil];//OK ? LOGObjectFnStop(); }; @@ -280,7 +345,8 @@ Description: -(void)_notifyRowChanged:(int)row_ { LOGObjectFnStart(); - LOGObjectFnNotImplemented(); //TODOFN +//-1 ==> nil ? + [EOObserverCenter notifyObserversObjectWillChange:nil]; //VERIFY LOGObjectFnStop(); }; @@ -292,9 +358,20 @@ Description: { LOGObjectFnStart(); - LOGObjectFnNotImplemented(); //TODOFN + //TODOFN + if (selector_==@selector(displayGroup:didFetchObjects:)) //TODO ???? + { + //Do it on object1 + if(_delegateRespondsTo.didFetchObjects) + [delegate displayGroup:object1 + didFetchObjects:object2]; + } + else + { + LOGObjectFnNotImplemented(); //TODOFN + }; LOGObjectFnStop(); - return nil; + return self; //?? }; @@ -308,12 +385,13 @@ Description: }; --(id)undoManager +-(EOUndoManager*)undoManager { + EOUndoManager* undoManager=nil; LOGObjectFnStart(); - LOGObjectFnNotImplemented(); //TODOFN + undoManager=[[_dataSource editingContext] undoManager]; LOGObjectFnStop(); - return nil; + return undoManager; }; -(void)objectsInvalidatedInEditingContext:(id)object_ @@ -595,30 +673,30 @@ Description: if(delete) { - NS_DURING - { - [_dataSource deleteObject:object]; - - [_displayedObjects removeObjectIdenticalTo:object]; - [_allObjects removeObjectIdenticalTo:object]; - - if(_delegateRespondsTo.didDeleteObject == YES) - [delegate displayGroup:self didDeleteObject:object]; - } - NS_HANDLER - { - NSLog(@"GSWDisplayGroup (deleteObjectAtIndex:) Can't delete object at index : %d", index); - NSLog(@"object : %@", object); - NSLog(@"Exception : %@ %@ Name:%@ Reason:%@\n", - localException, - [localException description], - [localException name], - [localException reason]); - delete = NO; - } - NS_ENDHANDLER; + NS_DURING + { + [_dataSource deleteObject:object]; + + [_displayedObjects removeObjectIdenticalTo:object]; + [_allObjects removeObjectIdenticalTo:object]; + + if(_delegateRespondsTo.didDeleteObject == YES) + [delegate displayGroup:self didDeleteObject:object]; + } + NS_HANDLER + { + NSLog(@"GSWDisplayGroup (deleteObjectAtIndex:) Can't delete object at index : %d", index); + NSLog(@"object : %@", object); + NSLog(@"Exception : %@ %@ Name:%@ Reason:%@\n", + localException, + [localException description], + [localException name], + [localException reason]); + delete = NO; + } + NS_ENDHANDLER; }; - + [self clearSelection]; LOGObjectFnStop(); @@ -714,6 +792,7 @@ Description: - (NSArray *)displayedObjects { + //OK return _displayedObjects; } @@ -825,10 +904,18 @@ Description: // fetch - (id)fetch + //Near OK { BOOL fetch = YES; - + EOUndoManager* undoManager=nil; LOGObjectFnStart(); + //[self endEditing];//WO45P3 ret 1 //TODO if NO ? + [[NSNotificationCenter defaultCenter] + postNotificationName:@"WODisplayGroupWillFetch" //TODO Name + object:self]; + undoManager=[self undoManager];// //WO45P3 + [undoManager removeAllActionsWithTarget:self];//WO45P3 + [_dataSource setQualifierBindings:_queryBindings];//WO45P3 if(_delegateRespondsTo.shouldFetchObjects == YES) fetch = [delegate displayGroupShouldFetch:self]; @@ -837,20 +924,18 @@ Description: { NSArray *objects=nil; - objects = [_dataSource fetchObjects]; - [self setObjectArray:objects]; - - if(_delegateRespondsTo.didFetchObjects == YES) - [delegate displayGroup:self - didFetchObjects:_allObjects]; - // selection - if ([self selectsFirstObjectAfterFetch] == YES) { + objects = [_dataSource fetchObjects];//OK WO45P3 + [self setObjectArray:objects];//OK + [self _notify:@selector(displayGroup:didFetchObjects:) + with:self + with:_allObjects]; + /*IN setObjectArray: // selection + if ([self selectsFirstObjectAfterFetch] == YES) { [self setCurrentBatchIndex:1]; - } + */ }; LOGObjectFnStop(); - - return nil;//FIXME + return nil;//FIXME ?? } //-------------------------------------------------------------------- @@ -1112,50 +1197,38 @@ Description: - (EOQualifier *)qualifierFromQueryValues { + //Near OK EOQualifier* resultQualifier=nil; NSMutableArray *array=nil; - NSEnumerator *enumerator=nil; - NSString *key=nil; - NSString *op=nil; - SEL operatorSelector=nil; LOGObjectFnStart(); + NSDebugMLLog(@"gswdisplaygroup",@"_queryMatch=%@", + _queryMatch); + NSDebugMLLog(@"gswdisplaygroup",@"_defaultStringMatchOperator=%@ EOQualifier sel:%p", + _defaultStringMatchOperator, + (void*)[EOQualifier operatorSelectorForString:_defaultStringMatchOperator]); array = [NSMutableArray arrayWithCapacity:8]; - enumerator = [_queryMatch keyEnumerator]; - while((key = [enumerator nextObject])) - { - op = [_queryOperator objectForKey:key]; + [self _addQualifiersToArray:array + forValues:_queryMax + operatorSelector:EOQualifierOperatorLessThan];//LessThan ?? + [self _addQualifiersToArray:array + forValues:_queryMin + operatorSelector:EOQualifierOperatorGreaterThan];//GreaterThan ?? - if(op == nil) - operatorSelector = EOQualifierOperatorEqual; - else - operatorSelector = [EOQualifier operatorSelectorForString:op]; + NSDebugMLLog(@"gswdisplaygroup",@"_defaultStringMatchOperator=%@ EOQualifier sel:%p", + _defaultStringMatchOperator, + (void*)[EOQualifier operatorSelectorForString:_defaultStringMatchOperator]); + [self _addQualifiersToArray:array + forValues:_queryMatch + operatorSelector:[EOQualifier operatorSelectorForString:_defaultStringMatchOperator]];//VERIFY - [array addObject:[[[EOKeyValueQualifier alloc] - initWithKey:key - operatorSelector:operatorSelector - value:[_queryMatch objectForKey:key]] autorelease]]; - } - - 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]; + NSDebugMLLog(@"gswdisplaygroup",@"array=%@",array); + if ([array count]==1) + resultQualifier=[array objectAtIndex:0]; + else if ([array count]>1) + resultQualifier=[[[EOAndQualifier alloc] initWithQualifierArray:array] autorelease]; + NSDebugMLLog(@"gswdisplaygroup",@"resultQualifier=%@",resultQualifier); LOGObjectFnStop(); return resultQualifier; } @@ -1165,13 +1238,29 @@ Description: - (void)qualifyDataSource { + // near OK + EOQualifier* qualifier=nil; LOGObjectFnStart(); - [_dataSource setQualifier:[self qualifierFromQueryValues]]; - - _flags.queryMode = NO; - [self fetch]; - - LOGObjectFnNotImplemented(); //TODOFN + 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 + + NSDebugMLLog0(@"gswdisplaygroup",@"Will fetch"); + [self fetch];//OK use ret Value ? + NSDebugMLLog0(@"gswdisplaygroup",@"End fetch"); + } + NS_HANDLER + { + NSLog(@"%@ (%@)",localException,[localException reason]); + LOGException(@"%@ (%@)",localException,[localException reason]); + [localException raise]; + } + NS_ENDHANDLER; LOGObjectFnStop(); }; @@ -1180,11 +1269,15 @@ Description: - (void)qualifyDisplayGroup { + EOQualifier* qualifier=nil; LOGObjectFnStart(); - [self setQualifier:[self qualifierFromQueryValues]]; + [self setInQueryMode:NO]; + qualifier=[self qualifierFromQueryValues]; + NSDebugMLLog(@"gswdisplaygroup",@"qualifier=%@",qualifier); + [self setQualifier:qualifier]; + NSDebugMLLog0(@"gswdisplaygroup",@"updateDisplayedObjects"); [self updateDisplayedObjects]; - _flags.queryMode = NO; LOGObjectFnStop(); } @@ -1233,8 +1326,9 @@ Description: -(void)redisplay { + //VERIFY LOGObjectFnStart(); - LOGObjectFnNotImplemented(); //TODOFN + [self _notifyRowChanged:-1]; // -1 ?? LOGObjectFnStop(); }; @@ -1264,8 +1358,10 @@ Description: { id obj=nil; LOGObjectFnStart(); + NSDebugMLLog(@"gswdisplaygroup",@"_selectedObjects count=%d",[_selectedObjects count]); if([_selectedObjects count]) obj=[_selectedObjects objectAtIndex:0]; + NSDebugMLLog(@"gswdisplaygroup",@"selectedObject=%@",obj); LOGObjectFnStop(); return obj; @@ -1338,7 +1434,11 @@ Description: { BOOL result=NO; 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; else result=[self setSelectionIndexes: @@ -1346,13 +1446,13 @@ Description: [NSNumber numberWithUnsignedInt: [_allObjects indexOfObject:object]]]]; + NSDebugMLLog(@"gswdisplaygroup",@"result=%d",(int)result); LOGObjectFnStop(); return result; } //-------------------------------------------------------------------- // selectObjectsIdenticalTo: - - (BOOL)selectObjectsIdenticalTo:(NSArray *)objects { BOOL result=NO; @@ -1363,22 +1463,32 @@ Description: id dispObj=nil; LOGObjectFnStart(); + // Array of new selected indexes array = [NSMutableArray arrayWithCapacity:8]; + // ENumeratoe Objects to select objsEnum = [objects objectEnumerator]; + + // For each object to select while((object = [objsEnum nextObject])) { + //Enumerated displayed objects dispEnum = [_displayedObjects objectEnumerator]; + + // For each already displayed object while((dispObj = [dispEnum nextObject])) { + //if object to select is displayed if(dispObj == object) { + // Add it to array of selected indexes [array addObject:[NSNumber numberWithUnsignedInt: [_allObjects indexOfObject:object]]]; break; }; }; + //??? if(dispObj == nil) { [array removeAllObjects]; @@ -1396,6 +1506,20 @@ Description: - (BOOL)selectObjectsIdenticalTo:(NSArray *)objects 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; unsigned index=0; LOGObjectFnStart(); @@ -1601,6 +1725,7 @@ Description: - (void)setInQueryMode:(BOOL)flag { LOGObjectFnStart(); +//[self inQueryMode]//WO45P3 _flags.queryMode = flag; LOGObjectFnStop(); } @@ -1661,12 +1786,21 @@ Description: - (void)setObjectArray:(NSArray *)objects { LOGObjectFnStart(); +//self selectedObjects +// self updateDisplayedObjects NSDebugMLog(@"objects=%@",objects); [_allObjects removeAllObjects]; [_allObjects addObjectsFromArray:objects]; [self updateDisplayedObjects]; + if ([self selectsFirstObjectAfterFetch]) + { + [self selectObjectsIdenticalTo:_selection //TODO _selection ?? + selectFirstOnNoMatch:1]; + [self redisplay]; + } + // TODO selection LOGObjectFnStop(); } @@ -1721,54 +1855,71 @@ Description: - (BOOL)setSelectionIndexes:(NSArray *)selection_ { - NSEnumerator *objsEnum; - NSNumber *number; +//(0) object 0x2859148 +/* +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 retValue=NO; LOGObjectFnStart(); - - if(_delegateRespondsTo.shouldChangeSelection == YES) - if([delegate displayGroup:self - shouldChangeSelectionToIndexes:selection_] == NO) - return NO; - - objsEnum = [selection_ objectEnumerator]; - while((number = [objsEnum nextObject])) +//call selectedObjects //0x1a38b78 + if(_delegateRespondsTo.shouldChangeSelection == YES + && [delegate displayGroup:self + shouldChangeSelectionToIndexes:selection_] == NO) + retValue=NO; + else { - NS_DURING + objsEnum = [selection_ objectEnumerator]; + while((number = [objsEnum nextObject])) { - // check for objects - [_allObjects objectAtIndex:[number unsignedIntValue]]; + NS_DURING + { + // check for objects + [_allObjects objectAtIndex:[number unsignedIntValue]]; + } + NS_HANDLER + { + //return NO; + stop = YES; + retValue=NO; + } + NS_ENDHANDLER; } - NS_HANDLER + + if (!stop) { - //return NO; - stop = YES; - } - return NO; - NS_ENDHANDLER; - } - - if (stop) { - return NO; - } - [_selectedObjects removeAllObjects]; - - objsEnum = [selection_ objectEnumerator]; - while((number = [objsEnum nextObject])) - { - [_selectedObjects addObject:[_allObjects objectAtIndex:[number unsignedIntValue]]]; - } - - ASSIGN(_selection, selection_); - - if(_delegateRespondsTo.didChangeSelection == YES) - [delegate displayGroupDidChangeSelection:self]; - - if(_delegateRespondsTo.didChangeSelectedObjects == YES) - [delegate displayGroupDidChangeSelectedObjects:self]; + [_selectedObjects removeAllObjects]; + + objsEnum = [selection_ objectEnumerator]; + while((number = [objsEnum nextObject])) + { + [_selectedObjects addObject:[_allObjects objectAtIndex:[number unsignedIntValue]]]; + } + ASSIGN(_selection, selection_); + + if(_delegateRespondsTo.didChangeSelection == YES) + [delegate displayGroupDidChangeSelection:self]; + + if(_delegateRespondsTo.didChangeSelectedObjects == YES) + [delegate displayGroupDidChangeSelectedObjects:self]; + }; + }; LOGObjectFnStop(); - return YES; + return retValue; } //-------------------------------------------------------------------- @@ -1819,7 +1970,12 @@ Description: NSEnumerator *objsEnum=nil; id object=nil; LOGObjectFnStart(); - +//TODO +//self selectedObjects //() 0x1a38b78 +//self allObjects 0x27cadf8 +//self selectObjectsIdenticalTo:_selection selectFirstOnNoMatch:0 +//self redisplay +//STOP [_displayedObjects removeAllObjects]; if(_delegateRespondsTo.displayArrayForObjects == YES) diff --git a/GSWeb.framework/GSWDynamicElement.h b/GSWeb.framework/GSWDynamicElement.h index 8a41451..4c8d4f6 100644 --- a/GSWeb.framework/GSWDynamicElement.h +++ b/GSWeb.framework/GSWDynamicElement.h @@ -30,12 +30,14 @@ //==================================================================== @interface GSWDynamicElement : GSWElement { + NSString* _definitionName; // Name of element in def file (.gswd) - Mainly for debugging purpose }; -(id)initWithName:(NSString*)name_ associations:(NSDictionary*)associations_ template:(GSWElement*)template_; - +-(NSString*)definitionName; +-(void)setDefinitionName:(NSString*)definitionName; @end //==================================================================== diff --git a/GSWeb.framework/GSWDynamicElement.m b/GSWeb.framework/GSWDynamicElement.m index 0c7549c..d2cb3fc 100644 --- a/GSWeb.framework/GSWDynamicElement.m +++ b/GSWeb.framework/GSWDynamicElement.m @@ -43,7 +43,31 @@ static char rcsId[] = "$Id$"; 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) @@ -54,7 +78,8 @@ static char rcsId[] = "$Id$"; //OK BOOL _result=NO; LOGObjectFnStart(); - NSDebugMLLog(@"gswdync",@"condition_=%@",condition_); + NSDebugMLLog(@"gswdync",@"condition_=%@", + condition_); if (condition_) { GSWComponent* _component=[_context component]; @@ -68,6 +93,8 @@ static char rcsId[] = "$Id$"; #endif _result=boolValueWithDefaultFor(_value,YES); }; + NSDebugMLLog(@"gswdync",@"result=%s", + (_result ? "YES" : "NO")); LOGObjectFnStop(); return _result; }; diff --git a/GSWeb.framework/GSWElement.h b/GSWeb.framework/GSWElement.h index 382b36d..140755b 100644 --- a/GSWeb.framework/GSWElement.h +++ b/GSWeb.framework/GSWElement.h @@ -48,6 +48,8 @@ extern BYTE ElementsMap_attributeElement; file:(const char*)file_ line:(int)line_; #endif + +-(NSString*)definitionName; //return nil (for non dynamic element) @end #ifdef NDEBBUG diff --git a/GSWeb.framework/GSWElement.m b/GSWeb.framework/GSWElement.m index fc16a24..52f0e40 100644 --- a/GSWeb.framework/GSWElement.m +++ b/GSWeb.framework/GSWElement.m @@ -72,6 +72,11 @@ BYTE ElementsMap_attributeElement = (BYTE)0x41; }; }; #endif + +-(NSString*)definitionName +{ + return nil; //return nil (for non dynamic element) +}; @end //==================================================================== diff --git a/GSWeb.framework/GSWElementIDString.m b/GSWeb.framework/GSWElementIDString.m index fa6694f..f3bcacc 100644 --- a/GSWeb.framework/GSWElementIDString.m +++ b/GSWeb.framework/GSWElementIDString.m @@ -108,11 +108,11 @@ static char rcsId[] = "$Id$"; LOGObjectFnStart(); GSWLogAssertGood(self); GSWLogAssertGood(_string); - //GSWLogC("_string deallocate"); + GSWLogC("_string deallocate"); DESTROY(_string); - //GSWLogC("_string deallocated"); + GSWLogC("_string deallocated"); [super dealloc]; - //GSWLogC("GSWElementIDString end of dealloc"); + GSWLogC("GSWElementIDString end of dealloc"); }; -(void)getCString:(char*)buffer @@ -180,6 +180,110 @@ static char rcsId[] = "$Id$"; 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;isenderIDIntValue) + 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;iaStringIntValue ? 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 (selfElementsCountaStringElementsCount) + result=NSOrderedDescending; + }; + }; + return result; +} + +*/ + @end //==================================================================== diff --git a/GSWeb.framework/GSWForm.m b/GSWeb.framework/GSWForm.m index 1073407..3426f14 100644 --- a/GSWeb.framework/GSWForm.m +++ b/GSWeb.framework/GSWForm.m @@ -234,7 +234,7 @@ static char rcsId[] = "$Id$"; //-------------------------------------------------------------------- -(GSWElement*)invokeActionForRequest:(GSWRequest*)request_ - inContext:(GSWContext*)context_ + inContext:(GSWContext*)context_ { //OK GSWElement* _element=nil; @@ -249,80 +249,98 @@ static char rcsId[] = "$Id$"; LOGObjectFnStartC("GSWForm"); _senderID=[context_ senderID]; _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 - { - GSWAssertCorrectElementID(context_);// Debug Only - if ([self prefixMatchSenderIDInContext:context_]) //Avoid trying to find action if we are not the good component - { - _isFormSubmited=[_elementID isEqualToString:_senderID]; - NSDebugMLLog(@"gswdync",@"ET=%@ id=%@ senderId=%@ _isFormSubmited=%s", - [self class], - _elementID, - _senderID, - (_isFormSubmited ? "YES" : "NO")); - if (!WOStrictFlag && _isFormSubmited && [self disabledInContext:context_]) - _isFormSubmited=NO; - - if (_isFormSubmited) - { - [context_ setInForm:YES]; - [context_ _setFormSubmitted:YES]; - _multipleSubmit=[self evaluateCondition:multipleSubmit - inContext:context_]; - NSDebugMLLog(@"gswdync",@"ET=%@ id=%@ senderId=%@ _multipleSubmit=%s", - [self class], - _elementID, - _senderID, - (_multipleSubmit ? "YES" : "NO")); - [context_ _setIsMultipleSubmitForm:_multipleSubmit]; - }; - [context_ appendZeroElementIDComponent]; - for(i=0;!_element && i<[dynamicChildren count];i++) - { - NSDebugMLLog(@"gswdync",@"ET=%@ id=%@",[[dynamicChildren objectAtIndex:i] class],[context_ elementID]); - _element=[[dynamicChildren objectAtIndex:i] invokeActionForRequest:request_ - inContext:context_]; - [context_ incrementLastElementIDComponent]; - }; - [context_ deleteLastElementIDComponent]; - if (_isFormSubmited) - { - if ([context_ _wasActionInvoked]) - [context_ _setIsMultipleSubmitForm:NO]; - else - { - NSDebugMLLog0(@"gswdync",@"formSubmitted but no action was invoked!"); - }; - [context_ setInForm:NO]; - [context_ _setFormSubmitted:NO]; - }; - _elementID=[context_ elementID]; - NSDebugMLLog(@"gswdync",@"END ET=%@ id=%@",[self class],_elementID); + { + GSWAssertCorrectElementID(context_);// Debug Only + if ([self prefixMatchSenderIDInContext:context_]) //Avoid trying to find action if we are not the good component + { + BOOL searchIsOver=NO; + _isFormSubmited=[_elementID isEqualToString:_senderID]; + NSDebugMLLog(@"gswdync",@"ET=%@ id=%@ senderId=%@ _isFormSubmited=%s", + [self class], + _elementID, + _senderID, + (_isFormSubmited ? "YES" : "NO")); + if (!WOStrictFlag && _isFormSubmited && [self disabledInContext:context_]) + _isFormSubmited=NO; + + if (_isFormSubmited) + { + [context_ setInForm:YES]; + [context_ _setFormSubmitted:YES]; + _multipleSubmit=[self evaluateCondition:multipleSubmit + inContext:context_]; + NSDebugMLLog(@"gswdync",@"ET=%@ id=%@ senderId=%@ _multipleSubmit=%s", + [self class], + _elementID, + _senderID, + (_multipleSubmit ? "YES" : "NO")); + [context_ _setIsMultipleSubmitForm:_multipleSubmit]; + }; + [context_ appendZeroElementIDComponent]; + for(i=0;!_element && !searchIsOver && i<[dynamicChildren count];i++) + { + NSDebugMLLog(@"gswdync",@"ET=%@ id=%@", + [[dynamicChildren objectAtIndex:i] class], + [context_ elementID]); + _element=[[dynamicChildren objectAtIndex:i] invokeActionForRequest:request_ + 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_ deleteLastElementIDComponent]; + if (_isFormSubmited) + { + if ([context_ _wasActionInvoked]) + [context_ _setIsMultipleSubmitForm:NO]; + else + { + NSDebugMLLog0(@"gswdync",@"formSubmitted but no action was invoked!"); + }; + [context_ setInForm:NO]; + [context_ _setFormSubmitted:NO]; + }; + _elementID=[context_ elementID]; + NSDebugMLLog(@"gswdync",@"END ET=%@ def name=%@ id=%@", + [self class], + [self definitionName], + _elementID); #ifndef NDEBBUG - NSAssert(elementsNb==[(GSWElementIDString*)_elementID elementsNb],@"GSWForm invokeActionForRequest: bad elementID"); + NSAssert(elementsNb==[(GSWElementIDString*)_elementID elementsNb], + @"GSWForm invokeActionForRequest: bad elementID"); #endif - }; - } + }; + } NS_HANDLER - { - LOGException0(@"exception in GSWForm invokeActionForRequest:inContext"); - LOGException(@"exception=%@",localException); - localException=ExceptionByAddingUserInfoObjectFrameInfo(localException, - @"In GSWForm invokeActionForRequest:inContext"); - LOGException(@"exception=%@",localException); - [localException raise]; - } + { + LOGException0(@"exception in GSWForm invokeActionForRequest:inContext"); + LOGException(@"exception=%@",localException); + localException=ExceptionByAddingUserInfoObjectFrameInfo(localException, + @"In GSWForm invokeActionForRequest:inContext"); + LOGException(@"exception=%@",localException); + [localException raise]; + } NS_ENDHANDLER; _senderID=[context_ senderID]; _elementID=[context_ elementID]; - if (![context_ _wasActionInvoked] && [_elementID compare:_senderID]!=NSOrderedAscending) - { - LOGError(@"Action not invoked at the end of %@ (id=%@) senderId=%@", - [self class], - _elementID, - _senderID); - }; + //if (![context_ _wasActionInvoked] && [_elementID compare:_senderID]!=NSOrderedAscending) + if (![context_ _wasActionInvoked] && [_elementID isSearchOverForSenderID:_senderID]) + { + LOGError(@"Action not invoked at the end of %@ (def name=%@) (id=%@) senderId=%@", + [self class], + [self definitionName], + _elementID, + _senderID); + }; LOGObjectFnStopC("GSWForm"); return _element; }; diff --git a/GSWeb.framework/GSWHTMLDynamicElement.m b/GSWeb.framework/GSWHTMLDynamicElement.m index 2e481d0..2347122 100644 --- a/GSWeb.framework/GSWHTMLDynamicElement.m +++ b/GSWeb.framework/GSWHTMLDynamicElement.m @@ -490,7 +490,7 @@ static char rcsId[] = "$Id$"; //-------------------------------------------------------------------- -(GSWElement*)invokeActionForRequest:(GSWRequest*)request_ - inContext:(GSWContext*)context_ + inContext:(GSWContext*)context_ { //??? GSWElement* _element=nil; @@ -500,6 +500,8 @@ static char rcsId[] = "$Id$"; BYTE element=0; int elementsN[4]={0,0,0,0}; BOOL inChildren=NO; + BOOL searchIsOver=NO; + NSString* _senderID=nil; #ifndef NDEBUG NSString* debugElementID=nil; #endif @@ -507,62 +509,76 @@ static char rcsId[] = "$Id$"; NSDebugMLLog(@"gswdync",@"ET=%@ id=%@",[self class],[context_ elementID]); NSDebugMLLog(@"gswdync",@"_senderID=%@",[context_ senderID]); GSWAssertCorrectElementID(context_);// Debug Only - for(elementN=0;!_element && elementN<[elementsMap length];elementN++) - { - element=(BYTE)elements[elementN]; - if (element==ElementsMap_dynamicElement) - { - if (!inChildren) - { + _senderID=[context_ senderID]; + for(elementN=0;!_element && !searchIsOver && elementN<[elementsMap length];elementN++) + { + element=(BYTE)elements[elementN]; + if (element==ElementsMap_dynamicElement) + { + if (!inChildren) + { #ifndef NDEBUG - debugElementID=[context_ elementID]; + debugElementID=[context_ elementID]; #endif - [context_ appendZeroElementIDComponent]; - inChildren=YES; - }; - } - else - { - if (inChildren) - { - [context_ deleteLastElementIDComponent]; - inChildren=NO; + [context_ appendZeroElementIDComponent]; + inChildren=YES; + }; + } + else + { + if (inChildren) + { + [context_ deleteLastElementIDComponent]; + inChildren=NO; #ifndef NDEBUG - if (![debugElementID isEqualToString:[context_ elementID]]) - { - NSDebugMLLog(@"gswdync",@"ERROR class=%@ debugElementID=%@ [context_ elementID]=%@",[self class],debugElementID,[context_ elementID]); - - }; + if (![debugElementID isEqualToString:[context_ elementID]]) + { + NSDebugMLLog(@"gswdync",@"ERROR class=%@ debugElementID=%@ [context_ elementID]=%@", + [self class], + debugElementID, + [context_ elementID]); + + }; #endif - }; - }; - - if (element==ElementsMap_htmlBareString) - elementsN[0]++; - else if (element==ElementsMap_gswebElement) - elementsN[1]++; - else if (element==ElementsMap_dynamicElement) - { - NSDebugMLLog(@"gswdync",@"ET=%@ id=%@",[[_dynamicChildren objectAtIndex:elementsN[2]] class],[context_ elementID]); - _element=[[_dynamicChildren objectAtIndex:elementsN[2]] invokeActionForRequest:request_ - inContext:context_]; - [context_ incrementLastElementIDComponent]; - elementsN[2]++; - } - else if (element==ElementsMap_attributeElement) - elementsN[3]++; - }; + }; + }; + + if (element==ElementsMap_htmlBareString) + elementsN[0]++; + else if (element==ElementsMap_gswebElement) + elementsN[1]++; + else if (element==ElementsMap_dynamicElement) + { + NSDebugMLLog(@"gswdync",@"ET=%@ id=%@", + [[_dynamicChildren objectAtIndex:elementsN[2]] class], + [context_ elementID]); + _element=[[_dynamicChildren objectAtIndex:elementsN[2]] invokeActionForRequest:request_ + 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]; + elementsN[2]++; + } + else if (element==ElementsMap_attributeElement) + elementsN[3]++; + }; if (inChildren) - { - [context_ deleteLastElementIDComponent]; + { + [context_ deleteLastElementIDComponent]; #ifndef NDEBUG - if (![debugElementID isEqualToString:[context_ elementID]]) - { - NSDebugMLLog(@"gswdync",@"ERROR class=%@ debugElementID=%@ [context_ elementID]=%@",[self class],debugElementID,[context_ elementID]); - - }; + if (![debugElementID isEqualToString:[context_ elementID]]) + { + NSDebugMLLog(@"gswdync",@"ERROR class=%@ debugElementID=%@ [context_ elementID]=%@",[self class],debugElementID,[context_ elementID]); + + }; #endif - }; + }; NSDebugMLLog(@"gswdync",@"_senderID=%@",[context_ senderID]); NSDebugMLLog(@"gswdync",@"_elementID=%@",[context_ elementID]); NSDebugMLLog(@"gswdync",@"END ET=%@ id=%@",[self class],[context_ elementID]); diff --git a/GSWeb.framework/GSWHTMLStaticElement.m b/GSWeb.framework/GSWHTMLStaticElement.m index 25918c7..3b2115b 100644 --- a/GSWeb.framework/GSWHTMLStaticElement.m +++ b/GSWeb.framework/GSWHTMLStaticElement.m @@ -354,7 +354,7 @@ static char rcsId[] = "$Id$"; //-------------------------------------------------------------------- -(GSWElement*)invokeActionForRequest:(GSWRequest*)request_ - inContext:(GSWContext*)context_ + inContext:(GSWContext*)context_ { //OK GSWElement* _element=nil; @@ -363,26 +363,37 @@ static char rcsId[] = "$Id$"; const BYTE* elements=[elementsMap bytes]; BYTE element=0; int elementsN[3]={0,0,0}; + BOOL searchIsOver=NO; + NSString* _senderID=nil; NSDebugMLLog(@"gswdync",@"ET=%@ id=%@ senderId=%@",[self class],[context_ elementID],[context_ senderID]); GSWAssertCorrectElementID(context_);// Debug Only - for(elementN=0;!_element && elementN<[elementsMap length];elementN++) - { - element=(BYTE)elements[elementN]; - if (element==ElementsMap_htmlBareString) - elementsN[0]++; - else if (element==ElementsMap_dynamicElement) - { - NSDebugMLLog(@"gswdync",@"ET=%@ id=%@",[[_dynamicChildren objectAtIndex:elementsN[1]] class],[context_ elementID]); - _element=[[_dynamicChildren objectAtIndex:elementsN[1]] invokeActionForRequest:request_ - inContext:context_]; - [context_ incrementLastElementIDComponent]; - elementsN[1]++; - } - else if (element==ElementsMap_attributeElement) - { - elementsN[2]++; - }; - }; + _senderID=[context_ senderID]; + for(elementN=0;!_element && !searchIsOver && elementN<[elementsMap length];elementN++) + { + element=(BYTE)elements[elementN]; + if (element==ElementsMap_htmlBareString) + elementsN[0]++; + else if (element==ElementsMap_dynamicElement) + { + NSDebugMLLog(@"gswdync",@"ET=%@ id=%@",[[_dynamicChildren objectAtIndex:elementsN[1]] class],[context_ elementID]); + _element=[[_dynamicChildren objectAtIndex:elementsN[1]] invokeActionForRequest:request_ + 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]; + elementsN[1]++; + } + else if (element==ElementsMap_attributeElement) + { + elementsN[2]++; + }; + }; NSDebugMLLog(@"gswdync",@"END ET=%@ id=%@",[self class],[context_ elementID]); return _element; }; diff --git a/GSWeb.framework/GSWHyperlink.m b/GSWeb.framework/GSWHyperlink.m index e277932..aedb126 100644 --- a/GSWeb.framework/GSWHyperlink.m +++ b/GSWeb.framework/GSWHyperlink.m @@ -547,7 +547,9 @@ static char rcsId[] = "$Id$"; int elementsNb=[(GSWElementIDString*)[context_ elementID]elementsNb]; #endif 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 _senderID=[context_ senderID]; _elementID=[context_ elementID]; @@ -646,7 +648,8 @@ static char rcsId[] = "$Id$"; NSDebugMLLog(@"gswdync",@"GSWHTMLURLValuedElement invoke _element=%@",_element); NSDebugMLLog(@"gswdync",@"_senderID=%@",[context_ senderID]); 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 NSAssert(elementsNb==[(GSWElementIDString*)[context_ elementID]elementsNb],@"GSWHyperlink invokeActionForRequest: bad elementID"); #endif diff --git a/GSWeb.framework/GSWImageButton.m b/GSWeb.framework/GSWImageButton.m index fa27c90..4c95bcf 100644 --- a/GSWeb.framework/GSWImageButton.m +++ b/GSWeb.framework/GSWImageButton.m @@ -201,7 +201,8 @@ static char rcsId[] = "$Id$"; _disabledInContext=[self disabledInContext:context_]; [response_ _appendContentAsciiString:@" type=image"]; _name=[self nameInContext:context_]; - NSDebugMLLog(@"gswdync",@"_name=%@",_name); + NSDebugMLLog(@"gswdync",@"definition name=%@ _name=%@", + [self definitionName],_name); [response_ _appendContentAsciiString:@" name=\""]; [response_ appendContentHTMLAttributeValue:_name]; [response_ appendContentCharacter:'"']; @@ -337,7 +338,8 @@ static char rcsId[] = "$Id$"; _senderID=[context_ senderID]; NSDebugMLog(@"_senderID=%@",_senderID); _elementID=[context_ elementID]; - NSDebugMLog(@"_elementID=%@",_elementID); + NSDebugMLog(@"definition name=%@ _elementID=%@", + [self definitionName],_elementID); if ([_elementID isEqualToString:_senderID]) { //TODO diff --git a/GSWeb.framework/GSWKeyValueAssociation.m b/GSWeb.framework/GSWKeyValueAssociation.m index bc9fa4a..aebdabc 100644 --- a/GSWeb.framework/GSWKeyValueAssociation.m +++ b/GSWeb.framework/GSWKeyValueAssociation.m @@ -107,11 +107,14 @@ static char rcsId[] = "$Id$"; //-------------------------------------------------------------------- -(NSString*)description { + NSString* dscr=nil; GSWLogAssertGood(self); - return [NSString stringWithFormat:@"<%s %p - keyPath=%@>", - object_get_class_name(self), - (void*)self, - keyPath]; + dscr=[NSString stringWithFormat:@"<%s %p -", + object_get_class_name(self), + (void*)self]; + dscr=[dscr stringByAppendingFormat:@" keyPath=%@>", + keyPath]; + return dscr; }; @end diff --git a/GSWeb.framework/GSWSession.m b/GSWeb.framework/GSWSession.m index 3e920e8..8659a88 100644 --- a/GSWeb.framework/GSWSession.m +++ b/GSWeb.framework/GSWSession.m @@ -246,6 +246,7 @@ static char rcsId[] = "$Id$"; { //OK LOGObjectFnStart(); + NSDebugMLLog(@"sessions",@"newflag=%d",(int)_flag); storesIDsInCookies=_flag; LOGObjectFnStop(); }; diff --git a/GSWeb.framework/GSWSubmitButton.m b/GSWeb.framework/GSWSubmitButton.m index 805e3cf..a261d51 100644 --- a/GSWeb.framework/GSWSubmitButton.m +++ b/GSWeb.framework/GSWSubmitButton.m @@ -186,7 +186,8 @@ static char rcsId[] = "$Id$"; [localException raise]; } 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=%@", [self class], diff --git a/GSWeb.framework/GSWSwitchComponent.m b/GSWeb.framework/GSWSwitchComponent.m index 4bf6e2f..3cfa91f 100644 --- a/GSWeb.framework/GSWSwitchComponent.m +++ b/GSWeb.framework/GSWSwitchComponent.m @@ -35,24 +35,26 @@ static char rcsId[] = "$Id$"; { LOGObjectFnStartC("GSWSwitchComponent"); if ((self=[super initWithName:name_ - associations:associations_ - template:nil])) - { - NSMutableDictionary* _associations=[NSMutableDictionary dictionaryWithDictionary:associations_]; - [_associations removeObjectForKey:GSWComponentName__Key]; + associations:associations_ + template:nil])) + { + NSMutableDictionary* _associations=[NSMutableDictionary dictionaryWithDictionary:associations_]; + NSDebugMLLog(@"gswdync",@"GSWSwitchComponent: _associations=%@",_associations); + NSDebugMLLog(@"gswdync",@"GSWSwitchComponent: GSWComponentName__Key=%@",GSWComponentName__Key[GSWebNamingConv]); + [_associations removeObjectForKey:GSWComponentName__Key[GSWebNamingConv]]; + + componentName = [[associations_ objectForKey:GSWComponentName__Key[GSWebNamingConv] + withDefaultObject:[componentName autorelease]] retain]; + NSDebugMLLog(@"gswdync",@"GSWSwitchComponent: componentName=%@",componentName); - componentName = [[associations_ objectForKey:GSWComponentName__Key - withDefaultObject:[componentName autorelease]] retain]; - NSDebugMLLog(@"gswdync",@"GSWSwitchComponent: componentName=%@",componentName); - - ASSIGN(componentAttributes,[NSDictionary dictionaryWithDictionary:_associations]); - NSDebugMLLog(@"gswdync",@"GSWSwitchComponent: componentAttributes=%@",componentAttributes); - - ASSIGN(template,templateElement_); - NSDebugMLLog(@"gswdync",@"GSWSwitchComponent: template=%@",template); - - componentCache=[NSMutableDictionary new]; - }; + ASSIGN(componentAttributes,[NSDictionary dictionaryWithDictionary:_associations]); + NSDebugMLLog(@"gswdync",@"GSWSwitchComponent: componentAttributes=%@",componentAttributes); + + ASSIGN(template,templateElement_); + NSDebugMLLog(@"gswdync",@"GSWSwitchComponent: template=%@",template); + + componentCache=[NSMutableDictionary new]; + }; LOGObjectFnStopC("GSWSwitchComponent"); return self; }; diff --git a/GSWeb.framework/GSWTemplateParserANTLR.m b/GSWeb.framework/GSWTemplateParserANTLR.m index db2b551..f45395e 100644 --- a/GSWeb.framework/GSWTemplateParserANTLR.m +++ b/GSWeb.framework/GSWTemplateParserANTLR.m @@ -397,7 +397,9 @@ static char rcsId[] = "$Id$"; associations:_associations template:[[[GSWHTMLStaticGroup alloc]initWithContentElements:children]autorelease] languages:_languages]; - if (!element) + if (element) + [element setDefinitionName:[pageDefElement elementName]]; + else { ExceptionRaise(@"GSWTemplateParser", @"GSWTemplateParser: Creation failed for element named:%@ className:%@ in template named %@", diff --git a/GSWeb.framework/GSWTemplateParserXML.m b/GSWeb.framework/GSWTemplateParserXML.m index da50dcb..97a10be 100644 --- a/GSWeb.framework/GSWTemplateParserXML.m +++ b/GSWeb.framework/GSWTemplateParserXML.m @@ -834,7 +834,9 @@ text [Type:XML_TEXT_NODE] [{}] #### template:[[[GSWHTMLStaticGroup alloc]initWithContentElements:children]autorelease] languages:_languages]; NSDebugMLog(@"node=%p element=%@",currentNode,elem); - if (!elem) + if (elem) + [elem setDefinitionName:[definitionsElement elementName]]; + else { ExceptionRaise(@"GSWTemplateParser", @"%@ Creation failed for element named:%@ className:%@", diff --git a/GSWeb.framework/GSWUtils.m b/GSWeb.framework/GSWUtils.m index c851b6d..8a6fc6b 100644 --- a/GSWeb.framework/GSWUtils.m +++ b/GSWeb.framework/GSWUtils.m @@ -1737,7 +1737,7 @@ NSData* HexStringToData(NSString* _string) //-------------------------------------------------------------------- -(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), (void*)self, _searchList, @@ -1746,8 +1746,6 @@ NSData* HexStringToData(NSString* _string) _changedDomains, _dictionaryRep, _defaultsDatabase, - _defaultsDatabaseLockName, - _defaultsDatabaseLock, _tickingTimer]; }; diff --git a/GSWeb.framework/NSObject+IVarAccess+PerformSel.m b/GSWeb.framework/NSObject+IVarAccess+PerformSel.m index ad6eeff..448cb12 100644 --- a/GSWeb.framework/NSObject+IVarAccess+PerformSel.m +++ b/GSWeb.framework/NSObject+IVarAccess+PerformSel.m @@ -179,18 +179,27 @@ const char* GSGetInstanceVariableType(id obj, - (id)getIVarNamed:(NSString *)name_ { - id value; + id value=nil; 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(@"sel (valueForKey ) : %d", (int)sel); NS_DURING - //value = [self valueForKey:name_]; - value = (*imp)(self, sel, name_); + value = [self valueForKey:name_];//MGNEW + //MGNEW value = (*imp)(self, sel, name_); NS_HANDLER { + NSDebugMLLog(@"low",@"getIVarNamed %@ in %@ %p (superClass:%@). valueForKey: exception", + name_, + [self class], + self, + [self superclass]); if([self respondsToSelector:@selector(objectForKey:)] == YES) { if (name_) { value = [self objectForKey:name_]; @@ -219,7 +228,7 @@ const char* GSGetInstanceVariableType(id obj, withValue:(id)value_ { 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: ) : %d", (int)sel); @@ -227,8 +236,8 @@ const char* GSGetInstanceVariableType(id obj, //NSLog(@"setIVarNamed : self = %@", NSStringFromClass([self class])); //NSLog(@"setIVarNamed : name_ = %@ (%@)", name_, NSStringFromClass([name_ class])); //NSLog(@"setIVarNamed : value_ = %@ (%@)", value_, NSStringFromClass([value_ class])); - //[self takeValue:value_ forKey:name_]; - (*imp)(self, sel, value_, name_); + [self takeValue:value_ forKey:name_];//MGNEW + //MGNEW (*imp)(self, sel, value_, name_); NS_HANDLER { if (![name_ isEqualToString:@"self"]) { diff --git a/config.mak b/config.mak index 1d52d20..2e8a4ee 100644 --- a/config.mak +++ b/config.mak @@ -2,4 +2,4 @@ # # DYNAMIC_LINKER=simple -GDL2=yes +GDL2=no