      /**
       * The constants used in this Content Widget.
       */
      public static interface CwConstants extends Constants {
        String cwBidiInputRtlAreaLabel();

        String cwBidiInputBidiAreaLabel();

        String cwBidiInputDescription();

        String cwBidiInputName();
      }

      /**
       * An instance of the constants.
       */
      private final CwConstants constants;

      /**
       * Initialize this example.
       */
      @Override
      public Widget onInitialize() {
        // Create a panel to layout the widgets
        VerticalPanel vpanel = new VerticalPanel();
        vpanel.setSpacing(10);

        // Add a bidi-disabled TextArea
        vpanel.add(new HTML(constants.cwBidiInputRtlAreaLabel()));
        TextArea disabled = new TextArea();
        disabled.setDirectionEstimator(false);
        disabled.setDirection(Direction.RTL);
        vpanel.add(disabled);

        // Add a bidi-enabled TextArea
        vpanel.add(new HTML(constants.cwBidiInputBidiAreaLabel()));
        TextArea enabled = new TextArea();
        // Since this application includes at least one RTL locale, this TextArea
        // has automatic direction handling on by default.
        assert enabled.getDirectionEstimator() != null;
        enabled.setText("كم عدد حبات الرمل في الشاطئ?");
        vpanel.add(enabled);

        // Return the panel
        return vpanel;
      }