Beispiel #1
0
  @SuppressWarnings("unchecked")
  public void onModuleLoad() {
    /*
     * Redirect log to web page.
     */
    Log.add(
        new Log() {

          @Override
          protected void onWrite(String message) {
            RootPanel.get("log").add(new HTML(message));
          }
        });

    /*
     * Like Java applications, GWT object models must be registered.
     */
    MyObjectModel.register();

    final HTTPClient client = new HTTPClient("http://localhost:8080");

    client.setCallback(
        new Callback() {

          public void onReceived(Object object) {
            Log.write("Received: " + object);

            if (object instanceof String) Debug.assertAlways("Blah".equals(object));

            if (object instanceof Integer) Debug.assertAlways(42 == (Integer) object);

            if (object instanceof Car) {
              car = (Car) object;
              Debug.assertAlways("Joe".equals(car.getDriver().getName()));
            }

            if (object instanceof Driver) {
              Driver friend = (Driver) object;
              Debug.assertAlways(5 == car.getSettings().get(friend).getSeatHeight());
            }

            if (object instanceof LazyMap) {
              final LazyMap<String, Car> map = (LazyMap) object;

              /*
               * Fetched only entry with key A.
               */
              map.getAsync(
                  "A",
                  new AsyncCallback<Car>() {

                    public void onSuccess(final Car a) {
                      Debug.assertAlways("Brand A".equals(a.getBrand()));

                      Log.write("Done!");
                      client.send("Done!");
                    }

                    public void onFailure(Throwable caught) {}
                  });
            }
          }

          public void onDisconnected(Exception e) {}
        });

    Log.write("Connecting...");
    client.connectAsync();
  }