package de.swm.mobile.kitchensink.client.showcase.panels;
import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.Widget;
import de.swm.commons.mobile.client.widgets.HeaderPanel;
import de.swm.commons.mobile.client.widgets.Slide;
import de.swm.commons.mobile.client.widgets.SlidePanel;
import de.swm.commons.mobile.client.widgets.SlidePanel.SlideProvider;
import de.swm.gwt.client.mobile.Direction;
import de.swm.mobile.kitchensink.client.Application;
import de.swm.mobile.kitchensink.client.base.ShowcaseDetailPage;
import static de.swm.mobile.kitchensink.client.ShowcaseAnnotations.ShowcaseSource;
import static de.swm.mobile.kitchensink.client.ShowcaseAnnotations.ShowcaseUiXML;
@ShowcaseSource
@ShowcaseUiXML({"SlidePanelPage.ui.xml"})
public class SlidePanelPage extends ShowcaseDetailPage implements SlideProvider {
@UiField
HeaderPanel header;
@UiField
SlidePanel slider;
private static SlidePanelPageUiBinder uiBinder = GWT
.create(SlidePanelPageUiBinder.class);
interface SlidePanelPageUiBinder extends UiBinder<Widget, SlidePanelPage> {
}
public SlidePanelPage() {
super(SlidePanelPage.class);
initWidget(uiBinder.createAndBindUi(this));
Application.addDefaultBackButtonHanlder(header);
slider.setSlideCount(10);
slider.setSlideProvider(this);
header.setLeftButtonClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
if (slider.getCurrentSlideIndex() > 0) {
slider.previous();
} else {
goTo(null, Direction.RIGHT);
}
}
});
header.setRightButtonClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
slider.next();
}
});
}
@Override
public Slide loadSlide(int index) {
if (index < 2) {
return null;
}
Slide slide = new Slide();
slide.addStyleName("Slide-Content");
slide.add(new HTML("Slide Me!"));
slide.add(new HTML("Dynamic Slide " + index));
return slide;
}
@Override
public HeaderPanel getHeaderPanel() {
return header;
}
@Override
public String getName() {
return "SlidePanel";
}
}