DataFX - is a JavaFX frameworks that provides additional features to create MVC based applications in JavaFX by providing routing and a context for CDI.

Related tags

GUI DataFX
Overview

ScreenShot

What you’ve stumbled upon here is a project that intends to make retrieving, massaging, populating, viewing, and editing data in JavaFX UI controls easier. It’s all that boring kludge work you have to do between getting user requirements and delivering a rich user experience.

Overview

The road between a JavaFX Application and a back-end system contains different areas. We hope that this projects helps developers crossing at least some of these areas:

  • Firstly, by providing various data source adapters to ensure convenience around populating JavaFX controls such as ListView, TreeView, TableView and your custom controls or layout components. This is achieved by abstracting away the implementation details surrounding data source retrieval and massaging, such that data can be rapidly loaded and seen on screen. We also provide convenience around features such as sorting, filtering, on-demand loading and write-back support for data that changed locally.
  • Secondly, by providing various control cell factories to ensure convenience around viewing and editing data in JavaFX controls such as ListView, TreeView and TableView. We do this by abstracting away the implementation details for a number of common JavaFX cell factories such that they can be easily installed and used in your user interface.
  • Thirdly, by providing a framework that handles flow and contexts and that integrates very well with FXML. This part helps you maintening state between different user actions, and managing the possible flows in a client application.

ScreenShot

Comments
  • Newcomer's Perspective and Some Proofreading

    Newcomer's Perspective and Some Proofreading

    Hopefully some perspective from my newbie eyes is useful.

    I've gone through the tutorials and fixed anything I've seen that could use fixing.

    I also suggested where things could be more clear. Thanks for the great work.

    opened by TurekBot 1
  • (refactor) Move startInStage() from Flow to FlowHandler to simplify testing.

    (refactor) Move startInStage() from Flow to FlowHandler to simplify testing.

    This simplifies testing of DataFX controllers a bit as the example below shows. Previously we had no possibility to use startInStage() and fetch the FlowHandler which was used in this method.

    Note: <T extends Parent> in void startInStage(Stage stage, FlowContainer<T> container), because Scene's constructor requires a Parent.

    This is based on an issue at https://github.com/TestFX/TestFX/issues/207.

    @Override
    public void start(Stage stage) throws Exception {
        Flow flow = new Flow(ManageCtrl.class);
    
        FlowHandler handler = flow.createHandler();
        handler.startInStage(stage);
    
        FlowView view = handler.getCurrentView();
        controller = (ManageCtrl) view.getViewContext().getController();
    }
    

    The complete example is here: https://gist.github.com/hastebrot/0d56eae0cae9e76c481b

    Please let me know if something needs to be changed in this PR.

    opened by hastebrot 1
  • Can't find an action with id xxx

    Can't find an action with id xxx

    hi, when I used actionHandler.navigateBack() to go back to the previous viewController, and press some button to fire some action, but got exception:Can't find an action with id xxx.

    opened by emillics 0
  • java.lang.NoClassDefFoundError: com/sun/javafx/css/parser/CSSParser on

    java.lang.NoClassDefFoundError: com/sun/javafx/css/parser/CSSParser on "flowHandler.start(container);" in Datafx 8.0.1

    Exception in Application start method
    java.lang.reflect.InvocationTargetException
    	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    	at java.base/java.lang.reflect.Method.invoke(Method.java:567)
    	at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:464)
    	at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:363)
    	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    	at java.base/java.lang.reflect.Method.invoke(Method.java:567)
    	at java.base/sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:1051)
    Caused by: java.lang.RuntimeException: Exception in Application start method
    	at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:900)
    	at javafx.graphics/com.sun.javafx.application.LauncherImpl.lambda$launchApplication$2(LauncherImpl.java:195)
    	at java.base/java.lang.Thread.run(Thread.java:830)
    Caused by: java.lang.NoClassDefFoundError: com/sun/javafx/css/parser/CSSParser
    	at de.jensd.fx.glyphs.GlyphIcon.<clinit>(GlyphIcon.java:49)
    	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    	at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    	at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500)
    	at java.base/java.lang.reflect.ReflectAccess.newInstance(ReflectAccess.java:166)
    	at java.base/jdk.internal.reflect.ReflectionFactory.newInstance(ReflectionFactory.java:404)
    	at java.base/java.lang.Class.newInstance(Class.java:591)
    	at javafx.fxml/javafx.fxml.FXMLLoader$InstanceDeclarationElement.constructValue(FXMLLoader.java:1019)
    	at javafx.fxml/javafx.fxml.FXMLLoader$ValueElement.processStartElement(FXMLLoader.java:754)
    	at javafx.fxml/javafx.fxml.FXMLLoader.processStartElement(FXMLLoader.java:2722)
    	at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2552)
    	at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2466)
    	at javafx.fxml/javafx.fxml.FXMLLoader.load(FXMLLoader.java:2435)
    	at io.datafx.controller.ViewFactory.createByController(ViewFactory.java:174)
    	at io.datafx.controller.flow.FlowHandler.start(FlowHandler.java:146)
    	at wahlprogramm.Main.start(Main.java:49)
    	at javafx.graphics/com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$9(LauncherImpl.java:846)
    	at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runAndWait$12(PlatformImpl.java:455)
    	at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428)
    	at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
    	at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427)
    	at javafx.graphics/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
    	at javafx.graphics/com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
    	at javafx.graphics/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
    	... 1 more
    Caused by: java.lang.ClassNotFoundException: com.sun.javafx.css.parser.CSSParser
    	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:602)
    	at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
    	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
    	... 26 more
    

    I am using the suggested latest version of Datafx:flow from the maven central repository:

    https://mvnrepository.com/artifact/io.datafx/flow/8.0.1

    .. and try to run this using Gradle 6.0 with a JDK version of 13.0.1

    opened by TheRealVira 0
  • Added open source license file

    Added open source license file

    Added a license file allowing other GitHub users to consider this project as Open Source. The license file is the same as specified in the Maven repository

    opened by WilliamAboucaya 0
  • Current project status

    Current project status

    What is the current status of the project? And what is its official site?

    I've posted this question about the project's up-to-date information on SO, but haven't received any answers within a month, so I've decided to ask here. Feel free to answer on SO, if you find it more suitable.

    opened by DfM7 0
  • Usage of ActionHandler in FlowHandler class

    Usage of ActionHandler in FlowHandler class

    How are the private fields of the class FlowHandler

    private SimpleObjectProperty<BeforeFlowActionHandler> beforeFlowActionHandler;
    private SimpleObjectProperty<AfterFlowActionHandler> afterFlowActionHandler;
    private SimpleObjectProperty<VetoableBeforeFlowActionHandler> vetoableBeforeFlowActionHandler;
    private SimpleObjectProperty<VetoHandler> vetoHandler;
    

    populated and used in datafx? I would like to fire an event after a flow has taken place having access to the actionId. Are they accessed via reflection or just idle at the moment? Any chance we get some getters/setters?

    opened by KilianB 0
Owner
Guigarage
GitHub account for all Open Source projects that are maintained by GuiGarage
Guigarage
JavaFX with CDI example project

javafx-cdi-example JavaFX with CDI example. ⚠️ In case you have a hi-resolution display and want to run the application on Ubuntu, make sure to pass a

fuin.org 4 Aug 4, 2022
A Javafx Library for building MVC Applications.

A JavaFx Library For Making MVC Type Desktop Applications Installation requires Java jdk > 7 for windows requres openjdk-7 or 8 and openjfx for linux

Obi Uchenna David 38 Apr 30, 2022
Lib-Tile is a multi Maven project written in JavaFX and NetBeans IDE 8 and provides the functionalities to use and handle easily Tiles in your JavaFX application.

Lib-Tile Intention Lib-Tile is a multi Maven project written in JavaFX and NetBeans IDE and provides the functionalities to use and handle easily Tile

Peter Rogge 13 Apr 13, 2022
A maven plugin to include features from jmeter-plugins.org for JMeterPluginsCMD Command Line Tool to create graphs, export csv files from jmeter result files and Filter Result tool.

jmeter-graph-tool-maven-plugin A maven plugin to create graphs using the JMeter Plugins CMDRunner from JMeter result files (*.jtl or *.csv) or using F

Vincent DABURON 6 Nov 3, 2022
Old and archived; More recent development is in https://github.com/Create-Fabric/Create-Refabricated.

NOW ARCHIVED Go here for the continuation of this project. Old README Create Fabric A Fabric port of Create. Create Discord: https://discord.gg/AjRTh6

null 12 Dec 7, 2022
Provides lobby features for mc servers running BedWars1058 in bungee mode.

BedWarsProxy is a plugin for Bungeecord networks that are running BedWars1058 in BUNGEE mode. This plugin provides features for lobby servers: join gu

Andrei Dascălu 18 Dec 26, 2022
🍏 A collection of partial JNA bindings for various macOS frameworks. (e.g. Foundation, AppKit, etc.)

JNApple ?? A collection of partial JNA bindings for various macOS frameworks. (e.g. Foundation, AppKit, etc.) Usage These are just some common example

Iridescent 3 Jun 19, 2022
An Android library that allows you to easily create applications with slide-in menus.

An Android library that allows you to easily create applications with slide-in menus. You may use it in your Android apps provided that you cite this project and include the license in your app. Thanks!

Jeremy Feinstein 11.1k Jan 4, 2023
Tray Icon implementation for JavaFX applications. Say goodbye to using AWT's SystemTray icon, instead use a JavaFX Tray Icon.

FXTrayIcon Library intended for use in JavaFX applications that makes adding a System Tray icon easier. The FXTrayIcon class handles all the messy AWT

Dustin Redmond 248 Dec 30, 2022
Lobby System Template for a multiplayer java game, with chat and other features, using JavaFX and socket TCP (will be extended to UDP).

JavaFX-MultiplayerLobbySystem JavaFX lobby system for multiplayer games with chat, ready toggle and kick buttons, using socket TCP by default. Demo Cr

Michele Righi 7 May 8, 2022
To quickly integrate your applications into the EdgeGallery platform, we provide the toolchain project to help developers quickly modify code and migrate applications to the platform.

Toolchain 工具链 工具链是MEC Developer开发者平台中的一个重要特性,当x86平台的App想要上车ARM平台时,底层的代码不可避免的需要进行修改或重写。 App提供者可以通过MEC Developer开发者平台中集成的工具链进行源代码分析,定位需要修改的源代码并根据指导意见进行修

EdgeGallery 19 Jan 7, 2022
A small tools to play with JavaFX Color.derive() function - allows to create custom colors and to save those in color palettes.

DeriveColorsFX This is not a serious application. Its a small tool where I just played with the method Color::deriveColor provided by JavaFX. Also its

Oliver Löffler 11 Oct 9, 2022
A JavaFX UI framework to create fully customized undecorated windows

CustomStage A JavaFX undecorated stage which can fully be customized Donations If this project is helpful to you and love my work and feel like showin

Oshan Mendis 186 Jan 6, 2023
CSS keyframe animation for JavaFX. Create animations like you would do with CSS.

JFXAnimation CSS keyframe animation for JavaFX. If you are using JFoenix JFXAnimation is included (currently version 1.0.0 only) Requirements JDK 8 an

Marcel Schlegel 49 Dec 28, 2022
A project that shows the different ways on how to create custom controls in JavaFX

JavaFX Custom Controls This project will show different ways on how to create custom controls in JavaFX. It will cover the following approaches: Resty

Gerrit Grunwald 27 Sep 5, 2022
The goal of this project is to create AssertJ assertions for JavaFX (8).

The goal of this project is to create AssertJ assertions for JavaFX (8).

Manuel Mauky 6 Jul 30, 2021
A maven-based JavaFX Asteroids game based on a tutorial from Lee Stemkoski

JavaFX Asteroids About This is a maven-based project which implements a JavaFX Asteroids Game. The code is based on a tutorial from Lee Stemkoski whic

null 2 Mar 2, 2022
Provides a Java API to use the JavaScript library d3.js with the JavaFx WebView

javafx-d3 Provides a Java API for using the JavaScript library d3.js with JavaFx Applications. Many thanks to the authors of the projects gwt-d3 [1] a

null 98 Dec 19, 2022
MaterialFX is an open source Java library which provides material design components for JavaFX

MaterialFX MaterialFX is an open source Java library which provides material design components for JavaFX Explore the wiki » Download Latest Demo · Re

Alessadro Parisi 744 Jan 3, 2023