Google Web Toolkit (GWT)

Google Web Toolkit (GWT) to zestaw narzędzi do tworzenia oraz optymalizacji aplikacji opartych na przeglądarce. GWT to otwarte źródło, udostępniane na licencji Apache 2.0. Głównymi komponentami tego narzędzia są przede wszystkim:

  • biblioteka emulacji JRE – odpowiada za implementacje JavaScript w powszechnie używanych klasach;
  • tryb rozwoju GWT – umożliwia programistom uruchamiać aplikacje GWT w trybie rozwojowym, oznacza to, że aplikacja działa w Javie bez kompilowania się na język JavaScript;
  • biblioteka klasy interfejsu GWT Web Ul – to zestaw niestandardowych interfejsów oraz klas służących do tworzenia widżetów;
  • kompilator GWT Java-to-JavaScript – odpowiedzialny jest za przetwarzanie Java na JavaScript.

Cechy, które możemy wymienić mówiąc o Google Web Toolkit to między innymi:

  • posiada prosty mechanizm RPC (remote procedure call- zdalne wywoływanie procedury);
  • umożliwia zarządzanie historią przeglądarek;
  • pozwala na integrację testowania jednostek;
  • obsługuje kanał HTML;
  • obsługuje aplikacje Google API;
  • współpraca z CSS;
  • OOPHM – tryb Out of Process Hosted Mode- pozwala na korzystanie z trybu Hosted Mode w przeglądarce wybranej przez programistę, konstrukcja OOPHM umożliwia między innymi uruchamianie systemu Windows czy łączenie się z internetem w tryb Hosted Mode;
  • UiBinder- umożliwia projektowanie widżetów w prosty i dosyć intuicyjny sposób za pomocą XML (Extensible Markup Landuage – rozszerzalny język znaczników);
  • część popularnych widżetów, które nie zostały znalezione w GWT były wdrożone w bibliotekach innych firm na przykład: GWTiger, Rocket GWT, SmartGWT, Sencha GWT, GWT-Ext czy biblioteka komponentów GWT lub Dojo;
  • projektowanie i rozwijanie aplikacji w sposób zorientowany obiektowo dzięki użyciu języka Java;
  • JavaScript, który będzie generowany przez GWT może okazać się łatwiejszy do zrozumienia;
  • posiada dynamiczne komponenty Ul – oznacza to, że programiści mogą używać zaprojektowanych klas w celu implementowania w inny sposób dynamicznych zachowań, na przykład: przeciąganie i upuszczanie;
  • użytkownicy mogą swobodnie mieszać odręczny kod JavaScript z kodem źródłowym Java przy użyciu interfejsu JavaScript – JSNI;
  • Google oraz osoby trzecie mogą udostępniać GWT wiele bibliotek, rozszerzając jednocześnie funkcje GWT;
  • aplikacje GWT można debugować podobnie jak inne aplikacje Java za pomocą debugera IDE.

Przykładowy kod w Google Web Toolkit (GWT)

Google Web Toolkit (GWT) Przykład #1

  /**
    * The constants used in this Content Widget.
    */
  public static interface CwConstants extends Constants {
    String cwCheckBoxCheckAll();
    String[] cwCheckBoxDays();
    String cwCheckBoxDescription();
    String cwCheckBoxName();
  }
  
  /**
    * An instance of the constants.
    */
  private final CwConstants constants;
  
  /**
    * Initialize this example.
    */
  @Override
  public Widget onInitialize() {
    /** Create a vertical panel to align the check boxes */
    VerticalPanel vPanel = new VerticalPanel();
    HTML label = new HTML(constants.cwCheckBoxCheckAll());
    label.ensureDebugId("cwCheckBox-label");
    vPanel.add(label);
    
    /** Add a checkbox for each day of the week */
    String[] daysOfWeek = constants.cwCheckBoxDays();
    for (int i = 0; i < daysOfWeek.length; i++) {
      String day = daysOfWeek[i];
      CheckBox checkBox = new CheckBox(day);
      checkBox.ensureDebugId("cwCheckBox-" + day);
  
      /** Disable the weekends */
      if (i >= 5) {
        checkBox.setEnabled(false);
      }
      
      vPanel.add(checkBox);
    }
    
    /** Return the panel of checkboxes */
    return vPanel;
  }