Developing Custom Vision Component Modules with JavaFX

I'm currently working on developing custom vision component modules for Ignition, and I was wondering if it's possible to use a more modern framework like JavaFX for this task. I find JavaFX to be more intuitive, enhancing the overall development experience.

Has anyone tried using JavaFX to create custom vision components for Ignition? If so, I'd love to hear about any insights you might have.

It is definitely possible, as there is at least one IA native object that is JavaFX: the Web Browser component.

Vision is fundamentally Swing, and your component will need to outwardly be a Swing JComponent that implements IA's VisionComponent interface. (Preferably using one of IA's abstract classes.) But JavaFX has wrappers for including it within Swing. Just be careful that all property operations happen on the appropriate foreground thread.

News to me... It's a Swing wrapper around a JxBrowser abstraction that at least claims to be a Swing panel, though you may have dived deeper into the internals than I have.

I will agree with you that this is conceptually possible. I personally wouldn't find it worth the effort - you'll be "swimming upstream" the entire time. I'm also not sure either Swing or JavaFX qualify as "modern".

The Web Browser component (and anything else depending on JxBrowser) requires JavaFX. That's why the designer doesn't run on RPis.

No, it doesn't. It doesn't run on RPi because we don't have JXBrowser in ARM flavor.

The launchers are JavaFX.

1 Like

Huh. TIL.

Why is it not worth the effort?

Well, for one, I kinda like Swing. I don't have a ton of experience with JavaFX, but everything in the Designer and Vision client that already exists is Swing. All the resources you're going to find for Vision are going to assume Swing. All the utility classes, builtin functionality (bindings, property references), etc... Swing.
Every step of the way you're using JavaFX (in Vision), you're going to be putting a square peg in a round hole.

1 Like