hi,

i've followed the discussions on the list about dynamic forms and the solution
using panels. but actually i'm doing myself hard getting this concept 
implemented.

i have done the following successfully using stripes and freemarker, using
recursions in depth, but wicket is another story:

i have an xml-file describing a content type (which comes from a database) like
this:

---8<---
<?xml version="1.0" encoding="iso-8859-15"?>
<content-descriptor name="artikel">
  <tab name="personal">
    <input type="datetime" name="published" required="true" />
    <input type="select" mode="dropdown" name="gender" required="true" >
      <option label="choose" value=""/>
      <option label="female" value="f"/>
      <option label="male" value="m"/>
    </input>
    <input type="text/line" name="username" size="100" required="true" />
    <input type="boolean" name="active" value="true" />
  </tab>
  <tab name="misc">
    <group name="bilder" maxentries="3">
      <input type="file" name="foto" maxentries="3" required="false" />
      <input type="text/line" name="description" required="false" size="100" />
      <group name="morefiles" maxentries="2">
        <input type="text/line" name="text1" required="true" size="100" />
        <input type="text/line" name="text2" required="true" size="100" />
      </group>
    </group>
    <input type="text/tagged" name="skills" required="false" />
    <input type="select" mode="radio" name="color" required="false" >
      <option label="red" value="r"/>
      <option label="green" value="g"/>
      <option label="blue" value="b"/>
    </input>
    <input type="select" mode="multi" name="pets" required="false" >
      <option label="dog" value="dog"/>
      <option label="cat" value="cat"/>
      <option label="squirrel" value="squirrel"/>
    </input>
  </tab>
</content-descriptor>
---8<---

based on this description (the tab-entries represent tabs in the form and are
not reflected in the content), i have contents coming from a database:

---8<---
<?xml version="1.0" encoding="iso-8859-15"?>
<content>
  <published>20.01.2006</published>
  <gender>m</gender>
  <username>Jan</username>
  <active>true</active>
  <bilder>
    <foto>27</foto>
    <foto>22</foto>
    <description>my fotos</description>
    <morefiles>
      <text1>1</text1>
      <text2>2</text2>
    </morefiles>
  </bilder>
  <bilder>
    <foto>21</foto>
    <foto>50</foto>
    <foto>5</foto>
    <description>Artworks</description>
    <morefiles>
      <ein_text>infotext 1</ein_text>
      <zwei_text>infotext 2</zwei_text>
    </morefiles>
  </bilder>
  <skills>I am a player! :)</skills>
  <color>r</color>
  <pets>squirrel</pets>
</content>
---8<---

what i'm trying to do is building a form which represents the content based on
the descriptor. that means dynamically add entries, hierarchies to the content
when the user wishs to.

as far as i understand i would have to create panels for each type in the
descriptor. but how should the starting point be used? having a listview and add
different panels? how could groups be handled - how would the content in a
recursion be updatable. i'm quite lost in such a complex scenario with wicket. i
guess i've been in the wrong programming model for quite a while... ;-)

with stripes, i converted the content into a typed list which contains typed
maps and list, stripes handles the types via reflection. the recursion was then
done in freemarker over the nodes of the descriptor and the list. adding entries
to the lists/maps was then handled by the actionbean.

anyone up for the challenge?

best regards, --- jan.

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Wicket-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/wicket-user

Reply via email to