Example usage for com.google.gwt.user.client.ui DialogBox DialogBox

List of usage examples for com.google.gwt.user.client.ui DialogBox DialogBox

Introduction

In this page you can find the example usage for com.google.gwt.user.client.ui DialogBox DialogBox.

Prototype

public DialogBox() 

Source Link

Document

Creates an empty dialog box.

Usage

From source file:com.italianasoftware.echoes.client.Echoes.java

License:Open Source License

private void createLyricsDialog() {
    lyricsDialog = new DialogBox();
    VerticalPanel vPanel = new VerticalPanel();
    vPanel.setHeight("100%");
    vPanel.setHorizontalAlignment(VerticalPanel.ALIGN_CENTER);
    vPanel.setVerticalAlignment(VerticalPanel.ALIGN_MIDDLE);
    lyricsDialog.add(vPanel);//from w ww .ja v  a2s.c o m

    lyrics = new HTML();
    ScrollPanel scrollPanel = new ScrollPanel();
    scrollPanel.setWidth("300px");
    scrollPanel.setHeight("250px");
    scrollPanel.add(lyrics);
    vPanel.add(scrollPanel);

    Button close = new NativeButton("Close");
    close.addClickListener(new ClickListener() {
        public void onClick(Widget arg0) {
            lyricsDialog.hide();
        }
    });
    vPanel.add(close);
}

From source file:com.italianasoftware.echoes.client.Echoes.java

License:Open Source License

private void createAboutDialog() {
    aboutDialog = new DialogBox();
    VerticalPanel vPanel = new VerticalPanel();
    vPanel.setHorizontalAlignment(VerticalPanel.ALIGN_CENTER);
    aboutDialog.add(vPanel);/*  ww w .  j  a  va 2 s .  c  o m*/
    vPanel.add(new HTML("<strong>Echoes</strong>"));
    VerticalPanel cPanel = new VerticalPanel();
    vPanel.add(cPanel);
    cPanel.setHorizontalAlignment(VerticalPanel.ALIGN_CENTER);
    cPanel.addStyleName("margintop-2em");
    cPanel.add(new HTML("(C) 2008, <a href=\"mailto:fmontesi@italianasoftware.com\">Fabrizio Montesi</a>"));
    HTML oxygenTeam = new HTML(
            "Echoes logo by <a href=\"http://www.oxygen-icons.org/\" target=\"_new\">the Oxygen team</a>");
    oxygenTeam.addStyleName("margintop-1em");
    cPanel.add(oxygenTeam);

    HTML license = new HTML(
            "License: <a href=\"http://www.gnu.org/licenses/old-licenses/gpl-2.0.html\" target=\"_new\">GPLv2</a>");
    license.addStyleName("margintop-1em");
    cPanel.add(license);

    HorizontalPanel hPanel = new HorizontalPanel();
    hPanel.setVerticalAlignment(HorizontalPanel.ALIGN_MIDDLE);
    hPanel.addStyleName("margintop-1em");
    HTML poweredBy = new HTML("Powered by: ");
    hPanel.add(poweredBy);
    Image jolieImage = new Image("images/jolie.png");
    jolieImage.addClickListener(new ClickListener() {
        public void onClick(Widget arg0) {
            Window.open("http://jolie.sourceforge.net/", "_blank", "");
        }
    });
    hPanel.add(jolieImage);
    cPanel.add(hPanel);

    Button closeButton = new NativeButton("Close");
    closeButton.addStyleName("margintop-1em");
    closeButton.addClickListener(new ClickListener() {
        public void onClick(Widget arg0) {
            aboutDialog.hide();
        }
    });
    vPanel.add(closeButton);
}

From source file:com.italianasoftware.echoes.client.Echoes.java

License:Open Source License

private void closeClientSession() {
    final DialogBox dialog = new DialogBox();
    dialog.add(new Label("Exiting..."));
    dialog.center();/* ww w.  j a v  a  2  s. co  m*/
    dialog.show();
    Value v = getLocationValue();
    v.getNewChild("sid").setValue(sid);
    JolieService.Util.getInstance().call("closeClientSession", v, new EchoesCallback() {
        @Override
        public void onSuccess(Value response) {
            dialog.hide();
        }
    });
}

From source file:com.italianasoftware.echoes.client.EchoesCallback.java

License:Open Source License

private void displayFault(String faultString) {
    final DialogBox dialog = new DialogBox();
    dialog.add(new Label(faultString));
    Button closeButton = new Button("Close");
    closeButton.addClickListener(new ClickListener() {
        public void onClick(Widget arg0) {
            dialog.hide();//from  w  ww.  j  av a2 s.  c o m
        }
    });
    dialog.center();
    dialog.show();
}

From source file:com.mecatran.otp.gwt.client.view.AddressProposalBox.java

License:Open Source License

private void showProposals() {
    proposalDialog = new DialogBox();
    proposalDialog.setAnimationEnabled(true);
    VerticalPanel rootPanel = new VerticalPanel();
    proposalDialog.add(rootPanel);/* w w  w.j av a  2 s . co m*/
    rootPanel.add(proposalPanel);
    HorizontalPanel buttonPanel = new HorizontalPanel();
    rootPanel.add(buttonPanel);
    Button cancelButton = new Button(I18nUtils.tr("cancel"));
    buttonPanel.add(cancelButton);
    cancelButton.addClickHandler(new ClickHandler() {
        @Override
        public void onClick(ClickEvent event) {
            hideProposals();
        }
    });
    proposalDialog.setAutoHideEnabled(true);
    proposalDialog.showRelativeTo(getAsWidget());
}

From source file:com.microdg.gwt.monitor.client.control.ApplicationGeneralErrorHandler.java

License:Apache License

@Override
public void handle(String message) {
    final DialogBox dialog = new DialogBox();
    dialog.setText("Application Error");
    VerticalPanel vp = new VerticalPanel();
    vp.setWidth("100%");
    vp.add(new Label(message));
    Button b = new Button("OK");
    vp.add(b);//  w w  w  . j  av  a 2s  .c  o m
    b.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            dialog.hide();
        }

    });
    dialog.setGlassEnabled(true);
    dialog.getElement().setAttribute("style", "background-color:white");
    dialog.setAnimationEnabled(true);
    dialog.setWidget(vp);
    dialog.center();
}

From source file:com.moesol.gwt.maps.client.Driver.java

License:Open Source License

private void doMapPanel(RootPanel mapPanel) {
    mapPanel.setHeight("100%");
    mapPanel.setWidth("100%");

    DOM.setInnerHTML(mapPanel.getElement(), "");

    final DockLayoutPanel dockPanel = new DockLayoutPanel(Unit.PX);
    dockPanel.setHeight("420px");
    dockPanel.setWidth("600px");
    mapPanel.add(dockPanel);//from   w w w  .ja  v  a 2  s .c  o  m

    // loadLayerConfigsFromServer();
    loadLayerConfigsFromClient();

    //VerticalPanel vp = new VerticalPanel();
    MapPanel mapFillPanel = new MapPanel(m_map);
    m_map.setDpi(m_scrnDpi);
    m_map.getController().withHoverDelayMillis(MAP_HOVER_DELAY_MILLIS);

    //new EdgeHoverPanControl(m_map, MAP_EDGE_HOVER_RADIUS_PIXELS,
    //      MAP_EDGE_HOVER_PAN_INTERVAL,
    //      MAP_EDGE_HOVER_MAX_PAN_PER_INTERVAL_PIXELS);
    //      m_map.getController().addHoverHandler(new HoverHandler() {
    //         BubbleControl bc = new BubbleControl(m_map);
    //         
    //         @Override
    //         public void onHover(HoverEvent e) {
    //            ViewCoords m_vc = new ViewCoords(e.getX(), e.getY());
    //            GeodeticCoords gc = m_map.getProjection().viewToGeodetic(m_vc);
    //            bc.getHtml().setHTML("Hover: " + gc.toString());
    //            bc.animateShow(e.getClientX(), e.getClientY());
    //         }
    //      });

    if (isTrue("showSomeIcons", false)) {
        addSomeIcons();
    }

    m_map.updateView();

    //      Button left = new Button("Left", new ClickHandler() {
    //         @Override
    //         public void onClick(ClickEvent event) {
    //            goLeft();
    //         }
    //      });
    //      Button right = new Button("Right", new ClickHandler() {
    //         @Override
    //         public void onClick(ClickEvent event) {
    //            goRight();
    //         }});
    //      Button up = new Button("Up", new ClickHandler() {
    //         @Override
    //         public void onClick(ClickEvent event) {
    //            goUp();
    //         }});
    //      Button down = new Button("Down", new ClickHandler() {
    //         @Override
    //         public void onClick(ClickEvent event) {
    //            goDown();
    //         }});
    //      
    //      Button in = new Button("In", new ClickHandler() {
    //         @Override
    //         public void onClick(ClickEvent event) {
    //            goIn();
    //         }});
    //      Button out = new Button("Out", new ClickHandler() {
    //         @Override
    //         public void onClick(ClickEvent event) {
    //            goOut();
    //         }});
    Button removeIcons = new Button("Remove Icons", new ClickHandler() {
        @Override
        public void onClick(ClickEvent event) {
            removeIcons();
        }
    });
    Button moveIcons = new Button("Move Icons", new ClickHandler() {
        @Override
        public void onClick(ClickEvent event) {
            moveIcons();
        }
    });
    Button resizeMap = new Button("Fill Viewport", new ClickHandler() {
        @Override
        public void onClick(ClickEvent event) {
            dockPanel.setHeight("100%");
            dockPanel.setWidth("100%");
        }
    });
    MultiWordSuggestOracle oracle = new MultiWordSuggestOracle();
    oracle.add("0");
    oracle.add("01");
    oracle.add("1");
    oracle.add("3");
    m_levelBox = new SuggestBox();

    m_map.addChangeListener(new ChangeListener() {
        @Override
        public void onChange(Widget sender) {
            mapChanged();
        }
    });

    HorizontalPanel bar = new HorizontalPanel();
    //      bar.add(left);
    //      bar.add(right);
    //      bar.add(up);
    //      bar.add(down);
    //      bar.add(in);
    //      bar.add(out);
    bar.add(removeIcons);
    bar.add(moveIcons);
    bar.add(resizeMap);
    //      bar.add(m_centerLabel);
    dockPanel.addNorth(bar, 20);

    //bar.add(m_levelBox);
    //      if (false) {
    //         // Show debug grid
    //         bar.add(m_tiles);
    //      }
    //vp.add(bar);

    LayoutPanel hp = new LayoutPanel();
    dockPanel.add(hp);
    //hp.setHeight("500px");
    //hp.setWidth("500px");
    //vp.add(hp);

    if (isTrue("showLayerPanel", false)) {
        addTileMapServiceView(hp);
        //         eventBus.addHandler(TileMapAddEvent.TYPE, new TileMapAddEvent.Handler() {
        //            @Override
        //            public void onTileMapAdd(TileMapAddEvent event) {
        //               LayerSet layerSet = new LayerSet();
        //               TileMapMetadata tileMapMetadata = event.getTileMapMetadata();
        //               layerSet.setServer(tileMapMetadata.getUrl());
        //               layerSet.setData("");
        //               layerSet.setUrlPattern("{server}/{level}/{x}/{y}." + tileMapMetadata.getTileImageFormat());
        //               m_map.addLayer(layerSet);
        //            }
        //         });
    }

    // The map viewport
    hp.add(mapFillPanel);
    //hp.setWidgetLeftWidth(mapFillPanel,0, Style.Unit.PCT, 100, Style.Unit.PCT);
    // The map controls
    MapPanZoomControl mapControls = new MapPanZoomControl(m_map, 15, 100);
    mapControls.getElement().getStyle().setZIndex(100000);
    hp.add(mapControls);
    hp.setWidgetLeftWidth(mapControls, 0, Style.Unit.PX, 56, Style.Unit.PX);
    hp.setWidgetTopHeight(mapControls, 0, Style.Unit.PX, 121, Style.Unit.PX);
    //The mouse position label;
    PositionControl mousePosLabel = new PositionControl(m_map);
    hp.add(mousePosLabel);
    hp.setWidgetRightWidth(mousePosLabel, 10, Style.Unit.PX, 500, Style.Unit.PX);
    hp.setWidgetTopHeight(mousePosLabel, 10, Style.Unit.PX, 20, Style.Unit.PX);

    // Map dimmer control
    MapDimmerControl dimmer = new MapDimmerControl(m_map, true);
    hp.add(dimmer);
    hp.setWidgetRightWidth(dimmer, 10, Style.Unit.PX, 35, Style.Unit.PX);
    hp.setWidgetBottomHeight(dimmer, 10, Style.Unit.PX, 22, Style.Unit.PX);

    SearchControl flyToControl = new SearchControl();
    hp.add(flyToControl);
    hp.setWidgetRightWidth(flyToControl, 0, Style.Unit.PX, 160, Style.Unit.PX);
    hp.setWidgetTopHeight(flyToControl, 0, Style.Unit.PX, 50, Style.Unit.PX);

    flyToControl.addSearchHandler(new FlyToController(m_map));

    // Layer a transparent dialog...
    if (isTrue("showTestDialog", false)) {
        DialogBox db = new DialogBox();
        db.setHTML("<a href='' onclick='false'>x</a>");
        db.setPopupPosition(100, 10);
        db.setPixelSize(100, 100);
        db.show();
    }
}

From source file:com.moesol.gwt.milmap.client.Driver.java

License:Open Source License

private void doMap(RootPanel mapPanel) {
    //doMap(mapPanel);

    mapPanel.setHeight("100%");
    mapPanel.setWidth("100%");

    DOM.setInnerHTML(mapPanel.getElement(), "");

    final DockLayoutPanel dockPanel = new DockLayoutPanel(Unit.PX);
    dockPanel.setHeight("100%");
    dockPanel.setWidth("100%");
    //dockPanel.setHeight("420px");
    //dockPanel.setWidth("600px");
    mapPanel.add(dockPanel);/* w w  w . ja  va2  s  .com*/

    // loadLayerConfigsFromServer();
    m_map = new MapView();
    loadLayerConfigsFromClient();

    MapPanel mapFillPanel = new MapPanel(m_map);
    m_map.setDpi(m_scrnDpi);
    m_map.getController().withHoverDelayMillis(MAP_HOVER_DELAY_MILLIS);
    m_map.setDeclutterLabels(true);
    //new EdgeHoverPanControl(m_map, MAP_EDGE_HOVER_RADIUS_PIXELS,
    //      MAP_EDGE_HOVER_PAN_INTERVAL,
    //      MAP_EDGE_HOVER_MAX_PAN_PER_INTERVAL_PIXELS);
    //      m_map.getController().addHoverHandler(new HoverHandler() {
    //         BubbleControl bc = new BubbleControl(m_map);
    //         
    //         @Override
    //         public void onHover(HoverEvent e) {
    //            ViewCoords m_vc = new ViewCoords(e.getX(), e.getY());
    //            GeodeticCoords gc = m_map.getProjection().viewToGeodetic(m_vc);
    //            bc.getHtml().setHTML("Hover: " + gc.toString());
    //            bc.animateShow(e.getClientX(), e.getClientY());
    //         }
    //      });
    if (isTrue("showSomeIcons", false)) {
        addSomeIcons();
    }

    m_map.updateView();

    //Button removeIcons = new Button("Remove Icons", new ClickHandler() {
    //   @Override
    //   public void onClick(ClickEvent event) {
    //      removeIcons();
    //   }});
    //Button moveIcons = new Button("Move Icons", new ClickHandler() {
    //   @Override
    //   public void onClick(ClickEvent event) {
    //      moveIcons();
    //   }});
    //Button showLeaders = new Button("Show Leaders", new ClickHandler() {
    //   @Override
    //   public void onClick(ClickEvent event) {
    //      showLeaders();
    //   }
    //});
    //Button benchmarks = new Button("Benchmarks", new ClickHandler() {
    //   @Override
    //   public void onClick(ClickEvent event) {
    //      runBenchmarks();
    //   }});
    //Button stats = new Button("Stats", new ClickHandler() {
    //   @Override
    //   public void onClick(ClickEvent event) {
    //      stats();
    //   }});
    //Button memoryTest = new Button("Memory Test", new ClickHandler() {
    //   @Override
    //   public void onClick(ClickEvent event) {
    //      memoryTest();
    //   }});

    //Button declutter = new Button("Declutter", new ClickHandler() {
    //   @Override
    //   public void onClick(ClickEvent event) {
    //      declutterTest();
    //   }});
    MultiWordSuggestOracle oracle = new MultiWordSuggestOracle();
    oracle.add("0");
    oracle.add("01");
    oracle.add("1");
    oracle.add("3");
    m_levelBox = new SuggestBox();

    m_map.addChangeListener(new ChangeListener() {
        @Override
        public void onChange(Widget sender) {
            mapChanged();
        }
    });

    // removing button bar for demo purposes
    //HorizontalPanel bar = new HorizontalPanel();
    //      bar.add(removeIcons);
    //      bar.add(moveIcons);
    //      bar.add(showLeaders);
    //      bar.add(declutter);
    //      bar.add(benchmarks);
    //      bar.add(stats);
    //      bar.add(memoryTest);

    //      dockPanel.addNorth(bar, 20);

    LayoutPanel lp = new LayoutPanel();
    dockPanel.add(lp);

    if (isTrue("showLayerPanel", false)) {
        addTileMapServiceView(lp);
    }

    // The map viewport
    lp.add(mapFillPanel);
    //count = hp.getWidgetCount();
    //hp.setWidgetLeftWidth(mapFillPanel,0, Style.Unit.PCT, 100, Style.Unit.PCT);
    // The map controls
    MapPanZoomControl mapControls = new MapPanZoomControl(m_map, 15, 10);
    mapControls.getElement().getStyle().setZIndex(100000);
    lp.add(mapControls);
    lp.setWidgetLeftWidth(mapControls, 0, Style.Unit.PX, 56, Style.Unit.PX);
    lp.setWidgetTopHeight(mapControls, 0, Style.Unit.PX, 121, Style.Unit.PX);

    //The mouse position label;
    PositionControl mousePosLabel = new PositionControl(m_map);
    lp.add(mousePosLabel);
    lp.setWidgetRightWidth(mousePosLabel, 10, Style.Unit.PX, 500, Style.Unit.PX);
    lp.setWidgetTopHeight(mousePosLabel, 10, Style.Unit.PX, 20, Style.Unit.PX);

    //The Text control;
    m_textControl = new TextControl();
    lp.add(m_textControl);
    lp.setWidgetLeftWidth(m_textControl, 10, Style.Unit.PX, 500, Style.Unit.PX);
    lp.setWidgetBottomHeight(m_textControl, 10, Style.Unit.PX, 20, Style.Unit.PX);

    // Map dimmer control
    MapDimmerControl dimmer = new MapDimmerControl(m_map, true);
    lp.add(dimmer);
    lp.setWidgetRightWidth(dimmer, 10, Style.Unit.PX, 60, Style.Unit.PX);
    lp.setWidgetBottomHeight(dimmer, 10, Style.Unit.PX, 34, Style.Unit.PX);

    // Map tag control
    TagControl tag = new TagControl(m_map, true);
    lp.add(tag);
    lp.setWidgetRightWidth(tag, 10, Style.Unit.PX, 35, Style.Unit.PX);
    lp.setWidgetBottomHeight(tag, 60, Style.Unit.PX, 22, Style.Unit.PX);

    SearchControl flyToControl = new SearchControl();
    lp.add(flyToControl);
    lp.setWidgetRightWidth(flyToControl, 10, Style.Unit.PX, 160, Style.Unit.PX);
    lp.setWidgetTopHeight(flyToControl, 10, Style.Unit.PX, 50, Style.Unit.PX);

    flyToControl.addSearchHandler(new FlyToController(m_map));

    // Layer a transparent dialog...
    if (isTrue("showTestDialog", false)) {
        DialogBox db = new DialogBox();
        db.setHTML("<a href='' onclick='false'>x</a>");
        db.setPopupPosition(100, 10);
        db.setPixelSize(100, 100);
        db.show();
    }

}

From source file:com.moesol.mapsample.client.MapSample.java

License:Open Source License

private void doMap(RootPanel mapPanel) {
    //doMap(mapPanel);

    mapPanel.setHeight("100%");
    mapPanel.setWidth("100%");

    DOM.setInnerHTML(mapPanel.getElement(), "");

    final DockLayoutPanel dockPanel = new DockLayoutPanel(Unit.PX);
    dockPanel.setHeight("100%");
    dockPanel.setWidth("100%");
    mapPanel.add(dockPanel);/*from   ww w .j av  a2  s . co  m*/

    // loadLayerConfigsFromServer();
    m_map = new MapView();
    loadLayerConfigsFromClient();

    MapPanel mapFillPanel = new MapPanel(m_map);
    m_map.setDpi(m_scrnDpi);
    m_map.getController().withHoverDelayMillis(MAP_HOVER_DELAY_MILLIS);
    m_map.setDeclutterLabels(true);

    if (isTrue("showSomeIcons", false)) {
        addSomeIcons();
    }

    m_map.updateView();
    MultiWordSuggestOracle oracle = new MultiWordSuggestOracle();
    oracle.add("0");
    oracle.add("01");
    oracle.add("1");
    oracle.add("3");
    m_levelBox = new SuggestBox();

    m_map.addChangeHandler(new ChangeHandler() {
        public void onChange(ChangeEvent event) {
            mapChanged();
        }
    });

    LayoutPanel lp = new LayoutPanel();
    dockPanel.add(lp);

    // The map viewport
    lp.add(mapFillPanel);
    //count = hp.getWidgetCount();
    //hp.setWidgetLeftWidth(mapFillPanel,0, Style.Unit.PCT, 100, Style.Unit.PCT);
    // The map controls
    MapPanZoomControl mapControls = new MapPanZoomControl(m_map, 15, 10);
    mapControls.getElement().getStyle().setZIndex(100000);
    lp.add(mapControls);
    lp.setWidgetLeftWidth(mapControls, 0, Style.Unit.PX, 56, Style.Unit.PX);
    lp.setWidgetTopHeight(mapControls, 0, Style.Unit.PX, 121, Style.Unit.PX);

    //The mouse position label;
    PositionControl mousePosLabel = new PositionControl(m_map);
    lp.add(mousePosLabel);
    lp.setWidgetRightWidth(mousePosLabel, 10, Style.Unit.PX, 500, Style.Unit.PX);
    lp.setWidgetTopHeight(mousePosLabel, 10, Style.Unit.PX, 20, Style.Unit.PX);

    //The Text control;
    m_textControl = new TextControl();
    lp.add(m_textControl);
    lp.setWidgetLeftWidth(m_textControl, 10, Style.Unit.PX, 500, Style.Unit.PX);
    lp.setWidgetBottomHeight(m_textControl, 10, Style.Unit.PX, 20, Style.Unit.PX);

    // Map dimmer control
    MapDimmerControl dimmer = new MapDimmerControl(m_map, true);
    lp.add(dimmer);
    lp.setWidgetRightWidth(dimmer, 10, Style.Unit.PX, 60, Style.Unit.PX);
    lp.setWidgetBottomHeight(dimmer, 10, Style.Unit.PX, 34, Style.Unit.PX);

    // Map tag control
    TagControl tag = new TagControl(m_map, true);
    lp.add(tag);
    lp.setWidgetRightWidth(tag, 10, Style.Unit.PX, 35, Style.Unit.PX);
    lp.setWidgetBottomHeight(tag, 60, Style.Unit.PX, 22, Style.Unit.PX);

    SearchControl flyToControl = new SearchControl();
    lp.add(flyToControl);
    lp.setWidgetRightWidth(flyToControl, 10, Style.Unit.PX, 160, Style.Unit.PX);
    lp.setWidgetTopHeight(flyToControl, 10, Style.Unit.PX, 50, Style.Unit.PX);

    flyToControl.addSearchHandler(new FlyToController(m_map));

    // Layer a transparent dialog...
    if (isTrue("showTestDialog", false)) {
        DialogBox db = new DialogBox();
        db.setHTML("<a href='' onclick='false'>x</a>");
        db.setPopupPosition(100, 10);
        db.setPixelSize(100, 100);
        db.show();
    }

}

From source file:com.oracle.wci.portlet168.client.WciJsr168StartUpPortlet.java

License:Apache License

/**
 * This is the entry point method./*from  w  w  w . j  a  va2 s.c om*/
 */
public void onModuleLoad() {
    final Button sendButton = new Button("Send ME");
    final TextBox nameField = new TextBox();
    nameField.setText("GWT User");
    final Label errorLabel = new Label();

    // We can add style names to widgets
    sendButton.addStyleName("sendButton");

    // Add the nameField and sendButton to the RootPanel
    // Use RootPanel.get() to get the entire body element
    RootPanel.get("nameFieldContainer").add(nameField);
    RootPanel.get("sendButtonContainer").add(sendButton);
    RootPanel.get("errorLabelContainer").add(errorLabel);

    // Focus the cursor on the name field when the app loads
    nameField.setFocus(true);
    nameField.selectAll();

    // Create the popup dialog box
    final DialogBox dialogBox = new DialogBox();
    dialogBox.setText("Remote Procedure Call");
    dialogBox.setAnimationEnabled(true);
    final Button closeButton = new Button("Close");
    // We can set the id of a widget by accessing its Element
    closeButton.getElement().setId("closeButton");
    final Label textToServerLabel = new Label();
    final HTML serverResponseLabel = new HTML();
    VerticalPanel dialogVPanel = new VerticalPanel();
    dialogVPanel.addStyleName("dialogVPanel");
    dialogVPanel.add(new HTML("<b>Sending name to the server:</b>"));
    dialogVPanel.add(textToServerLabel);
    dialogVPanel.add(new HTML("<br><b>Server replies:</b>"));
    dialogVPanel.add(serverResponseLabel);
    dialogVPanel.setHorizontalAlignment(VerticalPanel.ALIGN_RIGHT);
    dialogVPanel.add(closeButton);
    dialogBox.setWidget(dialogVPanel);

    // Add a handler to close the DialogBox
    closeButton.addClickHandler(new ClickHandler() {
        public void onClick(ClickEvent event) {
            dialogBox.hide();
            sendButton.setEnabled(true);
            sendButton.setFocus(true);
        }
    });

    // Create a handler for the sendButton and nameField
    class MyHandler implements ClickHandler, KeyUpHandler {
        /**
         * Fired when the user clicks on the sendButton.
         */
        public void onClick(ClickEvent event) {
            sendNameToServer();
        }

        /**
         * Fired when the user types in the nameField.
         */
        public void onKeyUp(KeyUpEvent event) {
            if (event.getNativeKeyCode() == KeyCodes.KEY_ENTER) {
                sendNameToServer();
            }
        }

        /**
         * Send the name from the nameField to the server and wait for a response.
         */
        private void sendNameToServer() {
            // First, we validate the input.
            errorLabel.setText("");
            String textToServer = nameField.getText();
            if (!FieldVerifier.isValidName(textToServer)) {
                errorLabel.setText("Please enter at least four characters");
                return;
            }

            // Then, we send the input to the server.
            sendButton.setEnabled(false);
            textToServerLabel.setText(textToServer);
            serverResponseLabel.setText("");
            greetingService.greetServer(textToServer, new AsyncCallback<String>() {
                public void onFailure(Throwable caught) {
                    // Show the RPC error message to the user
                    dialogBox.setText("Remote Procedure Call - Failure");
                    serverResponseLabel.addStyleName("serverResponseLabelError");
                    serverResponseLabel.setHTML(SERVER_ERROR);
                    dialogBox.center();
                    closeButton.setFocus(true);
                }

                public void onSuccess(String result) {
                    dialogBox.setText("Remote Procedure Call");
                    serverResponseLabel.removeStyleName("serverResponseLabelError");
                    serverResponseLabel.setHTML(result);
                    dialogBox.center();
                    closeButton.setFocus(true);
                }
            });
        }
    }

    // Add a handler to send the name to the server
    MyHandler handler = new MyHandler();
    sendButton.addClickHandler(handler);
    nameField.addKeyUpHandler(handler);
}