package com.sksamuel.jqm4gwt.examples; import com.google.gwt.dom.client.Style.Display; 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.google.gwt.user.client.ui.FlowPanel; import com.google.gwt.user.client.ui.Image; import com.google.gwt.user.client.ui.Label; import com.sksamuel.jqm4gwt.JQMPage; import com.sksamuel.jqm4gwt.JQMPopup; import com.sksamuel.jqm4gwt.JQMPopupEvent; import com.sksamuel.jqm4gwt.LoadingIndicator; import com.sksamuel.jqm4gwt.Transition; import com.sksamuel.jqm4gwt.button.JQMButton; import com.sksamuel.jqm4gwt.button.JQMButtonGroup; import com.sksamuel.jqm4gwt.html.Div; import com.sksamuel.jqm4gwt.html.Span; /** * @author Stephen K Samuel samspade79@gmail.com 16 Sep 2012 00:52:48 * */ public class PopupExamplePage extends JQMPage { public PopupExamplePage() { setHeader("Popups"); JQMPopup popup = new JQMPopup(); popup.add(new Label("This is a popup with the ui-content class added to the popup container.")); popup.setPadding(true); JQMButton button = new JQMButton("Popup with padding", popup); add(button); add(popup); { popup = new JQMPopup(); popup.add(new Label("I am positioned to the window.")); popup.setPosition("window"); JQMButton button1 = new JQMButton("Position to window", popup); add(popup); popup = new JQMPopup(); popup.add(new Label("I am positioned over the origin.")); JQMButton button2 = new JQMButton("Position to origin", popup); add(new JQMButtonGroup(button1, button2).withHorizontal()); add(popup); } { popup = new JQMPopup(new Label("No transition")).withPadding(true); add(popup); add(new JQMButton("No transition", popup).withInline(true)); for (Transition t : Transition.values()) { popup = new JQMPopup(new Label("I am a " + t.getJqmValue() + " transition")).withPadding(true); add(popup.withTransition(t)); add(new JQMButton(t.getJqmValue(), popup).withInline(true)); } } { final JQMPopup popOpen = new JQMPopup(); popOpen.add(new Label("popup.open() works")); popOpen.setPosition("#btnTestOpen"); JQMButton btnTestOpen = new JQMButton("Test popup.open()"); btnTestOpen.setId("btnTestOpen"); btnTestOpen.setInline(true); btnTestOpen.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { popOpen.open(); } }); add(popOpen); add(new Div()); add(btnTestOpen); } { final LoadingIndicator loading = new LoadingIndicator(); loading.getElement().getStyle().setDisplay(Display.INLINE_BLOCK); loading.setVisible(false); JQMButton btnDynamicPop = new JQMButton("Test dynamic popup"); btnDynamicPop.setId("btnDynamicPop"); btnDynamicPop.setInline(true); btnDynamicPop.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { final JQMPopup pop = new JQMPopup(); FlowPanel pa = new FlowPanel(); Span la = new Span(); la.setText("Dynamic popup works"); pa.add(la); JQMButton btn = new JQMButton("More Info..."); btn.setInline(true); btn.setMini(true); btn.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { Window.alert("Welcome to the Moon!"); pop.close(); } }); pa.add(btn); pop.add(pa); pop.setPosition("#btnDynamicPop"); Image img = new Image("http://www.hq.nasa.gov/alsj/a11/AS11-40-5903.jpg"); img.addStyleName("dynamicPopImg"); pop.add(img); add(pop); loading.setVisible(true); pop.addPopupHandler(new JQMPopupEvent.DefaultHandler() { @Override public void onAfterOpen(JQMPopupEvent event) { loading.setVisible(false); } }); pop.waitInitOpen(".dynamicPopImg"); // In case of static content (there are no dynamically loaded images), // simpler code can be used to initialize popup: // pop.initDynamic(); // pop.open(); } }); add(btnDynamicPop); add(loading); } { final JQMPopup pop = new JQMPopup(); pop.add(new Label("penguin clicked")); pop.setPosition("#penguin"); Image penguin = new Image("http://upload.wikimedia.org/wikipedia/commons/thumb/0/07/Emperor_Penguin_Manchot_empereur.jpg/222px-Emperor_Penguin_Manchot_empereur.jpg"); //penguin.setWidth("320px"); penguin.addClickHandler( new ClickHandler() { @Override public void onClick(ClickEvent event) { pop.open(); } }); penguin.getElement().setId("penguin"); add(pop); add(new Div()); add(penguin); } } }