SlideShare a Scribd company logo
Rich Enterprise Applications with JavaFX Max Katz Senior Systems Engineer Exadel [email_address]
Max Katz Senior Systems Engineer at Exadel RIA strategy, development, training and consulting Products: Exadel JavaFX plug-in for Eclipse Exadel FacesFX (JavaFX as JSF VDL) Exadel Fiji (JSF with JavaFX and Flex) jsf4birt (JSF-BIRT integration)
Author of  Practical RichFaces (Apress) Co-author of RichFaces Dzone RefCard
Blog http://mkblog.exadel.com Twitter http://twitter.com/maxkatz
Exadel Products and services Founded in 1998, headquarters in San Francisco Bay Area 300+ employees Offices in: Concord, California - 1998  Russia, Moscow - 1999 Belarus, Minsk - 2002 Belarus, Vitebsk - 2005 Ukraine, Donetsk and Kharkov - 2006
Exadel Products Open Source with JBoss RichFaces JBoss Tools/JBoss Developer Studio Exadel JavaFX plug-in for Eclipse FacesFX Fiji (JSF – JavaFX/Flex integration) jsf4birt (JSF – BIRT/Actuate integration) Mobile ecommerce
Exadel Services Rich Enteprise Applications development Custom rich components Eclipse development Cloud services Mobile development Training
The Plan: Introduce JavaFX Show how JavaFX can be connected to enterprise back ends Other JavaFX-related projects
Options today Ajax/HTML Browser only Flash/Flex Browser + Flash player plug-in Silverlight Browser + plug-in
Another (new/old) option JavaFX  Browser + Java plug-in
What is JavaFX?
Rich client platform for building and deploying rich Internet applications JavaFX SDK JavaFX script  Java runtime (JRE)
Java applets done correctly ( almost )? Java runtime download Java runtime installation/configuration Application deployment Powerful declarative language
JavaFX Script is a DSL for creating rich UI using a powerful declarative language
Let's look at a simple example
Could JavaFX be used to create rich UI's in the enterprise?
Server options: Java EE Spring Seam
H ow to connect the client (JavaFX) with server?  Basic API to make remote calls in JavaFX Some ready-to-use framework
Flamingo Framework for easily bootstrapping JavaFX front-end with a Java EE, Seam and Spring back-end Open source
Flamingo features: CRUD tools Server-side push Offline Server integration components: Server components call Conversation support Binding Validation EL (Expression Language)
Examples
@Name ("messageManager") public class MessageManager { public void delete (int index){...} public void add (String text) {...} } public interface MessageManager { public void  delete  (int index); public void  add  (String text); } public static MessageManager getMessageManager() { return (MessageManager) FXServiceFactory .getService    (MessageManager.class, " messageManager " ); } function add(): Void {  var text = textBox.text; var msg: Message = Message {}; msg.setMessage(text); insert msg into messages; AppServiceFactory.getMessageManager().add(text);   } Server Client 1 2 3 Server  component  call Server component call
@Name ("wizardManager") @Scope(ScopeType.CONVERSATION) public class Wizard { @Begin public void start (){   log.info("starting long-running conversation");   .. } } public static void start() { ((WizardManager)    ServiceFactory.getService(WizardManager.class,    " wizardManager " )).start(); } Server Client Conversation support
@Name (&quot;messageManager&quot;) @Scope(ScopeType.SESSION) public class MessageManager { @DataModel private List<Message>  messageList ; Binding – bind (send to client) to any variable in server context public static BindingManager getBindingManager() { return (BindingManager)    ServiceFactory.getService(BindingManager.class, &quot;com.exadel.flamingo.service.binding.bindingManager&quot; ); } public static Message[] getMessageList() { List<Message> list = (List<Message>) getBindingManager() .getObject( &quot;messageList&quot; ); return list; } Server Client 1 2
@Entity @Name (&quot;message&quot;) public class Message { @Length(min=3, max=40) private String  text ; } FlamingoServiceFactory. getHessianEntityValidator().   validate( &quot;message.text&quot; , value); Server Client Hibernate and Bean Validation (JSR 303)
More examples: EL (Expression Language) Server-side push Off-line
JavaFX server-side push
JavaFX hotel booking application http://tinyurl.com/javafxhotel
Flamingo Mobile Easily connect Java EE, Seam and Spring back-ends to iPhone, Android, and BlackBerry native applications Re-use exiting enterprise services Open source
Android application connected to back-end with Flamingo
Other JavaFX projects
JavaServer Faces (JSF) is the standard component-oriented UI framework for the Java EE platform
Using JavaFX applet on JSF page JSF page Applet <h:outputText> <h:inputText> <h:dataTable> <fiji:javafx>
Fiji:  JavaFX – JSF integration Wrap any JavaFX applet as a JSF component Open source
Fiji: JSF-JavaFX integration <fiji:javaFx archive=&quot;/javafx/chart.jar&quot;  applicationClass=&quot;com.exadel.fiji.Chart&quot;/>
FacesFX  – JavaFX as JSF VDL (View Description Language) JavaFX script is a very powerful UI language
JavaFX nodes  for JSF component ValueExpression
JavaFX plug-in for Eclipse Eclipse plug-in for developing JavaFX applications Open source, free
Ajax Applications with RichFaces and JSF 2 session Tomorrow, 4:30pm
Max Katz Blog http://mkblog.exadel.com Twitter http://twitter.com/maxkatz Email [email_address] Exadel Blog http://blog.exadel.com Twitter http://twitter.com/exadel Thank you. Questions?

More Related Content

PDF
JavaCro'14 - WebLogic-GlassFish-JaaS Strategy and Roadmap – DuÅ”ko Vukmanović
HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association
Ā 
PDF
JavaCro'14 - Vaadin web application integration for Enterprise systems – Pete...
HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association
Ā 
PDF
JavaCro'14 - Consuming Java EE Backends in Desktop, Web, and Mobile Frontends...
HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association
Ā 
ODP
Spring Mvc,Java, Spring
ifnu bima
Ā 
PDF
Modern web application development with java ee 7
Shekhar Gulati
Ā 
PPTX
Advance java Online Training in Hyderabad
Ugs8008
Ā 
PDF
5 best Java Frameworks
Aegis Softtech
Ā 
PDF
Spring Mvc
ifnu bima
Ā 
JavaCro'14 - WebLogic-GlassFish-JaaS Strategy and Roadmap – DuÅ”ko Vukmanović
HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association
Ā 
JavaCro'14 - Vaadin web application integration for Enterprise systems – Pete...
HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association
Ā 
JavaCro'14 - Consuming Java EE Backends in Desktop, Web, and Mobile Frontends...
HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association
Ā 
Spring Mvc,Java, Spring
ifnu bima
Ā 
Modern web application development with java ee 7
Shekhar Gulati
Ā 
Advance java Online Training in Hyderabad
Ugs8008
Ā 
5 best Java Frameworks
Aegis Softtech
Ā 
Spring Mvc
ifnu bima
Ā 

What's hot (20)

PDF
What's Coming in Java EE 8
PT.JUG
Ā 
PPT
What's New in WebLogic 12.1.3 and Beyond
Oracle
Ā 
PPTX
Java EE vs Spring Framework
Rohit Kelapure
Ā 
PPTX
JavaFX Versus HTML5 - JavaOne 2014
Ryan Cuprak
Ā 
PPTX
Future of Java EE with Java SE 8
Hirofumi Iwasaki
Ā 
PDF
jDays2015 - JavaEE vs. Spring Smackdown
Mert Ƈalışkan
Ā 
PDF
Servlet Tutorial | JSP Tutorial | Advanced Java Tutorial | Java Certification...
Edureka!
Ā 
PDF
Low-Code Testing Tool
Niels de Bruijn
Ā 
PDF
Java Enterprise Edition 6 Overview
Eugene Bogaart
Ā 
PPTX
LUGOD Raspberry Pi Hacking
Stephen Chin
Ā 
PPT
Testing Java EE Applications Using Arquillian
Reza Rahman
Ā 
PPTX
Essential Kit for Oracle JET Programming
andrejusb
Ā 
PDF
JavaFX
Michael Heinrichs
Ā 
PPTX
Introduction To JavaFX 2.0
Boulder Java User's Group
Ā 
PPTX
Best Practices for JSF, Gameduell 2013
Edward Burns
Ā 
PDF
Travelling Light for the Long Haul - Ian Robinson
mfrancis
Ā 
PDF
JavaOne 2011: Migrating Spring Applications to Java EE 6
Bert Ertman
Ā 
PDF
Java EE 8: On the Horizon
Josh Juneau
Ā 
PDF
Java EE Revisits GoF Design Patterns
Murat Yener
Ā 
PPTX
Move from J2EE to Java EE
Hirofumi Iwasaki
Ā 
What's Coming in Java EE 8
PT.JUG
Ā 
What's New in WebLogic 12.1.3 and Beyond
Oracle
Ā 
Java EE vs Spring Framework
Rohit Kelapure
Ā 
JavaFX Versus HTML5 - JavaOne 2014
Ryan Cuprak
Ā 
Future of Java EE with Java SE 8
Hirofumi Iwasaki
Ā 
jDays2015 - JavaEE vs. Spring Smackdown
Mert Ƈalışkan
Ā 
Servlet Tutorial | JSP Tutorial | Advanced Java Tutorial | Java Certification...
Edureka!
Ā 
Low-Code Testing Tool
Niels de Bruijn
Ā 
Java Enterprise Edition 6 Overview
Eugene Bogaart
Ā 
LUGOD Raspberry Pi Hacking
Stephen Chin
Ā 
Testing Java EE Applications Using Arquillian
Reza Rahman
Ā 
Essential Kit for Oracle JET Programming
andrejusb
Ā 
Introduction To JavaFX 2.0
Boulder Java User's Group
Ā 
Best Practices for JSF, Gameduell 2013
Edward Burns
Ā 
Travelling Light for the Long Haul - Ian Robinson
mfrancis
Ā 
JavaOne 2011: Migrating Spring Applications to Java EE 6
Bert Ertman
Ā 
Java EE 8: On the Horizon
Josh Juneau
Ā 
Java EE Revisits GoF Design Patterns
Murat Yener
Ā 
Move from J2EE to Java EE
Hirofumi Iwasaki
Ā 
Ad

Viewers also liked (6)

PDF
JavaFX Enterprise
Hendrik Ebbers
Ā 
PDF
BUILDING MODERN WEB UIS WITH WEB COMPONENTS @ Devoxx
Hendrik Ebbers
Ā 
PPTX
Confessions of a Former Agile Methodologist (JFrog Edition)
Stephen Chin
Ā 
PPTX
Devoxx4Kids Lego Workshop
Stephen Chin
Ā 
PPTX
Hotel management system presentation
joilrahat
Ā 
PPTX
Hotel Reservation System Project
raj_qn3
Ā 
JavaFX Enterprise
Hendrik Ebbers
Ā 
BUILDING MODERN WEB UIS WITH WEB COMPONENTS @ Devoxx
Hendrik Ebbers
Ā 
Confessions of a Former Agile Methodologist (JFrog Edition)
Stephen Chin
Ā 
Devoxx4Kids Lego Workshop
Stephen Chin
Ā 
Hotel management system presentation
joilrahat
Ā 
Hotel Reservation System Project
raj_qn3
Ā 
Ad

Similar to Rich Enterprise Applications with JavaFX (20)

PPTX
Introduction to JSF
SoftServe
Ā 
ODP
Interoperable Web Services with JAX-WS and WSIT
Carol McDonald
Ā 
PPT
Visual Studio .NET2010
Satish Verma
Ā 
PPT
Silverlight 2 for Developers - TechEd New Zealand 2008
Jonas FollesĆø
Ā 
PPT
Flex In Portal Final
Sunil Patil
Ā 
PPTX
Developing Next-Gen Enterprise Web Application
Mark Gu
Ā 
PDF
cq_cxf_integration
Ankur Chauhan
Ā 
PPT
JEE5 New Features
Haitham Raik
Ā 
DOCX
Web services in java
maabujji
Ā 
PDF
softshake 2014 - Java EE
Alexis Hassler
Ā 
PPTX
Mike Taulty MIX10 Silverlight Frameworks and Patterns
ukdpe
Ā 
PPT
Laurens Van Den Oever Xopus Presentation
Ajax Experience 2009
Ā 
PPT
D22 Portlet Development With Open Source Frameworks
Sunil Patil
Ā 
PPT
D22 portlet development with open source frameworks
Sunil Patil
Ā 
PPTX
Exchange 2010 Web Services
Eduardo Castro
Ā 
PPTX
2008 - TechDays PT: Building Software + Services with Volta
Daniel Fisher
Ā 
ODP
JavaFX Mix
giampaolo.melis
Ā 
PPS
Simplify your professional web development with symfony
Francois Zaninotto
Ā 
PDF
Java EE 7 in practise - OTN Hyderabad 2014
Jagadish Prasath
Ā 
ODP
Presentation - Course about JavaFX
Tom Mix Petreca
Ā 
Introduction to JSF
SoftServe
Ā 
Interoperable Web Services with JAX-WS and WSIT
Carol McDonald
Ā 
Visual Studio .NET2010
Satish Verma
Ā 
Silverlight 2 for Developers - TechEd New Zealand 2008
Jonas FollesĆø
Ā 
Flex In Portal Final
Sunil Patil
Ā 
Developing Next-Gen Enterprise Web Application
Mark Gu
Ā 
cq_cxf_integration
Ankur Chauhan
Ā 
JEE5 New Features
Haitham Raik
Ā 
Web services in java
maabujji
Ā 
softshake 2014 - Java EE
Alexis Hassler
Ā 
Mike Taulty MIX10 Silverlight Frameworks and Patterns
ukdpe
Ā 
Laurens Van Den Oever Xopus Presentation
Ajax Experience 2009
Ā 
D22 Portlet Development With Open Source Frameworks
Sunil Patil
Ā 
D22 portlet development with open source frameworks
Sunil Patil
Ā 
Exchange 2010 Web Services
Eduardo Castro
Ā 
2008 - TechDays PT: Building Software + Services with Volta
Daniel Fisher
Ā 
JavaFX Mix
giampaolo.melis
Ā 
Simplify your professional web development with symfony
Francois Zaninotto
Ā 
Java EE 7 in practise - OTN Hyderabad 2014
Jagadish Prasath
Ā 
Presentation - Course about JavaFX
Tom Mix Petreca
Ā 

More from Max Katz (20)

PDF
Using cloud tools to build enterprise mobile apps with APIs fast
Max Katz
Ā 
PDF
Wolters Kluwer Tech. Conference: Disrupting Mobile Development
Max Katz
Ā 
PDF
Tiggzi at DC jQuery Meetup
Max Katz
Ā 
PDF
Learn How to Build Mobile Apps Using Cloud Services
Max Katz
Ā 
PDF
What You Need To Build Cool Enterprise Applications With JSF
Max Katz
Ā 
PDF
Tiggr Mobile Apps Builder at Silicon Valley HTML5 Group Meetup
Max Katz
Ā 
PDF
Tiggr - Web-based IDE for Mobile Web And Native Apps
Max Katz
Ā 
PDF
RichFaces 4: Rich Ajax Components For Your JSF Applications
Max Katz
Ā 
PDF
Building Mobile Apps With jQuery For Any Device In The Cloud
Max Katz
Ā 
PDF
Ajax Applications with JSF 2 and New RichFaces 4 - JAX/JSF Summit
Max Katz
Ā 
PDF
RichFaces 4 Webinar - New and Advanced Features
Max Katz
Ā 
PDF
RichFaces 4 webinar #2: RichFaces 3 toRichFaces 4
Max Katz
Ā 
PDF
Ajax Applications with JSF2 and New RichFaces 4 at JAX 2011
Max Katz
Ā 
PDF
Mobile Development Choices: Native Apps vs. Web Apps at JAX 2011
Max Katz
Ā 
PDF
RichFaces 4 webinar #1: Everything You Need To Know
Max Katz
Ā 
PDF
Ajax Applications with JSF 2 and New RichFaces 4 - CONFESS 2011
Max Katz
Ā 
PDF
Ajax Applications with JSF 2 and New RichFaces 4 - TSSJS
Max Katz
Ā 
PDF
Devoxx2010 - Mobile Development Choices: Native Apps vs Web Apps
Max Katz
Ā 
PDF
Hands On With Rich Faces 4 - JavaOne 2010
Max Katz
Ā 
PDF
Ajax Applications with JSF 2 and new RichFaces 4 - Herbstcampus
Max Katz
Ā 
Using cloud tools to build enterprise mobile apps with APIs fast
Max Katz
Ā 
Wolters Kluwer Tech. Conference: Disrupting Mobile Development
Max Katz
Ā 
Tiggzi at DC jQuery Meetup
Max Katz
Ā 
Learn How to Build Mobile Apps Using Cloud Services
Max Katz
Ā 
What You Need To Build Cool Enterprise Applications With JSF
Max Katz
Ā 
Tiggr Mobile Apps Builder at Silicon Valley HTML5 Group Meetup
Max Katz
Ā 
Tiggr - Web-based IDE for Mobile Web And Native Apps
Max Katz
Ā 
RichFaces 4: Rich Ajax Components For Your JSF Applications
Max Katz
Ā 
Building Mobile Apps With jQuery For Any Device In The Cloud
Max Katz
Ā 
Ajax Applications with JSF 2 and New RichFaces 4 - JAX/JSF Summit
Max Katz
Ā 
RichFaces 4 Webinar - New and Advanced Features
Max Katz
Ā 
RichFaces 4 webinar #2: RichFaces 3 toRichFaces 4
Max Katz
Ā 
Ajax Applications with JSF2 and New RichFaces 4 at JAX 2011
Max Katz
Ā 
Mobile Development Choices: Native Apps vs. Web Apps at JAX 2011
Max Katz
Ā 
RichFaces 4 webinar #1: Everything You Need To Know
Max Katz
Ā 
Ajax Applications with JSF 2 and New RichFaces 4 - CONFESS 2011
Max Katz
Ā 
Ajax Applications with JSF 2 and New RichFaces 4 - TSSJS
Max Katz
Ā 
Devoxx2010 - Mobile Development Choices: Native Apps vs Web Apps
Max Katz
Ā 
Hands On With Rich Faces 4 - JavaOne 2010
Max Katz
Ā 
Ajax Applications with JSF 2 and new RichFaces 4 - Herbstcampus
Max Katz
Ā 

Recently uploaded (20)

PDF
Tea4chat - another LLM Project by Kerem Atam
a0m0rajab1
Ā 
PDF
Oracle AI Vector Search- Getting Started and what's new in 2025- AIOUG Yatra ...
Sandesh Rao
Ā 
PDF
Trying to figure out MCP by actually building an app from scratch with open s...
Julien SIMON
Ā 
PDF
Using Anchore and DefectDojo to Stand Up Your DevSecOps Function
Anchore
Ā 
PDF
Cloud-Migration-Best-Practices-A-Practical-Guide-to-AWS-Azure-and-Google-Clou...
Artjoker Software Development Company
Ā 
PDF
Beyond Automation: The Role of IoT Sensor Integration in Next-Gen Industries
Rejig Digital
Ā 
PDF
NewMind AI Weekly Chronicles - July'25 - Week IV
NewMind AI
Ā 
PPTX
AI and Robotics for Human Well-being.pptx
JAYMIN SUTHAR
Ā 
PPTX
Applied-Statistics-Mastering-Data-Driven-Decisions.pptx
parmaryashparmaryash
Ā 
PPTX
IoT Sensor Integration 2025 Powering Smart Tech and Industrial Automation.pptx
Rejig Digital
Ā 
PPTX
cloud computing vai.pptx for the project
vaibhavdobariyal79
Ā 
PDF
Advances in Ultra High Voltage (UHV) Transmission and Distribution Systems.pdf
Nabajyoti Banik
Ā 
PDF
This slide provides an overview Technology
mineshkharadi333
Ā 
PPTX
What-is-the-World-Wide-Web -- Introduction
tonifi9488
Ā 
PPTX
OA presentation.pptx OA presentation.pptx
pateldhruv002338
Ā 
PDF
Event Presentation Google Cloud Next Extended 2025
minhtrietgect
Ā 
PPTX
ChatGPT's Deck on The Enduring Legacy of Fax Machines
Greg Swan
Ā 
PDF
A Strategic Analysis of the MVNO Wave in Emerging Markets.pdf
IPLOOK Networks
Ā 
PDF
Unlocking the Future- AI Agents Meet Oracle Database 23ai - AIOUG Yatra 2025.pdf
Sandesh Rao
Ā 
PDF
Automating ArcGIS Content Discovery with FME: A Real World Use Case
Safe Software
Ā 
Tea4chat - another LLM Project by Kerem Atam
a0m0rajab1
Ā 
Oracle AI Vector Search- Getting Started and what's new in 2025- AIOUG Yatra ...
Sandesh Rao
Ā 
Trying to figure out MCP by actually building an app from scratch with open s...
Julien SIMON
Ā 
Using Anchore and DefectDojo to Stand Up Your DevSecOps Function
Anchore
Ā 
Cloud-Migration-Best-Practices-A-Practical-Guide-to-AWS-Azure-and-Google-Clou...
Artjoker Software Development Company
Ā 
Beyond Automation: The Role of IoT Sensor Integration in Next-Gen Industries
Rejig Digital
Ā 
NewMind AI Weekly Chronicles - July'25 - Week IV
NewMind AI
Ā 
AI and Robotics for Human Well-being.pptx
JAYMIN SUTHAR
Ā 
Applied-Statistics-Mastering-Data-Driven-Decisions.pptx
parmaryashparmaryash
Ā 
IoT Sensor Integration 2025 Powering Smart Tech and Industrial Automation.pptx
Rejig Digital
Ā 
cloud computing vai.pptx for the project
vaibhavdobariyal79
Ā 
Advances in Ultra High Voltage (UHV) Transmission and Distribution Systems.pdf
Nabajyoti Banik
Ā 
This slide provides an overview Technology
mineshkharadi333
Ā 
What-is-the-World-Wide-Web -- Introduction
tonifi9488
Ā 
OA presentation.pptx OA presentation.pptx
pateldhruv002338
Ā 
Event Presentation Google Cloud Next Extended 2025
minhtrietgect
Ā 
ChatGPT's Deck on The Enduring Legacy of Fax Machines
Greg Swan
Ā 
A Strategic Analysis of the MVNO Wave in Emerging Markets.pdf
IPLOOK Networks
Ā 
Unlocking the Future- AI Agents Meet Oracle Database 23ai - AIOUG Yatra 2025.pdf
Sandesh Rao
Ā 
Automating ArcGIS Content Discovery with FME: A Real World Use Case
Safe Software
Ā 

Rich Enterprise Applications with JavaFX

  • 1. Rich Enterprise Applications with JavaFX Max Katz Senior Systems Engineer Exadel [email_address]
  • 2. Max Katz Senior Systems Engineer at Exadel RIA strategy, development, training and consulting Products: Exadel JavaFX plug-in for Eclipse Exadel FacesFX (JavaFX as JSF VDL) Exadel Fiji (JSF with JavaFX and Flex) jsf4birt (JSF-BIRT integration)
  • 3. Author of Practical RichFaces (Apress) Co-author of RichFaces Dzone RefCard
  • 4. Blog http://mkblog.exadel.com Twitter http://twitter.com/maxkatz
  • 5. Exadel Products and services Founded in 1998, headquarters in San Francisco Bay Area 300+ employees Offices in: Concord, California - 1998 Russia, Moscow - 1999 Belarus, Minsk - 2002 Belarus, Vitebsk - 2005 Ukraine, Donetsk and Kharkov - 2006
  • 6. Exadel Products Open Source with JBoss RichFaces JBoss Tools/JBoss Developer Studio Exadel JavaFX plug-in for Eclipse FacesFX Fiji (JSF – JavaFX/Flex integration) jsf4birt (JSF – BIRT/Actuate integration) Mobile ecommerce
  • 7. Exadel Services Rich Enteprise Applications development Custom rich components Eclipse development Cloud services Mobile development Training
  • 8. The Plan: Introduce JavaFX Show how JavaFX can be connected to enterprise back ends Other JavaFX-related projects
  • 9. Options today Ajax/HTML Browser only Flash/Flex Browser + Flash player plug-in Silverlight Browser + plug-in
  • 10. Another (new/old) option JavaFX Browser + Java plug-in
  • 12. Rich client platform for building and deploying rich Internet applications JavaFX SDK JavaFX script Java runtime (JRE)
  • 13. Java applets done correctly ( almost )? Java runtime download Java runtime installation/configuration Application deployment Powerful declarative language
  • 14. JavaFX Script is a DSL for creating rich UI using a powerful declarative language
  • 15. Let's look at a simple example
  • 16. Could JavaFX be used to create rich UI's in the enterprise?
  • 17. Server options: Java EE Spring Seam
  • 18. H ow to connect the client (JavaFX) with server? Basic API to make remote calls in JavaFX Some ready-to-use framework
  • 19. Flamingo Framework for easily bootstrapping JavaFX front-end with a Java EE, Seam and Spring back-end Open source
  • 20. Flamingo features: CRUD tools Server-side push Offline Server integration components: Server components call Conversation support Binding Validation EL (Expression Language)
  • 22. @Name (&quot;messageManager&quot;) public class MessageManager { public void delete (int index){...} public void add (String text) {...} } public interface MessageManager { public void delete (int index); public void add (String text); } public static MessageManager getMessageManager() { return (MessageManager) FXServiceFactory .getService (MessageManager.class, &quot; messageManager &quot; ); } function add(): Void { var text = textBox.text; var msg: Message = Message {}; msg.setMessage(text); insert msg into messages; AppServiceFactory.getMessageManager().add(text); } Server Client 1 2 3 Server component call Server component call
  • 23. @Name (&quot;wizardManager&quot;) @Scope(ScopeType.CONVERSATION) public class Wizard { @Begin public void start (){ log.info(&quot;starting long-running conversation&quot;); .. } } public static void start() { ((WizardManager) ServiceFactory.getService(WizardManager.class, &quot; wizardManager &quot; )).start(); } Server Client Conversation support
  • 24. @Name (&quot;messageManager&quot;) @Scope(ScopeType.SESSION) public class MessageManager { @DataModel private List<Message> messageList ; Binding – bind (send to client) to any variable in server context public static BindingManager getBindingManager() { return (BindingManager) ServiceFactory.getService(BindingManager.class, &quot;com.exadel.flamingo.service.binding.bindingManager&quot; ); } public static Message[] getMessageList() { List<Message> list = (List<Message>) getBindingManager() .getObject( &quot;messageList&quot; ); return list; } Server Client 1 2
  • 25. @Entity @Name (&quot;message&quot;) public class Message { @Length(min=3, max=40) private String text ; } FlamingoServiceFactory. getHessianEntityValidator(). validate( &quot;message.text&quot; , value); Server Client Hibernate and Bean Validation (JSR 303)
  • 26. More examples: EL (Expression Language) Server-side push Off-line
  • 28. JavaFX hotel booking application http://tinyurl.com/javafxhotel
  • 29. Flamingo Mobile Easily connect Java EE, Seam and Spring back-ends to iPhone, Android, and BlackBerry native applications Re-use exiting enterprise services Open source
  • 30. Android application connected to back-end with Flamingo
  • 32. JavaServer Faces (JSF) is the standard component-oriented UI framework for the Java EE platform
  • 33. Using JavaFX applet on JSF page JSF page Applet <h:outputText> <h:inputText> <h:dataTable> <fiji:javafx>
  • 34. Fiji: JavaFX – JSF integration Wrap any JavaFX applet as a JSF component Open source
  • 35. Fiji: JSF-JavaFX integration <fiji:javaFx archive=&quot;/javafx/chart.jar&quot; applicationClass=&quot;com.exadel.fiji.Chart&quot;/>
  • 36. FacesFX – JavaFX as JSF VDL (View Description Language) JavaFX script is a very powerful UI language
  • 37. JavaFX nodes for JSF component ValueExpression
  • 38. JavaFX plug-in for Eclipse Eclipse plug-in for developing JavaFX applications Open source, free
  • 39. Ajax Applications with RichFaces and JSF 2 session Tomorrow, 4:30pm
  • 40. Max Katz Blog http://mkblog.exadel.com Twitter http://twitter.com/maxkatz Email [email_address] Exadel Blog http://blog.exadel.com Twitter http://twitter.com/exadel Thank you. Questions?