aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGiteaBot <teabot@gitea.io>2021-05-30 00:11:22 +0000
committerGiteaBot <teabot@gitea.io>2021-05-30 00:11:22 +0000
commitd8c99c64d5bca4b280a1639677d4457fb6ebabcc (patch)
treebe8f3f530e80b4f36a3510c87c95905af0da4027
parenta9daebca2222ac0e97c0480e30a4e59d0906dd60 (diff)
downloadgitea-d8c99c64d5bca4b280a1639677d4457fb6ebabcc.tar.gz
gitea-d8c99c64d5bca4b280a1639677d4457fb6ebabcc.zip
[skip ci] Updated licenses and gitignores
-rw-r--r--options/gitignore/Gradle3
-rw-r--r--options/gitignore/Gretl8
-rw-r--r--options/gitignore/Node2
-rw-r--r--options/gitignore/SPFx33
-rw-r--r--options/gitignore/Umbraco4
-rw-r--r--options/gitignore/V3
6 files changed, 45 insertions, 8 deletions
diff --git a/options/gitignore/Gradle b/options/gitignore/Gradle
index 8d68edc977..85888bb2e1 100644
--- a/options/gitignore/Gradle
+++ b/options/gitignore/Gradle
@@ -10,6 +10,3 @@ gradle-app.setting
# Cache of project
.gradletasknamecache
-
-# # Work around https://youtrack.jetbrains.com/issue/IDEA-116898
-# gradle/wrapper/gradle-wrapper.properties
diff --git a/options/gitignore/Gretl b/options/gitignore/Gretl
new file mode 100644
index 0000000000..582489e542
--- /dev/null
+++ b/options/gitignore/Gretl
@@ -0,0 +1,8 @@
+# gitignore template for Gretl
+# website: http://gretl.sourceforge.net/
+
+# Auto-generated log file is overwritten whenever you start a new session
+session.inp
+
+# Auto-generated temporary string code table
+string_table.txt
diff --git a/options/gitignore/Node b/options/gitignore/Node
index 1f22b9c26a..0125458e15 100644
--- a/options/gitignore/Node
+++ b/options/gitignore/Node
@@ -5,6 +5,7 @@ npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*
+.pnpm-debug.log*
# Diagnostic reports (https://nodejs.org/api/report.html)
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
@@ -71,6 +72,7 @@ web_modules/
# dotenv environment variables file
.env
.env.test
+.env.production
# parcel-bundler cache (https://parceljs.org/)
.cache
diff --git a/options/gitignore/SPFx b/options/gitignore/SPFx
new file mode 100644
index 0000000000..5a66b3419a
--- /dev/null
+++ b/options/gitignore/SPFx
@@ -0,0 +1,33 @@
+#SharePoint Framework (SPFx)
+# Logs
+logs
+*.log
+npm-debug.log*
+
+# Dependency directories
+node_modules
+
+# Build generated files
+dist
+lib
+solution
+temp
+*.sppkg
+
+# Coverage directory used by tools like istanbul
+coverage
+
+# OSX
+.DS_Store
+
+# Visual Studio files
+.ntvs_analysis.dat
+.vs
+bin
+obj
+
+# Resx Generated Code
+*.resx.ts
+
+# Styles Generated Code
+*.scss.ts
diff --git a/options/gitignore/Umbraco b/options/gitignore/Umbraco
index c286845766..5649531412 100644
--- a/options/gitignore/Umbraco
+++ b/options/gitignore/Umbraco
@@ -15,7 +15,7 @@
**/App_Data/umbraco.config
## this [Uu]mbraco/ folder should be created by cmd like `Install-Package UmbracoCms -Version 8.5.3`
-## you can find your umbraco version at your Web.config. (i.e. <add key="Umbraco.Core.ConfigurationStatus" value="8.5.3" />)
+## you can find your Umbraco version in your Web.config. (i.e. <add key="Umbraco.Core.ConfigurationStatus" value="8.5.3" />)
## Uncomment this line if you think it fits the way you work on your project.
## **/[Uu]mbraco/
@@ -29,4 +29,4 @@
**/App_Data/cache/
# Ignore the Models Builder models out of date flag
-**/App_Data/Models/ood.flag
+**/ood.flag
diff --git a/options/gitignore/V b/options/gitignore/V
index bc0d4f3aaa..dbbb0462fb 100644
--- a/options/gitignore/V
+++ b/options/gitignore/V
@@ -1,6 +1,3 @@
-*
-!*/
-!*.*
*.exe
*.o
*.so
ral.String.Regex */ .highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */ .highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */ .highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */ .highlight .vc { color: #336699 } /* Name.Variable.Class */ .highlight .vg { color: #dd7700 } /* Name.Variable.Global */ .highlight .vi { color: #3333bb } /* Name.Variable.Instance */ .highlight .vm { color: #336699 } /* Name.Variable.Magic */ .highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */
---
title: Overview
order: 1
layout: page
---

[[gwt.overview]]
= Overview

Vaadin components consist of two parts: a server-side and a client-side
component. The latter are also called __widgets__ in Google Web Toolkit (GWT)
parlance. A Vaadin application uses the API of the server-side component, which
is rendered as a client-side widget in the browser. As on the server-side, the
client-side widgets form a hierarchy of layout widgets and regular widgets as
the leaves.

[[figure.gwt.overview.widget-integration]]
.Integration of Client-Side Widgets
image::img/widget-integration-hi.png[]

The communication between a client-side widget and a server-side component is
managed with a __connector__ that handles syncronizing the widget state and
events to and from the server-side.
((("connector")))

When rendering the user interface, a client-side connector and a widget are
created for each server-side component. The mapping from a component to a
connector is defined in the connector class with a [literal]#++@Connect++#
annotation, and the widget is created by the connector class.
((("@Connect")))

The state of a server-side component is synchronized automatically to the
client-side widget using a __shared state__ object. A shared state object
extends [classname]#AbstractComponentState# and it is used both in the
server-side and the client-side component. On the client-side, a connector
always has access to its state instance, as well to the state of its parent
component state and the states of its children. ((("state
object")))
((("[classname]#AbstractComponentState#")))

The state sharing assumes that state is defined with standard Java types, such
as primitive and boxed primitive types, [classname]#String#, arrays, and certain
collections ( [classname]#List#, [classname]#Set#, and [classname]#Map#) of the
supported types. Also the Vaadin [classname]#Connector# and some special
internal types can be shared.

In addition to state, both server- and client-side can make remote procedure
calls (RPC) to the other side. RPC is used foremost for event notifications. For
example, when a client-side connector of a button receives a click, it sends the
event to the server-side using RPC.

[[gwt.overview.project]]
== Project Structure

Widget set compilation, as described in
<<dummy/../../../framework/clientside/clientside-module#clientside.module,"Client-Side
Module Descriptor">>, requires using a special project structure, where the
client-side classes are located under a [filename]#client# package under the
package of the module descriptor. Any static resources, such as stylesheets and
images, should be located under a [filename]#public# folder (not Java package).
The source for the server-side component may be located anywhere, except not in
the client-side package.

The basic project structure is illustrated in <<figure.gwt.overview.project>>.

[[figure.gwt.overview.project]]
.Basic Widget Integration Project Structure
image::img/gwt-widget-files-hi.png[]

The Eclipse wizard, described in
<<dummy/../../../framework/gwt/gwt-eclipse#gwt.eclipse,"Starting It Simple With
Eclipse">>, creates a widget integration skeleton with the above structure.


[[gwt.overview.javascript]]
== Integrating JavaScript Components

In addition to the GWT widget integration, Vaadin offers a simplified way to
integrate pure JavaScript components. The JavaScript connector code is published
from the server-side. As the JavaScript integration does not involve GWT
programming, no widget set compilation is needed.
((("JavaScript")))