summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--documentation/addons/addons-maven.asciidoc2
-rw-r--r--documentation/addons/addons-overview.asciidoc6
-rw-r--r--documentation/addons/addons-troubleshooting.asciidoc4
-rw-r--r--documentation/advanced/advanced-architecture.asciidoc4
-rw-r--r--documentation/advanced/advanced-cdi.asciidoc20
-rw-r--r--documentation/advanced/advanced-debug.asciidoc4
-rw-r--r--documentation/advanced/advanced-embedding.asciidoc6
-rw-r--r--documentation/advanced/advanced-javascript.asciidoc2
-rw-r--r--documentation/advanced/advanced-pushstate.asciidoc2
-rw-r--r--documentation/advanced/advanced-requesthandler.asciidoc2
-rw-r--r--documentation/advanced/advanced-spring.asciidoc12
-rw-r--r--documentation/advanced/advanced-urifu.asciidoc6
-rw-r--r--documentation/advanced/advanced-windows.asciidoc8
-rw-r--r--documentation/application/application-architecture.asciidoc18
-rw-r--r--documentation/application/application-declarative.asciidoc6
-rw-r--r--documentation/application/application-environment.asciidoc10
-rw-r--r--documentation/application/application-errors.asciidoc2
-rw-r--r--documentation/application/application-events.asciidoc2
-rw-r--r--documentation/application/application-lifecycle.asciidoc20
-rw-r--r--documentation/application/application-notifications.asciidoc2
-rw-r--r--documentation/application/application-overview.asciidoc26
-rw-r--r--documentation/application/application-resources.asciidoc10
-rw-r--r--documentation/architecture/architecture-client-side.asciidoc6
-rw-r--r--documentation/architecture/architecture-events.asciidoc2
-rw-r--r--documentation/architecture/architecture-overview.asciidoc18
-rw-r--r--documentation/architecture/architecture-technology.asciidoc12
-rw-r--r--documentation/architecture/chapter-architecture.asciidoc2
-rw-r--r--documentation/clientside/clientside-compiling.asciidoc4
-rw-r--r--documentation/clientside/clientside-installing.asciidoc2
-rw-r--r--documentation/clientside/clientside-module.asciidoc4
-rw-r--r--documentation/clientsideapp/clientsideapp-compiling.asciidoc4
-rw-r--r--documentation/clientsideapp/clientsideapp-entrypoint.asciidoc2
-rw-r--r--documentation/clientsideapp/clientsideapp-overview.asciidoc12
-rw-r--r--documentation/clientsidewidgets/clientsidewidgets-grid.asciidoc4
-rw-r--r--documentation/clientsidewidgets/clientsidewidgets-overview.asciidoc2
-rw-r--r--documentation/components/components-checkbox.asciidoc2
-rw-r--r--documentation/components/components-combobox.asciidoc2
-rw-r--r--documentation/components/components-customcomponent.asciidoc4
-rw-r--r--documentation/components/components-customfield.asciidoc4
-rw-r--r--documentation/components/components-datefield.asciidoc4
-rw-r--r--documentation/components/components-embedded.asciidoc6
-rw-r--r--documentation/components/components-extensions.asciidoc2
-rw-r--r--documentation/components/components-features.asciidoc8
-rw-r--r--documentation/components/components-fields.asciidoc10
-rw-r--r--documentation/components/components-grid.asciidoc10
-rw-r--r--documentation/components/components-interfaces.asciidoc4
-rw-r--r--documentation/components/components-label.asciidoc2
-rw-r--r--documentation/components/components-link.asciidoc4
-rw-r--r--documentation/components/components-listselect.asciidoc2
-rw-r--r--documentation/components/components-nativeselect.asciidoc2
-rw-r--r--documentation/components/components-optiongroups.asciidoc4
-rw-r--r--documentation/components/components-overview.asciidoc4
-rw-r--r--documentation/components/components-passwordfield.asciidoc2
-rw-r--r--documentation/components/components-progressbar.asciidoc6
-rw-r--r--documentation/components/components-richtextarea.asciidoc2
-rw-r--r--documentation/components/components-selection.asciidoc8
-rw-r--r--documentation/components/components-textarea.asciidoc2
-rw-r--r--documentation/components/components-textfield.asciidoc2
-rw-r--r--documentation/components/components-tree.asciidoc4
-rw-r--r--documentation/components/components-treegrid.asciidoc4
-rw-r--r--documentation/components/components-twincolselect.asciidoc2
-rw-r--r--documentation/datamodel/datamodel-fields.asciidoc2
-rw-r--r--documentation/datamodel/datamodel-hierarchical.asciidoc6
-rw-r--r--documentation/datamodel/datamodel-overview.asciidoc18
-rw-r--r--documentation/getting-started/chapter-getting-started.asciidoc4
-rw-r--r--documentation/getting-started/getting-started-first-project.asciidoc6
-rw-r--r--documentation/getting-started/getting-started-idea.asciidoc2
-rw-r--r--documentation/getting-started/getting-started-libraries.asciidoc6
-rw-r--r--documentation/getting-started/getting-started-maven.asciidoc4
-rw-r--r--documentation/getting-started/getting-started-netbeans.asciidoc6
-rw-r--r--documentation/getting-started/getting-started-overview.asciidoc (renamed from documentation/getting-started/getting-started-overview.adoc)0
-rw-r--r--documentation/gwt/gwt-connector.asciidoc10
-rw-r--r--documentation/gwt/gwt-eclipse.asciidoc6
-rw-r--r--documentation/gwt/gwt-javascript.asciidoc2
-rw-r--r--documentation/gwt/gwt-overview.asciidoc4
-rw-r--r--documentation/gwt/gwt-server-side.asciidoc2
-rw-r--r--documentation/gwt/gwt-shared-state.asciidoc2
-rw-r--r--documentation/gwt/gwt-styling.asciidoc2
-rw-r--r--documentation/installing/installing-eclipse.adoc4
-rw-r--r--documentation/installing/installing-netbeans.asciidoc4
-rw-r--r--documentation/installing/installing-overview.adoc6
-rw-r--r--documentation/introduction/intro-ide.asciidoc4
-rw-r--r--documentation/introduction/intro-overview.asciidoc8
-rw-r--r--documentation/introduction/intro-walkthrough.asciidoc4
-rw-r--r--documentation/layout/layout-accordion.asciidoc2
-rw-r--r--documentation/layout/layout-formlayout.asciidoc6
-rw-r--r--documentation/layout/layout-gridlayout.asciidoc10
-rw-r--r--documentation/layout/layout-orderedlayout.asciidoc2
-rw-r--r--documentation/layout/layout-overview.asciidoc4
-rw-r--r--documentation/layout/layout-root-layout.asciidoc2
-rw-r--r--documentation/layout/layout-settings.asciidoc12
-rw-r--r--documentation/layout/layout-sub-window.asciidoc2
-rw-r--r--documentation/migration/migrating-to-vaadin8.asciidoc8
-rw-r--r--documentation/portal/portal-deployment.asciidoc6
-rw-r--r--documentation/portal/portal-liferay-ipc.asciidoc2
-rw-r--r--documentation/portal/portal-liferay.asciidoc4
-rw-r--r--documentation/portal/portal-osgi.asciidoc2
-rw-r--r--documentation/portal/portal-ui.asciidoc4
-rw-r--r--documentation/themes/themes-compiling.asciidoc2
-rw-r--r--documentation/themes/themes-creating.asciidoc6
-rw-r--r--documentation/themes/themes-eclipse.asciidoc4
-rw-r--r--documentation/themes/themes-fonticon.asciidoc2
-rw-r--r--documentation/themes/themes-overview.asciidoc6
-rw-r--r--documentation/themes/themes-responsive.asciidoc4
-rw-r--r--documentation/themes/themes-sass.asciidoc6
-rw-r--r--documentation/themes/themes-valo.asciidoc6
-rw-r--r--documentation/tutorial.asciidoc (renamed from documentation/tutorial.adoc)0
107 files changed, 283 insertions, 285 deletions
diff --git a/documentation/addons/addons-maven.asciidoc b/documentation/addons/addons-maven.asciidoc
index 60d60c53c8..7a1cfe99f3 100644
--- a/documentation/addons/addons-maven.asciidoc
+++ b/documentation/addons/addons-maven.asciidoc
@@ -14,7 +14,7 @@ To use add-ons in a Maven project, you simply have to add them as dependencies i
Most add-ons include client-side widgets, counterparts of the server-side components.
The add-on widgets will be included and compiled into the _application widget set_.
Compiling the widget set is handled by the Vaadin Maven Plugin.
-It is enabled in Maven projects created from the Vaadin archetypes, as described in <<DUMMY/../../getting-started/getting-started-overview#getting-started.overview, "Getting Started">>.
+It is enabled in Maven projects created from the Vaadin archetypes, as described in <<../getting-started/getting-started-overview#getting-started.overview, "Getting Started">>.
The plugin will attempt to automatically detect if you need to compile the application widget set.
It will generate a [filename]#target/generated-sources/gwt/AppWidgetset.gwt.xml# widget set descriptor, update it when necessary, and use it for compiling the widget set.
diff --git a/documentation/addons/addons-overview.asciidoc b/documentation/addons/addons-overview.asciidoc
index a2c36d8784..49769a0c2b 100644
--- a/documentation/addons/addons-overview.asciidoc
+++ b/documentation/addons/addons-overview.asciidoc
@@ -27,8 +27,8 @@ The _widget set_ needs to be compiled into the application widget set.
Adding the dependency in Maven projects and compiling the widget set is described in <<addons-maven#addons.maven, "Using Add-ons in a Maven Project">>.
The section also describes how to use the online compilation and CDN services during development.
-For Eclipse projects that use Ivy for dependency management, see <<dummy/../../../framework/addons/addons-eclipse.asciidoc#addons.eclipse, "Installing Add-ons in Eclipse with Ivy">>.
-You can also download and install add-ons from a ZIP-package, as described in <<dummy/../../../framework/addons/addons-downloading.asciidoc#addons.downloading, "Downloading Add-ons from Vaadin Directory">>.
+For Eclipse projects that use Ivy for dependency management, see <<addons-eclipse.asciidoc#addons.eclipse, "Installing Add-ons in Eclipse with Ivy">>.
+You can also download and install add-ons from a ZIP-package, as described in <<addons-downloading.asciidoc#addons.downloading, "Downloading Add-ons from Vaadin Directory">>.
== Add-on Licenses
@@ -39,7 +39,7 @@ 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 License">>.
+<<addons-cval#addons.cval, "Installing Commercial Vaadin Add-on License">>.
== Feedback and Support
diff --git a/documentation/addons/addons-troubleshooting.asciidoc b/documentation/addons/addons-troubleshooting.asciidoc
index a899b3d26f..0b4e42153c 100644
--- a/documentation/addons/addons-troubleshooting.asciidoc
+++ b/documentation/addons/addons-troubleshooting.asciidoc
@@ -14,7 +14,7 @@ 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
+<<../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.
@@ -44,7 +44,7 @@ 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
+<<../advanced/advanced-debug#advanced.debug,"Debug Mode
and Window">> for details.
* Refresh and recompile the project. In Eclipse, select the project and press F5,
diff --git a/documentation/advanced/advanced-architecture.asciidoc b/documentation/advanced/advanced-architecture.asciidoc
index 64b9b78add..a8b61ae616 100644
--- a/documentation/advanced/advanced-architecture.asciidoc
+++ b/documentation/advanced/advanced-architecture.asciidoc
@@ -9,7 +9,7 @@ layout: page
In this section, we continue from the basic application architectures described
in
-<<dummy/../../../framework/application/application-architecture#application.architecture,"Building
+<<../application/application-architecture#application.architecture,"Building
the UI">> and discuss some of the more advanced patterns that are often used in
Vaadin applications.
@@ -29,7 +29,7 @@ model and the "business logic" of the application, typically as beans or POJOs.
A user interface is built on top of the domain model, in our context with the
Vaadin Framework. The Vaadin user interface could be bound directly to the data
model through the Vaadin Data Model, described in
-<<dummy/../../../framework/datamodel/datamodel-overview.asciidoc#datamodel.overview,"Binding Components to Data">>.
+<<../datamodel/datamodel-overview.asciidoc#datamodel.overview,"Binding Components to Data">>.
Beneath the domain model lies a data store, such as a relational database.
The dependencies between the layers are restricted so that a higher layer may depend on a lower one, but never the other way around.
diff --git a/documentation/advanced/advanced-cdi.asciidoc b/documentation/advanced/advanced-cdi.asciidoc
index e3c3b5a679..86c39b88e1 100644
--- a/documentation/advanced/advanced-cdi.asciidoc
+++ b/documentation/advanced/advanced-cdi.asciidoc
@@ -143,13 +143,13 @@ public class MainView extends CustomComponent implements View {
Vaadin CDI requires a Java EE 7 compatible servlet container, such as Glassfish
or Apache TomEE Web Profile, as mentioned for the reference toolchain in
-<<dummy/../../../framework/getting-started/getting-started-environment#getting-started.environment,"Setting
+<<../getting-started/getting-started-environment#getting-started.environment,"Setting
up the Development Environment">>.
To install the Vaadin CDI add-on, either define it as an Ivy or Maven dependency
or download it from the Vaadin Directory add-on page at
<<,vaadin.com/directory#addon/vaadin-cdi>>. See
-<<dummy/../../../framework/addons/addons-overview.asciidoc#addons.overview,"Using
+<<../addons/addons-overview.asciidoc#addons.overview,"Using
Vaadin Add-ons">> for general instructions for installing and using Vaadin
add-ons.
@@ -197,7 +197,7 @@ servlet, see <<advanced.cdi.deployment>>.
Vaadin CDI offers an easier way to instantiate UIs and to define the URL mapping
for them than the usual ways described in
-<<dummy/../../../framework/application/application-environment#application.environment,"Deploying
+<<../application/application-environment#application.environment,"Deploying
an Application">>. To define a UI class that should be instantiated for a given
URL, you simply need to annotate the class with [classname]#@CDIUI#. It takes an
optional URL path as parameter.
@@ -334,7 +334,7 @@ must be synchronized.
The lifecycle and visibility of session-scoped beans is bound to a HTTP or user
session, which in Vaadin applications is associated with the
[classname]#VaadinSession# (see
-<<dummy/../../../framework/application/application-lifecycle#application.lifecycle.session,"User
+<<../application/application-lifecycle#application.lifecycle.session,"User
Session">>). This is a very typical scope to store user data, as is done in many
examples in this section, or database connections. The lifecycle of
session-scoped beans starts when a user opens the page for a UI in the browser,
@@ -476,7 +476,7 @@ other Vaadin servlets.
=== Custom Servlets
When customizing the Vaadin servlet, as outlined in
-<<dummy/../../../framework/application/application-lifecycle#application.lifecycle.servlet-service,"Vaadin
+<<../application/application-lifecycle#application.lifecycle.servlet-service,"Vaadin
Servlet, Portlet, and Service">>, you simply need to extend
[classname]#com.vaadin.cdi.internal.VaadinCDIServlet# instead of
[classname]#com.vaadin.servlet.VaadinServlet#.
@@ -484,7 +484,7 @@ Servlet, Portlet, and Service">>, you simply need to extend
The custom servlet must not have [classname]#@WebServlet# annotation or
[classname]#@VaadinServletConfiguration#, as you would normally with a Vaadin
servlet, as described in
-<<dummy/../../../framework/application/application-environment#application.environment,"Deploying
+<<../application/application-environment#application.environment,"Deploying
an Application">>.
@@ -494,7 +494,7 @@ ifdef::web[]
== View Navigation
Vaadin CDI extends the navigation framework in Vaadin, described in
-<<dummy/../../../framework/advanced/advanced-navigator#advanced.navigator,"Navigating
+<<../advanced/advanced-navigator#advanced.navigator,"Navigating
in an Application">>. It manages CDI views with a special view provider and
enables view scoping.
@@ -502,7 +502,7 @@ enables view scoping.
=== Preparing the UI
You can define navigation for any single-component container, as described in
-<<dummy/../../../framework/advanced/advanced-navigator#advanced.navigator.navigating,"Setting
+<<advanced-navigator#advanced.navigator.navigating,"Setting
Up for Navigation">>, but typically you set up navigation for the entire UI
content. To use Vaadin CDI views, you need to inject a
[classname]#CDIViewProvider# in the UI and add it as a provider for the
@@ -787,7 +787,7 @@ events.
CDI events are not propagated to inactive contexts, and only the context of the
currently processed UI is active. Further, as explained in
-<<dummy/../../../framework/advanced/advanced-push#advanced.push.running,"Accessing
+<<advanced-push#advanced.push.running,"Accessing
UI from Another Thread">>, other Vaadin UIs may not be accessed without proper
synchronization, as their requests are processed concurrently in different
server threads. Therefore, you need to pass the events through an
@@ -795,7 +795,7 @@ application-scoped messaging service and synchronize the access to other UIs by
using the [methodname]#access()# method.
In
-<<dummy/../../../framework/advanced/advanced-push#advanced.push.pusharound,"Broadcasting
+<<advanced-push#advanced.push.pusharound,"Broadcasting
to Other Users">> we looked into how to pass messages to all other UIs using a
broadcasting service. In that example, we used static variables and methods to
store references and to access the service. With CDI, we can let the context
diff --git a/documentation/advanced/advanced-debug.asciidoc b/documentation/advanced/advanced-debug.asciidoc
index 3ff5a55ab4..40f3d16cb9 100644
--- a/documentation/advanced/advanced-debug.asciidoc
+++ b/documentation/advanced/advanced-debug.asciidoc
@@ -121,7 +121,7 @@ debugging the component tree in various ways.
The [guibutton]#Show the connector hierarchy tree# button displays the
client-side connector hierarchy. As explained in
-<<dummy/../../../framework/gwt/gwt-overview.asciidoc#gwt.overview,"Integrating
+<<../gwt/gwt-overview.asciidoc#gwt.overview,"Integrating
with the Server-Side">>, client-side widgets are managed by connectors that
handle communication with the server-side component counterparts. The connector
hierarchy therefore corresponds with the server-side component tree, but the
@@ -204,5 +204,5 @@ get more detailed information about the requests and responses.
The [guilabel]#Menu# tab in the window opens a sub-menu to select various
settings. Here you can also launch the GWT SuperDevMode, as described in
-<<dummy/../../../framework/clientside/clientside-debugging#clientside.debugging,"Debugging
+<<../clientside/clientside-debugging#clientside.debugging,"Debugging
Client-Side Code">>.
diff --git a/documentation/advanced/advanced-embedding.asciidoc b/documentation/advanced/advanced-embedding.asciidoc
index 8aa294f4e5..868fac9569 100644
--- a/documentation/advanced/advanced-embedding.asciidoc
+++ b/documentation/advanced/advanced-embedding.asciidoc
@@ -167,8 +167,8 @@ future.+
[parameter]#theme#:: Name of the theme, such as one of the built-in themes ( [literal]#++reindeer++#, [literal]#++runo++#, or [literal]#++chameleon++#) or a custom theme. It must exist under the [filename]#VAADIN/themes# folder.
[parameter]#versionInfo#:: This parameter is itself an associative map that can contain two parameters: [parameter]#vaadinVersion# contains the version number of the Vaadin version used by the application. The [parameter]#applicationVersion# parameter contains the version of the particular application. The contained parameters are optional, but the [parameter]#versionInfo# parameter itself is not.
[parameter]#vaadinDir#:: Relative path to the [filename]#VAADIN# directory. It is relative to the URL of the embedding page.
-[parameter]#heartbeatInterval#:: The [parameter]#hearbeatInterval# parameter defines the frequency of the keep-alive hearbeat for the UI in seconds, as described in <<dummy/../../../framework/application/application-lifecycle#application.lifecycle.ui-expiration,"UI Expiration">>.
-[parameter]#debug#:: The parameter defines whether the debug window, as described in <<dummy/../../../framework/advanced/advanced-debug#advanced.debug,"Debug Mode and Window">>, is enabled.
+[parameter]#heartbeatInterval#:: The [parameter]#hearbeatInterval# parameter defines the frequency of the keep-alive hearbeat for the UI in seconds, as described in <<../application/application-lifecycle#application.lifecycle.ui-expiration,"UI Expiration">>.
+[parameter]#debug#:: The parameter defines whether the debug window, as described in <<../advanced/advanced-debug#advanced.debug,"Debug Mode and Window">>, is enabled.
[parameter]#standalone#:: This parameter should be [parameter]#false# when embedding. The parameter defines whether the UI is rendered on its own in the browser window or in some context. A standalone UI may do things that might interfere with other parts of the page, such as change the page title and request focus when it is loaded. When embedding, the UI is not standalone.
[parameter]#authErrMsg#,[parameter]#comErrMsg#, and[parameter]#sessExpMsg#:: These three parameters define the client-side error messages for authentication error, communication error, and session expiration, respectively. The parameters are associative maps themselves and must contain two key-value pairs: [parameter]#message#, which should contain the error text in HTML, and [parameter]#caption#, which should be the error caption.
@@ -204,7 +204,7 @@ For example:
----
Notice that many of the parameters are normally deployment parameters, specified
in the deployment descriptor, as described in
-<<dummy/../../../framework/application/application-environment#application.environment.parameters,"Other
+<<../application/application-environment#application.environment.parameters,"Other
Servlet Configuration Parameters">>.
endif::web[]
diff --git a/documentation/advanced/advanced-javascript.asciidoc b/documentation/advanced/advanced-javascript.asciidoc
index 055d2e288f..f9c90e8a61 100644
--- a/documentation/advanced/advanced-javascript.asciidoc
+++ b/documentation/advanced/advanced-javascript.asciidoc
@@ -101,7 +101,7 @@ Link link = new Link("Send Message", new ExternalResource(
The function callback mechanism is the same as the RPC mechanism used with
JavaScript component integration, as described in
-<<dummy/../../../framework/gwt/gwt-javascript#gwt.javascript.rpc,"RPC from
+<<../gwt/gwt-javascript#gwt.javascript.rpc,"RPC from
JavaScript to Server-Side">>.
diff --git a/documentation/advanced/advanced-pushstate.asciidoc b/documentation/advanced/advanced-pushstate.asciidoc
index 5797366dec..f5a991a3ee 100644
--- a/documentation/advanced/advanced-pushstate.asciidoc
+++ b/documentation/advanced/advanced-pushstate.asciidoc
@@ -20,7 +20,7 @@ methods and a mechanism to listen to changes in the client side URI in the
Vaadin offers two ways to modify URIs: the high-level
[classname]#Navigator# utility described in
-<<dummy/../../../framework/advanced/advanced-navigator#advanced.navigator,"Navigating
+<<advanced-navigator#advanced.navigator,"Navigating
in an Application">> and the low-level API described here.
[[advanced.urifu.setting]]
diff --git a/documentation/advanced/advanced-requesthandler.asciidoc b/documentation/advanced/advanced-requesthandler.asciidoc
index df991bc5cd..09e35710be 100644
--- a/documentation/advanced/advanced-requesthandler.asciidoc
+++ b/documentation/advanced/advanced-requesthandler.asciidoc
@@ -10,7 +10,7 @@ layout: page
Request handlers are useful for catching request parameters or generating
dynamic content, such as HTML, images, PDF, or other content. You can provide
HTTP content also with stream resources, as described in
-<<dummy/../../../framework/application/application-resources#application.resources.stream,"Stream
+<<../application/application-resources#application.resources.stream,"Stream
Resources">>. The stream resources, however, are only usable from within a
Vaadin application, such as in an [classname]#Image# component. Request handlers
allow responding to HTTP requests made with the application URL, including GET
diff --git a/documentation/advanced/advanced-spring.asciidoc b/documentation/advanced/advanced-spring.asciidoc
index ec38db7830..54e0f895c1 100644
--- a/documentation/advanced/advanced-spring.asciidoc
+++ b/documentation/advanced/advanced-spring.asciidoc
@@ -193,7 +193,7 @@ To install the Vaadin Spring and/or Vaadin Spring Boot add-ons, either define
them as an Ivy or Maven dependency or download from the Vaadin Directory add-on
page at link:https://vaadin.com/directory#addon/vaadin-spring[vaadin.com/directory#addon/vaadin-spring]
or link:https://vaadin.com/directory#addon/vaadin-spring-boot[vaadin.com/directory#addon/vaadin-spring-boot].
-See <<dummy/../../../framework/addons/addons-overview.asciidoc#addons.overview,"Using
+See <<../addons/addons-overview.asciidoc#addons.overview,"Using
Vaadin Add-ons">> for general instructions for installing and using Vaadin
add-ons.
@@ -265,7 +265,7 @@ section.
Vaadin Spring offers an easier way to instantiate UIs and to define the URL
mapping for them than the usual ways described in
-<<dummy/../../../framework/application/application-environment#application.environment,"Deploying
+<<../application/application-environment#application.environment,"Deploying
an Application">>. It is also needed for enabling Spring features in the UI. To
define a UI class that should be instantiated for a given URL, you simply need
to annotate the class with [classname]#@SpringUI#. It takes an optional path as
@@ -371,7 +371,7 @@ ifdef::web[]
== View Navigation
Vaadin Spring extends the navigation framework in Vaadin, described in
-<<dummy/../../../framework/advanced/advanced-navigator#advanced.navigator,"Navigating
+<<advanced-navigator#advanced.navigator,"Navigating
in an Application">>. It manages Spring views with a special view provider and
enables view scoping. Furthermore, Vaadin Spring provides a customized navigator class
[classname]#SpringNavigator# that supports the scope functionality.
@@ -382,7 +382,7 @@ enables view scoping. Furthermore, Vaadin Spring provides a customized navigator
You can define navigation for any single-component container, component container or bean
implementing [classname]#ViewDisplay#, as described in
-<<dummy/../../../framework/advanced/advanced-navigator#advanced.navigator.navigating,"Setting
+<<advanced-navigator#advanced.navigator.navigating,"Setting
Up for Navigation">>, but typically you set up navigation for the entire UI
content. The easiest way to set up navigation is to use the annotation
[classname]#@SpringViewDisplay# on the UI (in which case the whole contents of the UI are
@@ -579,7 +579,7 @@ use Spring with non-Spring servlets and UIs in a web application.
=== Custom Servlets
When customizing the Vaadin servlet, as outlined in
-<<dummy/../../../framework/application/application-lifecycle#application.lifecycle.servlet-service,"Vaadin
+<<../application/application-lifecycle#application.lifecycle.servlet-service,"Vaadin
Servlet, Portlet, and Service">>, you simply need to extend
[classname]#com.vaadin.spring.server.SpringVaadinServlet# instead of
[classname]#com.vaadin.servlet.VaadinServlet#.
@@ -592,7 +592,7 @@ public class [replaceable]#MySpringServlet# extends SpringVaadinServlet {
----
The custom servlet must not have [classname]#@VaadinServletConfiguration#, as
you would normally with a Vaadin servlet, as described in
-<<dummy/../../../framework/application/application-environment#application.environment,"Deploying
+<<../application/application-environment#application.environment,"Deploying
an Application">>.
diff --git a/documentation/advanced/advanced-urifu.asciidoc b/documentation/advanced/advanced-urifu.asciidoc
index e3b6b5c1ba..0792daeb7b 100644
--- a/documentation/advanced/advanced-urifu.asciidoc
+++ b/documentation/advanced/advanced-urifu.asciidoc
@@ -8,7 +8,7 @@ layout: page
= Managing URI Fragments
NOTE: This chapter contains instructions how to manage URI fragments. As browser support for HTML5 History API has improved, developers should in most cases developers instead use real URIs with _pushState_ method. Read more from
-<<dummy/../../../framework/advanced/advanced-navigator#advanced.pushstate,"Manipulating Browser History">>.
+<<advanced-navigator#advanced.pushstate,"Manipulating Browser History">>.
A major issue in AJAX applications is that as they run in a single web page,
bookmarking the application URL (or more generally the __URI__) can only
@@ -33,7 +33,7 @@ the slash and the question mark.
Vaadin offers two ways to enable the use of URI fragments: the high-level
[classname]#Navigator# utility described in
-<<dummy/../../../framework/advanced/advanced-navigator#advanced.navigator,"Navigating
+<<advanced-navigator#advanced.navigator,"Navigating
in an Application">> (if the legacy [classname]#UriFragmentManager# is configured for the Navigator) and the low-level API described here.
[[advanced.urifu.setting]]
@@ -183,7 +183,7 @@ avoid having the [literal]#++_escaped_fragment_++# parameter.
You need to use the custom servlet class in the [filename]#web.xml# deployment
descriptor instead of the normal [classname]#VaadinServlet# class, as described
in
-<<dummy/../../../framework/application/application-environment#application.environment.web-xml,"Using
+<<../application/application-environment#application.environment.web-xml,"Using
a web.xml Deployment Descriptor">>.
diff --git a/documentation/advanced/advanced-windows.asciidoc b/documentation/advanced/advanced-windows.asciidoc
index 60245dc910..dc12deadc3 100644
--- a/documentation/advanced/advanced-windows.asciidoc
+++ b/documentation/advanced/advanced-windows.asciidoc
@@ -14,23 +14,23 @@ tabs, either opened by the user using an URL or by the Vaadin application.
In addition to native browser windows, Vaadin has a [classname]#Window#
component, which is a floating panel or __sub-window__ inside a page, as
described in
-<<dummy/../../../framework/layout/layout-sub-window#layout.sub-window,"Sub-Windows">>.
+<<../layout/layout-sub-window#layout.sub-window,"Sub-Windows">>.
* __Native popup windows__. An application can open popup windows for sub-tasks.
* __Page-based browsing__. The application can allow the user to open certain content to different windows. For example, in a messaging application, it can be useful to open different messages to different windows so that the user can browse through them while writing a new message.
* __Bookmarking__. Bookmarks in the web browser can provide an entry-point to some content provided by an application.
-* __Embedding UIs__. UIs can be embedded in web pages, thus making it possible to provide different views to an application from different pages or even from the same page, while keeping the same session. See <<dummy/../../../framework/advanced/advanced-embedding#advanced.embedding,"Embedding UIs in Web Pages">>.
+* __Embedding UIs__. UIs can be embedded in web pages, thus making it possible to provide different views to an application from different pages or even from the same page, while keeping the same session. See <<advanced-embedding#advanced.embedding,"Embedding UIs in Web Pages">>.
Use of multiple windows in an application may require defining and providing
different UIs for the different windows. The UIs of an application share the
same user session, that is, the [classname]#VaadinSession# object, as described
in
-<<dummy/../../../framework/application/application-lifecycle#application.lifecycle.session,"User
+<<../application/application-lifecycle#application.lifecycle.session,"User
Session">>. Each UI is identified by a URL that is used to access it, which
makes it possible to bookmark application UIs. UI instances can even be created
dynamically based on the URLs or other request parameters, such as browser
information, as described in
-<<dummy/../../../framework/application/application-lifecycle#application.lifecycle.ui,"Loading
+<<../application/application-lifecycle#application.lifecycle.ui,"Loading
a UI">>.
Because of the special nature of AJAX applications, use of multiple windows uses
diff --git a/documentation/application/application-architecture.asciidoc b/documentation/application/application-architecture.asciidoc
index 5e87ea8531..a26edc77ad 100644
--- a/documentation/application/application-architecture.asciidoc
+++ b/documentation/application/application-architecture.asciidoc
@@ -50,19 +50,19 @@ The actual UI is shown in <<figure.application.architecture.example>>.
.Simple hierarchical UI
image::img/ui-architecture-hierarchical.png[width=70%, scaledwidth=90%]
-Instead of building the layout in Java, you can also use a declarative design, as described later in <<dummy/../../../framework/application/application-declarative#application.declarative,"Designing UIs Declaratively">>.
+Instead of building the layout in Java, you can also use a declarative design, as described later in <<application-declarative#application.declarative,"Designing UIs Declaratively">>.
The examples given for the declarative layouts give exactly the same UI layout as built from the components above.
The easiest way to create declarative designs is to use Vaadin Designer.
The built-in components are described in
-<<dummy/../../../framework/components/components-overview.asciidoc#components.overview,"User
+<<../components/components-overview.asciidoc#components.overview,"User
Interface Components">> and the layout components in
-<<dummy/../../../framework/layout/layout-overview.asciidoc#layout.overview,"Managing
+<<../layout/layout-overview.asciidoc#layout.overview,"Managing
Layout">>.
The example application described above just is, it does not do anything. User
interaction is handled with event listeners, as described a bit later in
-<<dummy/../../../framework/application/application-events#application.events,"Handling
+<<application-events#application.events,"Handling
Events with Listeners">>.
[[application.architecture.architecture]]
@@ -79,7 +79,7 @@ architectural patterns in Vaadin applications.
The subsequent sections describe some basic application patterns. For more
information about common architectures, see
-<<dummy/../../../framework/advanced/advanced-architecture#advanced.architecture,"Advanced
+<<../advanced/advanced-architecture#advanced.architecture,"Advanced
Application Architectures">>, which discusses layered architectures, the
Model-View-Presenter (MVP) pattern, and so forth.
@@ -145,7 +145,7 @@ MyView myview = new MyView();
----
For a more detailed description of [classname]#Composite# and [classname]#CustomComponent#, see
-<<dummy/../../../framework/components/components-customcomponent#components.customcomponent,"Composition
+<<../components/components-customcomponent#components.customcomponent,"Composition
with Composite and CustomComponent">>.
@@ -163,11 +163,11 @@ sub-views.
.Navigation Between Views
image::img/view-navigation-hi.png[width=80%, scaledwidth=100%]
-The [classname]#Navigator# described in <<dummy/../../../framework/advanced/advanced-navigator#advanced.navigator,"Navigating in an Application">> is a view manager that provides a flexible way to navigate between views and sub-views, while managing the URI fragment in the page URL to allow bookmarking, linking, and going back in the browser history.
+The [classname]#Navigator# described in <<../advanced/advanced-navigator#advanced.navigator,"Navigating in an Application">> is a view manager that provides a flexible way to navigate between views and sub-views, while managing the URI fragment in the page URL to allow bookmarking, linking, and going back in the browser history.
Often Vaadin application views are part of something bigger.
In such cases, you may need to integrate the Vaadin applications with the other website.
-You can use the embedding techniques described in <<dummy/../../../framework/advanced/advanced-embedding#advanced.embedding,"Embedding UIs in Web Pages">>.
+You can use the embedding techniques described in <<../advanced/advanced-embedding#advanced.embedding,"Embedding UIs in Web Pages">>.
[[application.architecture.accessing]]
@@ -206,5 +206,5 @@ You can get the page and the session also from a [classname]#UI# with
The static methods use the built-in ThreadLocal support in the classes.
ifdef::web[]
-The pattern is described in <<dummy/../../../framework/advanced/advanced-global#advanced.global.threadlocal,"ThreadLocal Pattern">>.
+The pattern is described in <<../advanced/advanced-global#advanced.global.threadlocal,"ThreadLocal Pattern">>.
endif::web[]
diff --git a/documentation/application/application-declarative.asciidoc b/documentation/application/application-declarative.asciidoc
index dd9da299d4..a3730ab4dd 100644
--- a/documentation/application/application-declarative.asciidoc
+++ b/documentation/application/application-declarative.asciidoc
@@ -81,7 +81,7 @@ element.
The above design defines the same UI layout as done earlier with Java code, and
illustrated in
-<<dummy/../../../framework/application/application-architecture#figure.application.architecture.example,"Simple
+<<application-architecture#figure.application.architecture.example,"Simple
Hierarchical UI">>.
@@ -345,7 +345,7 @@ public class DeclarativeViewUI extends UI {
=== Designs in View Navigation
To use a design in view navigation, as described in
-<<dummy/../../../framework/advanced/advanced-navigator#advanced.navigator,"Navigating
+<<../advanced/advanced-navigator#advanced.navigator,"Navigating
in an Application">>, you just need to implement the [interfacename]#View#
interface.
@@ -368,5 +368,5 @@ navigator.addView(MAINVIEW, new MainView());
----
See
-<<dummy/../../../framework/advanced/advanced-navigator#advanced.navigator.pathparam,"Handling
+<<../advanced/advanced-navigator#advanced.navigator.pathparam,"Handling
Path Parameters">> for a complete example.
diff --git a/documentation/application/application-environment.asciidoc b/documentation/application/application-environment.asciidoc
index 51240c59f8..87e1591082 100644
--- a/documentation/application/application-environment.asciidoc
+++ b/documentation/application/application-environment.asciidoc
@@ -62,7 +62,7 @@ If your application uses a special theme (look and feel), you must include it in
Widget sets (OPTIONAL)::
If your application uses add-ons or custom widgets, they must be compiled to the [filename]#VAADIN/widgetset/# directory.
When using add-ons, this is done automatically in Maven projects.
-See <<dummy/../../../framework/addons/addons-maven#addons.maven, "Using Add-ons in a Maven Project">> for more information.
+See <<../addons/addons-maven#addons.maven, "Using Add-ons in a Maven Project">> for more information.
[[application.environment.webservlet]]
== Web Servlet Class
@@ -177,7 +177,7 @@ In a project that does not use add-ons or custom widgets, the [classname]#com.va
It contains all the widgets for the built-in Vaadin components.
When using add-ons, the Vaadin Maven Plugin automatically defines an [classname]#AppWidgetSet# that includes all the add-on widget sets.
-The widget set must be compiled, as described in <<dummy/../../../framework/addons/addons-overview.asciidoc#addons.overview,"Using Vaadin Add-ons">> (for add-ons) or <<dummy/../../../framework/clientside/clientside-compiling#clientside.compiling,"Compiling a Client-Side Module">> (for custom widgets and client-side modules), and properly deployed with the application.
+The widget set must be compiled, as described in <<../addons/addons-overview.asciidoc#addons.overview,"Using Vaadin Add-ons">> (for add-ons) or <<../clientside/clientside-compiling#clientside.compiling,"Compiling a Client-Side Module">> (for custom widgets and client-side modules), and properly deployed with the application.
[[application.environment.servlet-mapping]]
== Servlet Mapping with URL Patterns
@@ -262,7 +262,7 @@ features. For production use, you should have the
[classname]#@VaadinServletConfiguration#.
The parameter and the debug and production modes are described in more detail in
-<<dummy/../../../framework/advanced/advanced-debug#advanced.debug,"Debug Mode
+<<../advanced/advanced-debug#advanced.debug,"Debug Mode
and Window">>.
@@ -282,7 +282,7 @@ defined in the context as well.
=== UI Heartbeat
Vaadin monitors UIs by using a heartbeat, as explained in
-<<dummy/../../../framework/application/application-lifecycle#application.lifecycle.ui-expiration,"UI
+<<application-lifecycle#application.lifecycle.ui-expiration,"UI
Expiration">>. If the user closes the browser window of a Vaadin application or
navigates to another page, the Client-Side Engine running in the page stops
sending heartbeat to the server, and the server eventually cleans up the
@@ -330,7 +330,7 @@ request.
=== Push Mode
You can enable server push, as described in
-<<dummy/../../../framework/advanced/advanced-push#advanced.push,"Server Push">>,
+<<../advanced/advanced-push#advanced.push,"Server Push">>,
for a UI either with a [classname]#@Push# annotation for the UI or in the
descriptor. The push mode is defined with a [parameter]#pushmode# init parameter. The
[literal]#++automatic++# mode pushes changes to the browser automatically after
diff --git a/documentation/application/application-errors.asciidoc b/documentation/application/application-errors.asciidoc
index 8f4aa8f040..b8e08ca413 100644
--- a/documentation/application/application-errors.asciidoc
+++ b/documentation/application/application-errors.asciidoc
@@ -81,7 +81,7 @@ getService().setSystemMessagesProvider(
----
See
-<<dummy/../../../framework/application/application-lifecycle#application.lifecycle.servlet-service,"Vaadin
+<<application-lifecycle#application.lifecycle.servlet-service,"Vaadin
Servlet, Portlet, and Service">> for information about customizing Vaadin
servlets.
diff --git a/documentation/application/application-events.asciidoc b/documentation/application/application-events.asciidoc
index f32d70e514..350a9abc21 100644
--- a/documentation/application/application-events.asciidoc
+++ b/documentation/application/application-events.asciidoc
@@ -8,7 +8,7 @@ layout: page
= Handling Events with Listeners
Let us put into practice what we learned of event handling in
-<<dummy/../../../framework/architecture/architecture-events#architecture.events,"Events
+<<../architecture/architecture-events#architecture.events,"Events
and Listeners">>. You can implement listener interfaces by directly using lambda expressions, method references or anonymous classes.
For example, in the following, we use a lambda expression to handle button click
diff --git a/documentation/application/application-lifecycle.asciidoc b/documentation/application/application-lifecycle.asciidoc
index 657198f71b..eb2c63ec38 100644
--- a/documentation/application/application-lifecycle.asciidoc
+++ b/documentation/application/application-lifecycle.asciidoc
@@ -17,7 +17,7 @@ actually work and, especially, in what circumstances their execution ends.
Before a Vaadin application can be used, it has to be deployed to a Java web
server, as described in
-<<dummy/../../../framework/application/application-environment#application.environment,"Deploying
+<<application-environment#application.environment,"Deploying
an Application">>. Deploying reads the servlet classes annotated with the
[literal]#++@WebServlet++# annotation or the [filename]#web.xml#
deployment descriptor in the application to register servlets for
@@ -130,7 +130,7 @@ lower-level session objects, [interfacename]#HttpSession# and
[interfacename]#PortletSession#, through a [classname]#WrappedSession#. You can
also access the deployment configuration through [classname]#VaadinSession#, as
described in
-<<dummy/../../../framework/application/application-environment#application.environment.configuration,"Deployment
+<<application-environment#application.environment.configuration,"Deployment
Configuration">>.
A session ends after the last [classname]#UI# instance expires or is closed, as
@@ -219,7 +219,7 @@ separate [filename]#vaadinBootstrap.js# script.
You can also use entirely custom loader code, such as in a static HTML page, as
described in
-<<dummy/../../../framework/advanced/advanced-embedding#advanced.embedding,"Embedding
+<<../advanced/advanced-embedding#advanced.embedding,"Embedding
UIs in Web Pages">>.
@@ -278,7 +278,7 @@ The heartbeats occur at an interval of 5 minutes, which can be changed with the
[parameter]#heartbeatInterval# parameter of the servlet. You can configure the
parameter in [classname]#@VaadinServletConfiguration# or in [filename]#web.xml#
as described in
-<<dummy/../../../framework/application/application-environment#application.environment.parameters,"Other
+<<application-environment#application.environment.parameters,"Other
Servlet Configuration Parameters">>.
When the UI cleanup happens, a [classname]#DetachEvent# is sent to all
@@ -305,7 +305,7 @@ programmatically, but redirection is possible. You can redirect the window to
another URL with [methodname]#setLocation()#, as is done in the examples in
<<application.lifecycle.session-closing>>. You can close popup windows by making
JavaScript [methodname]#close()# call for them, as described in
-<<dummy/../../../framework/advanced/advanced-windows#advanced.windows.popup-closing,"Closing
+<<../advanced/advanced-windows#advanced.windows.popup-closing,"Closing
Popup Windows">>.
If you close other UI than the one associated with the current request, they
@@ -332,19 +332,19 @@ setting. ((("session",
((("closeIdleSessions")))
If the [parameter]#closeIdleSessions# parameter of the servlet is set to
[literal]#++true++# in the [filename]#web.xml#, as described in
-<<dummy/../../../framework/application/application-environment#application.environment.web-xml,"Using
+<<application-environment#application.environment.web-xml,"Using
a web.xml Deployment Descriptor">>, the session and all of its UIs are closed
when the timeout specified by the [parameter]#session-timeout# parameter of the
servlet expires after the last non-heartbeat request. Once the session is gone,
the browser will show an Out Of Sync error on the next server request.
((("redirection")))
To avoid the ugly message, you may want to set a redirect URL for the UIs, as described in
-<<dummy/../../../framework/application/application-errors#application.errors.systemmessages,"Customizing
+<<application-errors#application.errors.systemmessages,"Customizing
System
Messages">>.
The related configuration parameters are described in
-<<dummy/../../../framework/application/application-environment#application.environment.parameters,"Other
+<<application-environment#application.environment.parameters,"Other
Servlet Configuration Parameters">>.
((("[interfacename]#SessionDestroyListener#")))
@@ -405,7 +405,7 @@ and, by default, reloads the UI when the message is clicked.
((("system messages")))
You can customize the message and the redirect URL in the system messages.
-It is described in <<dummy/../../../framework/application/application-errors#application.errors.systemmessages,"Customizing System Messages">>.
+It is described in <<application-errors#application.errors.systemmessages,"Customizing System Messages">>.
((("heartbeat")))
((("UI", "heartbeat")))
@@ -417,7 +417,7 @@ UIs detect the situation faster, you need to make the heart beat faster, as was
done in the example above. You can also use server push to close the other UIs
immediately, as is done in the following example. Access to the UIs must be
synchronized as described in
-<<dummy/../../../framework/advanced/advanced-push#advanced.push,"Server Push">>.
+<<../advanced/advanced-push#advanced.push,"Server Push">>.
[source, java]
----
diff --git a/documentation/application/application-notifications.asciidoc b/documentation/application/application-notifications.asciidoc
index 8e0a08e075..3721aeb099 100644
--- a/documentation/application/application-notifications.asciidoc
+++ b/documentation/application/application-notifications.asciidoc
@@ -52,7 +52,7 @@ is disabled by default, but can be enabled with
markup in the caption and description of a notification. If it is in any way
possible to get the notification content from user input, you should either
disallow HTML or sanitize the content carefully, as noted in
-<<dummy/../../../framework/advanced/advanced-security#advanced.security.sanitizing,"Sanitizing
+<<../advanced/advanced-security#advanced.security.sanitizing,"Sanitizing
User Input to Prevent Cross-Site Scripting">>.
[[figure.notification.example2]]
diff --git a/documentation/application/application-overview.asciidoc b/documentation/application/application-overview.asciidoc
index 0e653da9bd..2f41604ec6 100644
--- a/documentation/application/application-overview.asciidoc
+++ b/documentation/application/application-overview.asciidoc
@@ -54,7 +54,7 @@ applications with Vaadin Framework much like you would develop desktop applicati
The most important task in the initialization is the creation of the initial
user interface. This, and the deployment of a UI as a Java Servlet in the
Servlet container, as described in
-<<dummy/../../../framework/application/application-environment#application.environment,"Deploying
+<<application-environment#application.environment,"Deploying
an Application">>, are the minimal requirements for an application.
Below is a short overview of the other basic elements of an application besides
@@ -76,7 +76,7 @@ The current UI object can be accessed globally with
instance for the currently processed request
ifdef::web[]
(see
-<<dummy/../../../framework/advanced/advanced-global#advanced.global.threadlocal,"ThreadLocal
+<<../advanced/advanced-global#advanced.global.threadlocal,"ThreadLocal
Pattern">>)
endif::web[]
.
@@ -102,28 +102,28 @@ handle. __Field components__ are intended for inputting values and can be
directly bound to data using the data model of the framework. You can make your own user
interface components through either inheritance or composition. For a thorough
reference of user interface components, see
-<<dummy/../../../framework/components/components-overview.asciidoc#components.overview,"User
+<<../components/components-overview.asciidoc#components.overview,"User
Interface Components">>, for layout components, see
-<<dummy/../../../framework/layout/layout-overview.asciidoc#layout.overview,"Managing
+<<../layout/layout-overview.asciidoc#layout.overview,"Managing
Layout">>, and for compositing components, see
-<<dummy/../../../framework/components/components-customcomponent#components.customcomponent,"Composition
+<<../components/components-customcomponent#components.customcomponent,"Composition
with Composite and CustomComponent">>.
Events and Listeners:: Vaadin Framework follows an event-driven programming paradigm, in which events, and
listeners that handle the events, are the basis of handling user interaction in
an application (although also server push is possible as described in
-<<dummy/../../../framework/advanced/advanced-push#advanced.push,"Server
+<<../advanced/advanced-push#advanced.push,"Server
Push">>).
-<<dummy/../../../framework/architecture/architecture-events#architecture.events,"Events
+<<../architecture/architecture-events#architecture.events,"Events
and Listeners">> gave an introduction to events and listeners from an
architectural point-of-view, while
-<<dummy/../../../framework/application/application-events#application.events,"Handling
+<<application-events#application.events,"Handling
Events with Listeners">> later in this chapter takes a more practical view.
Resources:: A user interface can display images or have links to web pages or downloadable
documents. These are handled as __resources__, which can be external or provided
by the web server or the application itself.
-<<dummy/../../../framework/application/application-resources#application.resources,"Images
+<<application-resources#application.resources,"Images
and Other Resources">> gives a practical overview of the different types of
resources.
@@ -132,11 +132,11 @@ logic is handled as Java code, the presentation is defined in __themes__ as CSS
or SCSS. Vaadin includes some built-in themes. User-defined themes can, in
addition to style sheets, include HTML templates that define custom layouts and
other theme resources, such as images. Themes are discussed in detail in
-<<dummy/../../../framework/themes/themes-overview.asciidoc#themes.overview,"Themes">>,
+<<../themes/themes-overview.asciidoc#themes.overview,"Themes">>,
custom layouts in
-<<dummy/../../../framework/layout/layout-customlayout#layout.customlayout,"Custom
+<<../layout/layout-customlayout#layout.customlayout,"Custom
Layouts">>, and theme resources in
-<<dummy/../../../framework/application/application-resources#application.resources.theme,"Theme
+<<application-resources#application.resources.theme,"Theme
Resources">>.
Data Binding:: With data binding, any field component in Vaadin Framework can be bound to the properties
@@ -145,5 +145,5 @@ can get their values from and update user input to the data model directly, with
the need for any control code. Similarly, any select component can be bound to a
__data provider__, fetching its items from a Java Collection or a backend such as an SQL database.
For a complete overview of data binding in Vaadin, please refer to
-<<dummy/../../../framework/datamodel/datamodel-overview.asciidoc#datamodel.overview,"Binding
+<<../datamodel/datamodel-overview.asciidoc#datamodel.overview,"Binding
Components to Data">>. \ No newline at end of file
diff --git a/documentation/application/application-resources.asciidoc b/documentation/application/application-resources.asciidoc
index 5c3b667c71..e6667b9e31 100644
--- a/documentation/application/application-resources.asciidoc
+++ b/documentation/application/application-resources.asciidoc
@@ -12,7 +12,7 @@ embedded content, or downloadable files, that the browser has to load from the
server. Image resources are typically displayed with the [classname]#Image#
component or as component icons. Embedded browser frames can be displayed with [classname]#BrowserFrame#, and
other content with the [classname]#Embedded# component, as described in
-<<dummy/../../../framework/components/components-embedded#components.embedded,"Embedded
+<<../components/components-embedded#components.embedded,"Embedded
Resources">>. Downloadable files are usually provided by clicking a
[classname]#Link# or using the [classname]#FileDownloader# extension.
@@ -23,7 +23,7 @@ them dynamically. The resource request interfaces in Vaadin allow applications
to both refer to static resources as well as dynamically create them. The
dynamic creation includes the [classname]#StreamResource# class and the
[interfacename]#RequestHandler# described in
-<<dummy/../../../framework/advanced/advanced-requesthandler#advanced.requesthandler,"Request
+<<../advanced/advanced-requesthandler#advanced.requesthandler,"Request
Handlers">>.
Vaadin also provides low-level facilities for retrieving the URI and other
@@ -33,7 +33,7 @@ handling URIs and parameters to provide resources and functionalities.
Notice that using request handlers to create "pages" is not normally meaningful
in Vaadin or in AJAX applications generally. Please see
-<<dummy/../../../framework/architecture/architecture-technology#architecture.technology.ajax,"AJAX">>
+<<../architecture/architecture-technology#architecture.technology.ajax,"AJAX">>
for a detailed explanation.
[[application.resources.api]]
@@ -129,7 +129,7 @@ Image image = new Image("My Theme Image", resource);
----
To use theme resources, you must set the theme for the UI. See
-<<dummy/../../../framework/themes/themes-overview.asciidoc#themes.overview,"Themes">>
+<<../themes/themes-overview.asciidoc#themes.overview,"Themes">>
for more information regarding themes.
@@ -223,5 +223,5 @@ The resulting image is shown in <<figure.application.resource.stream>>.
image::img/application_streamresource.png[width=25%, scaledwidth=25%]
Another way to create dynamic content is a request handler, described in
-<<dummy/../../../framework/advanced/advanced-requesthandler#advanced.requesthandler,"Request
+<<../advanced/advanced-requesthandler#advanced.requesthandler,"Request
Handlers">>.
diff --git a/documentation/architecture/architecture-client-side.asciidoc b/documentation/architecture/architecture-client-side.asciidoc
index 63f62bcd63..2d62f912e5 100644
--- a/documentation/architecture/architecture-client-side.asciidoc
+++ b/documentation/architecture/architecture-client-side.asciidoc
@@ -24,9 +24,9 @@ and Vaadin-specific widgets. The two widget collections have significant
overlap, where the Vaadin widgets provide a bit different features than the GWT
widgets. In addition, many add-on widgets and their server-side counterparts
exist, and you can easily download and install them, as described in
-<<dummy/../../../framework/addons/addons-overview.asciidoc#addons.overview,"Using
+<<../addons/addons-overview.asciidoc#addons.overview,"Using
Vaadin Add-ons">>. You can also develop your own widgets, as described in
-<<dummy/../../../framework/clientside/clientside-overview.asciidoc#clientside.overview,"Client-Side
+<<../clientside/clientside-overview.asciidoc#clientside.overview,"Client-Side
Vaadin Development">>.
The rendering with widgets, as well as the communication to the server-side, is
@@ -36,5 +36,5 @@ each widget that has a server-side counterpart. The framework handles
serialization of component state transparently, and includes an RPC mechanism
between the two sides. Integration of widgets with their server-side counterpart
components is described in
-<<dummy/../../../framework/gwt/gwt-overview.asciidoc#gwt.overview,"Integrating
+<<../gwt/gwt-overview.asciidoc#gwt.overview,"Integrating
with the Server-Side">>.
diff --git a/documentation/architecture/architecture-events.asciidoc b/documentation/architecture/architecture-events.asciidoc
index 75da0f933c..6ffd5964f6 100644
--- a/documentation/architecture/architecture-events.asciidoc
+++ b/documentation/architecture/architecture-events.asciidoc
@@ -56,4 +56,4 @@ in this case the [classname]#Button#.
.Class Diagram of a Button Click Listener
image::img/events-classdiagram.png[width=80%, scaledwidth=100%]
-<<dummy/../../../framework/application/application-events#application.events,"Handling Events with Listeners">> goes into details of handling events in practice.
+<<../application/application-events#application.events,"Handling Events with Listeners">> goes into details of handling events in practice.
diff --git a/documentation/architecture/architecture-overview.asciidoc b/documentation/architecture/architecture-overview.asciidoc
index 9c873f3675..65ecab3ba6 100644
--- a/documentation/architecture/architecture-overview.asciidoc
+++ b/documentation/architecture/architecture-overview.asciidoc
@@ -51,7 +51,7 @@ task is to create the initial user interface out of UI components and set up
event listeners to handle user input. The UI can then be loaded in the browser
using an URL, or can be embedded to any HTML page. For detailed information
about implementing a [classname]#UI#, see
-<<dummy/../../../framework/application/application-overview.asciidoc#application.overview,"Writing
+<<../application/application-overview.asciidoc#application.overview,"Writing
a Server-Side Web Application">>.
+
@@ -69,7 +69,7 @@ client-side applications. The server-side components relay these events to the
application logic. Field components that have a value, which the user can view
or edit, can be bound to a data source (see below). For a more detailed
description of the UI component architecture, see
-<<dummy/../../../framework/components/components-overview.asciidoc#components.overview,"User
+<<../components/components-overview.asciidoc#components.overview,"User
Interface Components">>.
Client-Side Engine:: ((("Client-Side
@@ -82,12 +82,12 @@ browser by employing various client-side __widgets__, counterparts of the
server-side components. It communicates user interaction to the server-side, and
then again renders the changes in the UI. The communications are made using
asynchronous HTTP or HTTPS requests. See
-<<dummy/../../../framework/architecture/architecture-client-side#architecture.client-side,"Client-Side
+<<architecture-client-side#architecture.client-side,"Client-Side
Engine">>.
Vaadin Servlet:: ((("VaadinServlet")))
Server-side Vaadin applications work on top of the Java Servlet API (see
-<<dummy/../../../framework/architecture/architecture-technology#architecture.technology.servlet,"Java
+<<architecture-technology#architecture.technology.servlet,"Java
Servlets">>). The Vaadin servlet, or more exactly the [classname]#VaadinServlet#
class, receives requests from different clients, determines which user session
they belong to by tracking the sessions with cookies, and delegates the requests
@@ -105,14 +105,14 @@ defined in __themes__ as CSS or Sass. Vaadin provides a number of default
themes. User themes can, in addition to style sheets, include HTML templates
that define custom layouts and other resources, such as images and fonts. Themes
are discussed in detail in
-<<dummy/../../../framework/themes/themes-overview.asciidoc#themes.overview,"Themes">>.
+<<../themes/themes-overview.asciidoc#themes.overview,"Themes">>.
Events:: ((("events")))
Interaction with user interface components creates events, which are first
processed on the client-side by the widgets, then passed all the way through the
HTTP server, Vaadin servlet, and the user interface components to the event
listeners defined in the application. See
-<<dummy/../../../framework/architecture/architecture-events#architecture.events,"Events
+<<architecture-events#architecture.events,"Events
and Listeners">>.
Server Push:: ((("server
@@ -121,7 +121,7 @@ In addition to the event-driven programming model, Vaadin supports server push,
where the UI changes are pushed directly from the server to the client without a
client request or an event. This makes it possible to update UIs immediately
from other threads and other UIs, without having to wait for a request. See
-<<dummy/../../../framework/advanced/advanced-push#advanced.push,"Server Push">>.
+<<../advanced/advanced-push#advanced.push,"Server Push">>.
Data Binding:: ((("Data
Model")))
@@ -133,7 +133,7 @@ selection components, with a data source. Using data binding, the user interface
components can update the application data directly, often without the need for
any control code. For example, you can bind a data grid component to a backend query
response. For a complete overview of the data binding model, please refer to
-<<dummy/../../../framework/datamodel/datamodel-overview.asciidoc#datamodel.overview,"Binding
+<<../datamodel/datamodel-overview.asciidoc#datamodel.overview,"Binding
Components to Data">>.
Client-Side Applications:: In addition to server-side web applications, Vaadin supports client-side
@@ -143,7 +143,7 @@ They are useful when you have a need for highly responsive UI logic, such as for
games or for serving a large number of clients with possibly stateless
server-side code, and for various other purposes, such as offering an off-line
mode for server-side applications. Please see
-<<dummy/../../../framework/clientsideapp/clientsideapp-overview.asciidoc#clientsideapp.overview,"Client-Side
+<<../clientsideapp/clientsideapp-overview.asciidoc#clientsideapp.overview,"Client-Side
Applications">> for further details.
Back-end:: Vaadin is meant for building user interfaces, and it is recommended that other
diff --git a/documentation/architecture/architecture-technology.asciidoc b/documentation/architecture/architecture-technology.asciidoc
index 54e589b704..221d7dbd15 100644
--- a/documentation/architecture/architecture-technology.asciidoc
+++ b/documentation/architecture/architecture-technology.asciidoc
@@ -79,7 +79,7 @@ images, fonts, and other resources. Vaadin themes are specifically written in
Sass. In development mode, Sass files are compiled automatically to CSS. For
production use, you compile the Sass files to CSS with the included compiler.
The use of themes is documented in detail in
-<<dummy/../../../framework/themes/themes-overview.asciidoc#themes.overview,"Themes">>,
+<<../themes/themes-overview.asciidoc#themes.overview,"Themes">>,
which also gives an introduction to CSS and Sass.
@@ -138,17 +138,17 @@ communications and allows handling user interaction logic in a server-side
application. This makes the architecture of an AJAX-based web application much
simpler. Nevertheless, Vaadin Framework also allows developing pure client-side
applications, as described in
-<<dummy/../../../framework/clientsideapp/clientsideapp-overview.asciidoc#clientsideapp.overview,"Client-Side
+<<../clientsideapp/clientsideapp-overview.asciidoc#clientsideapp.overview,"Client-Side
Applications">>.
See
-<<dummy/../../../framework/architecture/architecture-client-side#architecture.client-side,"Client-Side
+<<architecture-client-side#architecture.client-side,"Client-Side
Engine">> for a description of how the client-side framework based on GWT is
used in the Client-Side Engine of Vaadin Framework.
-<<dummy/../../../framework/clientside/clientside-overview.asciidoc#clientside.overview,"Client-Side
+<<../clientside/clientside-overview.asciidoc#clientside.overview,"Client-Side
Vaadin Development">> provides information about the client-side development,
and
-<<dummy/../../../framework/gwt/gwt-overview.asciidoc#gwt.overview,"Integrating
+<<../gwt/gwt-overview.asciidoc#gwt.overview,"Integrating
with the Server-Side">> about the integration of client-side widgets with the
server-side components.
@@ -186,7 +186,7 @@ and then mostly JSON responses to synchronize the widgets and their server-side
counterparts. It also serves various resources, such as themes. The server-side
UIs are implemented as classes extending the [classname]#UI# class, as described
in
-<<dummy/../../../framework/application/application-overview.asciidoc#application.overview,"Writing
+<<../application/application-overview.asciidoc#application.overview,"Writing
a Server-Side Web Application">>. The class is given as a parameter to the
Vaadin Servlet in the deployment descriptor.
diff --git a/documentation/architecture/chapter-architecture.asciidoc b/documentation/architecture/chapter-architecture.asciidoc
index 60e0c57b09..25d8729c8a 100644
--- a/documentation/architecture/chapter-architecture.asciidoc
+++ b/documentation/architecture/chapter-architecture.asciidoc
@@ -2,7 +2,7 @@
== Architecture
In
-<<dummy/../../../framework/introduction/introduction-overview.asciidoc#intro.overview,"Introduction">>,
+<<../introduction/introduction-overview.asciidoc#intro.overview,"Introduction">>,
we gave a short introduction to the general architecture of Vaadin. This chapter
looks deeper into the architecture at a more technical level.
diff --git a/documentation/clientside/clientside-compiling.asciidoc b/documentation/clientside/clientside-compiling.asciidoc
index 6a6f87f0e3..6304781d98 100644
--- a/documentation/clientside/clientside-compiling.asciidoc
+++ b/documentation/clientside/clientside-compiling.asciidoc
@@ -10,7 +10,7 @@ layout: page
A client-side module, either a Vaadin widget set or a pure client-side module, needs to be compiled to JavaScript using the Vaadin Client Compiler.
Widget set compilation is most often needed when using add-ons.
-In that case, the widget sets from different add-ons are compiled into an _application widget set_, as described in <<dummy/../../../framework/addons/addons-overview.asciidoc#addons.overview, "Using Vaadin Add-ons">>.
+In that case, the widget sets from different add-ons are compiled into an _application widget set_, as described in <<../addons/addons-overview.asciidoc#addons.overview, "Using Vaadin Add-ons">>.
When doing client-side development, you need to compile the widget set every time you modify the client-side code.
@@ -81,7 +81,7 @@ As this is not the case when developing custom widgets, you must use the `local`
Local compilation is the default mode, so you only need to enable it if you have changed the mode to use the online service.
-See <<DUMMY/../../addons/addons-maven#addons.maven.modes, "Widget Set Modes">> for more information.
+See <<../addons/addons-maven#addons.maven.modes, "Widget Set Modes">> for more information.
[[clientside.compiling.maven.compiling]]
=== Compiling
diff --git a/documentation/clientside/clientside-installing.asciidoc b/documentation/clientside/clientside-installing.asciidoc
index 0ad907f052..38850d4bb9 100644
--- a/documentation/clientside/clientside-installing.asciidoc
+++ b/documentation/clientside/clientside-installing.asciidoc
@@ -8,7 +8,7 @@ layout: page
= Installing the Client-Side Development Environment
The installation of the client-side development libraries is described in
-<<dummy/../../../framework/getting-started/getting-started-overview.asciidoc#getting-started.overview,"Getting
+<<../getting-started/getting-started-overview.asciidoc#getting-started.overview,"Getting
Started with Vaadin">>. You especially need the [filename]#vaadin-client#
library, which contains the client-side Java API, and
[filename]#vaadin-client-compiler#, which contains the Vaadin Client Compiler
diff --git a/documentation/clientside/clientside-module.asciidoc b/documentation/clientside/clientside-module.asciidoc
index 63da2d647b..117b4be3a6 100644
--- a/documentation/clientside/clientside-module.asciidoc
+++ b/documentation/clientside/clientside-module.asciidoc
@@ -31,12 +31,12 @@ widget set, you should normally inherit the [classname]#DefaultWidgetSet#.
If you are developing a pure client-side application, you should instead inherit
[classname]#com.vaadin.Vaadin#, as described in
-<<dummy/../../../framework/clientsideapp/clientsideapp-overview.asciidoc#clientsideapp.overview,"Client-Side
+<<../clientsideapp/clientsideapp-overview.asciidoc#clientsideapp.overview,"Client-Side
Applications">>. In that case, the module descriptor also needs an entry-point.
If you are using the Eclipse IDE, the New Vaadin Widget wizard will
automatically create the GWT module descriptor. See
-<<dummy/../../../framework/gwt/gwt-eclipse#gwt.eclipse.widget,"Creating a
+<<../gwt/gwt-eclipse#gwt.eclipse.widget,"Creating a
Widget">> for detailed instructions.
[[clientside.module.stylesheet]]
diff --git a/documentation/clientsideapp/clientsideapp-compiling.asciidoc b/documentation/clientsideapp/clientsideapp-compiling.asciidoc
index fe790fa45e..59caf37ba2 100644
--- a/documentation/clientsideapp/clientsideapp-compiling.asciidoc
+++ b/documentation/clientsideapp/clientsideapp-compiling.asciidoc
@@ -15,12 +15,12 @@ The application needs to be compiled into JavaScript to run it in a browser. For
deployment, and also initially for the first time when running the Development
Mode, you need to do the compilation with the Vaadin Client Compiler, as
described in
-<<dummy/../../../framework/clientside/clientside-compiling#clientside.compiling,"Compiling
+<<../clientside/clientside-compiling#clientside.compiling,"Compiling
a Client-Side Module">>.
During development, it is easiest to use the SuperDevMode, which also quickly
launching the client-side code and also allows debugging. See
-<<dummy/../../../framework/clientside/clientside-debugging#clientside.debugging,"Debugging
+<<../clientside/clientside-debugging#clientside.debugging,"Debugging
Client-Side Code">> for more details.
diff --git a/documentation/clientsideapp/clientsideapp-entrypoint.asciidoc b/documentation/clientsideapp/clientsideapp-entrypoint.asciidoc
index 954922310b..00811cef38 100644
--- a/documentation/clientsideapp/clientsideapp-entrypoint.asciidoc
+++ b/documentation/clientsideapp/clientsideapp-entrypoint.asciidoc
@@ -47,7 +47,7 @@ described in the next section.
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
+<<../clientside/clientside-module#clientside.module,"Client-Side
Module Descriptor">>. The descriptor is an XML file with suffix
[filename]#.gwt.xml#.
diff --git a/documentation/clientsideapp/clientsideapp-overview.asciidoc b/documentation/clientsideapp/clientsideapp-overview.asciidoc
index 95f32b105e..c24ffb0474 100644
--- a/documentation/clientsideapp/clientsideapp-overview.asciidoc
+++ b/documentation/clientsideapp/clientsideapp-overview.asciidoc
@@ -43,25 +43,25 @@ public class HelloWorld implements EntryPoint {
The user interface of a client-side application is built under a HTML __root
element__, which can be accessed by [methodname]#RootPanel.get()#. The purpose
and use of the entry-point is documented in more detail in
-<<dummy/../../../framework/clientsideapp/clientsideapp-entrypoint#clientsideapp.entrypoint,"Client-Side
+<<clientsideapp-entrypoint#clientsideapp.entrypoint,"Client-Side
Module Entry-Point">>. The user interface is built from __widgets__
hierarchically, just like with server-side Vaadin UIs. The built-in widgets and
their relationships are catalogued in
-<<dummy/../../../framework/clientsidewidgets/clientsidewidgets-overview.asciidoc#clientsidewidgets.overview,"Client-Side
+<<../clientsidewidgets/clientsidewidgets-overview.asciidoc#clientsidewidgets.overview,"Client-Side
Widgets">>. You can also use many of the widgets in Vaadin add-ons that have
them, or make your own.
A client-side module is defined in a __module descriptor__, as described in
-<<dummy/../../../framework/clientside/clientside-module#clientside.module,"Client-Side
+<<../clientside/clientside-module#clientside.module,"Client-Side
Module Descriptor">>. A module is compiled from Java to JavaScript using the
Vaadin Compiler, of which use was described in
-<<dummy/../../../framework/clientside/clientside-compiling#clientside.compiling,"Compiling
+<<../clientside/clientside-compiling#clientside.compiling,"Compiling
a Client-Side Module">>. The
-<<dummy/../../../framework/clientsideapp/clientsideapp-compiling#clientsideapp.compiling,"Compiling
+<<clientsideapp-compiling#clientsideapp.compiling,"Compiling
and Running a Client-Side Application">> in this chapter gives further
information about compiling client-side applications. The resulting JavaScript
can be loaded to any web page, as described in
-<<dummy/../../../framework/clientsideapp/clientsideapp-loading#clientsideapp.loading,"Loading
+<<clientsideapp-loading#clientsideapp.loading,"Loading
a Client-Side Application">>.
// TODO What is this? What's an "UI Binder"?
diff --git a/documentation/clientsidewidgets/clientsidewidgets-grid.asciidoc b/documentation/clientsidewidgets/clientsidewidgets-grid.asciidoc
index 738eb62080..379ca40749 100644
--- a/documentation/clientsidewidgets/clientsidewidgets-grid.asciidoc
+++ b/documentation/clientsidewidgets/clientsidewidgets-grid.asciidoc
@@ -9,7 +9,7 @@ layout: page
The [classname]#Grid# widget is the client-side counterpart for the server-side
[classname]#Grid# component described in
-<<dummy/../../../framework/components/components-grid#components.grid,"Grid">>.
+<<../components/components-grid#components.grid,"Grid">>.
The client-side API is almost identical to the server-side API, so its
documentation is currently omitted here and we refer you to the API
@@ -20,7 +20,7 @@ documentation. In the following, we go through some customization features of
== Renderers
As described in
-<<dummy/../../../framework/components/components-grid#components.grid.renderer,"Column
+<<../components/components-grid#components.grid.renderer,"Column
Renderers">>, renderers draw the visual representation of data values on the
client-side. They implement [interfacename]#Renderer# interface and its
[methodname]#render()# method. The method gets a reference to the element of the
diff --git a/documentation/clientsidewidgets/clientsidewidgets-overview.asciidoc b/documentation/clientsidewidgets/clientsidewidgets-overview.asciidoc
index 75206944ed..f5538db968 100644
--- a/documentation/clientsidewidgets/clientsidewidgets-overview.asciidoc
+++ b/documentation/clientsidewidgets/clientsidewidgets-overview.asciidoc
@@ -16,7 +16,7 @@ In general, the client-side widgets come in two categories - basic GWT widgets
and Vaadin-specific widgets. The library includes __connectors__ for integrating
the Vaadin-specific widgets with the server-side components, thereby enabling
the server-side development model of Vaadin. The integration is described in
-<<dummy/../../../framework/gwt/gwt-overview.asciidoc#gwt.overview,"Integrating
+<<../gwt/gwt-overview.asciidoc#gwt.overview,"Integrating
with the Server-Side">>.
The layout of the client-side UI is managed with __panel__ widgets, which
diff --git a/documentation/components/components-checkbox.asciidoc b/documentation/components/components-checkbox.asciidoc
index 67e3ad6108..b739ee5bf1 100644
--- a/documentation/components/components-checkbox.asciidoc
+++ b/documentation/components/components-checkbox.asciidoc
@@ -17,7 +17,7 @@ checked or unchecked. The caption of the check box will be placed right of the
actual check box. Vaadin provides two ways to create check boxes: individual
check boxes with the [classname]#CheckBox# component described in this section
and check box groups with the [classname]#CheckBoxGroup# component, as described in
-<<dummy/../../../framework/components/components-optiongroups#components.optiongroups,"CheckBoxGroup and RadioButtonGroup">>.
+<<components-optiongroups#components.optiongroups,"CheckBoxGroup and RadioButtonGroup">>.
Clicking on a check box will change its state. The state is a [classname]#Boolean#
property that you can set with the [methodname]#setValue()# method and obtain with
diff --git a/documentation/components/components-combobox.asciidoc b/documentation/components/components-combobox.asciidoc
index c7a1fefba8..a8f44cb6d6 100644
--- a/documentation/components/components-combobox.asciidoc
+++ b/documentation/components/components-combobox.asciidoc
@@ -16,7 +16,7 @@ endif::web[]
drop-down list. The component also has a text field area, which allows entering
search text by which the items shown in the drop-down list are filtered. Common
selection component features are described in
-<<dummy/../../../framework/components/components-selection#components.selection,"Selection
+<<components-selection#components.selection,"Selection
Components">>.
.The [classname]#ComboBox# Component
diff --git a/documentation/components/components-customcomponent.asciidoc b/documentation/components/components-customcomponent.asciidoc
index 96024d0ace..5adca246c8 100644
--- a/documentation/components/components-customcomponent.asciidoc
+++ b/documentation/components/components-customcomponent.asciidoc
@@ -13,7 +13,7 @@ composite components. In many applications, such composite components make up
the majority of the user interface.
As described earlier in
-<<dummy/../../../framework/application/application-architecture#application.architecture.composition,"Compositing
+<<../application/application-architecture#application.architecture.composition,"Compositing
Components">>, you have two basic ways to create a composite - either by
extending a layout component or by using a composition component (a
[classname]#Composite# or a [classname]#CustomComponent#), which typically
@@ -87,5 +87,5 @@ composition.
Even further, you can create entirely new low-level components, by integrating
pure client-side components or by extending the client-side functionality of
built-in components. Development of new components is covered in
-<<dummy/../../../framework/gwt/gwt-overview.asciidoc#gwt.overview,"Integrating
+<<../gwt/gwt-overview.asciidoc#gwt.overview,"Integrating
with the Server-Side">>.
diff --git a/documentation/components/components-customfield.asciidoc b/documentation/components/components-customfield.asciidoc
index 95f949da01..aeffc442c1 100644
--- a/documentation/components/components-customfield.asciidoc
+++ b/documentation/components/components-customfield.asciidoc
@@ -7,8 +7,8 @@ layout: page
[[components.customfield]]
= Composite Fields with CustomField
-The [classname]#CustomField# is a way to create composite components as with [classname]#CustomComponent#, except that it implements the [interfacename]#Field# interface and inherits [classname]#AbstractField#, described in <<dummy/../../../framework/components/components-fields#components.fields,"Field Components">>.
-A field allows editing a property value in the data model, and can be bound to data with [classname]#Binder#, as described in <<dummy/../../../framework/datamodel/datamodel-forms#datamodel.forms, "Binding Data to Forms">>.
+The [classname]#CustomField# is a way to create composite components as with [classname]#CustomComponent#, except that it implements the [interfacename]#Field# interface and inherits [classname]#AbstractField#, described in <<components-fields#components.fields,"Field Components">>.
+A field allows editing a property value in the data model, and can be bound to data with [classname]#Binder#, as described in <<../datamodel/datamodel-forms#datamodel.forms, "Binding Data to Forms">>.
A composite field class must implement [methodname]#initContent()# method.
It should return the content composite of the field.
diff --git a/documentation/components/components-datefield.asciidoc b/documentation/components/components-datefield.asciidoc
index 6137bd0c3d..467bfd7c33 100644
--- a/documentation/components/components-datefield.asciidoc
+++ b/documentation/components/components-datefield.asciidoc
@@ -52,7 +52,7 @@ The same format definitions are used for parsing user input.
=== Date Format
The date is normally displayed according to the default format for the current locale (see
-<<dummy/../../../framework/components/components-features#components.features.locale,"Locale">>).
+<<components-features#components.features.locale,"Locale">>).
You can specify a custom format with [methodname]#setDateFormat()#. It takes a
format string that follows the format of the [classname]#java.time.format.DateTimeFormatter# in
Java.
@@ -265,7 +265,7 @@ be visible. Please see the API Reference for the complete list of resolution par
The date is displayed according to the locale of the user, as reported
by the browser. You can set a custom locale with the [methodname]#setLocale()#
method of [classname]#AbstractComponent#, as described in
-<<dummy/../../../framework/components/components-features#components.features.locale,"Locale">>.
+<<components-features#components.features.locale,"Locale">>.
Only Gregorian calendar is supported.
diff --git a/documentation/components/components-embedded.asciidoc b/documentation/components/components-embedded.asciidoc
index 1c1a6c90ae..8c5e75f6c4 100644
--- a/documentation/components/components-embedded.asciidoc
+++ b/documentation/components/components-embedded.asciidoc
@@ -11,7 +11,7 @@ You can embed images in Vaadin UIs with the [classname]#Image# component, Adobe
Flash graphics with [classname]#Flash#, and other web content with
[classname]#BrowserFrame#. There is also a generic [classname]#Embedded#
component for embedding other object types.
-The embedded content is referenced as _resources_, as described in <<dummy/../../../framework/application/application-resources#application.resources,"Images and Other Resources">>.
+The embedded content is referenced as _resources_, as described in <<../application/application-resources#application.resources,"Images and Other Resources">>.
The following example displays an image as a class resource loaded with the
class loader:
@@ -55,7 +55,7 @@ directions, so it will automatically fit the size of the embedded image.
bars")))
If you want scrolling with scroll bars, you can put the image inside a
[classname]#Panel# that has a defined size to enable scrolling, as described in
-<<dummy/../../../framework/layout/layout-panel#layout.panel.scrolling,"Scrolling
+<<../layout/layout-panel#layout.panel.scrolling,"Scrolling
the Panel Content">>. You can also put it inside some other component container
and set the [literal]#++overflow: auto++# CSS property for the container element
in a theme to enable automatic scrollbars. (((overflow CSS
@@ -66,7 +66,7 @@ property)))
You can also generate the image content dynamically using a
[classname]#StreamResource#, as described in
-<<dummy/../../../framework/application/application-resources#application.resources.stream,"Stream
+<<../application/application-resources#application.resources.stream,"Stream
Resources">>, or with a [classname]#RequestHandler#.
If the image changes, the browser needs to reload it. Simply updating the stream
diff --git a/documentation/components/components-extensions.asciidoc b/documentation/components/components-extensions.asciidoc
index a84ad92f6e..916dc720eb 100644
--- a/documentation/components/components-extensions.asciidoc
+++ b/documentation/components/components-extensions.asciidoc
@@ -31,7 +31,7 @@ validator.extend(tf);
----
Development of custom extensions is described in
-<<dummy/../../../framework/gwt/gwt-extension#gwt.extension,"Component and UI
+<<../gwt/gwt-extension#gwt.extension,"Component and UI
Extensions">>.
diff --git a/documentation/components/components-features.asciidoc b/documentation/components/components-features.asciidoc
index e72ee2179e..37f568a9a9 100644
--- a/documentation/components/components-features.asciidoc
+++ b/documentation/components/components-features.asciidoc
@@ -114,7 +114,7 @@ A description is rendered as a tooltip in most components.
When a component error has been set with [methodname]#setComponentError()#, the
error is usually also displayed in the tooltip, below the description.
Components that are in error state will also display the error indicator. See
-<<dummy/../../../framework/application/application-errors#application.errors.error-indicator, "Error Indicator and Message">>.
+<<../application/application-errors#application.errors.error-indicator, "Error Indicator and Message">>.
The description is actually not plain text, but you can use HTML tags to format
it. Such a rich text description can contain any HTML elements, including
@@ -245,7 +245,7 @@ icon themselves and display it inside the component.
In addition to image resources, you can use __font icons__, which are icons
included in special fonts, but which are handled as special resources. See
-<<dummy/../../../framework/themes/themes-fonticon#themes.fonticon,"Font Icons">>
+<<../themes/themes-fonticon#themes.fonticon,"Font Icons">>
for more details.
=== CSS Style Rules
@@ -543,10 +543,10 @@ can set the height, width, or both as undefined with the methods [methodname]#se
[methodname]#setHeightUndefined()#, and [methodname]#setSizeUndefined()#, respectively.
Always keep in mind that _a layout with undefined size may not contain components with defined relative size_, such as "full size", except in some special cases.
-See <<dummy/../../../framework/layout/layout-settings#layout.settings.size,"Layout Size">> for details.
+See <<../layout/layout-settings#layout.settings.size,"Layout Size">> for details.
If a component inside [classname]#HorizontalLayout# or [classname]#VerticalLayout# has full size in the namesake direction of the layout, the component will expand to take all available space not needed by the other components.
-See <<dummy/../../../framework/layout/layout-settings#layout.settings.size,"Layout Size">> for details.
+See <<../layout/layout-settings#layout.settings.size,"Layout Size">> for details.
== Managing Input Focus
diff --git a/documentation/components/components-fields.asciidoc b/documentation/components/components-fields.asciidoc
index 77a308a3bb..8af342e5f6 100644
--- a/documentation/components/components-fields.asciidoc
+++ b/documentation/components/components-fields.asciidoc
@@ -21,7 +21,7 @@ Field components are built upon the framework defined in the [classname]#HasValu
interface.
[classname]#AbstractField# is the base class for all field components,
except those components that allow the user to select a value.
-(see <<dummy/../../../framework/components/components-selection.asciidoc#components.selection,"Selection Components">>).
+(see <<components-selection.asciidoc#components.selection,"Selection Components">>).
In addition to the component features inherited from
[classname]#AbstractComponent#, it implements the features defined in the
@@ -51,7 +51,7 @@ access with the corresponding setters and getters.
[methodname]#requiredIndicatorVisible#:: When enabled, a required indicator
(the asterisk * character) is displayed on the left, above, or right the field,
depending on the containing layout and whether the field has a caption.
-When the component is used in a form (see <<dummy/../../../framework/datamodel/datamodel-forms.asciidoc#datamodel.forms.validation,"Validation">>),
+When the component is used in a form (see <<../datamodel/datamodel-forms.asciidoc#datamodel.forms.validation,"Validation">>),
it can be set to be required, which will automatically show the required indicator,
and validate that the value is not empty. Without validation, the required indicator
is merely a visual guide.
@@ -116,7 +116,7 @@ Person p = new Person();
binder.setBean(p);
----
-For more information on data binding, see <<dummy/../../../framework/datamodel/datamodel-forms.asciidoc#datamodel.forms,"Binding Data to Forms">>
+For more information on data binding, see <<../datamodel/datamodel-forms.asciidoc#datamodel.forms,"Binding Data to Forms">>
== Validating Field Values
@@ -138,7 +138,7 @@ binder.forField(nameField)
----
Failed validation is by default indicated with the error indicator of the field, described in
-<<dummy/../../../framework/application/application-errors#application.errors.error-indicator,"Error
+<<../application/application-errors#application.errors.error-indicator,"Error
Indicator and Message">>. Hovering mouse on the field displays the error message
returned by the validator. If any value in a set of bound fields fails validation,
none of the field values are saved into the bound property until the validation
@@ -192,7 +192,7 @@ Field values are always of some particular type. For example,
a data source, the type of the source property can be something different,
say an [classname]#Integer#. __Converters__ are used for converting the values
between the presentation and the model. Their usage is described in
-<<dummy/../../../framework/datamodel/datamodel-forms.asciidoc#datamodel.forms.conversion,"Conversion">>.
+<<../datamodel/datamodel-forms.asciidoc#datamodel.forms.conversion,"Conversion">>.
(((range="endofrange", startref="term.components.fields")))
diff --git a/documentation/components/components-grid.asciidoc b/documentation/components/components-grid.asciidoc
index 6eba3eae45..32d47097f7 100644
--- a/documentation/components/components-grid.asciidoc
+++ b/documentation/components/components-grid.asciidoc
@@ -46,7 +46,7 @@ cell style generator.
[classname]#Grid# is normally used by binding it to a data provider,
described in
-<<dummy/../../../framework/datamodel/datamodel-providers.asciidoc#datamodel.dataproviders,"Showing Many Items in a Listing">>.
+<<../datamodel/datamodel-providers.asciidoc#datamodel.dataproviders,"Showing Many Items in a Listing">>.
By default, it is bound to List of items. You can set the items with the
[methodname]#setItems()# method.
@@ -469,7 +469,7 @@ grid.addColumn(person -> "Delete",
[classname]#ImageRenderer#:: Renders the cell as an image.
The column type must be a [interfacename]#Resource#, as described in
-<<dummy/../../../framework/application/application-resources#application.resources,"Images and Other Resources">>; only [classname]#ThemeResource# and
+<<../application/application-resources#application.resources,"Images and Other Resources">>; only [classname]#ThemeResource# and
[classname]#ExternalResource# are currently supported for images in
[classname]#Grid#.
@@ -630,7 +630,7 @@ grid.addColumn(person -> {
=== Custom Renderers
Renderers are component extensions that require a client-side counterpart. See
-<<dummy/../../../framework/clientsidewidgets/clientsidewidgets-grid#clientsidewidgets.grid.renderers,"Renderers">>
+<<../clientsidewidgets/clientsidewidgets-grid#clientsidewidgets.grid.renderers,"Renderers">>
for information on implementing custom renderers.
@@ -826,7 +826,7 @@ can correct the inputs.
The [classname]#Editor# is accessible via [methodname]#getEditor()#, and to enable editing, you need to call [methodname]#setEnabled(true)# on it.
The editor is based on [classname]#Binder# which is used to bind the data to the editor.
-See <<dummy/../../../framework/datamodel/datamodel-forms.asciidoc#datamodel.forms.beans,"Binding Beans to Forms">> for more information on setting up field components and validation by using [classname]#Binder#.
+See <<../datamodel/datamodel-forms.asciidoc#datamodel.forms.beans,"Binding Beans to Forms">> for more information on setting up field components and validation by using [classname]#Binder#.
For each column that should be editable, a binding should be created in the editor binder and then the column is configured to use that binding.
For simple cases where no conversion or validation is needed, it is also possible to directly use `setEditorComponent` on a `Column` to only define the editor component and a setter that updates the row object when saving.
@@ -949,7 +949,7 @@ You can scroll to first item with [methodname]#scrollToStart()#, to end with
== Drag and Drop of Rows
Please refer to the
-<<dummy/../../../framework/advanced/advanced-dragndrop#advanced.dragndrop.grid,"Drag and Drop Rows in Grid">> documentation.
+<<../advanced/advanced-dragndrop#advanced.dragndrop.grid,"Drag and Drop Rows in Grid">> documentation.
[[advanced.dragndrop.grid]]
diff --git a/documentation/components/components-interfaces.asciidoc b/documentation/components/components-interfaces.asciidoc
index 603cb4cdc7..2c1fa3f260 100644
--- a/documentation/components/components-interfaces.asciidoc
+++ b/documentation/components/components-interfaces.asciidoc
@@ -15,8 +15,8 @@ and the client.
This section gives details on the basic component interfaces and abstractions.
The layout and other component container abstractions are described in
-<<dummy/../../../framework/layout/layout-overview.asciidoc#layout.overview,"Managing Layout">>.
-The interfaces that define the Vaadin data model are described in <<dummy/../../../framework/datamodel/datamodel-overview.asciidoc#datamodel.overview,"Binding Components to Data">>.
+<<../layout/layout-overview.asciidoc#layout.overview,"Managing Layout">>.
+The interfaces that define the Vaadin data model are described in <<../datamodel/datamodel-overview.asciidoc#datamodel.overview,"Binding Components to Data">>.
[[figure.components.interfaces]]
.Component interfaces and abstractions
diff --git a/documentation/components/components-label.asciidoc b/documentation/components/components-label.asciidoc
index 7e95e747b8..193c068ba6 100644
--- a/documentation/components/components-label.asciidoc
+++ b/documentation/components/components-label.asciidoc
@@ -122,7 +122,7 @@ content mode.
Having [classname]#Label# in HTML content mode allows pure HTML content. If the
content comes from user input, you should always carefully sanitize it to
prevent cross-site scripting (XSS) attacks. Please see
-<<dummy/../../../framework/advanced/advanced-security#advanced.security.sanitizing,"Sanitizing
+<<../advanced/advanced-security#advanced.security.sanitizing,"Sanitizing
User Input to Prevent Cross-Site Scripting">>.
Also, the validity of the HTML content is not checked when rendering the
diff --git a/documentation/components/components-link.asciidoc b/documentation/components/components-link.asciidoc
index 5f2a3a153c..ecb39d0063 100644
--- a/documentation/components/components-link.asciidoc
+++ b/documentation/components/components-link.asciidoc
@@ -14,7 +14,7 @@ endif::web[]
The [classname]#Link# component allows making hyperlinks. References to
locations are represented as resource objects, explained in
-<<dummy/../../../framework/application/application-resources#application.resources,"Images
+<<../application/application-resources#application.resources,"Images
and Other Resources">>. The [classname]#Link# is a regular HTML hyperlink, that
is, an [literal]#++<a href>++# anchor element that is handled natively by the
browser. Unlike when clicking a [classname]#Button#, clicking a
@@ -107,7 +107,7 @@ In addition to the [classname]#Link# component, Vaadin allows alternative ways t
Also, you can make hyperlinks (or any other HTML) in a [classname]#Label# in HTML content mode.
The [classname]#Button# component has a [parameter]#ValoTheme.BUTTON_LINK# style name that makes it look like a hyperlink, while handling clicks in a server-side click listener instead of in the browser.
-However, browsers do not generally allow opening new windows after server side round trip, so for such tasks you need to use the [classname]#BrowserWindowOpener# extension described in <<dummy/../../../framework/advanced/advanced-windows#advanced.windows.popup, "Opening Pop-up Windows">>
+However, browsers do not generally allow opening new windows after server side round trip, so for such tasks you need to use the [classname]#BrowserWindowOpener# extension described in <<../advanced/advanced-windows#advanced.windows.popup, "Opening Pop-up Windows">>
== CSS Style Rules
diff --git a/documentation/components/components-listselect.asciidoc b/documentation/components/components-listselect.asciidoc
index e57d028800..cb8db962f5 100644
--- a/documentation/components/components-listselect.asciidoc
+++ b/documentation/components/components-listselect.asciidoc
@@ -41,7 +41,7 @@ The number of visible items is set with [methodname]#setRows()#.
image::img/listselect-basic.png[width=35%, scaledwidth=50%]
Common selection component features are described in
-<<dummy/../../../framework/components/components-selection#components.selection,"Selection Components">>.
+<<components-selection#components.selection,"Selection Components">>.
== CSS Style Rules
diff --git a/documentation/components/components-nativeselect.asciidoc b/documentation/components/components-nativeselect.asciidoc
index 52dae0ec18..05259e4d28 100644
--- a/documentation/components/components-nativeselect.asciidoc
+++ b/documentation/components/components-nativeselect.asciidoc
@@ -31,7 +31,7 @@ select.setItems("Mercury", "Venus", ...);
image::img/nativeselect-basic.png[width=20%, scaledwidth=35%]
Common selection component features are described in
-<<dummy/../../../framework/components/components-selection#components.selection,"Selection Components">>.
+<<components-selection#components.selection,"Selection Components">>.
== CSS Style Rules
diff --git a/documentation/components/components-optiongroups.asciidoc b/documentation/components/components-optiongroups.asciidoc
index bc2e261cf3..fd2c7bfd54 100644
--- a/documentation/components/components-optiongroups.asciidoc
+++ b/documentation/components/components-optiongroups.asciidoc
@@ -16,7 +16,7 @@ endif::web[]
selection from a group of radio buttons. [classname]#CheckBoxGroup# is a multiselection
component where items are displayed as check boxes. The common selection component features are
described in
-<<dummy/../../../framework/components/components-selection#components.selection,"Selection Components">>.
+<<components-selection#components.selection,"Selection Components">>.
[[figure.components.optiongroups]]
.RadioButtonGroup and CheckBoxGroup
@@ -40,7 +40,7 @@ multi.setItems("Many", "Muchos", "Monta");
You can also create check boxes individually using the [classname]#CheckBox#
class, as described in
-<<dummy/../../../framework/components/components-checkbox#components.checkbox,"CheckBox">>.
+<<components-checkbox#components.checkbox,"CheckBox">>.
The advantages of the [classname]#CheckBoxGroup# component are that as it
maintains the individual check box objects, you can get an array of the
currently selected items easily, and that you can easily change the appearance
diff --git a/documentation/components/components-overview.asciidoc b/documentation/components/components-overview.asciidoc
index 0a035a3c00..5d0ccdbaca 100644
--- a/documentation/components/components-overview.asciidoc
+++ b/documentation/components/components-overview.asciidoc
@@ -63,7 +63,6 @@ abstract class.
((("[classname]#AbstractListing#")))
There are three more specific types of components.
-Field Components:: allow user to edit a value in the UI. All extend [classname]#AbstractField#. Field components are described in detail in
<<components-fields#components.fields,"Field Components">>.
Selection Component:: show a list of data that the user can select from. All extend [classname]#AbstractListing#. Selection components are described in detail in
@@ -82,8 +81,7 @@ documentation, and a code samples for each of the components.
In addition to the built-in components, many components are available as
add-ons, either from the Vaadin Directory or from independent sources. Both
commercial and free components exist. The installation of add-ons is described
-in
-<<../addons/addons-overview#addons.overview,"Using
+in <<../addons/addons-overview#addons.overview,"Using
Vaadin Add-ons">>.
////
diff --git a/documentation/components/components-passwordfield.asciidoc b/documentation/components/components-passwordfield.asciidoc
index d1c18b1605..755008b526 100644
--- a/documentation/components/components-passwordfield.asciidoc
+++ b/documentation/components/components-passwordfield.asciidoc
@@ -44,4 +44,4 @@ possible by exploiting JavaScript execution security holes in the browser.
The [classname]#PasswordField# does not have its own CSS style name but uses the
same [literal]#++v-textfield++# style as the regular [classname]#TextField#. See
-<<dummy/../../../framework/components/components-textfield#components.textfield.css,"CSS Style Rules">> for information on styling it.
+<<components-textfield#components.textfield.css,"CSS Style Rules">> for information on styling it.
diff --git a/documentation/components/components-progressbar.asciidoc b/documentation/components/components-progressbar.asciidoc
index 54940799b3..f0d5051778 100644
--- a/documentation/components/components-progressbar.asciidoc
+++ b/documentation/components/components-progressbar.asciidoc
@@ -26,11 +26,11 @@ When the position of a progress bar is done in a background thread, the change
is not shown in the browser immediately. You need to use either polling or
server push to update the browser. You can enable polling with
[methodname]#setPollInterval()# in the current UI instance. See
-<<dummy/../../../framework/advanced/advanced-push#advanced.push,"Server Push">>
+<<../advanced/advanced-push#advanced.push,"Server Push">>
for instructions about using server push. Whichever method you use to update the
UI, it is important to lock the user session by modifying the progress bar value
inside [methodname]#access()# call, as described in
-<<dummy/../../../framework/advanced/advanced-push#advanced.push.running,"Accessing UI from Another Thread">>.
+<<../advanced/advanced-push#advanced.push.running,"Accessing UI from Another Thread">>.
[source, java]
----
@@ -70,7 +70,7 @@ including the progress bar, can be updated either with polling or by using
server push. When doing so, you must ensure thread-safety, most easily by
updating the UI inside a [methodname]#UI.access()# call in a
[interfacename]#Runnable#, as described in
-<<dummy/../../../framework/advanced/advanced-push#advanced.push.running,"Accessing
+<<../advanced/advanced-push#advanced.push.running,"Accessing
UI from Another Thread">>.
diff --git a/documentation/components/components-richtextarea.asciidoc b/documentation/components/components-richtextarea.asciidoc
index 9dd97bfb85..1d072d7133 100644
--- a/documentation/components/components-richtextarea.asciidoc
+++ b/documentation/components/components-richtextarea.asciidoc
@@ -63,7 +63,7 @@ not sanitize it just by removing all HTML tags. Also many attributes, such as
[parameter]#style#, should pass through the sanitization.
See
-<<dummy/../../../framework/advanced/advanced-security#advanced.security.sanitizing,"Sanitizing
+<<../advanced/advanced-security#advanced.security.sanitizing,"Sanitizing
User Input to Prevent Cross-Site Scripting">> for more details on Cross-Site
scripting vulnerabilities and sanitization of user input.
diff --git a/documentation/components/components-selection.asciidoc b/documentation/components/components-selection.asciidoc
index b136fe79bc..aa8e5a79ae 100644
--- a/documentation/components/components-selection.asciidoc
+++ b/documentation/components/components-selection.asciidoc
@@ -7,7 +7,7 @@ layout: page
[[components.selection]]
= Selection Components
-For a better overview on how selection works, see link:<<dummy/../../../framework/datamodel/datamodel-selection.asciidoc#datamodel.selection,"Selecting Items">>.
+For a better overview on how selection works, see link:<<../datamodel/datamodel-selection.asciidoc#datamodel.selection,"Selecting Items">>.
Vaadin offers many alternative ways for selecting one or more items. The core
library includes the following selection components, all based on either
@@ -42,7 +42,7 @@ In addition, the [classname]#Grid# component allows user selection.
The selection components are typically bound to list of items obtained from backend system.
You can give the list of items in the constructor or set it with
[methodname]#setItems()#. Read more in
-<<dummy/../../../framework/datamodel/datamodel-overview.asciidoc#datamodel.overview,"Binding
+<<../datamodel/datamodel-overview.asciidoc#datamodel.overview,"Binding
Components to Data">>.
You can get the current selection as the
@@ -109,7 +109,7 @@ elements.
[[components.selection.getset]]
== Getting and Setting Selection
-For a better overview on how selection works, see link:<<dummy/../../../framework/datamodel/datamodel-selection.asciidoc#datamodel.selection,"Selecting Items">>.
+For a better overview on how selection works, see link:<<../datamodel/datamodel-selection.asciidoc#datamodel.selection,"Selecting Items">>.
You can get selected the item with [methodname]#getValue()# of the
[interfacename]#HasValue# interface that returns either a single selected item
@@ -154,7 +154,7 @@ image::img/select-selected1.png[width=30%, scaledwidth=40%]
[[components.selection.multiple]]
== Multiple Selection
-For a better overview on how selection works, see link:<<dummy/../../../framework/datamodel/datamodel-selection.asciidoc#datamodel.selection,"Selecting Items">>.
+For a better overview on how selection works, see link:<<../datamodel/datamodel-selection.asciidoc#datamodel.selection,"Selecting Items">>.
Some selection components, such as [classname]#CheckBoxGroup#,
[classname]#ListSelect# and [classname]#TwinColSelect# are multiselect components,
diff --git a/documentation/components/components-textarea.asciidoc b/documentation/components/components-textarea.asciidoc
index d982117253..a1d280f6a5 100644
--- a/documentation/components/components-textarea.asciidoc
+++ b/documentation/components/components-textarea.asciidoc
@@ -14,7 +14,7 @@ endif::web[]
[classname]#TextArea# is a multi-line version of the [classname]#TextField#
component described in
-<<dummy/../../../framework/components/components-textfield#components.textfield,"TextField">>.
+<<components-textfield#components.textfield,"TextField">>.
The following example creates a simple text area:
diff --git a/documentation/components/components-textfield.asciidoc b/documentation/components/components-textfield.asciidoc
index a14dedb548..ef4baedbe8 100644
--- a/documentation/components/components-textfield.asciidoc
+++ b/documentation/components/components-textfield.asciidoc
@@ -47,7 +47,7 @@ tf.addValueChangeListener(event ->
[classname]#TextField# edits [classname]#String# values, but you can use [classname]#Binder#
to bind it to any property type that has a proper converter, as described in
-<<dummy/../../../framework/datamodel/datamodel-forms.asciidoc#datamodel.forms.conversion,"Conversion">>.
+<<../datamodel/datamodel-forms.asciidoc#datamodel.forms.conversion,"Conversion">>.
Much of the API of [classname]#TextField# is defined in
[classname]#AbstractTextField#, which allows different kinds of text input
diff --git a/documentation/components/components-tree.asciidoc b/documentation/components/components-tree.asciidoc
index ef1def1beb..28986740d8 100644
--- a/documentation/components/components-tree.asciidoc
+++ b/documentation/components/components-tree.asciidoc
@@ -29,7 +29,7 @@ image::img/tree-basic.png[width=70%, scaledwidth=100%]
== Binding to Data
[classname]#Tree# is used by binding it to a hierarchical data provider. The data provider can be based on in-memory or back end data. For in-memory data, the [classname]#TreeDataProvider# can be used, and for loading data from a back end, you need to implement three methods from the [interfacename]#HierarchicalDataProvider# interface. Usage of both data providers is described in
-<<dummy/../../../framework/datamodel/datamodel-hierarchical.asciidoc#datamodel.hierarchical,"Hierarchical Data">>.
+<<../datamodel/datamodel-hierarchical.asciidoc#datamodel.hierarchical,"Hierarchical Data">>.
The [classname]#TreeData# class can be used to build the hierarchical data structure,
@@ -81,7 +81,7 @@ The caption and the icon of tree items is generated by the [classname]#ItemCapti
== Handling Selection and Clicks
[classname]#Tree# supports single selection mode, you can use [methodname]#asSingleSelect()# to access the selection
-object, which supports selection listeners and data binding. For more details, see link:<<dummy/../../../framework/datamodel/datamodel-selection.asciidoc#datamodel.selection,"Selecting Items">>.
+object, which supports selection listeners and data binding. For more details, see link:<<../datamodel/datamodel-selection.asciidoc#datamodel.selection,"Selecting Items">>.
The [classname]#Tree# also supports the shortcut method [methodname]#addSelectionListener()#.
[classname]#Tree# also emits [classname]##ItemClickEvent##s when items are clicked.
diff --git a/documentation/components/components-treegrid.asciidoc b/documentation/components/components-treegrid.asciidoc
index d6392f3339..90346e57bb 100644
--- a/documentation/components/components-treegrid.asciidoc
+++ b/documentation/components/components-treegrid.asciidoc
@@ -19,7 +19,7 @@ endif::web[]
It is otherwise identical to the [classname]#Grid# component, but it adds the possibility to show
hierarchical data, allowing the user to expand and collapse nodes to show or hide data.
-See the documentation for <<dummy/../../../framework/components/components-grid.asciidoc#components.grid,"Grid">> for all the shared features between [classname]#Grid# and [classname]#TreeGrid#.
+See the documentation for <<components-grid.asciidoc#components.grid,"Grid">> for all the shared features between [classname]#Grid# and [classname]#TreeGrid#.
[[figure.components.treegrid.basic]]
.A [classname]#TreeGrid#
@@ -29,7 +29,7 @@ image::img/tree-grid-basic.png[width=70%, scaledwidth=100%]
== Binding to Data
[classname]#TreeGrid# is used by binding it to a hierarchical data provider. The data provider can be based on in-memory or back end data. For in-memory data, the [classname]#TreeDataProvider# can be used, and for loading data from a back end, you need to implement three methods from the [interfacename]#HierarchicalDataProvider# interface. Usage of both data providers is described in
-<<dummy/../../../framework/datamodel/datamodel-hierarchical.asciidoc#datamodel.hierarchical,"Hierarchical Data">>.
+<<../datamodel/datamodel-hierarchical.asciidoc#datamodel.hierarchical,"Hierarchical Data">>.
Populating a [classname]#TreeGrid# with in-memory data can be done as follows
diff --git a/documentation/components/components-twincolselect.asciidoc b/documentation/components/components-twincolselect.asciidoc
index ac2df4b788..67dd9cc557 100644
--- a/documentation/components/components-twincolselect.asciidoc
+++ b/documentation/components/components-twincolselect.asciidoc
@@ -65,7 +65,7 @@ Hence it will slow down significantly if used with large itemsets.
The lazy loading feature could be implemented using two single column Grids instead.
Common selection component features are described in
-<<dummy/../../../framework/components/components-selection#components.selection,"Selection
+<<components-selection#components.selection,"Selection
Components">>.
== CSS Style Rules
diff --git a/documentation/datamodel/datamodel-fields.asciidoc b/documentation/datamodel/datamodel-fields.asciidoc
index 539027d5f1..060a1c7d82 100644
--- a/documentation/datamodel/datamodel-fields.asciidoc
+++ b/documentation/datamodel/datamodel-fields.asciidoc
@@ -55,4 +55,4 @@ This is useful for showing the user that the data is there, even though the user
When editing multiple values from the same business object, you can use `Binder` to simplify how the values of all input fields in a form are handled.
-<<dummy/../../../framework/datamodel/datamodel-forms.asciidoc#datamodel.forms,"Binding Data to Forms">> describes how this is done.
+<<datamodel-forms.asciidoc#datamodel.forms,"Binding Data to Forms">> describes how this is done.
diff --git a/documentation/datamodel/datamodel-hierarchical.asciidoc b/documentation/datamodel/datamodel-hierarchical.asciidoc
index 11fc699082..a581115063 100644
--- a/documentation/datamodel/datamodel-hierarchical.asciidoc
+++ b/documentation/datamodel/datamodel-hierarchical.asciidoc
@@ -10,8 +10,8 @@ layout: page
The [classname]#Tree# and the [classname]#TreeGrid# components allow you to show data with hierarchical relationships between items.
That data can be populated by on-demand from a back end by implementing the [interfacename]#HierarchicalDataProvider# interface. If you have the data available in-memory on the server,
you use the collection style API of [classname]#TreeData# and then pass it to a [classname]#TreeDataProvider#. This chapter introduces the hierarchical data providers and how they work.
-For using them with the components you should see <<dummy/../../../framework/components/components-tree.asciidoc#components.tree,"Tree">>
-and <<dummy/../../../framework/components/components-treegrid.asciidoc#components.treegrid,"TreeGrid">> documentation.
+For using them with the components you should see <<../components/components-tree.asciidoc#components.tree,"Tree">>
+and <<../components/components-treegrid.asciidoc#components.treegrid,"TreeGrid">> documentation.
== In-memory Hierarchical Data
@@ -66,7 +66,7 @@ dataProvider.setFilter(project -> project.getHours() > 100);
== Lazy Loading Hierarchical Data from a Back End
-The lazy loading hierarchical data, same concepts apply as with the non-hierarchical data, so you should take a look at <<dummy/../../../framework/datamodel/datamodel-providers.asciidoc#datamodel.dataproviders.lazy,"Lazy Loading Data to a Listing">> if you have not already.
+The lazy loading hierarchical data, same concepts apply as with the non-hierarchical data, so you should take a look at <<datamodel-providers.asciidoc#datamodel.dataproviders.lazy,"Lazy Loading Data to a Listing">> if you have not already.
To load hierarchical data on-demand from your back end, you should extend the [classname]#AbstractHierarchicalDataProvider# class. Then you just have to implement the following three methods:
diff --git a/documentation/datamodel/datamodel-overview.asciidoc b/documentation/datamodel/datamodel-overview.asciidoc
index 49b936c77e..6580235e26 100644
--- a/documentation/datamodel/datamodel-overview.asciidoc
+++ b/documentation/datamodel/datamodel-overview.asciidoc
@@ -11,23 +11,23 @@ The Vaadin Data Model is one of the core concepts of the library.
There is a standard data interface that all UI components use to access and modify the application's data.
The most basic UI component for handling data is a field component that lets the user define a single value, for instance a text field for writing the name of a product or a dropdown menu for selecting which department an employee belongs to.
-See <<dummy/../../../framework/datamodel/datamodel-fields.asciidoc#datamodel.fields,"Editing Values in Fields">> to learn how these components can be used on their own.
+See <<datamodel-fields.asciidoc#datamodel.fields,"Editing Values in Fields">> to learn how these components can be used on their own.
In most applications, there are business classes that represent real-world objects like a single employee or a product in an inventory.
The user interface is structured as a form that lets the user edit all the different properties of a single business object instance.
Vaadin Framework makes it easy to create forms for editing these sorts.
You have full control over how you configure and lay out the individual input fields making up a form, and then you can use `Binder` to hook up those fields to a business object instance.
-<<dummy/../../../framework/datamodel/datamodel-forms.asciidoc#datamodel.forms,"Binding Data to Forms">> shows how to bind data to fields.
+<<datamodel-forms.asciidoc#datamodel.forms,"Binding Data to Forms">> shows how to bind data to fields.
There are UI components in the framework that lists multiple similar objects and lets the user view, select and in some cases even edit those objects.
A listing component can get its data from an in-memory collection or lazily fetch it from some backend.
In either case, there are options available for defining how the data is sorted and filtered before being displayed to the user.
-Read more about how to provide lists of data to these components in <<dummy/../../../framework/datamodel/datamodel-providers.asciidoc#datamodel.providers,"Showing Many Items in a Listing">>. For using hierarchical data, see <<dummy/../../../framework/datamodel/datamodel-hierarchical.asciidoc#datamodel.hierarchical,"Hierarchical Data">>.
-Using a listing component as an input field to select one or many of the listed items is described in <<dummy/../../../framework/datamodel/datamodel-selection.asciidoc#datamodel.selection,"Selecting items">>.
+Read more about how to provide lists of data to these components in <<datamodel-providers.asciidoc#datamodel.providers,"Showing Many Items in a Listing">>. For using hierarchical data, see <<datamodel-hierarchical.asciidoc#datamodel.hierarchical,"Hierarchical Data">>.
+Using a listing component as an input field to select one or many of the listed items is described in <<datamodel-selection.asciidoc#datamodel.selection,"Selecting items">>.
Vaadin Data Model topic references::
-* <<dummy/../../../framework/datamodel/datamodel-fields.asciidoc#datamodel.fields,"Editing Values in Fields">>
-* <<dummy/../../../framework/datamodel/datamodel-forms.asciidoc#datamodel.forms,"Binding Data to Forms">>
-* <<dummy/../../../framework/datamodel/datamodel-providers.asciidoc#datamodel.providers,"Showing Many Items in a Listing">>
-* <<dummy/../../../framework/datamodel/datamodel-selection.asciidoc#datamodel.selection,"Selecting items">>
-* <<dummy/../../../framework/datamodel/datamodel-hierarchical.asciidoc#datamodel.hierarchical,"Hierarchical Data">>
+* <<datamodel-fields.asciidoc#datamodel.fields,"Editing Values in Fields">>
+* <<datamodel-forms.asciidoc#datamodel.forms,"Binding Data to Forms">>
+* <<datamodel-providers.asciidoc#datamodel.providers,"Showing Many Items in a Listing">>
+* <<datamodel-selection.asciidoc#datamodel.selection,"Selecting items">>
+* <<datamodel-hierarchical.asciidoc#datamodel.hierarchical,"Hierarchical Data">>
diff --git a/documentation/getting-started/chapter-getting-started.asciidoc b/documentation/getting-started/chapter-getting-started.asciidoc
index 329e40cf3a..8c7f0adb2e 100644
--- a/documentation/getting-started/chapter-getting-started.asciidoc
+++ b/documentation/getting-started/chapter-getting-started.asciidoc
@@ -1,13 +1,13 @@
[[getting-started]]
== Creating a Vaadin Application
-TIP: If you are new to Vaadin, we suggest to start with <<dummy/../../../framework/tutorial#tutorial,"the tutorial">>. It also contains instructions how to set up Eclipse based development environment.
+TIP: If you are new to Vaadin, we suggest to start with <<../tutorial#tutorial,"the tutorial">>. It also contains instructions how to set up Eclipse based development environment.
This chapter gives practical instructions for creating a Vaadin application project and deploying it to a server to run it. We also consider topics such as debugging.
The instructions are given separately for the Eclipse IDE, NetBeans, and IntelliJ IDEA.
-include::getting-started-overview.adoc[leveloffset=+2]
+include::getting-started-overview.asciidoc[leveloffset=+2]
include::getting-started-libraries.asciidoc[leveloffset=+2]
diff --git a/documentation/getting-started/getting-started-first-project.asciidoc b/documentation/getting-started/getting-started-first-project.asciidoc
index 3903af15f5..4d9be5d86d 100644
--- a/documentation/getting-started/getting-started-first-project.asciidoc
+++ b/documentation/getting-started/getting-started-first-project.asciidoc
@@ -7,7 +7,7 @@ layout: page
[[getting-started.first-project]]
= Creating and Running a Project in Eclipse
-TIP: If you are new to Vaadin, we suggest to start with <<dummy/../../../framework/tutorial#tutorial,"the tutorial">>. It also contains instructions how to set up Eclipse based development environment.
+TIP: If you are new to Vaadin, we suggest to start with <<../tutorial#tutorial,"the tutorial">>. It also contains instructions how to set up Eclipse based development environment.
This section gives instructions for creating a new Eclipse project using the
Vaadin Plugin. The task will include the following steps:
@@ -23,7 +23,7 @@ Vaadin Plugin. The task will include the following steps:
We also show how you can debug the application in the debug mode in Eclipse.
This walkthrough assumes that you have already installed the Eclipse IDE, the Vaadin Plugin, and a development server, as instructed in
-<<dummy/../../../framework/installing/installing-eclipse#installing.eclipse, "Installing the Eclipse IDE and Plugin">>.
+<<../installing/installing-eclipse#installing.eclipse, "Installing the Eclipse IDE and Plugin">>.
[[getting-started.first-project.creation]]
== Creating a Maven Project
@@ -207,7 +207,7 @@ image::img/debuggingMyProject.png[scaledwidth=100%]
Above, we described how to debug a server-side application.
Debugging client-side applications and widgets is described in
-<<dummy/../../../framework/clientside/clientside-debugging#clientside.debugging,"Debugging Client-Side Code">>.
+<<../clientside/clientside-debugging#clientside.debugging,"Debugging Client-Side Code">>.
[[getting-started.eclipse.mavenlibraryupdate]]
== Updating the Vaadin Framework Libraries
diff --git a/documentation/getting-started/getting-started-idea.asciidoc b/documentation/getting-started/getting-started-idea.asciidoc
index f677e06e42..88e93e75ce 100644
--- a/documentation/getting-started/getting-started-idea.asciidoc
+++ b/documentation/getting-started/getting-started-idea.asciidoc
@@ -61,7 +61,7 @@ To compile a Vaadin application using Maven, you can define a run/debug
configuration to execute a goal such as [literal]#++package++# to build the
deployable WAR package. It will also compile the widget set and theme, if
necessary. See
-<<dummy/../../../framework/getting-started/getting-started-maven#getting-started.maven.compiling,"Compiling
+<<getting-started-maven#getting-started.maven.compiling,"Compiling
and Running the Application">> for more details.
Compilation is included in the following instructions for deploying the
diff --git a/documentation/getting-started/getting-started-libraries.asciidoc b/documentation/getting-started/getting-started-libraries.asciidoc
index 39802e91b0..6d1f4fcf83 100644
--- a/documentation/getting-started/getting-started-libraries.asciidoc
+++ b/documentation/getting-started/getting-started-libraries.asciidoc
@@ -13,7 +13,7 @@ applications, whether you use add-on components, or use CSS or Sass themes.
[filename]#vaadin-server-8.x.x.jar#::
The main library for developing server-side Vaadin applications, as described in
-<<dummy/../../../framework/application/application-overview.asciidoc#application.overview,"Writing a Server-Side Web Application">>.
+<<../application/application-overview.asciidoc#application.overview,"Writing a Server-Side Web Application">>.
It requires the [filename]#vaadin-shared# and the [filename]#vaadin-themes# libraries.
You can use the pre-built [filename]#vaadin-client-compiled# for server-side development, unless you need add-on components or custom widgets.
@@ -41,10 +41,10 @@ You should not deploy it with a web application.
[filename]#vaadin-client-compiler-8.x.x.jar#::
The Vaadin Client Compiler is a Java-to-JavaScript compiler that allows building client-side modules, such as the Client-Side Engine (widget set) required for server-side applications.
-The compiler is needed, for example, for compiling add-on components to the application widget set, as described in <<dummy/../../../framework/addons/addons-overview.asciidoc#addons.overview,"Using Vaadin Add-ons">>.
+The compiler is needed, for example, for compiling add-on components to the application widget set, as described in <<../addons/addons-overview.asciidoc#addons.overview,"Using Vaadin Add-ons">>.
+
For detailed information regarding the compiler, see
-<<dummy/../../../framework/clientside/clientside-compiling#clientside.compiling,"Compiling a Client-Side Module">>.
+<<../clientside/clientside-compiling#clientside.compiling,"Compiling a Client-Side Module">>.
Note that you should not deploy this library with a web application.
[filename]#vaadin-compatibility-*-8.x.x.jar#::
diff --git a/documentation/getting-started/getting-started-maven.asciidoc b/documentation/getting-started/getting-started-maven.asciidoc
index e58453c574..6d86448d88 100644
--- a/documentation/getting-started/getting-started-maven.asciidoc
+++ b/documentation/getting-started/getting-started-maven.asciidoc
@@ -44,7 +44,7 @@ The parameters are as follows:
archetypes.
[parameter]#archetypeArtifactId#:: The archetype ID.
-See the list of available archetypes in <<dummy/../../../framework/getting-started/getting-started-archetypes#getting-started.archetypes,"Overview of Maven Archetypes">>.
+See the list of available archetypes in <<getting-started-archetypes#getting-started.archetypes,"Overview of Maven Archetypes">>.
[parameter]#archetypeVersion#::
Version of the archetype to use.
@@ -106,7 +106,7 @@ http://localhost:8080/project-name.
((("Maven", "using add-ons", id="term.maven.addons", range="startofrange")))
If you use Vaadin add-ons from the http://vaadin.com/directory[Vaadin Directory], you need to add them as dependencies in the project POM.
-The instructions are given in <<dummy/../../../framework/addons/addons-maven#addons.maven, "Using Add-ons in a
+The instructions are given in <<../addons/addons-maven#addons.maven, "Using Add-ons in a
Maven Project">>.
_In projects that use Vaadin 7.6 or older_, you need to compile the widget set manually.
diff --git a/documentation/getting-started/getting-started-netbeans.asciidoc b/documentation/getting-started/getting-started-netbeans.asciidoc
index 64948471fe..934c90c644 100644
--- a/documentation/getting-started/getting-started-netbeans.asciidoc
+++ b/documentation/getting-started/getting-started-netbeans.asciidoc
@@ -9,7 +9,7 @@ layout: page
In the following, we walk you through the creation of a Vaadin project in NetBeans and show how to run it.
-Installation of NetBeans and the Vaadin plugin is covered in <<DUMMY/../../../framework/installing/installing-netbeans#installing.netbeans, "Installing the NetBeans IDE and Plugin">>.
+Installation of NetBeans and the Vaadin plugin is covered in <<../installing/installing-netbeans#installing.netbeans, "Installing the NetBeans IDE and Plugin">>.
Without the plugin, you can most easily create a Vaadin project as a Maven
project using a Vaadin archetype. You can also create a Vaadin project as a
@@ -70,11 +70,11 @@ image::img/netbeans-created-annotated-hi.png[width=80%, scaledwidth=100%]
[filename]#mytheme#::
The theme of the UI.
-See <<DUMMY/../../../framework/themes/themes-overview#themes.overview, "Themes">> for information about themes.
+See <<../themes/themes-overview#themes.overview, "Themes">> for information about themes.
[filename]#MyUI.java#::
The UI class, which is the main entry-point of your application.
-See <<DUMMY/../../../framework/application/application-overview#application.overview, "Server-Side Applications">> for information about the basic structure of Vaadin applications.
+See <<../application/application-overview#application.overview, "Server-Side Applications">> for information about the basic structure of Vaadin applications.
The Vaadin libraries and other dependencies are managed by Maven.
Notice that the libraries are not stored under the project folder, even though they are listed in the "Java Resources > Libraries > Maven Dependencies" virtual folder.
diff --git a/documentation/getting-started/getting-started-overview.adoc b/documentation/getting-started/getting-started-overview.asciidoc
index 3cf8b870f4..3cf8b870f4 100644
--- a/documentation/getting-started/getting-started-overview.adoc
+++ b/documentation/getting-started/getting-started-overview.asciidoc
diff --git a/documentation/gwt/gwt-connector.asciidoc b/documentation/gwt/gwt-connector.asciidoc
index f8fcb5dbe3..b0c276d41a 100644
--- a/documentation/gwt/gwt-connector.asciidoc
+++ b/documentation/gwt/gwt-connector.asciidoc
@@ -13,7 +13,7 @@ the widget state and events to the server-side.
A connector normally gets the state of the server-side component by the __shared
state__, described later in
-<<dummy/../../../framework/gwt/gwt-shared-state#gwt.shared-state,"Shared
+<<gwt-shared-state#gwt.shared-state,"Shared
State">>.
[[gwt.connector.basic]]
@@ -56,7 +56,7 @@ method that is called when any of the state properties is changed. A finer and
simpler handling is achieved by using the [classname]#@OnStateChange# annotation
on a handler method for each property, or by [classname]#@DelegateToWidget# on a
shared state property, as described later in
-<<dummy/../../../framework/gwt/gwt-shared-state#gwt.shared-state,"Shared
+<<../gwt/gwt-shared-state#gwt.shared-state,"Shared
State">>.
@@ -69,7 +69,7 @@ to the widget.
Server-to-client communication is normally done using a __shared state__, as
described in
-<<dummy/../../../framework/gwt/gwt-shared-state#gwt.shared-state,"Shared
+<<gwt-shared-state#gwt.shared-state,"Shared
State">>, as well as RPC calls. The serialization of the state data is handled
completely transparently.
@@ -77,7 +77,7 @@ ifdef::web[]
Once the client-side engine receives the changes from the server, it reacts to
them by creating and notifying connectors that in turn manage widgets. This is
described in
-<<dummy/../../../framework/gwt/gwt-advanced#gwt.advanced.phases,"Client-Side
+<<gwt-advanced#gwt.advanced.phases,"Client-Side
Processing Phases">> in more
detail.
endif::web[]
@@ -85,7 +85,7 @@ endif::web[]
For client-to-server communication, a connector can make remote procedure calls
(RPC) to the server-side. Also, the server-side component can make RPC calls to
the connector. For a thorough description of the RPC mechanism, refer to
-<<dummy/../../../framework/gwt/gwt-rpc#gwt.rpc,"RPC Calls Between Client- and
+<<gwt-rpc#gwt.rpc,"RPC Calls Between Client- and
Server-Side">>.
diff --git a/documentation/gwt/gwt-eclipse.asciidoc b/documentation/gwt/gwt-eclipse.asciidoc
index adbaf9fea1..1f3ed106f6 100644
--- a/documentation/gwt/gwt-eclipse.asciidoc
+++ b/documentation/gwt/gwt-eclipse.asciidoc
@@ -90,7 +90,7 @@ using the new widget set. The compilation result is written under the
[filename]#WebContent/VAADIN/widgetsets# folder. When you need to recompile the
widget set in Eclipse, see <<gwt.eclipse.compiling>>. For detailed information
on compiling widget sets, see
-<<dummy/../../../framework/clientside/clientside-compiling#clientside.compiling,"Compiling
+<<../clientside/clientside-compiling#clientside.compiling,"Compiling
a Client-Side Module">>.
The following setting is inserted in the [filename]#web.xml# deployment
@@ -146,12 +146,12 @@ You can speed up the compilation significantly by compiling the widget set only
for your browser during development. The generated [filename]#.gwt.xml#
descriptor stub includes a disabled element that specifies the target browser.
See
-<<dummy/../../../framework/clientside/clientside-module#gwt.module.compilation-limiting,"Limiting
+<<../clientside/clientside-module#gwt.module.compilation-limiting,"Limiting
Compilation Targets">> for more details on setting the [literal]#++user-agent++#
property.
For more information on compiling widget sets, see
-<<dummy/../../../framework/clientside/clientside-compiling#clientside.compiling,"Compiling
+<<../clientside/clientside-compiling#clientside.compiling,"Compiling
a Client-Side Module">>. Should you compile a widget set outside Eclipse, you
need to refresh the project by selecting it in [guilabel]#Project Explorer# and
pressing F5.
diff --git a/documentation/gwt/gwt-javascript.asciidoc b/documentation/gwt/gwt-javascript.asciidoc
index a46dbfc3c4..2dead86f07 100644
--- a/documentation/gwt/gwt-javascript.asciidoc
+++ b/documentation/gwt/gwt-javascript.asciidoc
@@ -233,7 +233,7 @@ mechanism, as described in the next section.
User interaction with the JavaScript component has to be passed to the
server-side using an RPC (Remote Procedure Call) mechanism. The JavaScript RPC
mechanism is almost equal to regular client-side widgets, as described in
-<<dummy/../../../framework/gwt/gwt-rpc#gwt.rpc,"RPC Calls Between Client- and
+<<gwt-rpc#gwt.rpc,"RPC Calls Between Client- and
Server-Side">>.
[[gwt.javascript.rpc.handling]]
diff --git a/documentation/gwt/gwt-overview.asciidoc b/documentation/gwt/gwt-overview.asciidoc
index 16841ab791..c2e31cac68 100644
--- a/documentation/gwt/gwt-overview.asciidoc
+++ b/documentation/gwt/gwt-overview.asciidoc
@@ -53,7 +53,7 @@ event to the server-side using RPC.
== Project Structure
Widget set compilation, as described in
-<<dummy/../../../framework/clientside/clientside-module#clientside.module,"Client-Side
+<<../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
@@ -68,7 +68,7 @@ The basic project structure is illustrated in <<figure.gwt.overview.project>>.
image::img/gwt-widget-files-hi.png[]
The Eclipse wizard, described in
-<<dummy/../../../framework/gwt/gwt-eclipse#gwt.eclipse,"Starting It Simple With
+<<gwt-eclipse#gwt.eclipse,"Starting It Simple With
Eclipse">>, creates a widget integration skeleton with the above structure.
diff --git a/documentation/gwt/gwt-server-side.asciidoc b/documentation/gwt/gwt-server-side.asciidoc
index 9abf389a5e..8d2d12ee5e 100644
--- a/documentation/gwt/gwt-server-side.asciidoc
+++ b/documentation/gwt/gwt-server-side.asciidoc
@@ -16,7 +16,7 @@ client-side, in addition to any server-side logic.
== Basic Server-Side Component
The component state is usually managed by a __shared state__, described later in
-<<dummy/../../../framework/gwt/gwt-shared-state#gwt.shared-state,"Shared
+<<gwt-shared-state#gwt.shared-state,"Shared
State">>.
[source, java]
diff --git a/documentation/gwt/gwt-shared-state.asciidoc b/documentation/gwt/gwt-shared-state.asciidoc
index 422ef43e1e..2b7c919a6d 100644
--- a/documentation/gwt/gwt-shared-state.asciidoc
+++ b/documentation/gwt/gwt-shared-state.asciidoc
@@ -122,7 +122,7 @@ by delegating the property value directly to the widget, as described in
ifdef::web[]
The processing phases of state changes are described in more detail in
-<<dummy/../../../framework/gwt/gwt-advanced#gwt.advanced.phases,"Client-Side
+<<gwt-advanced#gwt.advanced.phases,"Client-Side
Processing Phases">>.
endif::web[]
diff --git a/documentation/gwt/gwt-styling.asciidoc b/documentation/gwt/gwt-styling.asciidoc
index 6a903b6524..f9c2bc0e11 100644
--- a/documentation/gwt/gwt-styling.asciidoc
+++ b/documentation/gwt/gwt-styling.asciidoc
@@ -60,7 +60,7 @@ as well.
A client-side module, which is normally a widget set, can include stylesheets.
They must be placed under the [filename]#public# folder under the folder of the
widget set, a described in
-<<dummy/../../../framework/clientside/clientside-module#clientside.module.stylesheet,"Specifying
+<<../clientside/clientside-module#clientside.module.stylesheet,"Specifying
a Stylesheet">>.
For example, you could style the widget described above as follows:
diff --git a/documentation/installing/installing-eclipse.adoc b/documentation/installing/installing-eclipse.adoc
index f797d2c08e..dac1558d6e 100644
--- a/documentation/installing/installing-eclipse.adoc
+++ b/documentation/installing/installing-eclipse.adoc
@@ -7,7 +7,7 @@ layout: page
[[installing.eclipse]]
= Installing the Eclipse IDE and Plugin
-TIP: If you are new to Vaadin, we suggest to start with <<dummy/../../../framework/tutorial#tutorial,"the tutorial">>. It also contains instructions how to set up Eclipse based development environment.
+TIP: If you are new to Vaadin, we suggest to start with <<../tutorial#tutorial,"the tutorial">>. It also contains instructions how to set up Eclipse based development environment.
If you are using the Eclipse IDE, using the Vaadin Plugin for Eclipse helps
greatly. The plugin includes wizards for creating new Vaadin-based projects,
@@ -25,7 +25,7 @@ Vaadin Designer is a visual design tool for professional developers.
It allows for easy creation of declarative designs.
It is also good as a sketching tool, as well as an easy way to learn about Vaadin components and layouts.
-Once you have installed the Eclipse IDE and the plug-in, you can create a Vaadin application project as described in <<DUMMY/../../getting-started/getting-started-first-project#getting-started.first-project, "Creating a Project in Eclipse">>.
+Once you have installed the Eclipse IDE and the plug-in, you can create a Vaadin application project as described in <<../getting-started/getting-started-first-project#getting-started.first-project, "Creating a Project in Eclipse">>.
[[installing.eclipse.ide]]
== Installing the Eclipse IDE
diff --git a/documentation/installing/installing-netbeans.asciidoc b/documentation/installing/installing-netbeans.asciidoc
index b82a31f4fe..d4ccd41f5b 100644
--- a/documentation/installing/installing-netbeans.asciidoc
+++ b/documentation/installing/installing-netbeans.asciidoc
@@ -16,7 +16,7 @@ image::img/installation-netbeans-hi.png[width=100%, scaledwidth=100%]
The installation bundle includes a web server, so you do not need that.
-Once done with the installation, you can proceed to create a Vaadin project, as described in <<DUMMY/../../../framework/getting-started/getting-started-netbeans#getting-started.netbeans, "Creating a Project with the NetBeans IDE">>.
+Once done with the installation, you can proceed to create a Vaadin project, as described in <<../getting-started/getting-started-netbeans#getting-started.netbeans, "Creating a Project with the NetBeans IDE">>.
[[installing.netbeans.ide]]
== Installing the NetBeans IDE
@@ -107,6 +107,6 @@ Click [guibutton]#Continue#.
. In the final step, select [guilabel]#Restart IDE now# and click [guibutton]#Finish#.
-You can now proceed to create a Vaadin project, as described in <<DUMMY/../../../framework/getting-started/getting-started-netbeans#getting-started.netbeans, "Creating a Project with the NetBeans IDE">>.
+You can now proceed to create a Vaadin project, as described in <<../getting-started/getting-started-netbeans#getting-started.netbeans, "Creating a Project with the NetBeans IDE">>.
The Vaadin Plug-in for NetBeans IDE can also be downloaded from the plug-in page at http://plugins.netbeans.org/plugin/50531/vaadin-plug-in-for-netbeans[plugins.netbeans.org/plugin/50531/vaadin-plug-in-for-netbeans].
diff --git a/documentation/installing/installing-overview.adoc b/documentation/installing/installing-overview.adoc
index 5b93ce3742..54988d4e97 100644
--- a/documentation/installing/installing-overview.adoc
+++ b/documentation/installing/installing-overview.adoc
@@ -23,6 +23,6 @@ managers.
You can also install it from an installation package:
* With the Eclipse IDE, use the Vaadin Plugin for Eclipse, as described in <<installing.eclipse,"Vaadin Plugin for Eclipse">>
-* With the Vaadin plugin for NetBeans IDE ( <<dummy/../../../framework/getting-started/getting-started-netbeans#getting-started.netbeans,"Creating a Project with NetBeans IDE">>) or IntelliJ IDEA
-* With Maven, Ivy, Gradle, or other Maven-compatible dependency manager, under Eclipse, NetBeans, IDEA, or using command-line, as described in <<dummy/../../../framework/getting-started/getting-started-maven#getting-started.maven,"Using Vaadin with Maven">>
-* From installation package without dependency management, as described in <<dummy/../../../framework/getting-started/getting-started-package#getting-started.package,"Vaadin Installation Package">>
+* With the Vaadin plugin for NetBeans IDE ( <<../getting-started/getting-started-netbeans#getting-started.netbeans,"Creating a Project with NetBeans IDE">>) or IntelliJ IDEA
+* With Maven, Ivy, Gradle, or other Maven-compatible dependency manager, under Eclipse, NetBeans, IDEA, or using command-line, as described in <<../getting-started/getting-started-maven#getting-started.maven,"Using Vaadin with Maven">>
+* From installation package without dependency management, as described in <<../getting-started/getting-started-package#getting-started.package,"Vaadin Installation Package">>
diff --git a/documentation/introduction/intro-ide.asciidoc b/documentation/introduction/intro-ide.asciidoc
index 7f6fb0056f..e73341277f 100644
--- a/documentation/introduction/intro-ide.asciidoc
+++ b/documentation/introduction/intro-ide.asciidoc
@@ -31,5 +31,5 @@ It enables visual editing of declarative designs that you can use in your applic
See <<dummy/../../../designer/designer-overview#designer.overview, "Vaadin Designer">> for more information.
Using the Vaadin plug-in is the recommended way of installing Vaadin for development.
-Installing the IDEs and the plug-ins is covered in <<dummy/../../../framework/installing/installing-overview#installing, "Installing Development Tools">>.
-The creation of a new Vaadin project with each IDE is covered in <<dummy/../../../framework/getting-started/getting-started-first-project#getting-started.overview, "Creating a Vaadin Project">>.
+Installing the IDEs and the plug-ins is covered in <<installing-overview#installing, "Installing Development Tools">>.
+The creation of a new Vaadin project with each IDE is covered in <<../getting-started/getting-started-first-project#getting-started.overview, "Creating a Vaadin Project">>.
diff --git a/documentation/introduction/intro-overview.asciidoc b/documentation/introduction/intro-overview.asciidoc
index beed28ac6f..f6d779269a 100644
--- a/documentation/introduction/intro-overview.asciidoc
+++ b/documentation/introduction/intro-overview.asciidoc
@@ -51,7 +51,7 @@ application architecture makes our approach a very effective one.
Behind the server-driven development model, Vaadin makes the best use of AJAX (
__Asynchronous JavaScript and XML__, see
-<<dummy/../../../framework/architecture/architecture-technology#architecture.technology.ajax,"AJAX">>
+<<../architecture/architecture-technology#architecture.technology.ajax,"AJAX">>
for a description) techniques that make it possible to create Rich Internet
Applications (RIA) that are as responsive and interactive as desktop
applications.
@@ -76,11 +76,11 @@ Vaadin allows flexible separation between the appearance, structure, and
interaction logic of the user interface. You can design the layouts either
programmatically or declaratively, at the level of your choosing. The final
appearance is defined in __themes__ in CSS or Sass, as described in
-<<dummy/../../../framework/themes/themes-overview.asciidoc#themes.overview,"Themes">>.
+<<../themes/themes-overview.asciidoc#themes.overview,"Themes">>.
We hope that this is enough about the basic architecture and features of Vaadin
for now. You can read more about it later in
-<<dummy/../../../framework/architecture/architecture-overview.asciidoc#architecture.overview,"Architecture">>,
+<<../architecture/architecture-overview.asciidoc#architecture.overview,"Architecture">>,
or jump straight to more practical things in
-<<dummy/../../../framework/application/application-overview.asciidoc#application.overview,"Writing
+<<../application/application-overview.asciidoc#application.overview,"Writing
a Server-Side Web Application">>.
diff --git a/documentation/introduction/intro-walkthrough.asciidoc b/documentation/introduction/intro-walkthrough.asciidoc
index 185498f627..43ae6a9cb3 100644
--- a/documentation/introduction/intro-walkthrough.asciidoc
+++ b/documentation/introduction/intro-walkthrough.asciidoc
@@ -53,7 +53,7 @@ user interface component, which displays simple text, and sets the text to
The example also shows how to create a button and handle button click events.
Event handling is described in
-<<dummy/../../../framework/architecture/architecture-events#architecture.events,"Events and Listeners">> and on the practical side in <<dummy/../../../framework/application/application-events#application.events,"Handling Events with Listeners">>.
+<<../architecture/architecture-events#architecture.events,"Events and Listeners">> and on the practical side in <<../application/application-events#application.events,"Handling Events with Listeners">>.
In Java 8, you can implement listeners with lambda expressions, which simplifies the handler code significantly.
The result of the Hello World application, when opened in a browser, is shown in
@@ -65,6 +65,6 @@ image::img/HelloWorld.png[scaledwidth=70%]
To run a program, you need to package it as a web application WAR package and
deploy it to a server, as explained in
-<<dummy/../../../framework/application/application-environment#application.environment,"Deploying
+<<../application/application-environment#application.environment,"Deploying
an Application">>. During development, you typically deploy to an application
server integrated with the IDE.
diff --git a/documentation/layout/layout-accordion.asciidoc b/documentation/layout/layout-accordion.asciidoc
index 737f25082f..8ee8257e60 100644
--- a/documentation/layout/layout-accordion.asciidoc
+++ b/documentation/layout/layout-accordion.asciidoc
@@ -17,7 +17,7 @@ endif::web[]
on a tab opens its contained component in the space between the tab and the next
one. You can use an [classname]#Accordion# identically to a
[classname]#TabSheet#, which it actually inherits. See
-<<dummy/../../../framework/layout/layout-tabsheet#layout.tabsheet,"TabSheet">>
+<<layout-tabsheet#layout.tabsheet,"TabSheet">>
for more information.
The following example shows how you can create a simple accordion. As the
diff --git a/documentation/layout/layout-formlayout.asciidoc b/documentation/layout/layout-formlayout.asciidoc
index 17eb6fb879..6278fc7d3c 100644
--- a/documentation/layout/layout-formlayout.asciidoc
+++ b/documentation/layout/layout-formlayout.asciidoc
@@ -18,7 +18,7 @@ shown for each field. The field captions can have an icon in addition to the
text. [classname]#FormLayout# is an ordered layout and much like
[classname]#VerticalLayout#. For description of margins, spacing, and other
features in ordered layouts, see
-<<dummy/../../../framework/layout/layout-orderedlayout#layout.orderedlayout, "VerticalLayout and HorizontalLayout">>.
+<<layout-orderedlayout#layout.orderedlayout, "VerticalLayout and HorizontalLayout">>.
The following example shows typical use of [classname]#FormLayout# in a form:
@@ -88,6 +88,6 @@ is shown as a dedicated column, the indicator for required fields is currently
shown as a part of the caption column.
For information on setting margins and spacing, see also
-<<dummy/../../../framework/layout/layout-orderedlayout#layout.orderedlayout.spacing,"Spacing
+<<layout-orderedlayout#layout.orderedlayout.spacing,"Spacing
in Ordered Layouts">> and
-<<dummy/../../../framework/layout/layout-settings#layout.settings.margins, "Layout Margins">>.
+<<layout-settings#layout.settings.margins, "Layout Margins">>.
diff --git a/documentation/layout/layout-gridlayout.asciidoc b/documentation/layout/layout-gridlayout.asciidoc
index 0ce3528e5d..f5c60113f1 100644
--- a/documentation/layout/layout-gridlayout.asciidoc
+++ b/documentation/layout/layout-gridlayout.asciidoc
@@ -65,18 +65,18 @@ A conflict causes throwing a [classname]#GridLayout.OverlapsException#.
[[layout.gridlayout.sizing]]
== Sizing Grid Cells
-You can define the size of both a grid layout and its components in either fixed or percentual units, or leave the size undefined altogether, as described in <<dummy/../../../framework/components/components-features#components.features.sizeable,"Sizing Components">>.
-<<dummy/../../../framework/layout/layout-settings#layout.settings.size,"Layout Size">> gives an introduction to sizing of layouts.
+You can define the size of both a grid layout and its components in either fixed or percentual units, or leave the size undefined altogether, as described in <<../components/components-features#components.features.sizeable,"Sizing Components">>.
+<<layout-settings#layout.settings.size,"Layout Size">> gives an introduction to sizing of layouts.
The size of the [classname]#GridLayout# component is undefined by default, so it will shrink to fit the size of the components placed inside it.
In most cases, especially if you set a defined size for the layout but do not set the contained components to full size, there will be some unused space.
The position of the non-full components within the grid cells will be determined by their __alignment__.
-See <<dummy/../../../framework/layout/layout-settings#layout.settings.alignment,"Layout Cell Alignment">> for details on how to align the components inside the cells.
+See <<layout-settings#layout.settings.alignment,"Layout Cell Alignment">> for details on how to align the components inside the cells.
The components contained within a [classname]#GridLayout# layout can be laid out
in a number of different ways depending on how you specify their height or
width.
-The layout options are similar to [classname]#HorizontalLayout# and [classname]#VerticalLayout#, as described in <<dummy/../../../framework/layout/layout-orderedlayout#layout.orderedlayout, "VerticalLayout and HorizontalLayout">>.
+The layout options are similar to [classname]#HorizontalLayout# and [classname]#VerticalLayout#, as described in <<layout-orderedlayout#layout.orderedlayout, "VerticalLayout and HorizontalLayout">>.
[WARNING]
.A layout that contains components with percentual size must have a defined size!
@@ -86,7 +86,7 @@ the component would fill the space given by the layout, while the layout would
shrink to fit the space taken by the component, which is a paradox. This
requirement holds for height and width separately. The debug mode allows
detecting such invalid cases; see
-<<dummy/../../../framework/advanced/advanced-debug#advanced.debug.mode,"Enabling
+<<../advanced/advanced-debug#advanced.debug.mode,"Enabling
the Debug Mode">>.
====
diff --git a/documentation/layout/layout-orderedlayout.asciidoc b/documentation/layout/layout-orderedlayout.asciidoc
index 8dc153bc06..118973efcf 100644
--- a/documentation/layout/layout-orderedlayout.asciidoc
+++ b/documentation/layout/layout-orderedlayout.asciidoc
@@ -178,7 +178,7 @@ the component would fill the space given by the layout, while the layout would
shrink to fit the space taken by the component, which would be a paradox. This
requirement holds for height and width separately. The debug window allows
detecting such invalid cases; see
-<<dummy/../../../framework/advanced/advanced-debug#advanced.debug.hierarchy,"Inspecting
+<<../advanced/advanced-debug#advanced.debug.hierarchy,"Inspecting
Component Hierarchy">>.
====
diff --git a/documentation/layout/layout-overview.asciidoc b/documentation/layout/layout-overview.asciidoc
index 9e6a58a836..3c0025b135 100644
--- a/documentation/layout/layout-overview.asciidoc
+++ b/documentation/layout/layout-overview.asciidoc
@@ -66,13 +66,13 @@ Or in the declarative format (roughly):
You will usually need to tune the layout components a bit by setting sizes,
expansion ratios, alignments, spacings, and so on. The general settings are
described in
-<<dummy/../../../framework/layout/layout-settings#layout.settings,"Layout
+<<layout-settings#layout.settings,"Layout
Formatting">>.
Layouts are coupled with themes that specify various layout features, such as
backgrounds, borders, text alignment, and so on. Definition and use of themes is
described in
-<<dummy/../../../framework/themes/themes-overview.asciidoc#themes.overview,"Themes">>.
+<<../themes/themes-overview.asciidoc#themes.overview,"Themes">>.
You can see a finished version of the above example in
<<figure.layout.intro.simple>>.
diff --git a/documentation/layout/layout-root-layout.asciidoc b/documentation/layout/layout-root-layout.asciidoc
index 86bab9d587..0b82967280 100644
--- a/documentation/layout/layout-root-layout.asciidoc
+++ b/documentation/layout/layout-root-layout.asciidoc
@@ -54,7 +54,7 @@ content.addComponent(menuview);
----
See
-<<dummy/../../../framework/layout/layout-settings#layout.settings.size,"Layout
+<<layout-settings#layout.settings.size,"Layout
Size">> for more information about setting layout sizes.
diff --git a/documentation/layout/layout-settings.asciidoc b/documentation/layout/layout-settings.asciidoc
index da18da92fb..97edabd9b9 100644
--- a/documentation/layout/layout-settings.asciidoc
+++ b/documentation/layout/layout-settings.asciidoc
@@ -22,7 +22,7 @@ The size of a layout component can be specified with the
[methodname]#setWidth()# and [methodname]#setHeight()# methods defined in the
[classname]#Sizeable# interface, just like for any component. It can also be
undefined, in which case the layout shrinks to fit the component(s) inside it.
-<<dummy/../../../framework/components/components-features#components.features.sizeable,"Sizing
+<<../components/components-features#components.features.sizeable,"Sizing
Components">> gives details on the interface.
[[figure.layout.settings.size.undefined]]
@@ -51,7 +51,7 @@ the component will try to fill the space given by the layout, while the layout
will shrink to fit the space taken by the component, which is a paradox. This
requirement holds for height and width separately. The debug mode allows
detecting such invalid cases; see
-<<dummy/../../../framework/advanced/advanced-debug#advanced.debug.hierarchy,"Inspecting
+<<../advanced/advanced-debug#advanced.debug.hierarchy,"Inspecting
Component Hierarchy">>.
====
@@ -120,9 +120,9 @@ example below, the buttons have 1:2:3 ratio for the expansion.
Expansion is covered in detail in the documentation of the layout components that
support it. See
-<<dummy/../../../framework/layout/layout-orderedlayout#layout.orderedlayout,"VerticalLayout
+<<layout-orderedlayout#layout.orderedlayout,"VerticalLayout
and HorizontalLayout">> and
-<<dummy/../../../framework/layout/layout-gridlayout#layout.gridlayout,"GridLayout">>
+<<layout-gridlayout#layout.gridlayout,"GridLayout">>
for details on components with relative sizes.
@@ -301,7 +301,7 @@ you can customize it in a custom theme.
In the Valo theme, you can specify the spacing with the
$v-layout-spacing-vertical and $v-layout-spacing-horizontal parameters, as
described in
-<<dummy/../../../framework/themes/themes-valo#themes.valo.variables,"Common
+<<../themes/themes-valo#themes.valo.variables,"Common
Settings">>. The spacing defaults to the $v-unit-size measure.
When adjusting spacing in other themes, you should note that it is implemented
@@ -321,7 +321,7 @@ HTML element of the layout component.
In the Valo theme, the margin sizes default to $v-unit-size. You can customize
them with $v-layout-margin-top, right, bottom, and left. See
-<<dummy/../../../framework/themes/themes-valo#themes.valo.variables,"Common
+<<../themes/themes-valo#themes.valo.variables,"Common
Settings">> for a description of the parameters.
To customize the default margins in other themes, you can define each margin
diff --git a/documentation/layout/layout-sub-window.asciidoc b/documentation/layout/layout-sub-window.asciidoc
index 9d10876efc..c1fe9550e4 100644
--- a/documentation/layout/layout-sub-window.asciidoc
+++ b/documentation/layout/layout-sub-window.asciidoc
@@ -160,7 +160,7 @@ Scroll bars in sub-windows are handled with regular HTML features, namely
As [classname]#Window# extends [classname]#Panel#, windows are also
[interfacename]#Scrollable#. Note that the interface defines __programmatic
scrolling__, not scrolling by the user. Please see
-<<dummy/../../../framework/layout/layout-panel#layout.panel,"Panel">>.
+<<layout-panel#layout.panel,"Panel">>.
(((range="endofrange", startref="term.layout.sub-window.scrolling.scrollbars")))
diff --git a/documentation/migration/migrating-to-vaadin8.asciidoc b/documentation/migration/migrating-to-vaadin8.asciidoc
index caae0f3e31..704624e0e2 100644
--- a/documentation/migration/migrating-to-vaadin8.asciidoc
+++ b/documentation/migration/migrating-to-vaadin8.asciidoc
@@ -135,13 +135,13 @@ Framework 8 no longer uses `Item`, `Property` nor `Container`.
These building blocks for the old data binding have been deprecated in favor of more Java 8 friendly APIs.
The new data model can be roughly split into three main topics, namely binding data to field components, providing data to listing components and handling selections.
-The revised <<dummy/../../../framework/datamodel/datamodel-fields.asciidoc#datamodel.fields, "Binding Components to Data">> chapter is the recommended resource to get started with learning these new concepts.
+The revised <<../datamodel/datamodel-fields.asciidoc#datamodel.fields, "Binding Components to Data">> chapter is the recommended resource to get started with learning these new concepts.
For migration from Framework 7 the key references are the following sections:
-* <<dummy/../../../framework/datamodel/datamodel-fields.asciidoc#datamodel.fields, "Editing Values in Fields">> and <<dummy/../../../framework/datamodel/datamodel-forms.asciidoc#datamodel.forms, "Binding Data to Forms">>, which cover the new data binding concepts that replace `Property` and `FieldGroup`.
+* <<../datamodel/datamodel-fields.asciidoc#datamodel.fields, "Editing Values in Fields">> and <<../datamodel/datamodel-forms.asciidoc#datamodel.forms, "Binding Data to Forms">>, which cover the new data binding concepts that replace `Property` and `FieldGroup`.
-* <<dummy/../../../framework/datamodel/datamodel-providers.asciidoc#datamodel.providers, "Showing Many Items in a Listing">>, which covers the new `Container` and `Item` replacement, the `DataProvider`, as well as the associated sorting and filtering APIs.
+* <<../datamodel/datamodel-providers.asciidoc#datamodel.providers, "Showing Many Items in a Listing">>, which covers the new `Container` and `Item` replacement, the `DataProvider`, as well as the associated sorting and filtering APIs.
-* And for the new selection APIs, <<dummy/../../../framework/datamodel/datamodel-selection.asciidoc#datamodel.selection, "Selecting Items">>.
+* And for the new selection APIs, <<../datamodel/datamodel-selection.asciidoc#datamodel.selection, "Selecting Items">>.
For a full list of incompatible changes between Framework 7 and 8, please refer to the _Incompatible or Behavior-altering Changes_ section of the release notes, available at link:https://vaadin.com/download/prerelease/8.0/8.0.0/8.0.0.beta1/release-notes.html#incompatible[].
diff --git a/documentation/portal/portal-deployment.asciidoc b/documentation/portal/portal-deployment.asciidoc
index fec0fd4793..8fcc848eb2 100644
--- a/documentation/portal/portal-deployment.asciidoc
+++ b/documentation/portal/portal-deployment.asciidoc
@@ -8,7 +8,7 @@ layout: page
= Deploying to a Portal
For OSGi portlets in Liferay 7, see
-<<dummy/../../../framework/portal/portal-osgi#portal.osgi.portlet,"Publishing a Portlet With OSGi">>.
+<<portal-osgi#portal.osgi.portlet,"Publishing a Portlet With OSGi">>.
The text below applies mostly to non-OSGi portlets.
To deploy a portlet WAR in a portal, you need to provide a
@@ -262,7 +262,7 @@ bundled in Liferay 5.3 and later.
If your portlets are contained in multiple WARs, which can happen quite
typically, you need to install the widget set and theme portal-wide so that all
the portlets can use them. See
-<<dummy/../../../framework/portal/portal-liferay#portal.liferay,"Developing
+<<portal-liferay#portal.liferay,"Developing
Vaadin Portlets for Liferay">> on configuring the widget sets in the portal
itself.
@@ -275,7 +275,7 @@ deployment, you probably want to either use Maven or an Ant script to build the
package. In Eclipse, you can right-click on the project and select "Export >
WAR". Choose a name for the package and a target. If you have installed Vaadin
in the portal as described in
-<<dummy/../../../framework/portal/portal-liferay#portal.liferay,"Developing
+<<portal-liferay#portal.liferay,"Developing
Vaadin Portlets for Liferay">>, you should exclude all the Vaadin libraries, as
well as widget set and themes from the WAR.
diff --git a/documentation/portal/portal-liferay-ipc.asciidoc b/documentation/portal/portal-liferay-ipc.asciidoc
index f60ff58bf5..c364c35cba 100644
--- a/documentation/portal/portal-liferay-ipc.asciidoc
+++ b/documentation/portal/portal-liferay-ipc.asciidoc
@@ -53,7 +53,7 @@ as from a Maven repository. To download the installation package or find out the
Maven or Ivy dependency, see the
link:https://vaadin.com/directory#addon/vaadin-ipc-for-liferay[add-on page at
Vaadin Directory], and install the add-on as described in
-<<dummy/../../../framework/addons/addons-overview.asciidoc#addons.overview,"Using
+<<../addons/addons-overview.asciidoc#addons.overview,"Using
Vaadin Add-ons">>.
The contents of the installation package are as follows:
diff --git a/documentation/portal/portal-liferay.asciidoc b/documentation/portal/portal-liferay.asciidoc
index f3a32372c6..677a0458c3 100644
--- a/documentation/portal/portal-liferay.asciidoc
+++ b/documentation/portal/portal-liferay.asciidoc
@@ -13,7 +13,7 @@ globally in Liferay so that the resources are shared between all Vaadin
portlets, as self-contained WARs where each portlet carries their own
resources or as OSGi bundles in Liferay 7.
-For Liferay 7 and OSGi portlets, see <<dummy/../../../framework/portal/portal-osgi#portal.osgi,"OSGi Portlets on Liferay 7">>. This is the recommended approach when using Vaadin 8.1 or later and Liferay 7.
+For Liferay 7 and OSGi portlets, see <<portal-osgi#portal.osgi,"OSGi Portlets on Liferay 7">>. This is the recommended approach when using Vaadin 8.1 or later and Liferay 7.
Currently, the latest Maven archetype supports the OSGi approach.
The material below applies mostly to non-OSGi portlets.
@@ -115,7 +115,7 @@ image::img/liferay-maven-profile.png[]
== Creating a Portlet Project with Maven
Creation of Vaadin a Maven project is described in
-<<dummy/../../../framework/getting-started/getting-started-maven#getting-started.maven,"Using
+<<../getting-started/getting-started-maven#getting-started.maven,"Using
Vaadin with Maven">>. For a Liferay project, you should use the
[literal]#++vaadin-archetype-liferay-portlet++#.
diff --git a/documentation/portal/portal-osgi.asciidoc b/documentation/portal/portal-osgi.asciidoc
index 67086d72e1..94ce99df50 100644
--- a/documentation/portal/portal-osgi.asciidoc
+++ b/documentation/portal/portal-osgi.asciidoc
@@ -13,7 +13,7 @@ using multiple different Vaadin versions in different portlets on a page.
For general OSGi considerations with Vaadin Framework such as packaging and
bundle manifests, and how to publish static resources such as themes and
widget sets, see
-<<dummy/../../../framework/advanced/advanced-osgi#advanced.osgi,"Vaadin OSGi Support">>.
+<<../advanced/advanced-osgi#advanced.osgi,"Vaadin OSGi Support">>.
[[portal.osgi.portlet]]
diff --git a/documentation/portal/portal-ui.asciidoc b/documentation/portal/portal-ui.asciidoc
index 78aff9b731..a5d4ce8c08 100644
--- a/documentation/portal/portal-ui.asciidoc
+++ b/documentation/portal/portal-ui.asciidoc
@@ -33,7 +33,7 @@ public class MyportletUI extends UI {
----
For OSGi portlets in Liferay 7, use additional annotations as described in
-<<dummy/../../../framework/portal/portal-osgi#portal.osgi,"OSGi Portlets on Liferay 7">>.
+<<portal-osgi#portal.osgi,"OSGi Portlets on Liferay 7">>.
The portlet theme is defined with the [classname]#@Theme# annotation as usual.
The theme for the UI must match a theme installed in the portal. You can use any
@@ -67,7 +67,7 @@ can make testing it easier than deploying it to a portal.
If you created the project as a Servlet 3.0 project, the generated UI stub
includes a static servlet class annotated with [classname]#@WebServlet#, as
described in
-<<dummy/../../../framework/getting-started/getting-started-first-project#getting-started.first-project.exploring,"Exploring
+<<../getting-started/getting-started-first-project#getting-started.first-project.exploring,"Exploring
the Project">>.
Otherwise, the following snippet can be used.
diff --git a/documentation/themes/themes-compiling.asciidoc b/documentation/themes/themes-compiling.asciidoc
index 83db89aafa..df72e0f843 100644
--- a/documentation/themes/themes-compiling.asciidoc
+++ b/documentation/themes/themes-compiling.asciidoc
@@ -23,7 +23,7 @@ If you edit the Sass theme, it is recompiled the next time you reload the page.
The on-the-fly compilation takes a bit time, so it is only available when the
Vaadin servlet is in the development mode, as described in
-<<dummy/../../../framework/application/application-environment#application.environment.parameters,"Other
+<<../application/application-environment#application.environment.parameters,"Other
Servlet Configuration Parameters">>. Also, it requires the theme compiler and
all its dependencies to be in the class path of the servlet. At least for
production, you must compile the theme to CSS, as described next.
diff --git a/documentation/themes/themes-creating.asciidoc b/documentation/themes/themes-creating.asciidoc
index 4eed47018d..5fd2b603a4 100644
--- a/documentation/themes/themes-creating.asciidoc
+++ b/documentation/themes/themes-creating.asciidoc
@@ -204,7 +204,7 @@ public class MyUI extends UI {
The Valo theme comes with a custom icon font, VaadinIcons,
which you can use as font icons, as described in
-<<dummy/../../../framework/themes/themes-fonticon#themes.fonticon,"Font
+<<themes-fonticon#themes.fonticon,"Font
Icons">>.
ifdef::web[]
@@ -238,7 +238,7 @@ projects).
You can also serve static content from a front-end caching server, which reduces
the load of the application server. In portals, you install the themes globally
in the portal in similar way, as described in
-<<dummy/../../../framework/portal/portal-liferay#portal.liferay.install,"Installing
+<<../portal/portal-liferay#portal.liferay.install,"Installing
Vaadin Resources">>.
Just make sure to update the static content when you upgrade to a newer version
@@ -250,7 +250,7 @@ endif::web[]
Creation of a default theme for custom GWT widgets is described in
-<<dummy/../../../framework/gwt/gwt-styling#gwt.styling,"Styling a Widget">>.
+<<../gwt/gwt-styling#gwt.styling,"Styling a Widget">>.
[[themes.creating.addon]]
diff --git a/documentation/themes/themes-eclipse.asciidoc b/documentation/themes/themes-eclipse.asciidoc
index bd35ce6fed..d0441208f1 100644
--- a/documentation/themes/themes-eclipse.asciidoc
+++ b/documentation/themes/themes-eclipse.asciidoc
@@ -57,10 +57,10 @@ image::img/eclipse-theme-created-annotated-hi.png[]
The created theme extends a built-in base theme with an [literal]#++@import++#
statement. See the explanation of theme inheritance in
-<<dummy/../../../framework/themes/themes-creating#themes.creating,"Creating and
+<<themes-creating#themes.creating,"Creating and
Using Themes">>. Notice that the [filename]#reindeer# theme is not located in
the [filename]#widgetsets# folder, but in the Vaadin JAR. See
-<<dummy/../../../framework/themes/themes-creating#themes.creating.builtin,"Built-in
+<<themes-creating#themes.creating.builtin,"Built-in
Themes">> for information for serving the built-in themes.
If you selected a UI class or classes in the [guilabel]#Modify application
diff --git a/documentation/themes/themes-fonticon.asciidoc b/documentation/themes/themes-fonticon.asciidoc
index 9131a004f8..623d4800b4 100644
--- a/documentation/themes/themes-fonticon.asciidoc
+++ b/documentation/themes/themes-fonticon.asciidoc
@@ -163,7 +163,7 @@ including WOFF, TTF, EOT, and SVG. Not all browsers support any one of them, so
all are needed to support all the common browsers. Extract the [filename]#fonts#
folder from the package to under your theme.
-See <<dummy/../../../framework/themes/themes-fonts#themes.fonts.loading,"Loading
+See <<themes-fonts#themes.fonts.loading,"Loading
Local Fonts">> for instructions for loading a custom font.
diff --git a/documentation/themes/themes-overview.asciidoc b/documentation/themes/themes-overview.asciidoc
index 05005ab83b..a111a733d5 100644
--- a/documentation/themes/themes-overview.asciidoc
+++ b/documentation/themes/themes-overview.asciidoc
@@ -39,7 +39,7 @@ images, [filename]#layouts# for custom layouts, and [filename]#css# for
additional stylesheets.
Custom themes need to extend a base theme, as described in
-<<dummy/../../../framework/themes/themes-creating#themes.creating,"Creating and
+<<themes-creating#themes.creating,"Creating and
Using Themes">>. Copying and modifying an existing theme is also possible, but
it is not recommended, as it may need more work to maintain if the modifications
are small.
@@ -64,12 +64,12 @@ changed as needed.
In addition to style sheets, a theme can contain HTML templates for custom
layouts used with [classname]#CustomLayout#. See
-<<dummy/../../../framework/layout/layout-customlayout#layout.customlayout,"Custom
+<<../layout/layout-customlayout#layout.customlayout,"Custom
Layouts">> for details.
Resources provided in a theme can also be accessed using the
[classname]#ThemeResource# class, as described in
-<<dummy/../../../framework/application/application-resources#application.resources.theme,"Theme
+<<../application/application-resources#application.resources.theme,"Theme
Resources">>. This allows displaying theme resources in component icons, in the
[classname]#Image# component, and other such uses.
diff --git a/documentation/themes/themes-responsive.asciidoc b/documentation/themes/themes-responsive.asciidoc
index b0f03c65f6..07c0f47ce6 100644
--- a/documentation/themes/themes-responsive.asciidoc
+++ b/documentation/themes/themes-responsive.asciidoc
@@ -80,7 +80,7 @@ resources must be loaded from the same domain as the application. The problem
occurs only in Firefox. A SecurityError is shown in the debug window. The
limitation concerns stylesheets such as for web fonts served from external
sites, as described in
-<<dummy/../../../framework/themes/themes-fonts#themes.fonts.webfonts,"Loading
+<<themes-fonts#themes.fonts.webfonts,"Loading
Web Fonts">>.
endif::web[]
@@ -172,7 +172,7 @@ You could also play with the [literal]#++display: block++# vs
Notice that, while the [classname]#Responsive# extension makes it possible to do
various CSS trickery with component sizes, the normal rules for component and
layout sizes apply, as described in
-<<dummy/../../../framework/layout/layout-settings#layout.settings.size,"Layout
+<<layout-settings#layout.settings.size,"Layout
Size">> and elsewhere, and you should always check the size behaviour of the
components. In the above example, we set the label to have undefined width,
which disables word wrap, so we had to re-enable it.
diff --git a/documentation/themes/themes-sass.asciidoc b/documentation/themes/themes-sass.asciidoc
index 4b1f529de1..941fceab90 100644
--- a/documentation/themes/themes-sass.asciidoc
+++ b/documentation/themes/themes-sass.asciidoc
@@ -17,7 +17,7 @@ Sass can be used in two basic ways in Vaadin applications, either by compiling
SCSS files to CSS or by doing the compilation on the fly. The latter way is
possible if the development mode is enabled for the Vaadin servlet, as described
in
-<<dummy/../../../framework/application/application-environment#application.environment.parameters,"Other
+<<../application/application-environment#application.environment.parameters,"Other
Servlet Configuration Parameters">>.
[[themes.sass.overview]]
@@ -132,7 +132,7 @@ The above SCSS would translated to the following CSS:
You can also have nested rules in a mixin, which makes them especially powerful.
Mixing in rules is used when extending Vaadin themes, as described in
-<<dummy/../../../framework/themes/themes-creating#themes.creating.sass,"Sass
+<<themes-creating#themes.creating.sass,"Sass
Themes">>.
Vaadin themes are defined as mixins to allow for certain uses, such as different
@@ -148,7 +148,7 @@ excellent documentation at http://sass-lang.com/. In the following, we give just
basic introduction to using it with Vaadin.
You can create a new Sass-based theme with the Eclipse plugin, as described in
-<<dummy/../../../framework/themes/themes-eclipse#themes.eclipse,"Creating a
+<<themes-eclipse#themes.eclipse,"Creating a
Theme in Eclipse">>.
diff --git a/documentation/themes/themes-valo.asciidoc b/documentation/themes/themes-valo.asciidoc
index 4ead457d62..b80f12ff07 100644
--- a/documentation/themes/themes-valo.asciidoc
+++ b/documentation/themes/themes-valo.asciidoc
@@ -234,7 +234,7 @@ $v-hover-styles-enabled(default:[literal]#++true++#):: Specifies whether various
that mouse pointer hovers over an element.
$v-disabled-opacity(default:[literal]#++0.5++#):: Opacity of disabled components, as described in
-<<dummy/../../../framework/components/components-features#components.features.enabled,"Enabled">>.
+<<../components/components-features#components.features.enabled,"Enabled">>.
$v-selection-color(default:[literal]#++$v-focus-color++#):: Color for indicating selection in selection components.
@@ -242,12 +242,12 @@ $v-default-field-width(default:[literal]#++$v-unit-size * 5++#):: Default width
[methodname]#setWidth()#.
$v-error-indicator-color(default:[literal]#++#ed473b++#):: Color of the component error indicator, as described in
-<<dummy/../../../framework/application/application-errors#application.errors.error-indicator,"Error
+<<../application/application-errors#application.errors.error-indicator,"Error
Indicator and Message">>.
$v-required-field-indicator-color(default:[literal]#++$v-error-indicator-color++#):: Color of the required indicator in field components.
ifdef::vaadin7[]
-Field components are described in <<dummy/../../../framework/components/components-fields#components.fields.field,"Field Interface">>.
+Field components are described in <<../components/components-fields#components.fields.field,"Field Interface">>.
endif::vaadin7[]
Color specifications for $v-border, $v-bevel, and $v-shadow may use, in addition
diff --git a/documentation/tutorial.adoc b/documentation/tutorial.asciidoc
index 92a4572db2..92a4572db2 100644
--- a/documentation/tutorial.adoc
+++ b/documentation/tutorial.asciidoc