JavaFX 2.0 Support - Please consider

Hey Guys,

I see from these that there is no special support intended for JavaFX 2.0 in IntelliJ:


JavaFX 2.0 was released a few days ago and I think it is worth you having a look at it and possibly reconsidering: http://download.oracle.com/javafx/

JavaFX 1.0 was a miserable failure and a terrible idea. JFX2 is a completly new approach and is much more likely to make an impact and stay around (at the very least it should gradually replace Swing, but should also make some inroads into web against Flash, etc). The most important thing is that the horrible scripting language has been ditched for pure Java. What we're left with is a Java API for building powerful desktop GUIs (and applet-like programs) with animations, styling, special effects and styling. A long overdue successor to Swing. There is also talk of it being supported on mobile devices such as Android and iOS.



Since the core library is all Java now, there's not much special support needed for this, but there are two areas that IntelliJ could add value:


Ideally the support for both of these would include smart referencing, where attributes referenced in the FXML and not specified in the controller are highlighted in red, and CSS styles not used are greyed out, etc.

I personally don't see any real need to have an IDEA specific UI builder, but there is an official SceneBuilder under development by the JFX team (due out in a couple of months). You may want to look at including this into IDEA as a plugin or something, but this is a bonus extra and probably not something I personally would use.  

As a long time IntelliJ user (since version 3 I think), I would definitely like to see support for this added in. At the very least keep an eye on the JFX space and watch for developments - don't rule it out because of the shamozal that JFX1.x was.

Cheers,
zonski

2 comments

Hello Daniel,

We do watch the JavaFX 2.0 announcements, and we completely agree that it''s
a much more practically useful solution for UI development compared to JavaFX
1.0. It doesn't look like any JavaFX 2.0 support features would be included
in IntelliJ 11, though.

From a quick look at FXML, it doesn't look like something that many people
would want to write by hand; it's far too verbose for this purpose and much
better suited for a UI designer like tool. It wouldn't be hard to provide
FXML code completion/navigation/error highlighting support in IntelliJ, but
the value of that is still unclear to me.

I see from these that there is no special support intended for JavaFX
2.0 in IntelliJ:

http://devnet.jetbrains.com/message/5311783#5311783

JavaFX 2.0 was released a few days ago and I think it is worth you
having a look at it and possibly reconsidering:
http://download.oracle.com/javafx/

JavaFX 1.0 was a miserable failure and a terrible idea. JFX2 is a
completly new approach and is much more likely to make an impact and
stay around (at the very least it should gradually replace Swing, but
should also make some inroads into web against Flash, etc). The most
important thing is that the horrible scripting language has been
ditched for pure Java. What we're left with is a Java API for building
powerful desktop GUIs (and applet-like programs) with animations,
styling, special effects and styling. A long overdue successor to
Swing. There is also talk of it being supported on mobile devices such
as Android and iOS.

Since the core library is all Java now, there's not much special
support needed for this, but there are two areas that IntelliJ could
add value:

  • Language support for the JavaFX CSS extensions:

http://download.oracle.com/javafx/2.0/css_tutorial/jfxpub-css_tutorial
.htm

  • Language support for FXML:

http://download.oracle.com/javafx/2.0/fxml_get_started/jfxpub-fxml_get
_started.htm

Ideally the support for both of these would include smart referencing,
where attributes referenced in the FXML and not specified in the
controller are highlighted in red, and CSS styles not used are greyed
out, etc.

I personally don't see any real need to have an IDEA specific UI
builder, but there is an official SceneBuilder under development by
the JFX team (due out in a couple of months). You may want to look at
including this into IDEA as a plugin or something, but this is a bonus
extra and probably not something I personally would use.

As a long time IntelliJ user (since version 3 I think), I would
definitely like to see support for this added in. At the very least
keep an eye on the JFX space and watch for developments - don't rule
it out because of the shamozal that JFX1.x was.


--
Dmitry Jemerov
Development Lead
JetBrains, Inc.
http://www.jetbrains.com/
"Develop with Pleasure!"


0

Thanks for the reply, glad to know you are watching the space. A few months will probably give us all an idea of how much traction the technology gets.

As for the FXML not being written by hand, that's not entirely true. FXML is very much on par with GWT's XML UI declarations (with many parallels, to the point where you could almost write an FXML parser for GWT) and unless things have changed in the last year or so, writting these by hand is the standard. As such I don't think it is a foregone conclusion to say that a UI Builder will be required or even standard. Many developers (myself included) have bad childhood memories of UI Builders and would only touch one as a last resort. Everyone I have ever used has utterly sucked.

Ideally IntelliJ will eventually have the same level of support it has for GWT XML, where methods referenced in the XML are checked against the Java controller, and ALT+ENTER will allow you to automagically add a method or field that's defined in the FXML but not in the Java class. For the CSS, just having tab completion and error detection would be nice. Currently IntelliJ goes nuts with red lines everywhere for the JFX CSS extensions.

I am half-way through a decently large JFX2 project (built on the beta) with a complex GUI (gantt charts, custom maps and even a custom built carousel component) where we are writing all the FXML by hand. Combining the FXML with MigPane (which has a JFX port) makes the FXML tolerable. We also split the GUI down into smaller components (i.e. smaller FXML files) that are then aggregated in code (we have a Controller that swaps the main view based on what the user has selected - similar style to a web page navigation).

Anyway, just some feedback for you to take on board. I suspect mine will be the first voice of many over the next few months. I'm an early adopter so I'm happy to wait until it gets some momentum before you guys decide there's some value to it. I'm satisfied with just flagging it at this point.  

The only additional thing I would say is that currently NetBeans seems to be the strong player in the space and NetBeans sucks. If you got in before Eclipse gets too entrenched you might make some in-roads.

Enjoy

0

Please sign in to leave a comment.