- From: Mark Seaborne <m_seaborne@mac.com>
- Date: Thu, 8 May 2008 07:35:38 +0100
- To: Andy Bailey <andy@hazlorealidad.com>
- Cc: www-forms@w3.org
Andy, I know that the XSmiles browser has a tree control in its XForms implementation (http://www.x-smiles.org/) because I have used it for just the purpose you have in mind. It might be worth just having a look just to get some ideas from. I had thought that one or two other XForms implementations have implemented the same extension, but maybe not. All the best Mark On 27 Apr 2008, at 15:22, Andy Bailey wrote: > > I sent a message to mozilla.dev.tech.xforms and someone suggested > that I > post the message to this group- so here goes: > > I have a recursive data structure (see below), with any number of > levels and would like to display it in a select1 > the closest I can get so far is a flat select1 using //path however it > would be nice to group the options together. > > > Ideally I would like a tree structure where I could expand/hide the > child elements as well as select1 > something like appearance="tree" > > > I see that you can write custom controls in firefox with xul or xbl > but > have no > experience with either and also would like a standard xform > solution. I > thought of using repeats as well but cant see any way to have any > number of levels. > > > If I used repeats how could I get the expand/hide functionality? > > > In the repeat example I had to use index('part1')" in > <xf:setvalue bind="selectedpart" value="index('part1')"/> > "name" didnt work and if I put value="name(.)" the selected part > became the string "selectedpart" > can anyone explain why that is? I assumed it would be the node of the > repeat. > > > Also if I clicked with the mouse on the select1 each time the model > got updated but if I used the arrow keys up/down then the model didnt > get update even though incremental="true", is this a bug in firefox or > expected behavior in xforms? > > > > Thanks in advance > > > Andy Bailey > http://www.hazlorealidad.com > > > <assembly> > <name>Open source CNC Machine</name> > <parts> > <part id="structure"> > <name>Estructura</name> > <parts> > <part id="base"> > <name>Base</name> > <parts> > <part id="baseStructure"> > <name>Estructura</name> > </part> > <part id="feet"> > <name>Pies</name> > </part> > <part id="antiVibration"> > <name>Aisladores (anti vibración)</name> > </part> > </parts> > </part> > .... > > <xf:select1 bind="selectedpart" appearance="full" incremental="true"> > <xf:label>Part Tree: </xf:label> > <xf:itemset nodeset="instance('assembly')//part"> > <xf:label ref="name"/> > <xf:value ref="@id"/> > </xf:itemset> > </xf:select1> > > > <!-- > <xf:repeat id="part1" nodeset="instance('assembly')/parts/part"> > <div style="margin-left:0em;"> > <xf:trigger ref="."> > <xf:label> > <xf:output ref="name"/> > </xf:label> > <xf:action ev:event="DOMActivate"> > <xf:setvalue bind="selectedpart" value="index('part1')"/> > <xf:message level="modal">Part Selected <xf:output ref="name"/></ > xf:message> > </xf:action> > > > </xf:trigger> > <xf:repeat id="part2" nodeset="parts/part"> > <div style="margin-left:2em;"> > <xf:trigger ref="."> > <xf:label> > <xf:output ref="name"/> > </xf:label> > </xf:trigger> > <xf:repeat nodeset="parts/part"> > <div style="margin-left:2em;"> > <xf:trigger ref="."> > <xf:label> > <xf:output ref="name"/> > </xf:label> > </xf:trigger> > </div> > </xf:repeat> > </div> > </xf:repeat> > </div> > </xf:repeat> > --> > > > > >
Received on Thursday, 8 May 2008 06:36:24 UTC