package de.swm.mobile.kitchensink.client.showcase.panels; import com.google.gwt.core.client.GWT; import com.google.gwt.dom.client.Style.Unit; import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickHandler; import com.google.gwt.event.logical.shared.ValueChangeEvent; import com.google.gwt.event.logical.shared.ValueChangeHandler; import com.google.gwt.uibinder.client.UiBinder; import com.google.gwt.uibinder.client.UiField; import com.google.gwt.user.client.Window; import com.google.gwt.user.client.ui.Widget; import de.swm.commons.mobile.client.utils.Utils; import de.swm.commons.mobile.client.widgets.*; import de.swm.commons.mobile.client.widgets.command.CommandDropDown; import de.swm.commons.mobile.client.widgets.command.CommandItem; import de.swm.commons.mobile.client.widgets.date.DateStyle; import de.swm.commons.mobile.client.widgets.popup.SimpleDatePopup; import de.swm.commons.mobile.client.widgets.popup.SimplePopup; import de.swm.mobile.kitchensink.client.Application; import de.swm.mobile.kitchensink.client.base.ShowcaseDetailPage; import java.util.Date; import static de.swm.mobile.kitchensink.client.ShowcaseAnnotations.ShowcaseSource; import static de.swm.mobile.kitchensink.client.ShowcaseAnnotations.ShowcaseUiXML; @ShowcaseSource @ShowcaseUiXML({"CommandPanelPage.ui.xml"}) public class CommandPanelPage extends ShowcaseDetailPage { @UiField HeaderPanel header; @UiField CommandItem command1; @UiField CommandItem command2; @UiField CommandDropDown commandDropDown; @UiField CommandItem command21; @UiField CommandItem command22; @UiField CommandItem command23; private static CommandPanelPageUiBinder uiBinder = GWT.create(CommandPanelPageUiBinder.class); interface CommandPanelPageUiBinder extends UiBinder<Widget, CommandPanelPage> { } public CommandPanelPage() { super(CommandPanelPage.class); initWidget(uiBinder.createAndBindUi(this)); Application.addDefaultBackButtonHanlder(header); command1.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { Button[] buttons = new Button[5]; for (int i = 0; i < 5; i++) { buttons[i] = new Button("Option_" + i); if (i > 0) { buttons[i].getElement().getStyle().setMarginTop(0.3, Unit.EM); } } final SimplePopup popup = new SimplePopup(buttons); popup.setAutoHide(true); for (int i = 0; i < 5; i++) { final int num = i; buttons[i].addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { Utils.console("Option " + num + " selected"); popup.hide(); } }); } popup.showRelativeTo(command1); } }); command2.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { SimpleDatePopup simpleDateTimePopup = new SimpleDatePopup(new Date(), DateStyle.DATE, new SimpleDatePopup.DateSelectionHandler() { @Override public void dateSelectionCancelled() { // do nothing } @Override public void dateSelected(Date selectedDate) { Utils.console("selected date: " + selectedDate); } }); simpleDateTimePopup.showCentered(true); } }); commandDropDown.addValueChangeHandler(new ValueChangeHandler<String>() { @Override public void onValueChange(ValueChangeEvent<String> event) { Utils.console("selected item: " + event.getValue()); } }); command21.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { Button[] buttons = new Button[5]; for (int i = 0; i < 5; i++) { buttons[i] = new Button("Option_" + i); if (i > 0) { buttons[i].getElement().getStyle().setMarginTop(0.3, Unit.EM); } } final SimplePopup popup = new SimplePopup(buttons); popup.setAutoHide(true); for (int i = 0; i < 5; i++) { final int num = i; buttons[i].addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { Utils.console("Option " + num + " selected"); popup.hide(); } }); } popup.showRelativeTo(command21); } }); command22.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { Window.alert("Command 2 clicked"); } }); command23.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { Window.alert("Command 3 clicked"); } }); } @Override public String getName() { return "CommandPanel"; } @Override public HeaderPanel getHeaderPanel() { return header; } }