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.
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.
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.
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.”
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).
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
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.
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?!
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. Read the rest of this entry »
One of the teams working on JavaFX is located in Prague. This team is responsible for many things, including the base scenegraph API, layout, core libraries, animation, and ports to some mobile devices. They have now started up a team blog to publish details of their work. The first post comes from Martin Sladecek, who is currently spending some of his time working on optimising and bug fixing the JavaFX layout APIs. His post is about the peculiarities of JavaFX layout.
We put together a demo that shows what JavaFX can do on a RaspberryPi running fill 1080p HD on a TV using 5 way navigation(Arrows + Select). I hope you enjoy it, we had a lot of fun making it.
The first section of the video is a real recording direct of the HDMI output of the Raspberry Pi. So you can see the raw performance of the device, though video capture was limited to 30fps when the Pi was rendering at 60fps much of the time. The second section is a demo of how SceneBuilder could be used to build one of the demos. In all the menus we show the little overlay of arrow keys in top right corner so you can see how the menu is being navigated.
There are 4 separate menu demos:
The first menu is a classic 2D menu system with a cool 2.5D section chooser.
This is a cool vector 2D animated menu with a fun visual style. Playing with the idea of rotation.
This is a cartoon retro style 3D menu showing 3D extruded text and 3D modeled TVs. The text and TVs were created in Cheetah 3D and exported as OBJ then imported using the OBJ importer available in the open source 3D Viewer sample app. In this demo and the next we have random animated lighting in and the ability to spin the 3D model with the <- and -> arrow keys so that the user can get a feeling for it being real time rendered 3D rather than video of offline rendered content.
This was a way out 3D menu featuring DukeBot who was a early alternative design for the Java Duke mascot that did not get chosen. He was modeled and animated by John Yoon in Maya and we then imported the Maya ASCII file directly with all animation into JavaFX. The code for this menu is pretty tiny as its mostly working off the imported Maya file. The Maya importer is also open source and in the 3D Viewer sample app.
Its mostly running on the shipping EA of JavaFX 8 Embedded we prototyped a couple changes to the platform that we are working on making them real and I hope they will make it into 8 but not sure yet if we will have time. The changes are some performance improvements to how we draw into frame buffer, also the ability to draw JavaFX with transparent background on a hardware layer over hardware decoded video.
A very quiet week this week! I guess people are now starting to prepare for JavaOne. I’ve noticed a similar phenomena in past years where things go quiet in the weeks leading up to JavaOne as everyone starts to work on their projects that they will announce and show off in sessions. In any case, enjoy the links below!
Just a reminder that if you haven’t responded to the JavaFX 2013 survey you should definitely take the two minutes required to fill it in.
Arnaud Nouard has posted an update to his Undecorator project, which is a custom styling for stages.
Jörn Hameister has posted about how to create a JavaFX-based lottery wheel. As he says in the post, “This article shows how to use TranslateTransitions, FadeTransitions, Timelines and Timeline chaining to implement a simple lottery wheel where names rotate around a point.”
I respun the ControlsFX 8.0.1 release to fix a bug in the PropertySheet control that prevented it working in some cases. You can redownload it from the usual place, or also from Maven Central.
I told you it was a quiet week! Catch you all again in a weeks time.
Hi all – welcome to another weeks worth of links! Enjoy
There is another JavaFX survey that you should definitely consider filling in if you have a spare two minutes. Your input goes straight to the relevant people inside Oracle to help with decision making, etc.
Antoine Mischler has blogged about natural language search in FXML. As stated in the blog post, “This plugin is the result of a collaboration between dooApp and the INRIA (French public science and technology institution). We investigated a new way to automatically recover traceability links between specifications and code elements.” Further on in the post they go on to say “In our work, we introduced a new approach based on the analyze of the UI labels. Our idea is that the specifications lead most of the time to texts displayed to the user in the user interface and that these texts will use a precise domain terminology. Then it’s possible to retrieve the UI label usage in the code, to identify the pieces of code you are looking for!”