vJUG - The JavaFX Ecosystem

1,837 views

Published on

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

Published in: Software
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,837
On SlideShare
0
From Embeds
0
Number of Embeds
122
Actions
Shares
0
Downloads
32
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

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

×