package com.google.gwt.gwtpages.demo.client.pages; import java.io.Serializable; import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickHandler; import com.google.gwt.gwtpages.client.PageRequestSession; import com.google.gwt.gwtpages.client.page.AsyncPageCallback; import com.google.gwt.gwtpages.client.page.impl.UiBoundPage; import com.google.gwt.gwtpages.client.page.parameters.PageParameters; import com.google.gwt.gwtpages.demo.client.components.SourceLinkPanel; import com.google.gwt.gwtpages.demo.client.components.SourceReferencePanel; import com.google.gwt.uibinder.client.UiField; import com.google.gwt.user.client.Command; import com.google.gwt.user.client.History; import com.google.gwt.user.client.ui.Anchor; import com.google.gwt.user.client.ui.FlowPanel; import com.google.gwt.user.client.ui.Label; import com.google.gwt.user.client.ui.SimplePanel; public class RequestInfoPage extends UiBoundPage<FlowPanel> implements ClickHandler { @UiField Anchor gotoPage; @UiField Label historyToken; @UiField Label pageToken; @UiField Label ordinalParameters; @UiField Label mappedParameters; @UiField Label transientParameters; @UiField SimplePanel sourceRef; private Command backCommand; @Override public void onConstruct(FlowPanel widget) { gotoPage.addClickHandler(this); sourceRef.add(new SourceReferencePanel(new SourceLinkPanel(RequestInfoPage.class))); } @Override public void onEnterPage(PageParameters parameters, PageRequestSession session, AsyncPageCallback callback) { historyToken.setText(parameters.getHistoryToken()); pageToken.setText(parameters.getPageToken()); if (null != parameters.getParameters()) ordinalParameters.setText(serialize(parameters.getParameters())); else ordinalParameters.setText("N/A"); if (null != parameters.getParameterMap()) mappedParameters.setText(parameters.getParameterMap().toString()); else mappedParameters.setText("N/A"); transientParameters.setText(session.getData().toString()); backCommand = (Command) session.get(PageConstants.PARAM_BACK_COMMAND); if (null != backCommand) gotoPage.setText("Back to " + session.get(PageConstants.PARAM_BACK_TITLE)); else gotoPage.setText("Back to previous page"); } private void gotoPage() { if (null == backCommand) History.back(); else backCommand.execute(); } @Override public void onClick(ClickEvent event) { if (event.getSource().equals(gotoPage)) { gotoPage(); } } private String serialize(Serializable[] list) { StringBuilder sb = new StringBuilder(); for (Serializable s : list) { if (sb.length() > 0) sb.append(", "); sb.append(s.toString()); } if (sb.length() == 0) return "N/A"; else return sb.toString(); } }