diff options
author | Zhe Sun <31067185+ZheSun88@users.noreply.github.com> | 2019-05-23 09:43:31 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-05-23 09:43:31 +0300 |
commit | 0b7457325200162961cae52e7d871db928dc3cd9 (patch) | |
tree | 880bbb73259b135e53ee753c2591099e480c70f4 | |
parent | bb4898cdfb4f5d2bd34904eb1920b837ac9a3c37 (diff) | |
download | vaadin-framework-0b7457325200162961cae52e7d871db928dc3cd9.tar.gz vaadin-framework-0b7457325200162961cae52e7d871db928dc3cd9.zip |
Update broken docs syntax in github (#11596)
* Add delay to the unstable test
* Add delay for unstable tests
* Update broken docs syntax in github
* Merge branch 'master' into ZheSun88-patch-1
* Update doc reference syntax
* Merge branch 'ZheSun88-patch-1' of github.com:vaadin/framework into ZheSun88-patch-1
# Conflicts:
# documentation/components/components-overview.asciidoc
* Merge branch 'master' into ZheSun88-patch-1
* use .asciidoc
* Merge remote-tracking branch 'origin/ZheSun88-patch-1' into ZheSun88-patch-1
* use .asciidoc
* Merge branch 'master' into ZheSun88-patch-1
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 |