summaryrefslogtreecommitdiffstats
path: root/documentation/addons
diff options
context:
space:
mode:
authorelmot <elmot@vaadin.com>2015-09-25 16:40:44 +0300
committerelmot <elmot@vaadin.com>2015-09-25 16:40:44 +0300
commita1b265c318dbda4a213cec930785b81e4c0f7d2b (patch)
treeb149daf5a4f50b4f6446c906047cf86495fe0433 /documentation/addons
parentb9743a48a1bd0394f19c54ee938c6395a80f3cd8 (diff)
downloadvaadin-framework-a1b265c318dbda4a213cec930785b81e4c0f7d2b.tar.gz
vaadin-framework-a1b265c318dbda4a213cec930785b81e4c0f7d2b.zip
Framework documentation IN
Change-Id: I767477c1fc3745f9e1f58075fe30c9ac8da63581
Diffstat (limited to 'documentation/addons')
-rw-r--r--documentation/addons/addons-cval.asciidoc131
-rw-r--r--documentation/addons/addons-downloading.asciidoc61
-rw-r--r--documentation/addons/addons-eclipse.asciidoc107
-rw-r--r--documentation/addons/addons-maven.asciidoc170
-rw-r--r--documentation/addons/addons-overview.asciidoc37
-rw-r--r--documentation/addons/addons-troubleshooting.asciidoc57
-rw-r--r--documentation/addons/chapter-addons.asciidoc19
-rw-r--r--documentation/addons/img/compile-widgetset-16.pngbin0 -> 795 bytes
-rw-r--r--documentation/addons/img/cval-pro-licenses-3.pngbin0 -> 90927 bytes
-rw-r--r--documentation/addons/img/cval-pro-licenses-code.pngbin0 -> 25668 bytes
-rw-r--r--documentation/addons/img/directory-ivy-dependency.pngbin0 -> 28077 bytes
-rw-r--r--documentation/addons/img/directory-maven-pom.pngbin0 -> 36482 bytes
-rw-r--r--documentation/addons/img/widgetset-compiling-toolbar-hi.pngbin0 -> 17549 bytes
-rw-r--r--documentation/addons/img/widgetset-compiling-toolbar-lo.pngbin0 -> 8550 bytes
-rw-r--r--documentation/addons/img/widgetset-compiling-toolbar.pngbin0 -> 7429 bytes
-rw-r--r--documentation/addons/original-drawings/widgetset-compiling-toolbar.svg176
16 files changed, 758 insertions, 0 deletions
diff --git a/documentation/addons/addons-cval.asciidoc b/documentation/addons/addons-cval.asciidoc
new file mode 100644
index 0000000000..8624bed70c
--- /dev/null
+++ b/documentation/addons/addons-cval.asciidoc
@@ -0,0 +1,131 @@
+---
+title: Installing Commercial Vaadin Add-on Licence
+order: 5
+layout: page
+---
+
+[[addons.cval]]
+= Installing Commercial Vaadin Add-on Licence
+
+The commercial Vaadin add-ons require installing a license key before using
+them. The license keys are development licenses and checked during widget set
+compilation, or in Vaadin TestBench when executing tests, so you do not need
+them when deploying the application.
+
+[[addons.cval.obtaining]]
+== Obtaining License Keys
+
+You can purchase add-ons or obtain a free trial key from the Vaadin website. You
+need to register in the website to obtain a key.
+
+You can get license keys from
+link:https://vaadin.com/pro/licenses[vaadin.com/pro/licenses], where you can
+navigate by selecting in the Vaadin website "My Account > Licenses" or directly
+[menuchoice]#Licenses# if you are a Pro Tools subscriber.
+
+[[figure.addons.cval.obtaining]]
+.Obtaining CVAL License
+image::img/cval-pro-licenses-3.png[]
+
+Click on a license key to obtain the purchased or trial key.
+
+[[figure.addons.cval.obtaining]]
+.Obtaining CVAL License Key
+image::img/cval-pro-licenses-code.png[]
+
+
+[[addons.cval.installing]]
+== Installing License Key in License File
+
+To install the license key in a development workstation, you can copy and paste
+it verbatim to a file in your home directory.
+
+License for each product has a separate license file as follows:
+
+Vaadin Charts:: [filename]#.vaadin.charts.developer.license#
+Vaadin Spreadsheet:: [filename]#.vaadin.spreadsheet.developer.license#
+Vaadin TestBench:: [filename]#.vaadin.testbench.developer.license#
+Vaadin TouchKit:: [filename]#.vaadin.touchkit.developer.license#
+
+
+For example, in Linux and OS X:
+
+[subs="normal"]
+----
+[prompt]#$# [command]#echo# "[replaceable]#L1cen5e-c0de#" &gt; [parameter]#~/.vaadin.[replaceable]+++#+++&lt;product&gt;+++#+++.developer.license#
+----
+
+[[addons.cval.systemproperty]]
+== Passing License Key as System Property
+
+You can also pass the key as a system property to the widget set compiler,
+usually with a [literal]#++-D++# option. For example, on the command-line:
+
+[subs="normal"]
+----
+[prompt]#$# [command]#java# -D[parameter]#vaadin.[replaceable]+++#+++&lt;product&gt;+++#+++.developer.license#=[replaceable]#L1cen5e-c0de# ...
+----
+ifdef::web[]
+See link:https://vaadin.com/directory/help/installing-cval-license[the CVAL
+license key installation instructions] for more details.
+endif::web[]
+
+[[addons.cval.systemproperty.environments]]
+=== Passing License Key in Different Environments
+
+How you actually pass the parameter to the widget set compiler depends on the
+development environment and the build system that you use to compile the widget
+set. Below are listed a few typical environments:
+
+Eclipse IDE:: To install the license key for all projects, select "Window > Preferences" and
+navigate to the "Java > Installed JREs" section. Select the JRE version that you
+use for the application and click [guibutton]#Edit#. In the [guilabel]#Default
+VM arguments#, give the [parameter]#-D# expression as shown above.
+
+Apache Ant:: If compiling the project with Apache Ant, you could set the key in the Ant
+script as follows:
+
+
++
+[subs="normal"]
+----
+&lt;sysproperty key="vaadin.[replaceable]#&lt;product&gt;#.developer.license"
+ value="**L1cen5e-c0de**"/&gt;
+----
++
+However, you should never store license keys in a source repository, so if the
+Ant script is stored in a source repository, you should pass the license key to
+Ant as a property that you then use in the script for the value argument of the
+[literal]#++<sysproperty>++# as follows:
+
+
++
+[subs="normal"]
+----
+&lt;sysproperty key="vaadin.[replaceable]#&lt;product&gt;#.developer.license"
+ value="**${vaadin.[replaceable]#&lt;product&gt;#.developer.license}**"/&gt;
+----
++
+When invoking Ant from the command-line, you can pass the property with a
+[parameter]#-D# parameter to Ant.
+
+Apache Maven:: If building the project with Apache Maven, you can pass the license key with a
+[literal]#++-D++# parameter to Maven:
+
+
++
+[subs="normal"]
+----
+[prompt]#$# [command]#mvn# -D[parameter]#vaadin.[replaceable]+++#+++&lt;product&gt;+++#+++.developer.license#=[replaceable]#L1cen5e-c0de# package
+----
+Continuous Integration Systems:: In CIS systems, you can pass the license key to build runners as a system
+property in the build configuration. However, this only passes it to a runner.
+As described above, Ant does not pass it to sub-processes implicitly, so you
+need to forward it explicitly as described earlier.
+
+
+
+
+
+
+
diff --git a/documentation/addons/addons-downloading.asciidoc b/documentation/addons/addons-downloading.asciidoc
new file mode 100644
index 0000000000..6ccf440420
--- /dev/null
+++ b/documentation/addons/addons-downloading.asciidoc
@@ -0,0 +1,61 @@
+---
+title: Downloading Add-ons from Vaadin Directory
+order: 2
+layout: page
+---
+
+[[addons.downloading]]
+= Downloading Add-ons from Vaadin Directory
+
+If you are not using Maven or a Maven-compatible dependency manager such as Ivy,
+or want to manage for your libraries manually, you can download add-on packages
+from the details page of an add-on in Vaadin Directory.
+
+. Select the version; some add-ons have several versions available. The latest is
+shown by default, but you can choose another the version to download from the
+dropdown menu in the header of the details page.
+
+. Click [guibutton]#Download Now# and save the JAR or Zip file on your computer.
+
+. If the add-on is packaged in a Zip package, unzip the package and follow any
+instructions provided inside the package. Typically, you just need to copy a JAR
+file to your web project under the [filename]#WEB-INF/lib# directory.
+
++
+Note that some add-ons may require other libraries. You can resolve such
+dependencies manually, but we recommend using a dependency manager such as Ivy
+or Maven in your project.
+
+. Update and recompile your project. In Eclipse, select the project and press F5.
+
+. You may need to compile the client-side implementations of the add-on
+components, that is, a __widget set__. This is the case for majority of add-ons,
+except for pure server-side, theme, or data binding add-ons. Compiling the
+widget set depends on the build environment. See <<addons.downloading.ant>>, or
+later in this chapter for instructions for compiling the widget set with Eclipse
+and
+Maven.+
+////
+See &lt;xref linkend="addons.compiling"/&gt; for
+instructions.
+////
+
+. Update the project in your development web server and possibly restart the
+server.
+
+
+[[addons.downloading.ant]]
+== Compiling Widget Sets with an Ant Script
+
+If you need to compile the widget set with an Ant script, you can find a script
+template package at the link:http://vaadin.com/download/[Vaadin download page].
+You can copy the files in the package to your project and, once configured, use
+it by running Ant in the directory.
+
+If you are using an IDE such as Eclipse, __always__ remember to refresh the
+project to synchronize it with the filesystem after compiling the widget set
+outside the IDE.
+
+
+
+
diff --git a/documentation/addons/addons-eclipse.asciidoc b/documentation/addons/addons-eclipse.asciidoc
new file mode 100644
index 0000000000..cd7508466d
--- /dev/null
+++ b/documentation/addons/addons-eclipse.asciidoc
@@ -0,0 +1,107 @@
+---
+title: Installing Add-ons in Eclipse with Ivy
+order: 3
+layout: page
+---
+
+[[addons.eclipse]]
+= Installing Add-ons in Eclipse with Ivy
+
+The Vaadin Plugin for Eclipse uses Apache Ivy to resolve dependencies. The
+dependencies should be listed in the [filename]#ivy.xml# file in the project
+root. The Vaadin Directory allows dowloading add-ons from a Maven repository,
+which can be accessed also by Ivy.
+
+You can also use Ivy to resolve dependencies in an Ant script.
+
+. Open the add-on page in Vaadin Directory.
+
+. Select the version. The latest is shown by default, but you can choose another
+the version from the dropdown menu in the header of the add-on details page.
+
+. Click the [guilabel]#Maven/Ivy# to display the Ivy dependency declaration, as
+illustrated in Figure <<figure.addons.eclipse.ivybutton>>. If the add-on is
+available with multiple licenses, you will be prompted to select a license for
+the dependency.
+
++
+[[figure.addons.eclipse.ivybutton]]
+.Ivy Dependency Declaration
+image::img/directory-ivy-dependency.png[]
+
+. Open the [filename]#ivysettings.xml# in your Eclipse project either in the XML
+or Ivy Editor (either double-click the file or right-click it and select "Open
+With > Ivy Editor").
+
++
+Check that the settings file has the [literal]#++<ibiblio>++# entry given in the
+Directory page. It should be, if the file was created by the Vaadin project
+wizard in Eclipse. If not, copy it there.
+
+
++
+----
+<chain name="default">
+ ...
+ <ibiblio name="vaadin-addons"
+ usepoms="true"
+ m2compatible="true"
+ root="http://maven.vaadin.com/vaadin-addons"/>
+ ...
+</chain>
+----
++
+If you get Vaadin addons from another repository, such as the local repository
+if you have compiled them yourself, you need to define a resolver for the
+repository in the settings file.
+
+. Open the [filename]#ivy.xml# in your Eclipse project and copy the Ivy dependency
+to inside the [literal]#++dependencies++# element. It should be as follows:
+
+
++
+[subs="normal"]
+----
+&lt;dependencies&gt;
+ ...
+ &lt;dependency org="**com.vaadin.addon**"
+ name="**vaadin-charts**"
+ rev="**1.0.0**"/&gt;
+&lt;/dependencies&gt;
+----
++
+You can specify either a fixed version number or a dynamic revision tag, such as
+[literal]#++latest.release++#. You can find more information about the
+link:http://ant.apache.org/ivy/history/2.1.0/ivyfile/dependency.html[dependency
+declarations] in Ivy documentation.
+
++
+If the [filename]#ivy.xml# does not have a [literal]#++<configurations
+defaultconfmapping="default->default">++# defined, you also need to have
+[literal]#++conf="default->default"++# in the dependency to resolve transient
+dependencies correctly.
+
++
+IvyIDE immediately resolves the dependencies when you save the file.
+
+. Compile the add-on widget set
+////
+, as described in &lt;xref
+linkend="addons.compiling.eclipse"/&gt;.
+////
+by clicking the [guilabel]#Compile Vaadin widgets# button in the toolbar.
+
++
+[[figure.addons.eclipse.toolbar]]
+.Compiling Widget Set in Eclipse
+image::img/widgetset-compiling-toolbar-hi.png[]
+
+
+If you experience problems with Ivy, first check all the dependency parameters.
+IvyDE can sometimes cause unexpected problems. You can clear the Ivy dependency
+cache by right-clicking the project and selecting "Ivy > Clean all caches". To
+refresh Ivy configuration, select "Ivy > Refresh". To try resolving again Ivy,
+select "Ivy > Resolve".
+
+
+
diff --git a/documentation/addons/addons-maven.asciidoc b/documentation/addons/addons-maven.asciidoc
new file mode 100644
index 0000000000..9c5ca8c25c
--- /dev/null
+++ b/documentation/addons/addons-maven.asciidoc
@@ -0,0 +1,170 @@
+---
+title: Using Add-ons in a Maven Project
+order: 4
+layout: page
+---
+
+[[addons.maven]]
+= Using Add-ons in a Maven Project
+
+((("Maven", "using add-ons", id="term.addons.maven", range="startofrange")))
+
+
+To use add-ons in a Maven project, you simply have to add them as dependencies
+in the project POM. Most add-ons include a widget set, which are compiled to the
+project widget set.
+
+Creating, compiling, and packaging a Vaadin project with Maven was described in
+<<dummy/../../../framework/getting-started/getting-started-maven#getting-started.maven,"Using
+Vaadin with Maven">>.
+
+[[addons.maven.dependency]]
+== Adding a Dependency
+
+Vaadin Directory provides a Maven repository for all the add-ons in the
+Directory.
+
+. Open the add-on page in Vaadin Directory.
+
+. Select the version. The latest is shown by default, but you can choose another
+the version from the dropdown menu in the header of the add-on details page.
+
+. Click the [guilabel]#Maven/Ivy# to display the Maven dependency declaration, as
+illustrated in Figure <<figure.addons.maven.pombutton>>. If the add-on is
+available with multiple licenses, you will be prompted to select a license for
+the dependency.
+
++
+[[figure.addons.maven.pombutton]]
+.Maven POM Definitions
+image::img/directory-maven-pom.png[]
+
+. Copy the [literal]#++dependency++# declaration to the [filename]#pom.xml# file
+in your project, under the [literal]#++dependencies++# element.
+
+
++
+[subs="normal"]
+----
+ ...
+ &lt;dependencies&gt;
+ ...
+ &lt;dependency&gt;
+ &lt;groupId&gt;**com.vaadin.addon**&lt;/groupId&gt;
+ &lt;artifactId&gt;**vaadin-charts**&lt;/artifactId&gt;
+ &lt;version&gt;**1.0.0**&lt;/version&gt;
+ &lt;/dependency&gt;
+ &lt;/dependencies&gt;
+----
++
+You can use an exact version number, as is done in the example above, or
+[literal]#++LATEST++# to always use the latest version of the add-on.
+
++
+The POM excerpt given in Directory includes also a repository definition, but if
+you have used the [literal]#++vaadin-archetype-application++# to create your
+project, it already includes the definition.
+
+. Compile the widget set as described in the following section.
+
+
+
+[[addons.maven.compiling]]
+== Compiling the Project Widget Set
+
+If you have used the [literal]#++vaadin-archetype-application++# to create the
+project, the [filename]#pom.xml# includes all necessary declarations to compile
+the widget set. The widget set compilation occurs in standard Maven build phase,
+such as with [parameter]#package# or [parameter]#install# goal.
+
+[subs="normal"]
+----
+[prompt]#$# [command]#mvn# [parameter]#package#
+----
+Then, just deploy the WAR to your application server.
+
+[[addons.maven.compiling.recompiling]]
+=== Recompiling the Widget Set
+
+The Vaadin plugin for Maven tries to avoid recompiling the widget set unless
+necessary, which sometimes means that it is not compiled even when it should.
+Running the [literal]#++clean++# goal usually helps, but causes a full
+recompilation. You can compile the widget set manually by running the
+[parameter]#vaadin:compile# goal.
+
+[subs="normal"]
+----
+[prompt]#$# [command]#mvn# [parameter]#vaadin:compile#
+----
+Note that this does not update the project widget set by searching new widget
+sets from the class path. It must be updated if you add or remove add-ons, for
+example. You can do that by running the [literal]#++vaadin:update-widgetset++#
+goal in the project directory.
+
+[subs="normal"]
+----
+[prompt]#$# [command]#mvn# [parameter]#vaadin:update-widgetset#
+...
+[INFO] auto discovered modules [your.company.gwt.ProjectNameWidgetSet]
+[INFO] Updating widgetset your.company.gwt.ProjectNameWidgetSet
+[ERROR] 27.10.2011 19:22:34 com.vaadin.terminal.gwt.widgetsetutils.ClassPathExplorer getAvailableWidgetSets
+[ERROR] INFO: Widgetsets found from classpath:
+...
+
+----
+Do not mind the "ERROR" labels, they are just an issue with the Vaadin Plugin
+for Maven.
+
+After running the update, you need to run the [literal]#++vaadin:compile++# goal
+to actually compile the widget set.
+
+
+
+[[addons.maven.widgetset]]
+== Enabling Widget Set Compilation
+
+If you are not using a POM created with the proper Vaadin archetype, you may
+need to enable widget set compilation manually. The simplest way to do that is
+to copy the definitions from a POM created with the archetype. Specifically, you
+need to copy the [literal]#++plugin++# definitions. You also need the Vaadin
+dependencies.
+
+You need to create an empty widget set definition file, which the widget set
+compilation will populate with widget sets found from the class path. Create a
+[filename]#src/main/java/com/example/AppWidgetSet.gwt.xml# file (in the project
+package) with an empty [literal]#++<module>++# element as follows:
+
+
+----
+<module>
+</module>
+----
+
+[[addons.maven.widgetset.web]]
+=== Enabling the Widget Set in the UI
+
+If you have previously used the default widget set in the project, you need to
+enable the project widget set in the [filename]#web.xml# deployment descriptor.
+Edit the [filename]#src/main/webapp/WEB-INF/web.xml# file and add or modify the
+[literal]#++widgetset++# parameter for the servlet as follows.
+
+[subs="normal"]
+----
+&lt;servlet&gt;
+ ...
+ &lt;init-param&gt;
+ &lt;description&gt;Widget Set to Use&lt;/description&gt;
+ &lt;param-name&gt;widgetset&lt;/param-name&gt;
+ &lt;param-value&gt;**com.example.AppWidgetSet**&lt;/param-value&gt;
+ &lt;/init-param&gt;
+&lt;/servlet&gt;
+----
+The parameter is the class name of the widget set, that is, without the
+[filename]#.gwt.xml# extension and with the Java dot notation for class names
+that include the package name.
+
+
+
+(((range="endofrange", startref="term.addons.maven")))
+
+
diff --git a/documentation/addons/addons-overview.asciidoc b/documentation/addons/addons-overview.asciidoc
new file mode 100644
index 0000000000..39d699fc08
--- /dev/null
+++ b/documentation/addons/addons-overview.asciidoc
@@ -0,0 +1,37 @@
+---
+title: Overview
+order: 1
+layout: page
+---
+
+[[addons.overview]]
+= Overview
+
+In addition to the components, layouts, themes, and data sources built in into
+the core Vaadin library, many others are available as add-ons.
+link:http://vaadin.com/directory/[Vaadin Directory] provides a rich collection
+of add-ons for Vaadin, and you may find others from independent sources. Add-ons
+are also one way to share your own components between projects.
+
+Installation of add-ons from Vaadin Directory is simple, just adding an Ivy or
+Maven dependency, or downloading the JAR package and and dropping it in the web
+library folder of the project. Most add-ons include a widget set, which you need
+to compile, but it's usually just a click of a button or a single command.
+
+After trying out an add-on, you can give some feedback to the author of the
+add-on by rating the add-on with one to five stars and optionally leaving a
+comment. Most add-ons also have a discussion forum thread for user feedback and
+questions.
+
+Add-ons available from Vaadin Directory are distributed under different
+licenses, of which some are commercial. While the add-ons can be downloaded
+directly, you should note their license and other terms and conditions. Many are
+offered under a dual licensing agreement so that they can be used in open source
+projects for free, and many have a trial period for closed-source development.
+Commercial Vaadin add-ons distributed under the CVAL license require installing
+a license key as instructed in
+<<dummy/../../../framework/addons/addons-cval#addons.cval,"Installing Commercial
+Vaadin Add-on Licence">>.
+
+
+
diff --git a/documentation/addons/addons-troubleshooting.asciidoc b/documentation/addons/addons-troubleshooting.asciidoc
new file mode 100644
index 0000000000..a899b3d26f
--- /dev/null
+++ b/documentation/addons/addons-troubleshooting.asciidoc
@@ -0,0 +1,57 @@
+---
+title: Troubleshooting
+order: 6
+layout: page
+---
+
+[[addons.troubleshooting]]
+= Troubleshooting
+
+If you experience problems with using add-ons, you can try the following:
+
+* Check the [filename]#.gwt.xml# descriptor file under the the project root
+package. For example, if the project root package is
+[filename]#com.example.myproject#, the widget set definition file is typically
+at [filename]#com/example/project/AppWidgetset.gwt.xml#. The location is not
+fixed and it can be elsewhere, as long as references to it match. See
+<<dummy/../../../framework/clientside/clientside-module#clientside.module,"Client-Side
+Module Descriptor">> for details on the contents of the client-side module
+descriptor, which is used to define a widget set.
+
+* Check the [filename]#WEB-INF/web.xml# deployment descriptor and see that the
+servlet for your UI has a widget set parameter, such as the following:
+
+
++
+----
+<init-param>
+ <description>UI widgetset</description>
+ <param-name>widgetset</param-name>
+ <param-value>com.example.project.AppWidgetSet</param-value>
+</init-param>
+----
++
+Check that the widget set class corresponds with the [filename]#.gwt.xml# file
+in the source tree.
+
+* See the [filename]#VAADIN/widgetsets# directory and check that the widget set
+appears there. You can remove it and recompile the widget set to see that the
+compilation works properly.
+
+* Use the [guilabel]#Net# tab in Firebug to check that the widget set (and theme)
+is loaded properly.
+
+* Use the ?debug parameter for the application to open the debug window and check
+if there is any version conflict between the widget set and the Vaadin library,
+or the themes. See
+<<dummy/../../../framework/advanced/advanced-debug#advanced.debug,"Debug Mode
+and Window">> for details.
+
+* Refresh and recompile the project. In Eclipse, select the project and press F5,
+stop the server, clean the server temporary directories, and restart it.
+
+* Check the Error Log view in Eclipse (or in the IDE you use).
+
+
+
+
diff --git a/documentation/addons/chapter-addons.asciidoc b/documentation/addons/chapter-addons.asciidoc
new file mode 100644
index 0000000000..4319e43456
--- /dev/null
+++ b/documentation/addons/chapter-addons.asciidoc
@@ -0,0 +1,19 @@
+[[addons]]
+== Using Vaadin Add-ons
+
+This chapter describes the installation of add-on components, themes,
+containers, and other tools from the Vaadin Directory and the use of commercial
+add-ons offered by Vaadin.
+
+
+include::addons-overview.asciidoc[leveloffset=+2]
+
+include::addons-downloading.asciidoc[leveloffset=+2]
+
+include::addons-eclipse.asciidoc[leveloffset=+2]
+
+include::addons-maven.asciidoc[leveloffset=+2]
+
+include::addons-cval.asciidoc[leveloffset=+2]
+
+include::addons-troubleshooting.asciidoc[leveloffset=+2]
diff --git a/documentation/addons/img/compile-widgetset-16.png b/documentation/addons/img/compile-widgetset-16.png
new file mode 100644
index 0000000000..aeafb8bbaf
--- /dev/null
+++ b/documentation/addons/img/compile-widgetset-16.png
Binary files differ
diff --git a/documentation/addons/img/cval-pro-licenses-3.png b/documentation/addons/img/cval-pro-licenses-3.png
new file mode 100644
index 0000000000..4306eb2bd2
--- /dev/null
+++ b/documentation/addons/img/cval-pro-licenses-3.png
Binary files differ
diff --git a/documentation/addons/img/cval-pro-licenses-code.png b/documentation/addons/img/cval-pro-licenses-code.png
new file mode 100644
index 0000000000..1f467e8b4f
--- /dev/null
+++ b/documentation/addons/img/cval-pro-licenses-code.png
Binary files differ
diff --git a/documentation/addons/img/directory-ivy-dependency.png b/documentation/addons/img/directory-ivy-dependency.png
new file mode 100644
index 0000000000..3393699315
--- /dev/null
+++ b/documentation/addons/img/directory-ivy-dependency.png
Binary files differ
diff --git a/documentation/addons/img/directory-maven-pom.png b/documentation/addons/img/directory-maven-pom.png
new file mode 100644
index 0000000000..720d4b089c
--- /dev/null
+++ b/documentation/addons/img/directory-maven-pom.png
Binary files differ
diff --git a/documentation/addons/img/widgetset-compiling-toolbar-hi.png b/documentation/addons/img/widgetset-compiling-toolbar-hi.png
new file mode 100644
index 0000000000..79e14ec60e
--- /dev/null
+++ b/documentation/addons/img/widgetset-compiling-toolbar-hi.png
Binary files differ
diff --git a/documentation/addons/img/widgetset-compiling-toolbar-lo.png b/documentation/addons/img/widgetset-compiling-toolbar-lo.png
new file mode 100644
index 0000000000..70b3e9bfb4
--- /dev/null
+++ b/documentation/addons/img/widgetset-compiling-toolbar-lo.png
Binary files differ
diff --git a/documentation/addons/img/widgetset-compiling-toolbar.png b/documentation/addons/img/widgetset-compiling-toolbar.png
new file mode 100644
index 0000000000..853b2c457c
--- /dev/null
+++ b/documentation/addons/img/widgetset-compiling-toolbar.png
Binary files differ
diff --git a/documentation/addons/original-drawings/widgetset-compiling-toolbar.svg b/documentation/addons/original-drawings/widgetset-compiling-toolbar.svg
new file mode 100644
index 0000000000..780d401457
--- /dev/null
+++ b/documentation/addons/original-drawings/widgetset-compiling-toolbar.svg
@@ -0,0 +1,176 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="210mm"
+ height="297mm"
+ id="svg1901"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ sodipodi:docname="widgetset-compiling-toolbar.svg"
+ sodipodi:docbase="/home/tsoots/ohj/translations/po"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape">
+ <defs
+ id="defs1903">
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective7" />
+ <inkscape:perspective
+ id="perspective2499"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <linearGradient
+ y2="471.38400"
+ y1="45.132561"
+ xlink:href="#linearGradient7601"
+ x2="1370.5586"
+ x1="-526.86133"
+ spreadMethod="reflect"
+ inkscape:collect="always"
+ id="linearGradient10877"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(8.892150e-2,0.000000,0.000000,0.155616,635.7169,9.380527)" />
+ <linearGradient
+ y2="471.38400"
+ y1="45.132561"
+ xlink:href="#linearGradient7601"
+ x2="1370.5586"
+ x1="-526.86133"
+ spreadMethod="reflect"
+ inkscape:collect="always"
+ id="linearGradient10869"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.323979,0.000000,0.000000,0.566975,399.6324,14.15086)" />
+ <linearGradient
+ y2="471.38400"
+ y1="45.132561"
+ xlink:href="#linearGradient7601"
+ x2="1370.5586"
+ x1="-526.86133"
+ spreadMethod="reflect"
+ inkscape:collect="always"
+ id="linearGradient7607"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.755921,0,0,1.32289,-36,0)" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient7601">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop7603" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0;"
+ offset="1"
+ id="stop7605" />
+ </linearGradient>
+ <inkscape:perspective
+ id="perspective13602"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective2529"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="2.8"
+ inkscape:cx="295.42901"
+ inkscape:cy="873.26277"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ gridtolerance="10000"
+ inkscape:window-width="1333"
+ inkscape:window-height="739"
+ inkscape:window-x="1493"
+ inkscape:window-y="131"
+ showgrid="false" />
+ <metadata
+ id="metadata1906">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Taso 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ style="opacity:1">
+ <image
+ y="116.93364"
+ x="125.21431"
+ id="image2501"
+ height="48"
+ width="281"
+ sodipodi:absref="/home/magi/itmill/book-7/manual/img/addons/widgetset-compiling-toolbar.png"
+ xlink:href="/home/magi/itmill/book-7/manual/img/addons/widgetset-compiling-toolbar.png" />
+ <rect
+ style="opacity:1;fill:#eeeff2;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.0999999;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1.29999998;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect2535"
+ width="24.496172"
+ height="16.667501"
+ x="204.80843"
+ y="122.51678" />
+ <image
+ y="122.34544"
+ x="208.74406"
+ id="image2531"
+ height="17.262691"
+ width="17.262691"
+ sodipodi:absref="//home/magi/itmill/book-7/manual/img/addons/compile-widgetset-16.png"
+ xlink:href="/home/magi/itmill/book-7/manual/img/addons/compile-widgetset-16.png"
+ style="fill:#eeeff2;fill-opacity:1" />
+ <g
+ style="display:inline"
+ inkscape:label="Layer 1"
+ id="g13611"
+ transform="matrix(2.4577007e-2,0,0,2.4577007e-2,218.45402,137.72183)">
+ <g
+ id="g1317">
+ <path
+ style="fill:url(#linearGradient7607);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+ id="path6080"
+ d="M 70.29035,24.82601 L 70.29035,627.16976 L 105.72785,627.16976 L 105.72785,591.73226 L 141.16535,591.73226 L 141.16535,556.32601 L 176.5716,556.32601 L 176.5716,520.88851 L 212.0091,520.88851 L 247.4466,520.88851 L 247.4466,591.73226 L 282.8841,591.73226 L 282.8841,662.60726 L 318.3216,662.60726 L 318.3216,733.48226 L 353.7591,733.48226 L 353.7591,768.91976 L 424.60285,768.91976 L 424.60285,733.48226 L 460.04035,733.48226 L 460.04035,662.60726 L 424.60285,662.60726 L 424.60285,591.73226 L 389.1966,591.73226 L 389.1966,520.88851 L 353.7591,520.88851 L 353.7591,450.01351 L 495.47785,450.01351 L 495.47785,414.57601 L 460.04035,414.57601 L 460.04035,379.13851 L 424.60285,379.13851 L 424.60285,343.70101 L 389.1966,343.70101 L 389.1966,308.29476 L 353.7591,308.29476 L 353.7591,272.85726 L 318.3216,272.85726 L 318.3216,237.41976 L 282.8841,237.41976 L 282.8841,201.98226 L 247.4466,201.98226 L 247.4466,166.54476 L 212.0091,166.54476 L 212.0091,131.10726 L 176.5716,131.10726 L 176.5716,95.669761 L 141.16535,95.669761 L 141.16535,60.26351 L 105.72785,60.26351 L 105.72785,24.82601 L 70.29035,24.82601 z" />
+ <path
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="rect1430"
+ d="M 35.4375,24.8125 L 35.4375,627.15625 L 70.875,627.15625 L 70.875,591.71875 L 106.3125,591.71875 L 106.3125,556.3125 L 70.875,556.3125 L 70.875,95.65625 L 106.3125,95.65625 L 106.3125,60.25 L 70.875,60.25 L 70.875,24.8125 L 35.4375,24.8125 z M 106.3125,95.65625 L 106.3125,131.09375 L 141.71875,131.09375 L 141.71875,95.65625 L 106.3125,95.65625 z M 141.71875,131.09375 L 141.71875,166.53125 L 177.15625,166.53125 L 177.15625,131.09375 L 141.71875,131.09375 z M 177.15625,166.53125 L 177.15625,201.96875 L 212.59375,201.96875 L 212.59375,166.53125 L 177.15625,166.53125 z M 212.59375,201.96875 L 212.59375,237.40625 L 248.03125,237.40625 L 248.03125,201.96875 L 212.59375,201.96875 z M 248.03125,237.40625 L 248.03125,272.84375 L 283.46875,272.84375 L 283.46875,237.40625 L 248.03125,237.40625 z M 283.46875,272.84375 L 283.46875,308.28125 L 318.90625,308.28125 L 318.90625,272.84375 L 283.46875,272.84375 z M 318.90625,308.28125 L 318.90625,343.6875 L 354.34375,343.6875 L 354.34375,308.28125 L 318.90625,308.28125 z M 354.34375,343.6875 L 354.34375,379.125 L 389.75,379.125 L 389.75,343.6875 L 354.34375,343.6875 z M 389.75,379.125 L 389.75,414.5625 L 283.46875,414.5625 L 283.46875,450 L 283.46875,520.875 L 318.90625,520.875 L 318.90625,450 L 460.625,450 L 460.625,414.5625 L 425.1875,414.5625 L 425.1875,379.125 L 389.75,379.125 z M 318.90625,520.875 L 318.90625,591.71875 L 354.34375,591.71875 L 354.34375,520.875 L 318.90625,520.875 z M 354.34375,591.71875 L 354.34375,662.59375 L 389.75,662.59375 L 389.75,591.71875 L 354.34375,591.71875 z M 389.75,662.59375 L 389.75,733.46875 L 425.1875,733.46875 L 425.1875,662.59375 L 389.75,662.59375 z M 389.75,733.46875 L 318.90625,733.46875 L 318.90625,768.90625 L 389.75,768.90625 L 389.75,733.46875 z M 318.90625,733.46875 L 318.90625,662.59375 L 283.46875,662.59375 L 283.46875,733.46875 L 318.90625,733.46875 z M 283.46875,662.59375 L 283.46875,591.71875 L 248.03125,591.71875 L 248.03125,662.59375 L 283.46875,662.59375 z M 248.03125,591.71875 L 248.03125,520.875 L 212.59375,520.875 L 212.59375,591.71875 L 248.03125,591.71875 z M 212.59375,520.875 L 212.59375,450 L 177.15625,450 L 177.15625,485.4375 L 141.71875,485.4375 L 141.71875,520.875 L 177.15625,520.875 L 212.59375,520.875 z M 141.71875,520.875 L 106.3125,520.875 L 106.3125,556.3125 L 141.71875,556.3125 L 141.71875,520.875 z" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;stroke:none"
+ id="rect3779"
+ d="M 70.875,95.65625 L 70.875,556.3125 L 106.3125,556.3125 L 106.3125,520.875 L 141.71875,520.875 L 141.71875,485.4375 L 177.15625,485.4375 L 177.15625,450 L 212.59375,450 L 212.59375,520.875 L 248.03125,520.875 L 248.03125,591.71875 L 283.46875,591.71875 L 283.46875,662.59375 L 318.90625,662.59375 L 318.90625,733.46875 L 354.34375,733.46875 L 389.75,733.46875 L 389.75,662.59375 L 354.34375,662.59375 L 354.34375,591.71875 L 318.90625,591.71875 L 318.90625,520.875 L 283.46875,520.875 L 283.46875,414.5625 L 318.90625,414.5625 L 354.34375,414.5625 L 389.75,414.5625 L 389.75,379.125 L 354.34375,379.125 L 354.34375,343.6875 L 318.90625,343.6875 L 318.90625,308.28125 L 283.46875,308.28125 L 283.46875,272.84375 L 248.03125,272.84375 L 248.03125,237.40625 L 212.59375,237.40625 L 212.59375,201.96875 L 177.15625,201.96875 L 177.15625,166.53125 L 141.71875,166.53125 L 141.71875,131.09375 L 106.3125,131.09375 L 106.3125,95.65625 L 70.875,95.65625 z" />
+ </g>
+ </g>
+ </g>
+</svg>