FX Experience Has Gone Read-Only
I've been maintaining FX Experience for a really long time now, and I love hearing from people who enjoy my weekly links roundup. One thing I've noticed recently is that maintaining two sites (FX Experience and JonathanGiles.net) takes more time than ideal, and splits the audience up. Therefore, FX Experience will become read-only for new blog posts, but weekly posts will continue to be published on JonathanGiles.net. If you follow @FXExperience on Twitter, I suggest you also follow @JonathanGiles. This is not the end - just a consolidation of my online presence to make my life a little easier!
tl;dr: Follow me on Twitter and check for the latest news on JonathanGiles.net.
by Jonathan Giles | Sep 15, 2013 | Links
A heap of links this week, with a lot of talk about JavaOne that starts next week. It sounds like it is going to be a great conference, and I wish I could be there (but as noted previously there is a pretty valid reason why I won’t be). Anywho, enjoy the links, and for those going to JavaOne enjoy it – I’ll be following via Twitter and the blogosphere ๐
- Java 7u40 was released this week, and along with that came a new release of JavaFX and Scene Builder. The JavaFX version was updated to 2.2.40, and Scene Builder was updated to 1.1. You can download Java / JavaFX and Scene Builder from the Oracle download site. The release notes for Java 7u40 and Scene Builder 1.1 are also available for your perusal.
- The Java Tutorials blog has a post titled “JavaFX 2.2.40 Documentation Introduces the New Deployment Features“.
- There is a video available on the GR8Conf Europe 2013 website of Dierk Kรถnig presenting about enterprise desktop apps with GroovyFX and OpenDolphin.
- Adam Bien has been interviewed regarding his plans for JavaOne and his thoughts on JavaFX, etc.
- Christian Schudt has blogged about his DateAxis axis for the JavaFX charting library.
- ControlsFX 8.0.2 developer preview 2 was released this week, with a large list of improvements and bug fixes, including improved SpreadsheetView, improved Actions API, and icon font support.
- Hendrik Ebbers has blogged about the new DataFX Controller API (which will be talked about more at JavaOne next week).
- Carl Dea has blogged about a BOF he is involved in at JavaOne next week called “JavaFX, Widgets, and Apps, Oh My! Launching Frameworks for Platforms Large andย Small“. If you are interested in this topic, this BOF is BOF2605 at JavaOne.
- Michael has blogged about his tutorial at JavaOne called “Creating Amazing Scientific Visualization Tools with JavaFX 8“. This is TUT6705 at JavaOne.
- Felix Bembrick has posted a JavaFX-based image pixelator (using lambdas).
- Andreas Billmann has two blog posts this week, where he details his GeoFroggerFX project (a geocaching application written in JavaFX). Firstly, he blogs about a video he has created showing GeoFroggerFX loading 11,334 caches with ease, and secondly he announces the second preview release of GeoFroggerFX.
- Andres Almiray has posted a Griffon plugin called dialogs-javafx, which has the goal to provide a set of reusable dialogs for JavaFX based applications.
- Pedro Duque Vieira has posted part two of his series on what’s new in Java 8. This post covers what might come in future releases, based on upcoming JavaOne talks.
- Sven Ruppert has three posts this week, titled ‘FullText – SearchBox for TableView Part I‘, ‘Where to find the cdi-commons and javafx modules?‘, and ‘11 lines of code for optimal col size (TableView)‘.
That’s a heap of links! ๐ Keep up the great work, and again, to everyone attending JavaOne: enjoy, and be sure to tweet every detail ๐
by Jonathan Giles | Sep 11, 2013 | ControlsFX
The releases of ControlsFX keep rolling out the door! This month we have another developer preview release of ControlsFX 8.0.2 available for download. As usual, this release adds a bunch of bug fixes and new features. The most notable changes in this release include:
Miscellaneous:
- Support for dates in the PropertySheet control.
- Support for icon font packs (like Font Awesome and IcoMoon). This is inspired by Jens Deters FontAwesomeFX work, and we look forward to future collaboration with him both inside and outside of ControlsFX.
- Improved worker progress dialog.
- Improved ControlsFX sample application to actually work from the command line! ๐ (Previously it only run if you cloned the repo and run from within an IDE, whoops!)
SpreadsheetView:
- Improved API and continued development of the SpreadsheetView control.
- Support for fixing any column to the left side of the SpreadsheetView.
Actions:
- The introduction of an ActionProxy annotation (to create actions directly by annotating methods) which can be discovered at runtime using the ActionMap class.
- The introduction of ActionTraits to more cleanly specify the functionality of actions when used in dialogs.
- The introduction of ActionTextBehavior to more easily specify what text is shown in UI controls when built from an action.
- Now that we support icon font packs and have an @ActionProxy annotation, we have linked the functionality together, so you can define an Action on a method with a font icon simply as follows: @ActionProxy(text=”Action Text”, image=”@FontAwesome:STAR”)
That is quite a nice list given ControlsFX 8.0.2 developer preview 1 only came out around a month ago! As always, head over to the ControlsFX page to download and learn how to get involved!
In general we encourage people to upgrade to this release, but do warn that of course this release is not as polished as a final release (so therefore the documentation is less complete, and the new API more likely to change). It’s up to you whether you stay on 8.01 or keep up with us ๐
I can’t conclude without thanking the contributors to this release, including Eugene Ryzhikov, Samir Hadzic,ย Henri Biestro, Jens Deters, Ryan Jaeb, and John Malc.
Finally, I know this is a wall of text – I highly recommend you all take a moment and run the HelloControlsFX sample application – in there we try to demonstrate all the functionality, and I think (and hope) you should be fairly impressed ๐
by Jonathan Giles | Sep 8, 2013 | Links
Not long now until JavaOne! It sounds like a lot of people are working on their presentations and are generally getting very excited. I wish I could be there, but alas, not this year (my wife and I are expecting our first kid in December, so I have to be a good husband)! ๐
- Johan Vos has blogged about the addition of writeback support to DataFX. With writeback support it is possible now for DataFX to connect to remote data sources (e.g. database, web services, etc), visualise this data in TableView, etc, and then write edits back to the data source! Excellent progress. Johan and Hendrik Ebbers will present more detail at JavaOne CON3202, on Wednesday September 25, 08:30 am, Hilton – Plaza B.
- Stephen Chin continues to interview people related to JavaFX who are presenting at JavaOne in a few weeks time. This week I see interviews with Johan Vos and Mark Heckler.
- There is a Silicon Valley JavaFX Users Group meetup scheduled for this Wednesday, September 11th titled “All the Nodes that are Fit to Print“, being presented by Phil Race from Oracle. Presumably this talk will be covering the new printing API in JavaFX 8.0 that Phil has developed. As always, the meetup will be broadcast live on the internet for those that can’t attend.
- Jim Laskey has posted an example of creating a JavaFX application using JavaScript and Nashorn.
- Speaking of JavaScript, Nashorn and JavaFX, Felix Bembrick has developed another performance test, comparing HTML5 with JavaFX.
- Adam Bien has announced that afterburner.fx 1.0 is now available from Maven Central. afterburner.fx is a simple MVP framework with Dependency Injection for JavaFX.
- Tom Schindl has announced he will be speaking in two JavaFX-related sesions at EclipseCon Europe.
- Pedro Duque Vieira has two posts related to his work developing improvements to the JavaFX charting APIs. In particular, he has created a DateAxis class and an XYBarChart class.
- Narayan G. Maharjan has posted about ListCell animation inside a JavaFX ListView control.
- Sven Ruppert has two posts this week. Firstly, a post titled ‘MultiLevel DrillDownPieChart in less then 30min as component for TableViews‘. Secondly, he has a post titled ‘CDI – ComboBoxCell – How to reduce 80% of code‘.
- Javier Godino has a video showing a JavaFX application capturing webcam input.
- Jeffrey Guenther has posted a sample showing how to use property bindings and event handlers in JavaFX.
That’s a lot of links! Keep up the great work and I’ll catch you all next week ๐
by Jonathan Giles | Sep 1, 2013 | Links
A bunch of links this week – enjoy! ๐
- Tom Schindl has a blog about his progress on an FXML to Java converter, that removes the need to parse FXML files at runtime (which should prove beneficial on low-end devices / embedded devices).
- Hendrik Ebbers has a blog post about BoxFX, a project he is working on with Claudine Zillmann (their previous project together being AquaFX – a Mac OS X theme for JavaFX). BoxFX is an application container for JavaFX applications that will run on the Raspberry Pi. It is optimized for HD resolution and can be controlled by a remote.
- In another post, Hendrik has a post titled ‘Pimp your App by using the BlurPane‘, which talks about placing a blur effect behind your popup to make the popup stand out better.
- The JavaFX controls team has a number of user experience specifications they follow when developing and testing their UI controls. These UX specifications have been moving quite rapidly onto the OpenJDK wiki due to the hard work of Jindra Dinga, our user experience expert.
- The JavaFX Tutorials website (whose author is unclear) has published an overview of some of the new features coming up in JavaFX 8.0.
- The Oracle Technical Network has published another case study, this time on Facewizz, which uses JavaFX for facial surgery planning.
- Stephen Chin has been interviewing some of the presenters due to be at JavaOne this year, to have them detail some of the details of the talks they will be presenting in a few weeks time. Interviews have been conducted with Gerrit Grunwald, Dierk Kรถnig, and Toni Epple.
- Sven Ruppert has blogged about how to setup a JavaFX / CDI component.
- LoadUI 2.6 has been released. LoadUI is a load testing tool for web services, and this is the first release where it has been updated to be built using JavaFX 2.x (previous releases were based on JavaFX 1.x).
- Michael has blogged about the first commercial JavaFX application his company has released: a JavaFX based accounting & cash register system for garage sales, flee markets and even large events.
- Jens Deters has a post about creating a JavaFX user interface that drives a stepper motor connected to a Raspberry Pi.
- Mark Heckler has posted about his upcoming sessions at JavaOne including a talk on JavaFX widgets and Java Embedded.
- A tutorial has appeared on the Oracle Learning Library website entitled ‘Developing an Enterprise Application with JavaFX 2.0 and Java EE 7‘.
That’s that for another week – catch you again next week ๐
by Jonathan Giles | Aug 25, 2013 | Links
A heap of great links this week, totally ruining my pre-JavaOne quietness theory, but I’m not complaining! ๐ Let’s get right into it.
- Tom Eugelink has two interesting blog posts this week. Firstly, he has blogged about how to use CSS as part of the JavaFX API to make styling custom controls easier and more consistent with the built-in JavaFX controls. Secondly, he has a post about providing custom builders to the JavaFX FXML loader, so that it can handle setting properties on classes where it would otherwise fail (e.g. converting a String to a DateFormat instance).
- Pedro Duque Vieira has a post about what is new in JavaFX 8.0, listing off a lot of the nice features coming up in the next major release of JavaFX.
- Speaking of new features in JavaFX 8.0, Jim Weaver has posted a video of the new DatePicker control coming in JavaFX 8.0. For those of you sticking with JavaFX 2.x for the foreseeable future, it also shows the JFXtras CalendarPicker control.
- Michael has a post about adding custom icons to the JFXtras Window control (also known as VFXWindows).
- Robert Ladstรคtter has a post about an application he is calling HSV Ranger, which allows for determining HSV values for objects you show to the application via your webcam. It’s also nice to see that ControlsFX is being used in this project.
- Speaking of ControlsFX, Eugene Ryzhikov, one of my partners in crime on that project is now using it in another of his side projects: a JavaFX-based markdown editor called Markdown Pad FX.
- Christian Schudt has written about beefing up the animations in JavaFX with custom easing functions.
- Granite Data Services 3.0.0.M3 is out and available for download here. You can learn more about GraniteDS 3.0.0.M3, or you can go and check out the updated sample app.
- Daniel Ziltener has posted about getting started with JavaFX in Clojure.
- Gerrit Grunwald has posted about a BoF at JavaOne called Raspberry Pi Showdown. This BoF is a little different in that attendees are invited to present on how they are using their Raspberry Pi’s, as long as it is JavaFX related.
- Uwe has been working on extending the 3D Viewer app to support FBX files.
- Felipe Pedroso, community manager at Intel was interviewed at TDC 2013 (warning: direct YouTube link) about his work on a pretty neat multitouch image viewer application.
- Ben Ashby has posted a tip on making sure you interact with JavaFX on the correct thread.
- Jeff Martin has published a video demo of ReportMill’s new JavaFX RAD tool, Java Inventor, creating an AddressBook app from scratch in minutes.
- QuantCell Research have announced their JavaFX-based product is now available for purchase. As they put it, “QuantCell is a big data spreadsheet and an end-user programming tool. It improves turnaround time and enables SMEs to benefit from big data. It enables non-developers to build complex analysis, models and applications, and it brings the capabilities of major programming languages to the spreadsheet user.”
That’s it folks. Catch you next week!
by Jonathan Giles | Aug 18, 2013 | Links
Another week has rolled by, and so have another batch of links. This week is a little quiet, owing mainly to the pre-JavaOne quiet period that seems to happen every year (I’ve been writing this blog for so long patterns do eventually emerge) ๐ Anywho, enjoy! ๐
- John Malc has published part three of his ‘Developing a Complex Bank Application in JavaFX‘ series of posts, this time focusing on the ControlsFX project. I’m pleased to read that he is happy with all the effort the ControlsFX developers (including myself)ย have put into the javadocs – we really busted our gut to get a top-notch example of how javadoc should be written (although I should note that the current documentation online is for our 8.0.2 developer preview 1 release, so it is a little lower quality than we would normally have in a final release).
- Chris Newland has posted about his Raspberry Pi TFT hack and video glasses, which run JavaFX.
- The tomoTaka blog has an article about writing a WebSocket echo client using JavaFX.
- Modellus 0.4 was recently released. Modellus is a freely available software package that enables students and teachers to use mathematics to create or explore models interactively.
That’s all this week. I’ll catch you all in a weeks time! ๐
by Jonathan Giles | Aug 11, 2013 | Links
Another week, and not surprisingly another weeks worth of Java desktop links. This week there are a number of new releases and interesting blog posts to read. Enjoy! ๐
- Daniel Zwolenski has blogged about developing JavaFX applications to work on iOS using RoboVM and Maven.
- Tom Schindl developed support for using LESS in JavaFX. From my naive understanding, LESS is a CSS pre-processor, which allows for a more powerful feature set by giving designers and developers access to variables, mixins, functions, string interpolation, imports, and many other features.
- OpenDolphin 0.8 was released recently, and this release appears to be focused on scaling and production readiness.
- Toni Epple has been working on a tower defense style game using his game engine. He has written six parts so far, covering various aspects of the development process (note the six separate links there).
- Jรถrn Hameister has posted about SVGPath and PathTransition functionality in JavaFX.
- Felix Bembrick has posted an analysis of JavaFX Canvas versus HTML5ย Canvas.
- The Oracle Technology Network has posted a whitepaper on how ‘Codelse Helps Brittany Ferries Manage Terminal Communications With JavaFX‘.
- Sai Pradeep Dandem has created a JavaFX-based magnifier component, that allows for a subsection of a screen to be magnified when the mouse hovers over it. This code is now in the process of transitioning into the JFXtras project.
- Christoph Nahr has two posts this week. Firstly, he has blogged about his MIME Browser 1.1 being released. Secondly, he has a blog post about JavaFX DPI scaling.
- software4java.com has a blog post about some of the upcoming Java / JavaFX talks at JavaOne that relate to mobile and embedded.
- I blogged about the new SortedList functionality in JavaFX 8.0, and in particular how to use it from the TableView control to allow for users to return a TableView back to an unsorted state (after being sorted).
- I released Scenic View 8.0.0 developer preview 4, which is primarily a fix release to allow it to work on the latest developer preview releases of JavaFX 8.0.
- I also released ControlsFX 8.0.2 developer preview 1, which on top of all the features from earlier releases now also includes native titlebars for dialogs, a SpreadsheetView control, and a new control called HyperlinkLabel. More importantly, this is the first build to work with JavaFX 8.0 b102 and later, as there were changes to the implementation in this release that broke earlier ControlsFX releases.
I hope you all found something worth reading. Catch you all again next week ๐
by Jonathan Giles | Aug 11, 2013 | ControlsFX
I seem to be on a blogging / open source release roll at the moment, as I’ve got a new release of ControlsFX available today to go with the release of Scenic View I put out the other day. This release of ControlsFX is the first developer preview release of ControlsFX 8.0.2, and contains a number of bug fixes and new features (as always, note that 0.0.x releases in ControlsFX are major releases, despite what the number implies). For those of you playing along at home, ControlsFX is continuing to be developed at breakneck pace – we’ve so far had major releases in May, June, July and now August (we’re apparently marching at around a one-release-a-month beat).
This release was primarily driven due to changes in private API in JavaFX 8.0 b102 and later that causes ControlsFX to no longer work in these releases. Therefore, ControlsFX 8.0.0 and ControlsFX 8.0.1 releases are now effectively deprecated due to this, as they no longer work, and ControlsFX 8.0.2 developer preview 1 requires JavaFX 8.0 b102 or later.
(more…)
by Jonathan Giles | Aug 8, 2013 | Scenic View
Just a really quick post about the availability of Scenic View 8.0.0 developer preview 4. This release is simply to get Scenic View working with the latest release developer preview builds of JavaFX 8.0.
For those unfamiliar with Scenic View, here’s a short blurb: Scenic View is a JavaFX application designed to make it simple to understand the current state of your application scenegraph, and to also easily manipulate properties of the scenegraph without having to keep editing your code. This lets you find bugs, and get things pixel perfect without having to do the compile-check-compile dance.
For those of you who like pictures more than text, here is a (really old) screenshot of Scenic View 1.2.0:
As always, go and download, and leave feedback as a comment in this post! I know there are bugs, but you’re running developer preview code on top of developer preview code – what did you expect?! ๐
by Jonathan Giles | Aug 4, 2013 | Controls, General
One of the big features I’ve known people have wanted for a long time (hey, I’ve wanted it too!) is support for returning a TableView back to its original, unsorted state after being sorted by the end user. In general the user interaction goes something like this:
- Click on a TableView column header once. Everything sorts in ascending order. Great!
- Click on the same column header again. Everything sorts in descending order. We’re on a roll here!
- Click on the same column again. The sort arrow disappears, and…….nothing ๐
Of course, what should happen here is that the order of the items in the table should be reset back to their original order, from before the user ever clicked on anything. If you step behind the curtains with me for the briefest of moments, you’ll realise that the only way we can really do this is to of course keep a copy of the list in its original state (or a list of all the changes to the original list, such that we can unwind the changes later on). I never really wanted to do this, as you’re just setting yourself up for failure / pain / bugs / etc. What I always wanted to do was follow the wonderful GlazedLists approach from the Swing days, where the collections themselves became smarter, and the TableView remained mostly* inconsiderate of the type of collection given to it.
(more…)