Creating Custom Widgets
GWT makes it easy to create custom widgets entirely in the Java language.
Composites
Composites are by far the most effective way to create new widgets. You
can easily combine groups of existing widgets into a composite that is
itself a reusable widget.
Composite is a specialized widget that
can contain another component (typically, a
panel) but behaves as if it
were its contained widget. Using
Composite is preferable to
attempting to create complex widgets by subclassing
Panel because a composite usually
wants to control which methods are publicly accessible without exposing
those methods that it would inherit from its panel superclass.
This is an example of
how to create a composite.
From Scratch in Java code
It is also possible to create a widget from scratch, although it is
trickier since you have to write code at a lower level. Many of the basic
widgets are written this way, such as
Button and
TextBox.
Please refer to the implementations of these widgets to understand how to
create your own.
Using JavaScript
When implementing a custom widget that derives directly from the
Widget base class, you may also write some of the widget's
methods using JavaScript. This should generally be done only as a last
resort, as it becomes necessary to consider the cross-browser
implications of the native methods that you write, and also becomes more
difficult to debug. For an example of this pattern in practice, see the
TextBox widget and its underlying
implementation.