Package gwtquery.samples.client

Source Code of gwtquery.samples.client.GwtQueryDemoModule$Slide

/*
* Copyright 2011, The gwtquery team.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
package gwtquery.samples.client;

import static com.google.gwt.query.client.GQuery.$;
import static com.google.gwt.query.client.plugins.Effects.Effects;

import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.core.client.GWT;
import com.google.gwt.dom.client.Element;
import com.google.gwt.dom.client.Node;
import com.google.gwt.dom.client.NodeList;
import com.google.gwt.query.client.Function;
import com.google.gwt.query.client.GQuery;
import com.google.gwt.query.client.Selector;
import com.google.gwt.query.client.Selectors;
import com.google.gwt.query.client.plugins.Effects.Speed;
import com.google.gwt.user.client.Event;

/**
*
*/
public class GwtQueryDemoModule implements EntryPoint {

  // Compile-time Selectors!
  public interface Slide extends Selectors {

    // find all LI elements in DIV.slide elements
    @Selector("div.slide li")
    NodeList<Element> allSlideBullets();

    // Find all DIV elements with class 'slide'
    @Selector("div.slide")
    NodeList<Element> allSlides();

    // find all LI elements rooted at ctx
    @Selector("li")
    NodeList<Element> slideBulletsCtx(Node ctx);
  }

  public void onModuleLoad() {
    // Ask GWT compiler to generate our interface
    final Slide s = GWT.create(Slide.class);
    final GQuery slides = $(s.allSlides());

    // we initially hide all slides and bullets
    slides.hide().eq(0).as(Effects).clipAppear();
    $(s.allSlideBullets()).hide();


    // add onclick handler to body element
    $(slides).click(new Function() {
      // two state variables to note current slide being shown
      // and current bullet
      int curSlide = 0;
      int curBullets = 0;

      // query and store all bullets of current slide
      GQuery bullets = $(s.slideBulletsCtx(slides.get(curSlide)));

      public boolean f(Event e) {
        // onclick, if not all bullets shown, show a bullet and increment
        if (curBullets < bullets.size()) {
          bullets.eq(curBullets++).as(Effects).fadeIn(Speed.SLOW);
        } else {
          // all bullets shown, hide them and current slide
          bullets.hide();

          // move to next slide, checking for wrap around
          int lastSlide = curSlide++;
          if (curSlide == slides.size()) {
            curSlide = 0;
          }

          // query for new set of bullets, and show next slide
          curBullets = 0;
          bullets = $(s.slideBulletsCtx(slides.get(curSlide)));

          // Hide the last slide and show the next when the effects finishes
          slides.eq(lastSlide).as(Effects).fadeOut(new Function() {
            public void f(Element e) {
              slides.eq(curSlide).as(Effects).clipAppear();
            }
          });
        }
        return true;
      }
    });
  }
}
TOP

Related Classes of gwtquery.samples.client.GwtQueryDemoModule$Slide

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.