Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [ice-dev] JavaFX 3d geometry editing

Thanks Tom! I'll definitely take a look at these links and see if there is a path in that direction for us.

There are two problems that I have with going to pure Eclipse 4 and they are why we have relied on the compatibility layer for far longer than I would prefer, to be honest. They are:
1.) The ICE product uses org.eclipse.platform.ide so that we "inherit" all of capabilities of that version of Eclipse in our own. (See https://github.com/eclipse/ice/blob/master/org.eclipse.ice.repository/ice.product for reference.) I would liken this to how there are various flavors of Linux that just sit on top of more basic flavors. From what I can tell, this won't work with a pure E4 application and I haven't seen any tutorials or documentation on how to simply extend an existing E4 workbench.
2.) We use Eclipse Forms. Lars Vogel told me that Forms were moved to E4 in Kepler, but I haven't seen any good documentation yet on the differences between the API for 3.x and 4.x. I assume that it is as simple as

@Inject
IManagedForm form;

or something, but I just haven't seen a good example yet and I'm not keen on trying because I haven't figure out if #1 is an actual problem yet.

If you have any thoughts on these I would be much obliged. Relying on the 3.x API is really kicking us in the nuts when it comes to UI testing and even mockups with WindowBuilder for that matter.

One thing that would probably convince me that we need to focus on JavaFX with all due haste would be if JavaFX applications worked on the web either via something like the GTK Broadway backend (which freezes with SWT) or some other technology, but not anything based on applets. Getting ICE on the web is one of our big strategic goals. Here's a pic of ICE running on the web using Broadway, https://twitter.com/jayjaybillings/status/651761614593654784.

I'm at ECE this week. Want to meet in person?

Jay

On Sun, Nov 1, 2015 at 8:02 PM, Tom Schindl <tom.schindl@xxxxxxxxxxxxxxx> wrote:
Hi,

I case you refactor your code I'd advice to keep ALL your UI in bundles
that only require SWT/JFace/Core but nothing from PlatformUI.

This would (maybe) make it possible for you to run on pure JavaFX by
leveraging e4, SWTonJavaFX and e(fx)clipse.

The logical steps in refactoring an RCP are:
* move your Business UI in bundles who only require SWT/JFace but still
  create instance of them from eg ViewPart/EditorPart

* get away the compat layer and run on pure e4 leverage the e4
  application model

* (switch to JavaFX by leveraging SWTonJavaFX - basic UIs can run
  unmodified)

* write new UIs in pure JavaFX and when you touch existing one migrate
  them one by one

For SWTonJavaFX see:
* https://wiki.eclipse.org/Efxclipse/SWTonFX (the states there are not
  correct but the project is on hold because we could not find anyone
  who funded moving it forward)

* http://www.kware.net/?p=64 who has himself moved a real world
  application to SWT on JavaFX

Tom

On 29.10.15 12:14, Jay Jay Billings wrote:
> Tom, Tony,
>
> ICE is just under 500k lines with probably 100k of UI. We are starting a
> new UI refactor, but we are not changing any of the actual SWT code as
> part of that (just where we call it). We don't have any financial
> support to rewrite what we currently have into e(fx)lipse or something,
> although we accept contributions. ;-)
>
> I'm still confident that there are ways we can collaborate.
>
> Jay
>
> On Thu, Oct 29, 2015 at 2:44 PM, Tony McCrary <tmccrary@xxxxxxxxx
> <mailto:tmccrary@xxxxxxxxx>> wrote:
>
>     Hey Tom,
>
>     Thanks for reaching out.
>
>     Also, thank you for the heads up about GTK3 crashing. I actually ran
>     into this issue previously so I know how frustrating it can be.
>
>     Ultimately, all OpenGL and input functionality on Linux is through
>     X11/GLX, so a high level toolkit like GTK shouldn't be a large
>     stumbling block. It sounds strange that JavaFX needs a separate
>     implementation for GTK2/3, instead of some shim code to correctly
>     fetch the underlying X components. It would be a different story if
>     this was X vs Wayland.
>
>     As for a JavaFX RCP migration, ICE is pretty large so I don't think
>     a full migration would be possible. However, it may be feasible for
>     just the Geometry Editor UI components, which are fairly simple ATM.
>
>     If you have any ideas or questions, please feel free to contact me
>     and/or the mailing list.
>
>     Regards,
>     Tony McCrary
>
>     On Thu, Oct 29, 2015 at 1:23 PM Jay Jay Billings
>     <jayjaybillings@xxxxxxxxx <mailto:jayjaybillings@xxxxxxxxx>> wrote:
>
>         Tom,
>
>         Thanks for the email. I'm happy to tell you more about what we
>         are doing.
>
>         I have CC'ed the ICE developer list so that Robert Smith and
>         some of my other devs can comment on JavaFX on Linux. Here's a
>         screenshot of the 3d geometry editor that Tony wrote running on
>         a Fedora 22, GTK 3.16, KDE 5 machine at ORNL. We haven't had any
>         trouble with it, although Greg Watson (Eclipse PTP) also
>         suggested that we would. Robert and Tony can tell you how they
>         made it work on Linux since those two are veritable JavaFX 3d
>         ninjas.
>
>         This work started as an effort to replace some of the 3d
>         visualization tools in Eclipse ICE that are used for
>         constructive solid geometry, mesh editing and visualizations of
>         nuclear plants. The current tooling is based on JMonkeyEngine3
>         (JME3), which the IP team has declined to approve because of
>         problems with lwjgl and other dependencies. So, for the past six
>         months or so we have been working to refactor ICE so that it
>         will pull visualization services from a factory. It now
>         separates the 3d graphics implementation from the rest of the UI
>         so that we just pass in the data and a composite where it should
>         draw. This will allow us to ship with the JavaFX service by
>         default and to provide alternative service implementations via
>         the marketplace, including the old JME3 implementation and
>         another one that Tony wants to write based on what they use at
>         L33tLabs.
>
>         (This new visualization service infrastructure will be the
>         initial contribution for the Eclipse Advanced Visualization
>         Project too.)
>
>         Tony and I looked at several alternatives and JavaFX was the
>         only thing that we definitely knew would meet the IP
>         requirements because it is already in the JDK.
>
>         I'm very interested to hear how you think we can collaborate.
>
>         Best,
>         Jay
>
>
>         On Thu, Oct 29, 2015 at 9:41 AM, Tom Schindl
>         <tom.schindl@xxxxxxxxxxxxxxx
>         <mailto:tom.schindl@xxxxxxxxxxxxxxx>> wrote:
>
>             Hi,
>
>             I've been reading your CQ on the 3d stuff with JavaFX Tony
>             has been
>             written for you. Would you guys mind elaborating a bit on that?
>
>             This sounds cool JavaFX technology and as I'm leading all
>             the JavaFX
>             efforts at Eclipse it might makes sense to somehow collaborate.
>
>             One warning notice a head:
>
>             JavaFX can not embedded in SWT on Linux when you run on GTK3
>             because the
>             glass layer at JavaFX is written against the Gtk2 API. IMHO
>             it would not
>             be a major undertaking to implement ~10 Glass classes for
>             Gtk3 but as it
>             looks like Oracle is not planing that for Java9 unless
>             somebody steps up
>             doing so.
>
>             The other option for RCP is naturally got get rid of SWT all
>             together ;-)
>
>             Tom
>
>             --
>             Thomas Schindl, CTO
>             BestSolution.at EDV Systemhaus GmbH
>             Eduard-Bodem-Gasse 5-7, A-6020 Innsbruck
>             http://www.bestsolution.at/
>             Reg. Nr. FN 222302s am Firmenbuchgericht Innsbruck
>
>
>
>
>         --
>         Jay Jay Billings
>         Oak Ridge National Laboratory
>         Twitter Handle: @jayjaybillings
>
>
>
>
> --
> Jay Jay Billings
> Oak Ridge National Laboratory
> Twitter Handle: @jayjaybillings


--
Thomas Schindl, CTO
BestSolution.at EDV Systemhaus GmbH
Eduard-Bodem-Gasse 5-7, A-6020 Innsbruck
http://www.bestsolution.at/
Reg. Nr. FN 222302s am Firmenbuchgericht Innsbruck



--
Jay Jay Billings
Oak Ridge National Laboratory
Twitter Handle: @jayjaybillings

Back to the top