diff --git a/GSWeb.framework/GSWCheckBoxList.h b/GSWeb.framework/GSWCheckBoxList.h index 5f477bc..064b542 100644 --- a/GSWeb.framework/GSWCheckBoxList.h +++ b/GSWeb.framework/GSWCheckBoxList.h @@ -48,6 +48,9 @@ GSWAssociation* _escapeHTML; GSWAssociation* _itemDisabled; BOOL _defaultEscapeHTML; +//GSWeb Additions { + GSWAssociation* _isDisplayStringBefore; +// } }; -(id)initWithName:(NSString*)name diff --git a/GSWeb.framework/GSWCheckBoxList.m b/GSWeb.framework/GSWCheckBoxList.m index 22151ec..6ed72dc 100644 --- a/GSWeb.framework/GSWCheckBoxList.m +++ b/GSWeb.framework/GSWCheckBoxList.m @@ -61,6 +61,8 @@ Bindings disabled If evaluated to yes, the check box appear inactivated. escapeHTML If evaluated to yes, escape displayString + + isDisplayStringBefore If evaluated to no, displayString is displayed after radio button. **/ //==================================================================== @@ -144,6 +146,12 @@ Bindings _escapeHTML = [[associations objectForKey:escapeHTML__Key withDefaultObject:[_escapeHTML autorelease]] retain]; NSDebugMLLog(@"gswdync",@"escapeHTML=%@",_escapeHTML); + + if (!WOStrictFlag) + { + _isDisplayStringBefore=[[associations objectForKey:isDisplayStringBefore__Key + withDefaultObject:[_isDisplayStringBefore autorelease]] retain]; + }; }; LOGObjectFnStop(); return self; @@ -162,6 +170,7 @@ Bindings DESTROY(_displayString); DESTROY(_itemDisabled); DESTROY(_escapeHTML); + DESTROY(_isDisplayStringBefore);//GSWeb Only [super dealloc]; } @@ -390,6 +399,7 @@ Bindings id valueValue=nil; id itemValue=nil; BOOL disabledInContext=NO; + BOOL isDisplayStringBefore=NO; NSArray* listValue=[_list valueInComponent:component]; NSAssert3(!listValue || [listValue respondsToSelector:@selector(count)], @@ -414,7 +424,14 @@ Bindings [_index setValue:[NSNumber numberWithShort:i] inComponent:component]; + if (_isDisplayStringBefore) + isDisplayStringBefore=[self evaluateCondition:_isDisplayStringBefore + inContext:context]; + displayStringValue=[_displayString valueInComponent:component]; + + if (isDisplayStringBefore) + [response appendContentHTMLString:displayStringValue]; [response appendContentString:@"']; [response appendContentString:prefixValue]; - [response appendContentHTMLString:displayStringValue]; + if (!isDisplayStringBefore) + [response appendContentHTMLString:displayStringValue]; [response appendContentString:suffixValue]; }; }; diff --git a/GSWeb.framework/GSWRadioButtonList.h b/GSWeb.framework/GSWRadioButtonList.h index 1388a10..49b7f9a 100644 --- a/GSWeb.framework/GSWRadioButtonList.h +++ b/GSWeb.framework/GSWRadioButtonList.h @@ -45,6 +45,9 @@ GSWAssociation* _prefix; GSWAssociation* _suffix; GSWAssociation* _displayString; +//GSWeb Additions { + GSWAssociation* _isDisplayStringBefore; +// } GSWAssociation* _escapeHTML; BOOL _defaultEscapeHTML; BOOL _autoValue; diff --git a/GSWeb.framework/GSWRadioButtonList.m b/GSWeb.framework/GSWRadioButtonList.m index a0a2388..fa53ab4 100644 --- a/GSWeb.framework/GSWRadioButtonList.m +++ b/GSWeb.framework/GSWRadioButtonList.m @@ -62,6 +62,7 @@ Bindings escapeHTML If evaluated to yes, escape displayString + isDisplayStringBefore If evaluated to yes, displayString is displayed before radio button **/ //==================================================================== @implementation GSWRadioButtonList @@ -127,6 +128,12 @@ Bindings withDefaultObject:[_suffix autorelease]] retain]; _displayString=[[associations objectForKey:displayString__Key withDefaultObject:[_displayString autorelease]] retain]; + + if (!WOStrictFlag) + { + _isDisplayStringBefore=[[associations objectForKey:isDisplayStringBefore__Key + withDefaultObject:[_isDisplayStringBefore autorelease]] retain]; + }; _escapeHTML=[[associations objectForKey:escapeHTML__Key withDefaultObject:[_escapeHTML autorelease]] retain]; }; @@ -144,6 +151,7 @@ Bindings DESTROY(_prefix); DESTROY(_suffix); DESTROY(_displayString); + DESTROY(_isDisplayStringBefore);//GSWeb Only DESTROY(_escapeHTML); [super dealloc]; } @@ -330,6 +338,7 @@ Bindings id selectionValueValue=nil; int i=0; id displayStringValue=nil; + BOOL isDisplayStringBefore=NO; id prefixValue=nil; id suffixValue=nil; id valueValue=nil; // _value value (or auto value) @@ -366,8 +375,15 @@ Bindings [_index setValue:[NSNumber numberWithShort:i] inComponent:component]; + if (_isDisplayStringBefore) + isDisplayStringBefore=[self evaluateCondition:_isDisplayStringBefore + inContext:context]; + displayStringValue=[_displayString valueInComponent:component]; + if (isDisplayStringBefore) + [response appendContentHTMLString:displayStringValue]; + [response appendContentString:@"']; [response appendContentString:prefixValue]; - [response appendContentHTMLString:displayStringValue]; + if (!isDisplayStringBefore) + [response appendContentHTMLString:displayStringValue]; [response appendContentString:suffixValue]; }; LOGObjectFnStopC("GSWRadioButtonList");