generates HTML that matches the code in WO

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gsweb/trunk@14469 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
dwetzel 2002-09-16 23:56:28 +00:00
parent e1105af397
commit c6af3a1920

View file

@ -144,6 +144,22 @@ static char rcsId[] = "$Id$";
}; };
//==================================================================== //====================================================================
/*
On WO it looks like that:
<SELECT name="4.2.7">
<OPTION value="0">blau</OPTION>
<OPTION value="1">braun</OPTION>
<OPTION selected value="2">gruen</OPTION>
<OPTION value="3">marineblau</OPTION>
<OPTION value="4">schwarz</OPTION>
<OPTION value="5">silber</OPTION>
<OPTION value="6">weiss</OPTION></SELECT>
*/
@implementation GSWPopUpButton (GSWPopUpButtonA) @implementation GSWPopUpButton (GSWPopUpButtonA)
//#define ENABLE_OPTGROUP //#define ENABLE_OPTGROUP
@ -165,6 +181,8 @@ static char rcsId[] = "$Id$";
id escapeHTMLValue=nil; id escapeHTMLValue=nil;
int i=0; int i=0;
BOOL inOptGroup=NO; BOOL inOptGroup=NO;
NSString * popupName=nil;
#ifndef ENABLE_OPTGROUP #ifndef ENABLE_OPTGROUP
BOOL optGroupLabel=NO; BOOL optGroupLabel=NO;
#endif #endif
@ -177,8 +195,13 @@ static char rcsId[] = "$Id$";
request=[context request]; request=[context request];
isFromClientComponent=[request isFromClientComponent]; isFromClientComponent=[request isFromClientComponent];
component=[context component]; component=[context component];
[super appendToResponse:response popupName=[self nameInContext:context];
inContext:context];
//[super appendToResponse:response
// inContext:context];
[response _appendContentAsciiString:@"<SELECT"];
[response _appendContentAsciiString:[NSString stringWithFormat:@" NAME=\"%@\">",popupName]];
NSDebugMLLog(@"gswdync",@"_list=%@",_list); NSDebugMLLog(@"gswdync",@"_list=%@",_list);
if (_list) if (_list)
{ {
@ -191,6 +214,9 @@ static char rcsId[] = "$Id$";
[listValue class]); [listValue class]);
countValue=[listValue count]; countValue=[listValue count];
}; };
// NSLog(@"listValue=%@",listValue);
NSDebugMLLog(@"gswdync",@"_count=%@",_count); NSDebugMLLog(@"gswdync",@"_count=%@",_count);
if (_count) if (_count)
{ {
@ -214,6 +240,7 @@ static char rcsId[] = "$Id$";
selectedValueValue=[_selectedValue valueInComponent:component]; selectedValueValue=[_selectedValue valueInComponent:component];
NSDebugMLLog(@"gswdync",@"selectedValue=%@",_selectedValue); NSDebugMLLog(@"gswdync",@"selectedValue=%@",_selectedValue);
NSDebugMLLog(@"gswdync",@"selectedValueValue=%@",selectedValueValue); NSDebugMLLog(@"gswdync",@"selectedValueValue=%@",selectedValueValue);
if (_escapeHTML) if (_escapeHTML)
{ {
escapeHTMLValue=[_escapeHTML valueInComponent:component]; escapeHTMLValue=[_escapeHTML valueInComponent:component];
@ -274,14 +301,21 @@ static char rcsId[] = "$Id$";
{ {
if (_value) if (_value)
{ {
//NSLog(@"%s:%d valueValue:%@ selectionValue:%@",__FILE__,__LINE__,valueValue,selectionValue);
isEqual=SBIsValueEqual(valueValue,selectionValue); isEqual=SBIsValueEqual(valueValue,selectionValue);
// dave
// isEqual=[valueValue isEqual:selectionValue];
//We can have a value but want to compare on item/selection object //We can have a value but want to compare on item/selection object
if (!isEqual) if (!isEqual) {
isEqual=(itemValue && (itemValue==selectionValue)); // isEqual=(itemValue && (itemValue==selectionValue));
} isEqual=(itemValue && ([itemValue isEqual:selectionValue]));
else } // ??
} else {
//NSLog(@"%s:%d itemValue:%@ selectionValue:%@",__FILE__,__LINE__,itemValue,selectionValue);
isEqual=SBIsValueEqual(itemValue,selectionValue); isEqual=SBIsValueEqual(itemValue,selectionValue);
}
NSDebugMLLog(@"gswdync",@"isEqual=%s",(isEqual ? "YES" : "NO")); NSDebugMLLog(@"gswdync",@"isEqual=%s",(isEqual ? "YES" : "NO"));
if (isEqual) if (isEqual)
{ {
@ -291,11 +325,13 @@ static char rcsId[] = "$Id$";
}; };
if (isEqual == NO && _selectedValue) if (isEqual == NO && _selectedValue)
{ {
if(_value) if(_value) {
//NSLog(@"%s:%d valueValue:%@ selectedValueValue:%@",__FILE__,__LINE__,valueValue,selectedValueValue);
isEqual=SBIsValueEqual(valueValue,selectedValueValue); isEqual=SBIsValueEqual(valueValue,selectedValueValue);
else } else {
//NSLog(@"%s:%d itemValue:%@ selectedValueValue:%@",__FILE__,__LINE__,itemValue,selectedValueValue);
isEqual=SBIsValueEqual(itemValue,selectedValueValue); isEqual=SBIsValueEqual(itemValue,selectedValueValue);
}
NSDebugMLLog(@"gswdync",@"isEqual=%s",(isEqual ? "YES" : "NO")); NSDebugMLLog(@"gswdync",@"isEqual=%s",(isEqual ? "YES" : "NO"));
if (isEqual) if (isEqual)
{ {
@ -306,7 +342,8 @@ static char rcsId[] = "$Id$";
if (valueValue) if (valueValue)
{ {
[response _appendContentAsciiString:@" value=\""]; [response _appendContentAsciiString:@" value=\""];
[response _appendContentAsciiString:valueValue]; //[response _appendContentAsciiString:valueValue];
[response _appendContentAsciiString:[NSString stringWithFormat:@"%d",i]];
[response appendContentCharacter:'"']; [response appendContentCharacter:'"'];
}; };
[response appendContentCharacter:'>']; [response appendContentCharacter:'>'];
@ -464,6 +501,7 @@ static char rcsId[] = "$Id$";
{ {
BOOL isEqual=NO; BOOL isEqual=NO;
formValue=[formValues objectAtIndex:0]; formValue=[formValues objectAtIndex:0];
//NSLog(@"GSWPopUpButton formValue=%@",formValue);
NSDebugMLLog(@"gswdync",@"formValue=%@",formValue); NSDebugMLLog(@"gswdync",@"formValue=%@",formValue);
if (_list) if (_list)
{ {
@ -492,35 +530,18 @@ static char rcsId[] = "$Id$";
countValue=tmpCount; countValue=tmpCount;
} }
for(i=0;!found && i<countValue;i++) for(i=0;!found && i<countValue;i++) {
{
if (listValue)
itemValue=[listValue objectAtIndex:i]; itemValue=[listValue objectAtIndex:i];
else // NSDebugMLLog(@"gswdync",@"_itemValue=%@",itemValue);
itemValue=[NSNumber numberWithShort:i]; // NSDebugMLLog(@"gswdync",@"item=%@",_item);
NSDebugMLLog(@"gswdync",@"itemValue %p=%@ (class %@)",itemValue,itemValue,[itemValue class]);
NSDebugMLLog(@"gswdync",@"item=%@",_item);
if (_item) if (_item)
[_item setValue:itemValue [_item setValue:itemValue
inComponent:component]; inComponent:component];
if (_index) //NSDebugMLLog(@"gswdync",@"value=%@",_value);
[_index setValue:[NSNumber numberWithShort:i] if ([formValues containsObject:[NSString stringWithFormat:@"%d",i]])
inComponent:component];
NSDebugMLLog(@"gswdync",@"value=%@",_value);
if (_value)
valueValue=[self valueInContext:context];
else
{ {
_autoValue = YES; found=YES;
valueValue=itemValue;
};
NSDebugMLLog(@"gswdync",@"valueValue=%@ [class=%@] formValue=%@ [class=%@]",
valueValue,[valueValue class],
formValue,[formValue class]);
isEqual=SBIsValueEqual(valueValue,formValue);
if (isEqual)
{
NSDebugMLLog(@"gswdync",@"selection=%@",_selection);
if (_selection) if (_selection)
{ {
NS_DURING NS_DURING
@ -545,29 +566,10 @@ static char rcsId[] = "$Id$";
} }
NS_ENDHANDLER; NS_ENDHANDLER;
}; };
if (!WOStrictFlag)
{
NSDebugMLLog(@"gswdync",@"selectionValue=%@",_selectionValue);
if (_selectionValue)
{
NS_DURING
{
[_selectionValue setValue:valueValue
inComponent:component];
}
NS_HANDLER
{
LOGException(@"GSWPopUpButton _selectionValue=%@ valueValue=%@ exception=%@",
_selectionValue,valueValue,localException);
[self handleValidationException:localException
inContext:context];
}
NS_ENDHANDLER;
};
};
found=YES;
};
}; };
};// for
}; };
NSDebugMLLog(@"gswdync",@"found=%s",(found ? "YES" : "NO")); NSDebugMLLog(@"gswdync",@"found=%s",(found ? "YES" : "NO"));
if (!found) if (!found)