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!
This week I interviewed Felipe Heidrich in relation to his work on text in JavaFX (most notably rich text). This follows on from the interview I published the week prior with Tom Schindl covering his styled text editor work.
IntelliJ IDEA 12.1 has been released recently, and it includes a bunch more support for JavaFX. If this is your chosen IDE then I would highly recommend you upgrade!
I released a second developer preview release of Scenic View 8.0.0 that starts to improve startup and discovery of running applications (but there is still much to do). Please leave any comments on whether or not it works for you in the comments section – this kind of app is truly a finicky one to get right! 🙂
Claudine Zillmann posted an update on her work to develop a Mac OS X stylesheet for JavaFX. So far the progress looks good (but then I’m not all that familiar with the nuances of Mac OS X). All I can say is good luck – I look forward to reading more progress reports 🙂
Hendrik Ebbers has written about how to set a global stylesheet in your application so that you don’t need to set it per scene.
Mark Heckler has blogged about how to pretty up your JavaFX TableViews (something obviously near and dear to my heart). Some good advice here that anyone working with TableView should read (especially the updates at the end related to performance tuning!).
Gianluca Costa has posted GraphsJ 3.0, “a modern didactic application dedicated to interactively execute graph algorithms; it features both a visual user interface and an SDK to develop custom scenarios.”
Today I’m pleased to make available an updated Scenic View 8.0.0 release (that is, the version of Scenic View targeted at JavaFX 8.x). This release is mainly to keep Scenic View working with the latest JavaFX 8.0 APIs. In addition a number of bugs have been resolved to make Scenic View slightly more usable (but there is still a lot broken and / or disabled). If you are still having trouble getting Scenic View to start and find any JavaFX applications please leave a comment and help me out – the next developer preview release is intended to focus on improving this aspect of Scenic View (I have built all the scaffolding to improve things but not yet implemented much of it).
For those unfamiliar with Scenic View, it can best be described thusly: 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.
As always, further information and download links can be found on the Scenic View page.
As I promised last week in my interview with Tom Schindl, today I have an interview with Felipe Heidrich. Felipe is an Oracle employee responsible for a number of things in the JavaFX area, but the reason why I wanted to interview Felipe is because his work is what enabled Tom to create the styled text editor he announced last week. I’ll leave it to Felipe to introduce himself, so without further ado, let’s get into it! Enjoy 🙂
Hi Felipe – could you please introduce yourself?
My name is Felipe Heidrich, I was born and raised in Brazil. After receiving my Bachelor degree in CS from the Federal University of Santa Catarina I moved to Ottawa, Canada for an internship position with Object Technology International (OTI). The following year OTI was fully integrated by IBM Canada where I worked for the next 10 years.
In 2012, I decided it was time for a new adventure (and better weather) so I moved to Santa Clara, California to work for Oracle on the JavaFX project.
Before joining Oracle you had a lot to do with Eclipse – can you clarify what exactly you did there?
I worked on the Eclipse Platform for over 10 years. More specifically on the Standard Widget Toolkit (SWT) where I had the opportunity to work on virtually everything it takes to build a widget toolkit, from accessibility to input methods to printing. My areas of responsibility also included the StyledText and everything related to it. In my last year there I worked on the Orion project where I was responsible for designing and implementing the text editor component. We had a great team in Ottawa and an amazing community around Eclipse and Orion, it was a great run.
You’ve been at Oracle for around a year now. What have you done during this time?
I’m currently working in the graphics team. I spend most of my time working with text. Our first challenge was to add unicode support and after that it was to design and implement rich text support. Being at the bottom of the stack I get to interact with nearly all other parts of the system and I always try to contribute and participate in the entire product.
Hi everyone, and welcome to another weekly links roundup. This weeks post is a day early as I’ll be out of town when I usually post. Anyway, enjoy! 🙂
Tom Schindl continues his work on styled text rendering in JavaFX, going so far as to improve performance by 100x, and then developing a styled text editor using a combination of the new rich text support in JavaFX 8.0 and the ListView control.
Speaking of Tom, you can find out more about what Tom has been up to with rich text in JavaFX in an interview I posted with him.
John Hendrix has posted a YouTube video of a JavaFX Carousel control that interestingly is simply a new skin for the TreeView control that ships with JavaFX. I’d be interested in seeing the source code for this!
Jarek Sacha wrote to let me know that ScalaFX 1.0 Milestone 1 has been released. As he puts it, “ScalaFX helps you simplify creation of JavaFX-based user interfaces in Scala. ScalaFX uses a simple, hierarchical pattern for creating new objects and building up the scene graph. ScalaFX supports full interoperability with Java and can run anywhere the Java Virtual Machine (JVM) and JavaFX2 are supported. Current version supports most of the JavaFX 2.2.* functionality. For more information see ScalaFX home page.”
JacpFX, the RCP framework on top of JavaFX and Spring has reached version 1.2. This release is mainly a bugfix release and improves stability and overall performance.
Andy Till continues to develop his EstiMate application, this week releasing version 0.0.2. As he puts it, “EstiMate is not a project management tool, it is firmly aimed at software engineers and developers who need to provided accurate estimates for tasks to be performed by themselves and their team.”
Farrukh Obaid has posted a video of a new CSS theme he has been working on for JavaFX. It looks good, but now I’m keen to see the code. Hopefully it is made available sometime soon (if it isn’t already).
That’s us for another week. Catch you again in a weeks time! Keep up the great work folks! 🙂
Hi everyone. I’ve been meaning to get more interviews out for quite some time, but as you know work is often all-consuming! 🙂 Anyway, today I am pleased to post this catch-up with Tom Schindl about his work on a styled text editor for JavaFX. Next week I will be following this interview up with another interview, this time with Felipe Heidrich, an Oracle engineer who works on text in JavaFX (including the rich text APIs Tom mentioned below and native text rendering). Previously he was very closely involved with Eclipse and SWT, so he has a wealth of knowledge in the Java desktop area. Anyway, for today let’s get back to Tom! Enjoy 🙂
Hi Tom, I’ve already interviewed you in the past, but today I wanted to talk to you about your latest work around styled text editing in JavaFX. Could you please summarise what exactly it is you’ve been working on?
In the last week I’ve been working on a StyledTextArea (Blog 1, Blog 2, Blog 3). Developers interact with such a control day by day when using their favorite IDE – in my case Eclipse.
If someone one day wants to write a purely JavaFX driven IDE, the source code editor is certainly the most important control. In JavaFX 2 it was very hard to implement a control like this and the only feasible solution was to use WebView and use one of the sourcecode editors written in JavaScript. And as a matter of fact, one can really get quite far with it (See my blog entry about mixing and matching JDT and JavaFX).
JavaFX 8 introduces a new scenegraph element named “TextFlow” that helps with the layout of Text nodes and so writing such a control has become much easier than it was in JavaFX 2.x. One of my main goals is to have a control that has an API comparable to the widget used within Eclipse. The reason for that is that if the widget works similar to the SWT one, almost everything provided by the Eclipse text parsing and styling infrastructure can be reused almost unmodified (only replace things like SWT-Color, Font by their JavaFX counterparts and you are done).
If you came to JavaOne 2012 or watched they keynote online you would have seen a cool proof of concept we did along with Canoo and Navis. In case you missed it, its on YouTube:
It was built on a early JavaFX prototype with added 3D mesh, Camera and Lighting support. The first public build of JavaFX 8 with the official support for this is now out for you to download, yay!
Download Java 8 EA b77 (including 3D) …
At the moment there is only support for Windows but a OpenGL version for other platforms is being worked on.
Hi all, a bunch of really good links this week. I hope there is something of interest to you all – enjoy! 🙂
Richard Bair posted an open source status update, and included some news about iOS and Android plans. It is important to note exactly what Richard is saying, which I think is fairly well summarised by Tom Schindl over on his blog. This was also covered by Dustin Marx, Slashdot, InfoQ and Parity News, among others.
I always enjoy seeing people discovering my APIs. This week Anton Epple showed the power of the pre-built cell factories that have been shipping with JavaFX since 2.2.
Speaking of Anton, he has two other blogs this week. Firstly, he blogged about how he has created a minimal JavaFX presentation player in JavaFX itself (which makes it really easy to demonstrate JavaFX concepts). Secondly, he blogged about how he implemented the A* algorithm for pathfinding in his JavaFX tile game.
Jim Weaver has a post on lambda’s in Java 8, and how they impact the code you’ll have to write for JavaFX user interfaces (when you’re using Java).
Canoo have posted part six of their JavaFX abacus tutorial, this week focusing on styling the user interface.
Björn has posted an update about the CaptainCasa JavaFX client, including details on a date picker, virtual keyboard, a scheduler and other updates.
Speaking of virtual keyboards, another one has just been released on Github.
mihosoft have posted a video of their scalable content functionality that they recently pushed to JFXtras. It’s quite interesting technology.
We’ve been making progress in getting JavaFX open sourced. I wanted to take a few minutes to include this information on fxexperience (since many of you aren’t watching the mailing list). Oh, and you might want to read this one, there is some big news at the end of the post 😉
Late last year at JavaOne our Executive VP Hasan Risvi announced at JavaOne that we would be open sourcing all of JavaFX by the end of 2012. We didn’t quite make that (actually, it was a pleasant surprise to me as the announcement was made as much as to everybody else in the audience!). We quickly got into gear and started the substantial effort that goes into open sourcing each project. We have a lot of code. The following projects have already been open sourced as of this writing:
Scenic View 8.0.0 developer preview 1 was made available this week. This is the first developer preview for JavaFX 8.0 – consider it a very early alpha release! Please leave feedback on the blog post for any issues you’re encountering.
Speaking of Gerrit, he also presented at Jfokus recently on embedded JavaFX. His slide deck is now available online as a PDF.
Robert Ladstätter also has two posts this week. Firstly he continues to refine his tree visualisation code to make the trees more realistic and have leaves. Secondly, he has developed a version of Conways Game of Life in ScalaFX, using only 140 lines of code.
The development of JavaFX 8.0 has been ongoing for quite some time now, but for the most part the twists and turns of both public and private API changes has come to an end. Whilst these APIs have been changing I have been trying my best to keep Scenic View working (although it hasn’t always been easy due to the reliance on private API – yeah, I know, *tsk* *tsk* 🙂 ). Now that JavaFX API is relatively stable I feel confident in releasing a first developer preview build of Scenic View 8.0.0. I must note that this is very, very beta quality and needs a lot of polishing to be ready for real production use, however it should (hopefully) still meet your needs as well to a same degree as earlier versions. Many of my colleagues inside the JavaFX team at Oracle have been successfully using builds internally, and I have had untold hours of my life saved by this first developer preview build.
If you feel like trying out Scenic View 8.0.0 developer preview 1, please go to the usual download location and download it. If you run into issues please leave comments on this blog post and I’ll try my best to rapidly iterate the developer preview builds to at least reach a stable and functional release (if somewhat lacking in new features). Please note that Scenic View 8.0.0 will only run on JavaFX 8.0, so do not bother upgrading to it if you are still developing on JavaFX 2.x (if you are, stick with the latest release – 1.3.0).