diff options
Diffstat (limited to 'documentation/clientsideapp/clientsideapp-entrypoint.asciidoc')
-rw-r--r-- | documentation/clientsideapp/clientsideapp-entrypoint.asciidoc | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/documentation/clientsideapp/clientsideapp-entrypoint.asciidoc b/documentation/clientsideapp/clientsideapp-entrypoint.asciidoc new file mode 100644 index 0000000000..f13303bde4 --- /dev/null +++ b/documentation/clientsideapp/clientsideapp-entrypoint.asciidoc @@ -0,0 +1,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. + + + + |