From a1b265c318dbda4a213cec930785b81e4c0f7d2b Mon Sep 17 00:00:00 2001
From: elmot <elmot@vaadin.com>
Date: Fri, 25 Sep 2015 16:40:44 +0300
Subject: Framework documentation IN

Change-Id: I767477c1fc3745f9e1f58075fe30c9ac8da63581
---
 .../clientsideapp-entrypoint.asciidoc              | 83 ++++++++++++++++++++++
 1 file changed, 83 insertions(+)
 create mode 100644 documentation/clientsideapp/clientsideapp-entrypoint.asciidoc

(limited to 'documentation/clientsideapp/clientsideapp-entrypoint.asciidoc')

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.
+
+
+
+
-- 
cgit v1.2.3

