Acceso a DOM

Buenos dias.
Estaba introduciendome en el mundo de Vaadin y hay una cuestión que no acabo de ver clara o como se podria realizar.

Entiendo que al ser una tecnologia que se ejecuta del lado del servidor, no se tiene acceso al DOM.
Es esto cierto y no hay forma posible de acceder al DOM?

Por ejemplo:
// CARGAMOS TEMPLATE HTML
CustomLayout MenuOpciones = new CustomLayout(“MenuOpciones”);
MenuOpciones.setSizeFull();

Donde MenuOpciones.html seria algo parecido a:

<?xml version="1.0" encoding="utf-8" ?>

Se me visualiza correctamente pero no habria forma de añadir los clickhanderls a esas opciones?

Muchas gracias.

Hola,

Lo que podrías hacer (y es el objetivo de
CustomLayout
) es algo como esto:

...
<li><div location="cute-kittens"></div><span>14</span></a></li>
...

Y luego agregar un botón así:

... Button cuteKittens = new Button("Cute Kittens"); menuOpciones.addComponent(cuteKittens, "cute-kittens"); ... A este botón puedes agregarle un
ClickListener
para responder al evento.

De hecho, prodrías construir toda la página usando sólo la API Java de Vaadin, sin necesidad de escribir HTML en absoluto, pero si realmente necesitas usar HTML, el ejemplo anterior muestra la forma de integrarlo con Vaadin.

Saludos!

Hola Alejandro.
Gracias por contestar.

Si la opción que comentas de añadirle un div y luego agregarle un boton ya la probe.
Y funcionaba, el problema es que esos trozos de html van ligados a .css los cuales les da una visualización concreta ( vamos es un menu con desplegables).
Y a la hora de agregarle el boton pierde la configuracion css y se visualiza el boton clasico.

De todas formas aun estoy evaluando la opción de Vaadin como framework ya que no se si es la adecuada para el proyecto en cuestión.
Porque una de las finalidades principales es agregarle funciones de WebRTC, y al ser Vaadin ejecutado en el lado del servidor no creo que case o tenga una buena adaptación de dichos codigos Webrtc que permiten comunicaciones cliente-cliente.

Un saludo.

Hola,

La apariencia de los botones la puedes modificar usando CSS o SASS. Simplemente tienes que usar las clases CSS descritas en
este link
. Si estás usando Valo, también puede interesarte
este demo
.

Con respecto a WebRTC, podrías darle un vistazo a este add-on:
RemoteConnection
.

Saludos!