LibFX has no strict goal for a feature set. It collects functionality I created for my use in other projects but are abstract enough to be generally helpful. Many will revolve around JavaFX (hence the name).
This somewhat vague sentiment does not translate to quality! The code is clean, which especially includes thorough testing. It is also extensively documented and contains many examples. Bugs will be addressed quickly and feature requests as well as forks and pull requests are welcome.
These features are present in the latest release:
- ControlPropertyListener: creating listeners for the property map of JavaFX controls
- ListenerHandle: encapsulating an observable and a listener for easier add/remove of the listener
- Nestings: using all the power of JavaFX' properties for nested object aggregations
- WebViewHyperlinkListener: add hyperlink listeners to JavaFX'
- TransformingCollections: transforming collections to a different parametric type
- TreeStreams: streaming nodes of a graph
- SerializableOptional: serializable wrapper for
The best documentation are the tests. But understandably nobody wants to dig into them just to understand what the classes do so there are also examples and extensive Javadoc. The best way to get to know a feature is to check out the corresponding article in the wiki. It will include a high level explanation as well as links to demos and the best entry point into the documentation. The Javadoc of the current version is published here.
If anything is missing or an explanation proves to be unhelpful, contact me (see below).
License details can be found in the LICENSE file in the project's root folder. The information provided there is binding but the gist is: LibFX is licensed under the GPL but if that does not suit your licensing model, other arrangements are possible (contact me; see below).
Releases are published on GitHub. The release notes also contain a link to the artifact in Maven Central and its coordinates.
The current version is 0.3.0:
<dependency> <groupId>org.codefx.libfx</groupId> <artifactId>LibFX</artifactId> <version>0.3.0</version> </dependency>
Some information about how this library is developed:
- The issue tracker is actively used so it is the place to report bugs and request features.
- As per GIT branching model features are developed in feature branches. If you are curious, you can check out some branches to see what is being worked on.
- This is a Maven project, so in case you want to check out the code, make sure your IDE knows about Maven.
The best starting point to everything regarding LibFX is libfx.codefx.org.
The library has its home on GitHub where the following features are especially noteworthy:
- the issue tracker, which is actively used for development
- the wiki, where all features are introduced with their own article
I use Eclipse and my project settings (like compiler warnings, formatter and save actions) can be found in the repository folder .settings. I know this is a little unusual but it makes it easier for contributors to cope with my obsession for warning free and consistently formatted code.