Important Notice - Forums is archived
To simplify things and help our users to be more productive, we have archived the current forum and focus our efforts on helping developers on Stack Overflow. You can post new questions on Stack Overflow or join our Discord channel.

Vaadin lets you build secure, UX-first PWAs entirely in Java.
Free ebook & tutorial.
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" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta charset="utf-8">
</head>
<body>
<div class='WMENU'>
<ul class="menu">
<li class="item1"><a>Opcion 1<span>340</span></a>
<ul>
<li><a>Cute Kittens <span>14</span></a></li>
<li><a>Strange “Stuff” <span>6</span></a></li>
<li><a>Automatic Fails <span>2</span></a></li>
</ul>
</li>
<li class="item2"><a>Opcion 2<span>147</span></a>
<ul>
<li><a>Cute Kittens <span>14</span></a></li>
<li><a>Strange “Stuff” <span>6</span></a></li>
<li><a>Automatic Fails <span>2</span></a></li>
</ul>
</li>
</ul>
</div>
</body>
</html>
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!