Tests are on the todo list, probably in the next day or two. Here is
any example that implements tabs with a zone.

<t:zone t:id="tabs" id="tabs">
        <t:pagelink page="index"  t:mixins="click" title="Image"
                click.event="tab" click.context="0" t:zone="^"
                zoneUpdate="highlight">Image
        </t:pagelink>
        <t:pagelink page="index"  t:mixins="click" title="Description"
                click.event="tab" click.context="1" t:zone="^"
                zoneUpdate="highlight">Description
        </t:pagelink>
        <t:pagelink page="index" t:mixins="click" title="Room"
                click.event="tab" click.context="2" t:zone="^"
                zoneUpdate="highlight">In A Room
        </t:pagelink>
        <br />
        <t:if test="isTab(0)">
                        <div t:type="any" t:mixins="jquery/ui/widget"
widget.name="draggable">tab0</div>
        </t:if>
        <t:if test="isTab(1)">
        <div>
                <div t:type="any" t:mixins="jquery/ui/widget,slidechange"
widget.name="slider"
                        options="{min:0, max:100, value: 10, step: 2}"
                        slidechange.event="slidechange"
                        slidechange.contextFunction="function(url,ui) { return
url.addContext(url.ui.value); }"/>
                 </div>
    </t:if>
        <t:if test="isTab(2)">                                                  
                        <div t:type="any" t:mixins="jquery/ui/widget" 
name="progressbar"
options="{value: 10}"/>
        </t:if>
</t:zone>

The java side is this

         @InjectComponent
          private Zone tabs;
        
         @Property
         private Integer tab;
        
          Object onTab(Integer tab) {
                  this.tab = tab;
                  return tabs.getBody();
          }
        
          public boolean isTab(Integer index) {
                  if ( tab == index ) {
                          return true;
                  }
                  return false;
          }

If you wanted history you just include history="function(event,ui,url)
{ your code }" in the pagelink element. I'm still trying to figure out
which jQuery history library to use, but I'm not going to make the
mixin depend on any of them. Also in this case bind in subclassed like
this

public class Click extends Bind {

}

to create a click handler. This allows you to name your mixin
parameters and bind multiple event types. There is also a slideChange
event that was created the same way. That component returns slide
change events back to Tapestry via

        void onSlideChange(Integer value) {
                logger.info("slideChange {}",value);
        }

Hope that helps some. I'm still working on the api but I'm hoping to
have it finished in a few days.

Barry

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org

Reply via email to