1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
|
---
title: Client-Side Module Entry-Point
order: 2
layout: page
---
[[clientsideapp.entrypoint]]
= Client-Side Module Entry-Point
A client-side application requires an __entry-point__ where the execution
starts, much like the [methodname]#init()# method in server-side Vaadin UIs.
Consider the following application:
----
package com.example.myapp.client;
import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.user.client.ui.RootPanel;
import com.vaadin.ui.VButton;
public class MyEntryPoint implements EntryPoint {
@Override
public void onModuleLoad() {
// Create a button widget
Button button = new Button();
button.setText("Click me!");
button.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
mywidget.setText("Hello, world!");
}
});
RootPanel.get().add(button);
}
}
----
Before compiling, the entry-point needs to be defined in a module descriptor, as
described in the next section.
[[clientsideapp.entrypoint.descriptor]]
== Module Descriptor
The entry-point of a client-side application is defined, along with any other
configuration, in a client-side module descriptor, described in
<<dummy/../../../framework/clientside/clientside-module#clientside.module,"Client-Side
Module Descriptor">>. The descriptor is an XML file with suffix
[filename]#.gwt.xml#.
----
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE module PUBLIC
"-//Google Inc.//DTD Google Web Toolkit 1.7.0//EN"
"http://google-web-toolkit.googlecode.com/svn/tags/1.7.0/distro-source/core/src/gwt-module.dtd">
<module>
<!-- Builtin Vaadin and GWT widgets -->
<inherits name="com.vaadin.Vaadin" />
<!-- The entry-point for the client-side application -->
<entry-point class="com.example.myapp.client.MyEntryPoint"/>
</module>
----
You might rather want to inherit the [classname]#com.google.gwt.user.User# to
get just the basic GWT widgets, and not the Vaadin-specific widgets and classes,
most of which are unusable in pure client-side applications.
You can put static resources, such as images or CSS stylesheets, in a
[filename]#public# folder (not a Java package) under the folder of the
descriptor file. When the module is compiled, the resources are copied to the
output folder. Normally in pure client-side application development, it is
easier to load them in the HTML host file or in a [classname]#ClientBundle# (see
GWT documentation), but these methods are not compatible with server-side
component integration, if you use the resources for that purpose as well.
|