суббота, 9 июня 2012 г.

GWT carousel widget

     Рассмотрим создание виджета "карусель" с помощью JQuery и JCoverflip.
JCoverflip является плагином на JQuery, который позволяет организовать виджет типа карусель и отлично подойдет для презентаций различных материалов. Плагин достаточно стабилен и гибкий, позволяет настраивать цвета, шрифты, стили, скорость анимации, количество элементов и др. Взгляните сюда, чтобы увидеть карусель в действии. 
     Подключаем jcoverflip напрямую из папки, а jquery и jquery ui из серверов Google:
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.js"></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.7.3/jquery-ui.js"></script>
<script type="text/javascript" language="javascript" src="jquery.jcoverflip.js"></script>


* This source code was highlighted with Source Code Highlighter.
данный способ является рекомендуемым Google и наиболее оптимален. Подробную информацию о списке доступных для подключения библиотек и их адресах на серверах можно получить на странице Google Libraries API. Также следует добавить блок стилей в хостовую стораницу Carousel.html, как в инструкции на сайте. Осталось добавить div с изображениями в тело страницы, над которыми будем делать манипуляции.
<div id="carouselWrapper">
 <p id="coverflip">
    <a href="img/prev.gif" rel="previous"><img alt="prev image" src="img/prev.gif" /> </a>            
    <a href="img/play.gif" rel="play"><img alt="play image" src="img/play.gif" /> </a>         
    <a href="img/pause.gif" rel="pause"><img alt="pause image" src="img/pause.gif"/> </a>
    <a href="img/stop.gif" rel="stop"><img alt="stop image" src="img/stop.gif"/> </a>
    <a href="img/next.gif" rel="next"><img alt="next image" src="img/next.gif" /> </a>
 </p>
</div>


* This source code was highlighted with Source Code Highlighter.
     При загрузке приложения следует вызвать JSNI метод showCarousel(), который вызывает jquery методы.
public class Carousel implements EntryPoint {
    public void onModuleLoad() {
        showCarousel();
    }
 
    /**
     * JSNI code that calls on the jquery methods
     * create div element with an anchor and span inside
     */
    public static native void showCarousel() /*-{
         // create the title element
         function createTitle(itemElem) {
             var title = $wnd.jQuery('<div class="title"></div>')
             .append(itemElem.find('img').attr('alt'))
             .append(' <a href="'+itemElem.attr('href')+'">(click here to view image)</a>')
             .append(' <span class="tags">'+itemElem.attr('rel')+'</span>');
             return title;
         }
        
         // delete the title element
         function destroyTitle(titleElem) {
             titleElem.remove();
         }
         
         $wnd.jQuery('#coverflip').jcoverflip({
             time: 800, //animation transition period
             titles: {
                create: createTitle,
              destroy: destroyTitle
            }
         });
    }-*/;
}


* This source code was highlighted with Source Code Highlighter.
     Из готовых GWT решений на просторах интернета есть еще такие варианты: gwt-yui-carouselspiral-carousel-gwt и gwt-carousel. Вот и все, gwt карусель выглядит вот так, анимация и поведение совпадает с демкой на сайте. Eclipse проект можно скачать по следующей ссылке.

Комментариев нет:

Отправить комментарий