IntelliJ IDEA 12.1 Lands with JavaFX 2.0 Support
JetBrains has begun shipping IntelliJ IDEA 12.1 which sees the IDE gaining full support for JavaFX 2.0, the latest incarnation of the Java client platform. This includes "support for FXML mark-up, custom CSS, code completion, navigation and search, refactoring, packaging tools and integration with scene builder" the accompanying video states.
With Java 7 installed, the IDE offers a template for creating a new "hello world" type sample JavaFX application. The sample comprises an .fxml file describing the layout, a controller with handler, and a main class. You can immediately click "run" to see the results. Working with the project provides all the support you would expect with code completion, "quick fix" suggestions, and so on.
JetBrains doesn't provide its own graphical UI designer tool for JavaFX. Instead it has opted to integrate Oracle's Scene Builder. So you can open a scene in Scene Builder, make changes and have those reflected in IDEA. You can, of course, edit a scene manually directly in the IDE.
IntelliJ comes with some packaging capabilities for JavaFX built in as well, although this still feels a little like work in progress. As it stands, for example, the IDE doesn't directly support native packaging via the UI; you need to resort to using JavaFX Ant tasks for this. We contacted JetBrains for clarification on plans here, but haven't had a response at the time of publication. This blog thread, however, suggests that this will be addressed in version 12.1.2. We will update the post if we hear back from JetBrains.
It is also worth noting that, whilst JavaFX support is included in the free Community Edition of IDEA, JavaFX CSS support is not. This is because it relies on CSS support, which is an Ultimate only feature.
Aside from JavaFX 2, Gradle support has also received attention with a couple of new options:
If "Use Gradle Wrapper" is selected, the IDE automatically detects if the linked Gradle project is wrapper-aware and uses it for refreshing the project and running tasks. "Use auto-import" means that every project structure change is automatically picked up by the IDE on Gradle project refresh (e.g. when a new library is added/removed at build.gradle, it's added/removed at the IDE as well).
There are also a number of smaller improvements, with lots of specific items for individual JVM languages. Both Community and Ultimate versions gain:
- Full screen mode for Windows
- Groovy 2.1 support, including new annotations and compilation customisation.
- Improved Scala support (statement completion and a new compiler)
The Ultimate version also sees:
- Spring Framework 3.2 and Play Framework 2.1 support
- Adobe Gaming SDK support
- Debugger for CoffeeScript, Dart and TypeScript via Source Maps
- Sass ("Syntactically Awesome Stylesheets") support improvements (custom function definition, completion, rename refactoring, nested properties, etc.)
Finally, adopters of Apple's MacBook Pro Retina will no doubt be pleased to hear that the Darkula theme has improved support for high-DPI displays.