package com.sksamuel.jqm4gwt.examples.events;
import com.google.gwt.event.dom.client.ChangeEvent;
import com.google.gwt.event.dom.client.ChangeHandler;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.user.client.Window;
import com.sksamuel.jqm4gwt.DataIcon;
import com.sksamuel.jqm4gwt.JQMPage;
import com.sksamuel.jqm4gwt.Transition;
import com.sksamuel.jqm4gwt.button.JQMButton;
import com.sksamuel.jqm4gwt.events.TapEvent;
import com.sksamuel.jqm4gwt.events.TapHandler;
import com.sksamuel.jqm4gwt.form.elements.JQMFlip;
import com.sksamuel.jqm4gwt.form.elements.JQMRadioset;
import com.sksamuel.jqm4gwt.form.elements.JQMSelect;
import com.sksamuel.jqm4gwt.html.Paragraph;
import com.sksamuel.jqm4gwt.toolbar.JQMFooter;
import com.sksamuel.jqm4gwt.toolbar.JQMHeader;
/**
* @author Stephen K Samuel samspade79@gmail.com 9 Jul 2011 18:00:50
*
*
*/
public class EventsDemoPage extends JQMPage {
public EventsDemoPage() {
super("eventspage");
final JQMHeader header = new JQMHeader("Events demo");
header.setBackButton(true);
JQMButton right = new JQMButton("View source",
"https://github.com/sksamuel/jqm4gwt/blob/master/examples/src/main/java/com/sksamuel/jqm4gwt/examples/events/EventsDemoPage.java");
right.withBuiltInIcon(DataIcon.GEAR);
right.setExternal(true);
header.setRightButton(right);
final JQMButton left = new JQMButton("ClickMe");
left.withBuiltInIcon(DataIcon.STAR);
left.setExternal(true);
left.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent arg0) {
Window.alert("You clicked me!");
}
});
left.setInline(true);
header.add(left);
add(header);
add(new Paragraph("Events are some of the most convenient part of GWT. "
+ "The jqm4gwt project provides the usual DOM events on the JQuery Mobile widgetset."));
add(new Paragraph("The following button has an onClick handler registered. "
+ "Click the button and you will see the handler call Window.alert()"));
JQMButton button = new JQMButton("Click me!");
button.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
Window.alert("Hi there!");
}
});
add(button);
add(new Paragraph("The following button has a JQM non-native 'tap' handler registered. "
+ "On some mobile browsers this avoids an annoying delay that click handlers have."));
// for example Nexus 7 + Android 4.3 + Phonegap 3.0 has that click delay
JQMButton button1 = new JQMButton("Tap me!");
button1.addTapHandler(new TapHandler() {
@Override
public void onTap(TapEvent event) {
Window.alert("You tapped me!");
}
});
add(button1);
final JQMFlip flip = new JQMFlip("Flip me", "Shiraz Pink", "Merlot Dark");
flip.setDataWrapper("size10flipswitch");
flip.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
Window.alert("You seem to like " + flip.getValue());
}
});
add(flip);
final JQMButton button2 = new JQMButton("Change the flip");
button2.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
flip.setSelectedIndex(flip.getSelectedIndex() + 1 % 2);
}
});
add(button2);
add(new Paragraph("We aren't just limited to static methods. The following is an example of combining events with JQM widgets."));
final JQMRadioset set = new JQMRadioset();
set.setText("Select your composer");
set.addRadio("Morricone");
set.addRadio("Newman");
set.addRadio("Mansell");
set.addRadio("Zimmer");
set.setSelectedValue("Zimmer");
add(set);
final JQMButton button3 = new JQMButton("Change the radioset");
button3.addClickHandler(new ClickHandler() {
int counter = 0;
@Override
public void onClick(ClickEvent event) {
String value = set.getValue(counter++ % set.size());
set.setValue(value);
}
});
add(button3);
// select "change" event
add(new Paragraph("Selects fire the usual change event. Try changing the selection below"));
final JQMSelect select = new JQMSelect("A select box with onChange event");
select.withNative(false);
for (Transition t : Transition.values()) {
select.addOption(t.name());
}
select.addChangeHandler(new ChangeHandler() {
@Override
public void onChange(ChangeEvent event) {
Window.alert("You selected: " + select.getSelectedValue());
}
});
add(select);
final JQMFooter footer = new JQMFooter();
button = new JQMButton("Footer Button 1");
button.withBuiltInIcon(DataIcon.REFRESH);
button.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
Window.alert("Welcome to the jungle");
}
});
footer.add(button);
button = new JQMButton("Footer Button 2");
button.withBuiltInIcon(DataIcon.GRID);
button.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
Window.alert("We've got fun and games");
}
});
footer.add(button);
add(footer);
}
}