In my example code below, there's an "onselect" method for the first
combobox.

While the code works, I need it to be more generic so that I can apply the
same logic to the rest of the comboboxes.

Basically, from inside a combobox, I need to build a new datapath based on
where I currently am, and then use that to set the datapath on the next
combobox...


var dp = this.getAttribute('datapath') + "[EMAIL PROTECTED]'" + this.value + 
"']" ;
next_combobox.setDatapath( dp );


Of course, that doesn't work.

I'm sure there's some XPath magic involved but I can't find a good example.


Any ideas?





<canvas width="600" height="400">

  <class name="textlistitemx" extends="textlistitem">
    <method event="ondata">
      <!-- if I'm the first (or only) item in the list, -->
      <!-- make my parent select me -->
      <![CDATA[
      if( !this['clonenumber'] || this.clonenumber == 0 )
        this.parent.select(this);
      ]]>
    </method>
  </class>


  <dataset name="ds_symbols">
    <symbols>
      <year value="2007">
        <make value="AUDI">
          <model value="Q7 QUATTRO">
            <body value="UTL4X4 4 Dr">
              <vin value="WA1AV74L&amp;7" symbol="23" />
              <vin value="WA1AV94L&amp;7" symbol="24" />
              <vin value="WA1BV74L&amp;7" symbol="24" />
              <vin value="WA1BV94L&amp;7" symbol="25" />
            </body>
          </model>
        </make>
        <make value="CADILLAC">
          <model value="ESCALADE">
            <body value="UTL4X2 4 Dr">
              <vin value="1GY&amp;C638&amp;7" symbol="23" />
            </body>
          </model>
          <model value="ESCALADE AWD">
            <body value="UTL4X4 4 Dr">
              <vin value="1GY&amp;K638&amp;7" symbol="23" />
            </body>
          </model>
          <model value="ESCALADE ESV AWD">
            <body value="UTL4X4 4 Dr">
              <vin value="3GY&amp;K668&amp;7" symbol="23" />
            </body>
          </model>
          <model value="ESCALADE EXT AWD">
            <body value="SUT4X4 4 Dr">
              <vin value="3GY&amp;K628&amp;7" symbol="25" />
            </body>
          </model>
        </make>
      </year>
    </symbols>
  </dataset>


  <simplelayout axis="y"/>

  <combobox editable="false" name="cbyear" datapath="ds_symbols:/symbols">
    <method event="onselect">
      var dp = "ds_symbols:/symbols/[EMAIL PROTECTED]'" + this.value + "']";
      parent.cbmake.setDatapath( dp );
    </method>
    <textlistitemx datapath="year"
      text="$path{'@value'}" value="$path{'@value'}" />
  </combobox>

  <combobox editable="false" name="cbmake" datapath="">
    <method event="onselect">
      // ???
    </method>
    <textlistitemx datapath="make"
      text="$path{'@value'}" value="$path{'@value'}" />
  </combobox>

  <combobox editable="false" name="cbmodel" datapath="">
    <method event="onselect">
      // ???
    </method>
    <textlistitemx datapath="model"
    text="$path{'@value'}" value="$path{'@value'}" />
  </combobox>

  <combobox editable="false" name="cbbody" datapath="">
    <method event="onselect">
      // ???
    </method>
    <textlistitemx datapath="body"
    text="$path{'@value'}" value="$path{'@value'}" />
  </combobox>

  <combobox editable="false" name="cbvin" datapath="">
    <method event="onselect">
      // ???
    </method>
    <textlistitemx datapath="vin"
    text="$path{'@value'}" value="$path{'@value'}" />
  </combobox>


</canvas>


_______________________________________________
Laszlo-user mailing list
[email protected]
http://www.openlaszlo.org/mailman/listinfo/laszlo-user

Reply via email to