- 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