Hi,
An idea that has been going around my mind for quite some time and I'd like to bring it up the community.
JavaFX is a great technology for building UI's but it requires a full blown JVM on the client side. This is ok for many projects but more and more clients like the idea of not having to install anything and just use the browser. Plus as we all now the "normal" Java has been pushed out of the main stream mobile and tablet market AND browser plugins like Java and Flash are also becoming a thing of the past.
HTML5 and tons of JavaScript libraries are the UI mainstream now for enterprise systems but is this the way to go ? The slim client which the browser has represented before is now really FAT and an irritating environment for enterprise development. HTML5/JS is great to content driven sites that must have SEO but its not the right tool for complex UIs for the enterprise. So I started thinking can we have a powerful RIA framework that would bring UI computing back to the Java server, make the client slim again and not require us to know HTML/JS even when building custom UI components.
The ideal solution that came to my head was:
noVNC - the JS VNC client
^ browser
--------------websocket---------------------------------------
v server
JavaFX application instances which
receives input events from the client
and render a stage to the VNC client
JavaFX is always present in the standard JVM on the server. Why don't we put it to good use.
The GTK people are already experimenting with the same aproach in the Broadway project.
GTK+3 With Broadway (HTML5) Backend Enabled In Ubuntu - YouTube
Question to the community: how do you like this idea ?
Question to the JavaFX team: would you support adding features to the JVM that would support the creation of an jfx2vnc library ?
Things that would be needed:
- run multiple JavaFX Applications on a servlet environment without any graphical environment like X-Windows - maybe its already doable ?
- receive events from JavaFXs rendering engine about rerendered areas,
- something like the java.awt.Robot class - or do have we already a mechanism to grammatically push events to JavaFX ?