From 84e702dacadecb38815a6b43afff8d4609349a6b Mon Sep 17 00:00:00 2001 From: Erik Lumme Date: Tue, 12 Sep 2017 10:48:59 +0300 Subject: [PATCH] Migrate VaadinOnGrailsMultipleUIs --- .../VaadinOnGrailsMultipleUIs.asciidoc | 52 +++++++++++++++++++ documentation/articles/contents.asciidoc | 1 + 2 files changed, 53 insertions(+) create mode 100644 documentation/articles/VaadinOnGrailsMultipleUIs.asciidoc diff --git a/documentation/articles/VaadinOnGrailsMultipleUIs.asciidoc b/documentation/articles/VaadinOnGrailsMultipleUIs.asciidoc new file mode 100644 index 0000000000..3e42e650e3 --- /dev/null +++ b/documentation/articles/VaadinOnGrailsMultipleUIs.asciidoc @@ -0,0 +1,52 @@ +[[vaadin-on-grails-multiple-uis]] +Vaadin on grails - multiple UIs +------------------------------- + +_Versions used in this tutorial: Grails 2.3.x, Vaadin 7.1.x. News and +updates about Vaadin on Grails are available on +https://twitter.com/VaadinOnGrails[VaadinOnGrails]. This is continuation +of link:VaadinOnGrailsDatabaseAccess.asciidoc[Vaadin on Grails - Database access]_ + +In `grails-app/conf/VaadinConfig.groovy`, we can change URL mapping to +UI. Also, we can define multiple UIs to be accessible from one Grails +application. + +Create two new UIs that we will show under different URLs. `ClientUI` +will be available on http://localhost:8080/client and `ServerUI` on +http://localhost:8080/server + +[source,java] +.... +class ClientUI extends UI { + protected void init(VaadinRequest request) { + VerticalLayout layout = new VerticalLayout() + layout.setMargin(true) + Label label = new Label("Client") + layout.addComponent(label) + setContent(layout) + } +} + +class ServerUI extends UI { + protected void init(VaadinRequest request) { + VerticalLayout layout = new VerticalLayout() + layout.setMargin(true) + Label label = new Label("Server") + layout.addComponent(label) setContent(layout) + } +} +.... + +Open `VaadinConfig.groovy` and change the mapping, so the mapping points +to the new UIs. + +.... +mapping = +[ "/client/*": "app.ClientUI", + "/server/*": "app.ServerUI"] +.... + +Now we can start up the application and access both URLs to see each is +mapped to different UI class. + +image:http://vaadinongrails.com/img/mapping-uis.png[Mapping UIs] diff --git a/documentation/articles/contents.asciidoc b/documentation/articles/contents.asciidoc index 11c965dcee..d8b62de75e 100644 --- a/documentation/articles/contents.asciidoc +++ b/documentation/articles/contents.asciidoc @@ -43,3 +43,4 @@ are great, too. - link:IntegrationExperiences.asciidoc[Integration experiences] - link:VaadinOnGrailsCreateProjectInIntelliJIDEA.asciidoc[Vaadin on grails - Create project in IntelliJ IDEA] - link:VaadinOnGrailsDatabaseAccess.asciidoc[Vaadin on grails - Database access] +- link:VaadinOnGrailsMultipleUIs.asciidoc[Vaadin on grails - Multiple UIs] -- 2.39.5