Source code for JavaFX UI controls now available on openjfx
richard.bair at oracle.com
Fri Dec 2 17:43:20 PST 2011
> Sorry I misunderstood, I was expecting something similar to the binary plugs we had in OpenJDK, not a full version of the current release, hence the question.
> I was able to import the project successfully into eclipse (and netbeans) with the FX runtime and it seems to compile fine.
Oh, that's interesting. I grabbed the latest 2.0.2 code for Mac that I had available but it was failing on:
[javac] /Developer/Projects/openjfx/workspace-2.1/master/rt/javafx-ui-controls/src/com/sun/javafx/scene/control/behavior/ButtonBehavior.java:42: cannot find symbol
[javac] symbol : class PlatformUtil
[javac] location: package com.sun.javafx
[javac] import com.sun.javafx.PlatformUtil;
And a bunch of other such failures. So I thought PlatformUtil had been removed between the 2.0.2 code I had (from early November) and the newer code in the 2.1 tree. If you got it to build in Eclipse on an older release -- well that is interesting! What version of JavaFX are you using for the binary plug?
Do you want to post some basic instructions so other folks can do likewise?
> I'll play with this code a bit and see how we can help out until everything else is sorted out.
> I think that while this is a suboptimal situation (but hey, we Free Software freaks are never happy, right? :) is still a great step forward, and we have a chance to study the code and the internals before everything gets released.
> Speaking about this, do you think we can have some "specs" about the internal interfaces?
Probably in the short term asking me questions is the fastest way to get answers, unfortunately. I do need to be badgered to write up some documents though and put them up on our pages. Please do feel free to badger me: squeaky wheel and all that :-)
> I know from JavaOne that the internal code is pretty abstracted and modular, and can actually be "easily" replaced (not sure the exact definition of easily though, but what you have shown at J1 was very impressive).
> We can probably help speeding up things if we know what things should be replaced and implement some clear room version of what will come later in the game, in a similar way we did with the Pisces renderer in Java2D, what do you think?
> I'm specifically thinking about the Linux port here, since to be honest "late 2012" is eons away.
What we have released so far is the controls portion, which all sits above the "toolkit implementation" line. Basically on the "top" we've got controls, scene graph, css, properties, binding, collections, services, and that sort of thing. There is a Toolkit interface (com.sun.javafx.tk.Toolkit) which defines the abstraction between the public API portions of the platform and the underlying toolkit implementation (threading, windowing, opengl, d3d, fonts, etc).
Likely it will be a couple months before we start putting out the lower-level bits en masse, due to having to be careful there over 3rd party code etc (there isn't much, mostly fonts and some SVG, but we have to do all the due diligence). The other problem is the same guys who have to do that, have to get the Mac port finished (both for Java 7 and for Java FX). However I will follow up with the guys doing linux and see if we can get that out sooner (they're busy working away on it and it would be cool to get it open faster, but at the very least get it included in the bits so you can run on linux).
More information about the openjfx-dev