[Ooc-checkins] libnet/src/HTML Form.Mod,1.10,1.11
Brought to you by:
mva
From: Michael v. A. <mv...@us...> - 2004-06-29 21:17:08
|
Update of /cvsroot/ooc/libnet/src/HTML In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20638/src/HTML Modified Files: Form.Mod Log Message: (ToParameterList) New method for instances of Input. Index: Form.Mod =================================================================== RCS file: /cvsroot/ooc/libnet/src/HTML/Form.Mod,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- Form.Mod 3 Mar 2004 22:32:35 -0000 1.10 +++ Form.Mod 29 Jun 2004 21:16:56 -0000 1.11 @@ -17,6 +17,13 @@ type-: Type; designator-: STRING; END; + Parameter* = POINTER TO ParameterDesc; + ParameterDesc = RECORD + (Object.ObjectDesc) + name-: STRING; + value-: STRING; + END; + ParameterList* = ArrayList.ArrayList(Parameter); TYPE Item = POINTER TO ItemDesc; @@ -230,6 +237,12 @@ item.value := value; END INIT; +PROCEDURE (dv: Parameter) INIT*(name, value: STRING); + BEGIN + dv.name := name; + dv.value := value; + END INIT; + (* ------------------------------------------------------------------------ *) PROCEDURE (t: Type) INIT*(); @@ -257,6 +270,9 @@ @ofield{r.errors}. *) END Retrieve; +PROCEDURE (t: Type) [ABSTRACT] ToParameterList*(l: ParameterList; v: Input); + END ToParameterList; + PROCEDURE (v: Input) INIT*(type: Type); BEGIN v.type := type; @@ -269,6 +285,20 @@ PROCEDURE (v: Input) [ABSTRACT] Write*(w: Writer); END Write; +PROCEDURE (v: Input) ToParameterList*(l: ParameterList); + BEGIN + v.type.ToParameterList(l, v); + END ToParameterList; + +PROCEDURE ToParameterList*(v: Input): ParameterList; + VAR + param: ParameterList; + BEGIN + param := NEW(ParameterList, 8); + v.ToParameterList(param); + RETURN param; + END ToParameterList; + (* ------------------------------------------------------------------------ *) PROCEDURE (r: Reader) INIT*(type: Type; request: Server.Request); @@ -335,6 +365,15 @@ PROCEDURE ^ (t: ScalarType) WriteValue*(w: Writer; v: ScalarInput); +PROCEDURE (t: ScalarType) ToParameterList*(l: ParameterList; v: Input); + VAR + x: ScalarInput; + BEGIN + x := v(ScalarInput); + l.Append(NEW(Parameter, x.designator, x.current)); + END ToParameterList; + + PROCEDURE (v: ScalarInput) Write*(w: Writer); BEGIN v.type(ScalarType).WriteValue(w, v); @@ -347,7 +386,6 @@ END; END Write; - PROCEDURE (t: ScalarType) INIT*(); BEGIN t.INIT^(); @@ -888,6 +926,19 @@ RETURN NEW(RecordInput, t); END NewInstance; +PROCEDURE (t: RecordType) ToParameterList*(l: ParameterList; v: Input); + VAR + fields: Dictionary.ItemArrayPtr(STRING, Input); + i: LONGINT; + x: RecordInput; + BEGIN + x := v(RecordInput); + fields := x.fields.Items(); + FOR i := 0 TO LEN(fields^)-1 DO + fields[i].value.ToParameterList(l); + END; + END ToParameterList; + PROCEDURE (t: RecordType) DefaultInstance*(): RecordInput; VAR v: RecordInput; @@ -993,6 +1044,19 @@ RETURN NEW(ArrayInput, t); END NewInstance; +PROCEDURE (t: ArrayType) ToParameterList*(l: ParameterList; v: Input); + VAR + i: LONGINT; + x: ArrayInput; + BEGIN + x := v(ArrayInput); + l.Append(NEW(Parameter, x.designator+".length", + Boxed.IntToString(x.elements.size))); + FOR i := 0 TO x.elements.size-1 DO + x.elements.array[i].ToParameterList(l); + END; + END ToParameterList; + PROCEDURE (t: ArrayType) DefaultInstance*(): ArrayInput; BEGIN ASSERT(FALSE); @@ -1037,6 +1101,11 @@ RETURN NEW(BooleanInput, t, FALSE); END NewInstance; +PROCEDURE (t: SubmitType) ToParameterList*(l: ParameterList; v: Input); + BEGIN + (* submit buttons are omitted from the parameter list *) + END ToParameterList; + PROCEDURE (t: SubmitType) FromStringRepr*(r: Reader; v: ScalarInput; str: STRING): Object.Object; BEGIN |