Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
THE JAVAFX
ECOSYSTEM
ANDRES ALMIRAY
@AALMIRAY
DISCLAIMER
THE JAVAFX ECOSYSTEM IS COMPRISED OF
OPEN SOURCE AND COMMERCIAL
OFFERINGS.
ALL PROJECTS LISTED IN THIS
PRESENTATION ARE OP...
LAYOUT
MigLayout - http://miglayout.com
<?xml	
  version="1.0"	
  encoding="UTF-­‐8"?>	
  
	
  
<?import	
  javafx.scene.control....
WIDGETS
Medusa - https://github.com/HanSolo/Medusa
TilesFX - https://github.com/HanSolo/tilesfx
JSilhouette - https://github.com/aalmiray/jsilhouette
JideFX - https://github.com/jidesoft/jidefx-oss
Fields: FormattedTextField, NumericTextField, etc.
Decoration: apply decor...
RichTextFX - https://github.com/TomasMikula/RichTextFX
https://github.com/JFormDesigner/markdown-writer-fx
JFXtras - http://jfxtras.org/
ControlsFX - http://fxexperience.com/controlsfx/
Gluon Maps- https://github.com/gluonhq/maps
OrsonCharts - http://www.object-refinery.com/orsoncharts/
LOOKS
JFoenix - https://github.com/jfoenixadmin/JFoenix/
BootstrapFX - https://github.com/aalmiray/bootstrapfx/
FontawesomeFX - https://bitbucket.org/Jerady/fontawesomefx/
Ikonli - https://github.com/aalmiray/ikonli/
Undecorator - https://github.com/in-sideFX/UndecoratorBis
TESTING
TestFX - https://github.com/TestFX/TestFX
public	
  class	
  DesktopPaneTest	
  extends	
  ApplicationTest	
  {	
  
	
  	
...
TestFX - https://github.com/TestFX/TestFX
clickOn("#showSettingsButton");	
  
	
  
JFXDrawer	
  settingsPanel	
  =	
  look...
TestFX - https://github.com/aalmiray/testfx-dsl/
import	
  static	
  org.kordamp.testfx.QueryChain.$;	
  
	
  
$("#showSet...
FRAMEWORKS
Afterburner.fx - http://afterburner.adam-bien.com/
•  High productivity with WYSIWYG editor inclusion
•  No boilerplate co...
JacpFX - http://jacpfx.org/
•  Spring support
•  Maven support
•  Workbench and Perspective concepts borrowed from Eclipse...
JRebirth - http://www.jrebirth.org/
•  Simplify Thread Management
•  Avoid memory leak
•  Maintain a good SoC
•  Be the mo...
MvvmFX - https://github.com/sialcasa/mvvmFX
•  Provides necessary components to implement the MVVM
pattern with JavaFX.
• ...
TornadoFX - https://github.com/edvin/tornadofx
•  Supports both MVC, MVP and their derivatives
•  Dependency injection
•  ...
Griffon - http://griffon-framework.org/
•  Application life cycle
•  Configuration
•  MVC artifacts
•  Localized resources...
Basilisk - https://github.com/basilisk-fw/basilisk
•  Targets Desktop and Mobile platforms
•  Application life cycle
•  Co...
PLATFORMS
e(fx)clipse - http://efxclipse.bestsolution.at/
Eclipse RCP + JavaFX Views
eFX - https://bitbucket.org/sreimers/efx
NetBea...
LIBRARIES
AnchorFX - https://github.com/alexbodogit/AnchorFX
VWorkflows - https://github.com/miho/VWorkflows
ReactFX - https://github.com/TomasMikula/ReactFX
Flowless - https://github.com/TomasMikula/Flowless
UndoFX - https://githu...
RxJavaFX - https://github.com/ReactiveX/RxJavaFX
MISC
GroovyFX - http://groovyfx.org/
application(title:	
  'Sample',	
  sizeToScene:	
  true,	
  	
  	
  
	
  	
  	
  	
  	
  	...
AsciidocFX - http://asciidocfx.com/
THANK YOU!
ANDRES ALMIRAY
@AALMIRAY
vJUG - The JavaFX Ecosystem
vJUG - The JavaFX Ecosystem
vJUG - The JavaFX Ecosystem
Upcoming SlideShare
Loading in …5
×

vJUG - The JavaFX Ecosystem

2,956 views

Published on

vJUG - The JavaFX Ecosystem. https://www.meetup.com/virtualJUG/events/235903314/

Published in: Software
  • Hello! Get Your Professional Job-Winning Resume Here - Check our website! https://vk.cc/818RFv
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

vJUG - The JavaFX Ecosystem

  1. 1. THE JAVAFX ECOSYSTEM ANDRES ALMIRAY @AALMIRAY
  2. 2. DISCLAIMER
  3. 3. THE JAVAFX ECOSYSTEM IS COMPRISED OF OPEN SOURCE AND COMMERCIAL OFFERINGS. ALL PROJECTS LISTED IN THIS PRESENTATION ARE OPEN SOURCE. WE’LL ONLY COVER LIBRARIES AND FRAMEWORKS. THE JAVAFX ECOSYSTEM IS SO BIG YOU CAN’T COVER IT ALL IN 1 HOUR.
  4. 4. LAYOUT
  5. 5. MigLayout - http://miglayout.com <?xml  version="1.0"  encoding="UTF-­‐8"?>     <?import  javafx.scene.control.*?>   <?import  org.tbee.javafx.scene.layout.fxml.MigPane?>     <MigPane  xmlns:fx="http://javafx.com/fxml"                      fx:controller="org.example.SampleController"                      layout="fill,  wrap  2"                        cols="[label,  left,  pref!][grow,  50::]">          <Label  text="Username:"/>          <TextField/>          <Label  text="Password:"/>          <PasswordField/>          <Button  prefWidth="200.0"  text="Login"                          MigLayoutPane.cc="span  2,  right"/>   </MigPane>  
  6. 6. WIDGETS
  7. 7. Medusa - https://github.com/HanSolo/Medusa
  8. 8. TilesFX - https://github.com/HanSolo/tilesfx
  9. 9. JSilhouette - https://github.com/aalmiray/jsilhouette
  10. 10. JideFX - https://github.com/jidesoft/jidefx-oss Fields: FormattedTextField, NumericTextField, etc. Decoration: apply decorators anywhere (like JXLayer). Validation: custom validators; builds on top of decoration. Common utilities for animations, tooltips, hints, search, etc.
  11. 11. RichTextFX - https://github.com/TomasMikula/RichTextFX https://github.com/JFormDesigner/markdown-writer-fx
  12. 12. JFXtras - http://jfxtras.org/
  13. 13. ControlsFX - http://fxexperience.com/controlsfx/
  14. 14. Gluon Maps- https://github.com/gluonhq/maps
  15. 15. OrsonCharts - http://www.object-refinery.com/orsoncharts/
  16. 16. LOOKS
  17. 17. JFoenix - https://github.com/jfoenixadmin/JFoenix/
  18. 18. BootstrapFX - https://github.com/aalmiray/bootstrapfx/
  19. 19. FontawesomeFX - https://bitbucket.org/Jerady/fontawesomefx/
  20. 20. Ikonli - https://github.com/aalmiray/ikonli/
  21. 21. Undecorator - https://github.com/in-sideFX/UndecoratorBis
  22. 22. TESTING
  23. 23. TestFX - https://github.com/TestFX/TestFX public  class  DesktopPaneTest  extends  ApplicationTest  {          public  void  start(Stage  stage)  {  /*  init  */  }            @Test          public  void  should_drag_file_into_trashcan()  {                  //  given:                  rightClickOn("#desktop").moveTo("New")                                          .clickOn("Text  Document");                  write("myTextfile.txt").push(ENTER);                    //  when:                  drag(".file").dropTo("#trash-­‐can");                    //  then:                  verifyThat("#desktop",  hasChildren(0,  ".file"));          }   }  
  24. 24. TestFX - https://github.com/TestFX/TestFX clickOn("#showSettingsButton");     JFXDrawer  settingsPanel  =  lookup("#drawer").query();   waitUntil(settingsPanel,  isShown(),  defaultWaitTimeout());     verifyThat("#username",  hasText(defaultUsernameValue));   clickOn("#username").eraseText(defaultUsernameValue.length());   clickOn("#username").write(usernameValue);   verifyThat("#username",  hasText(usernameValue));  
  25. 25. TestFX - https://github.com/aalmiray/testfx-dsl/ import  static  org.kordamp.testfx.QueryChain.$;     $("#showSettingsButton")          .click()   .$$("#drawer")          .waitUntil(isShown(),  defaultWaitTimeout())   .$$("#username")          .verifyThat(hasText(defaultUsernameValue))          .click()          .eraseText(defaultUsernameValue.length())          .write(usernameValue)          .verifyThat(hasText(usernameValue));  
  26. 26. FRAMEWORKS
  27. 27. Afterburner.fx - http://afterburner.adam-bien.com/ •  High productivity with WYSIWYG editor inclusion •  No boilerplate code •  Highest possible non-intrusion •  No external libraries or dependencies •  Maven 3 build support
  28. 28. JacpFX - http://jacpfx.org/ •  Spring support •  Maven support •  Workbench and Perspective concepts borrowed from Eclipse •  Messaging •  Light-weight event bus •  View templates
  29. 29. JRebirth - http://www.jrebirth.org/ •  Simplify Thread Management •  Avoid memory leak •  Maintain a good SoC •  Be the more convenient as possible for developers •  Be lightweight (and modularizable) •  Follow OSS spirit and Java Best Practices •  Maven compatible •  MVC
  30. 30. MvvmFX - https://github.com/sialcasa/mvvmFX •  Provides necessary components to implement the MVVM pattern with JavaFX. •  Maven compatible.
  31. 31. TornadoFX - https://github.com/edvin/tornadofx •  Supports both MVC, MVP and their derivatives •  Dependency injection •  Type safe GUI builders •  Type safe CSS builders •  First class FXML support •  Async task execution •  EventBus with thread targeting •  Hot reload of Views and Stylesheets •  OSGi support •  REST client with automatic JSON conversion •  Zero config, no XML, no annotations
  32. 32. Griffon - http://griffon-framework.org/ •  Application life cycle •  Configuration •  MVC artifacts •  Localized resources (and injection) •  Loosely coupled actions •  Dependency injection •  Event system •  Centralized error management •  Extension points via plugins •  Maven and Gradle support
  33. 33. Basilisk - https://github.com/basilisk-fw/basilisk •  Targets Desktop and Mobile platforms •  Application life cycle •  Configuration •  MVC artifacts •  Localized resources (and injection) •  Loosely coupled actions •  Dependency injection •  Event system •  Centralized error management •  Extension points via plugins •  Gradle support
  34. 34. PLATFORMS
  35. 35. e(fx)clipse - http://efxclipse.bestsolution.at/ Eclipse RCP + JavaFX Views eFX - https://bitbucket.org/sreimers/efx NetBeans RCP + JavaFX Views
  36. 36. LIBRARIES
  37. 37. AnchorFX - https://github.com/alexbodogit/AnchorFX
  38. 38. VWorkflows - https://github.com/miho/VWorkflows
  39. 39. ReactFX - https://github.com/TomasMikula/ReactFX Flowless - https://github.com/TomasMikula/Flowless UndoFX - https://github.com/TomasMikula/UndoFX WellbehavedFX - https://github.com/TomasMikula/ WellBehavedFX
  40. 40. RxJavaFX - https://github.com/ReactiveX/RxJavaFX
  41. 41. MISC
  42. 42. GroovyFX - http://groovyfx.org/ application(title:  'Sample',  sizeToScene:  true,                              centerOnScreen:  true)  {          scene(fill:  WHITE,  width:  300,  height:  120)  {                  migLayoutPane(layoutConstraints:  'fill')  {                          label  'Username:',  constraints:  'left'                          textField  constraints:  'grow,  wrap')                          label  'Password:',  constraints:  'left'                          passwordField  constraints:  'grow,  wrap')                          button  loginAction,  constraints:  'span  2,  right'                  }          }   }  
  43. 43. AsciidocFX - http://asciidocfx.com/
  44. 44. THANK YOU! ANDRES ALMIRAY @AALMIRAY

×