I'd like to create a form (using FunFormKit) dynamically, when the
servlet runs. Currently I do this as follows:


formDef = FormDefinition( "SelectDb", [])
layout = []

class SelectDb(BasicForm):

        def __init__(self):
                BasicForm.__init__(self, formDef, layout)
        def renderForm(self, deffields):
                fields, layout, values = self.buildForm()
                formDef.setFields(fields, None)
                rf = self.renderableForm(defaults=values, formDefinition=formDef)
                self.write(rf.htFormLayout(layout, spacing=10))
        def buildForm(self):
                # creates fields and layout structure using DB info
                return fields, layout, values

That requires a patch to FunFormKit/Form.py to provide the setFields()
method:

diff -ru FunFormKit/Form.py orig/Form.py
--- FunFormKit/Form.py  Thu Oct 24 07:57:12 2002
+++ orig/Form.py        Wed Jan 22 17:45:37 2003
@@ -539,10 +539,13 @@
         self._name = name
         self._method = method
         self._formValidators = formValidators
+        self._errorFormatter = errorFormatter
+        self.setFields(fields, enctype)
+
+    def setFields(self, fields, enctype):
         self._fields = {}
         self._fieldOrder = []
         self._submitFields = {}
-        self._errorFormatter = errorFormatter
         for field in fields:
             name = field.name()
             self._fields[name] = field

What bothers me is the need of patching FFK (Ian, would you accept this
patch?). Is there a better way to do what I want?

-- 
Bst rgrds, M.A.X.: Mechanical Artificial Xenomorph.


-------------------------------------------------------
This SF.net email is sponsored by: Scholarships for Techies!
Can't afford IT training? All 2003 ictp students receive scholarships.
Get hands-on training in Microsoft, Cisco, Sun, Linux/UNIX, and more.
www.ictp.com/training/sourceforge.asp
_______________________________________________
Webware-discuss mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/webware-discuss

Reply via email to