Thanks Michael! I was able to run the JFX version on Java 11 and open the
sample model at "src/test/resources/cayenne-analytic.xml".

For JFX, the existence of a visual editor like Scene Builder is a huge
feature in my opinion. Being able to directly edit the UI in a visual
manner makes it much easier for a developer to just jump in and change
something.

I also looked at the kotlin compose-mpp library Andrus mentioned. The
approach it takes with a reactive, declarative UI is definitely the current
trend. It is very much like SwiftUI, which I have used a bit. It says you
can "preview" layouts in the IDE. If that actually works, then that makes a
big difference. Without it, I would be hesitant to use this. Here's some
sample code for a screen:
https://github.com/JetBrains/compose-jb/blob/master/examples/issues/common/src/jvmAndAndroidMain/kotlin/androidx/ui/examples/jetissues/view/JetIssuesView.kt

I like Kotlin and don't find it to be a big jump from Java.

I think both of these are viable paths. It really depends on finding a
person who is excited to champion the project. As long as a developer is
passionate about doing this either approach should be fine. However, if the
goal is to incorporate a larger developer community into the maintenance, I
suspect the JFX route is easier for onboarding.


On Sun, Dec 19, 2021 at 2:17 PM Michael Gentry <blackn...@gmail.com> wrote:

> Hi John (and anyone else who is curious),
>
> I think I've got it running again. Pull the changes.
>
> Haven't really updated the docs, so to run:
>
> From Terminal: mvn clean javafx:run
> From Eclipse/IDE: Set up a Maven build with the "clean javafx:run" goal.
>
> You'll most likely need to load the included Cayenne Project (since
> upgrading versions/etc isn't supported yet):
>
>       src/test/resources/cayenne-analytic.xml
>
> A good starting point to look at code/UI is the splash page since it is
> pretty simple. If you don't have Scene Builder installed, grab it from
> here:
>
>       https://gluonhq.com/products/scene-builder/
>
> Then open the splash page in Scene Builder:
>
>       src/main/resources/layouts/SplashLayout.fxml
>
> And open the Java code in Eclipse/IDE:
>
>       src/main/java/org/apache/cayenne/modeler/layout/SplashLayout.java
>
> Keep in mind this is just a demo/proof-of-concept and not fully functional.
> Also, there are many other FXMLs you can open up in Scene Builder. The
> approach I was going for was to have lots of components/views I could swap
> in/out as navigation was triggered in the UI.
>
> Let me know if you have questions or can't run it.
>
> Note: If on macOS you might have to give Eclipse/Terminal permissions in
> System Preferences. Also, if on Monterey, it likes to hide newly opened
> windows behind current windows. I don't have an app icon yet, so it shows
> up as a folder icon if you Command+Tab.
>
> mrg
>
>
> On Thu, Dec 16, 2021 at 11:17 AM John Huss <johnth...@gmail.com> wrote:
>
> > If we want to move off Swing I'd say this JavaFX project you started is
> the
> > best way to go.
> >
> > I can't get it to run out of the box. Any chance you could get it running
> > again?
> >
> > On Tue, Dec 14, 2021 at 6:49 PM Michael Gentry <blackn...@gmail.com>
> > wrote:
> >
> > > I've considered an Electron app in the past. One negative is you lose
> > > access to existing Java code, but perhaps there is a way around this
> I've
> > > not seen.
> > >
> > > Examples:
> > > - Existing code to read model XML files.
> > > - JDBC drivers.
> > > - Velocity (assuming we want to continue using Velocity templates).
> > >
> > > For anyone curious, I thought JavaFX was looking good before I lost
> > > momentum:
> > >
> > > https://github.com/apache/cayenne-modeler
> > >
> > > If you look carefully, you'll see some of the extra features in the
> > > screenshots I was planning on adding, plus multiple windows (same
> project
> > > or different projects) in the video.
> > >
> > >
> > > On Tue, Dec 14, 2021 at 6:58 PM Lon Varscsak <lon.varsc...@gmail.com>
> > > wrote:
> > >
> > > > What about an Electron app? 😬
> > > >
> > > > On Tue, Dec 14, 2021 at 3:59 PM John Huss <johnth...@gmail.com>
> wrote:
> > > >
> > > > > My 2 cents is that Java desktop UI is effectively dead. So
> switching
> > to
> > > > > another UI library that is either already dead or is dying isn't a
> > > great
> > > > > use of time. So I would try to change it as little as possible.
> > > > >
> > > > > For the tables with editable cells problem, my recommendation would
> > be
> > > to
> > > > > move editing into a separate "inspector" area that is laid out as a
> > > > > vertical form. Then the table can be read-only.
> > > > >
> > > > > For layout, I liked MigLayout when I did Swing apps back in the
> day.
> > > But
> > > > > that doesn't solve the problem with the existing usage of JGoodies.
> > > > >
> > > > >
> > > > > On Tue, Dec 14, 2021 at 12:37 AM Andrus Adamchik <
> > aadamc...@gmail.com>
> > > > > wrote:
> > > > >
> > > > > > I see a couple of problems with the current UI (beside it being
> > > > > > subjectively old) :
> > > > > >
> > > > > > * We are effectively blocked from any significant evolution of
> the
> > > > > > Modeler. Any time we want to do anything fancy (e.g. improve
> > > usability
> > > > of
> > > > > > tables with editable cells, etc.), we quickly run into the wall
> > with
> > > > > Swing
> > > > > > capabilities.
> > > > > > * JGoodies library that we depend heavily upon for layouts is no
> > > longer
> > > > > > free/open source [1], creating risks for JVM upgrades.
> > > > > >
> > > > > > So modernization of the Modeler is a practical matter.
> > > > > >
> > > > > > Looks like Fleet is not using Compose [2], but a lesser known
> > > JetBrains
> > > > > > Toolbox does [3]. And everyone admits it is still raw.
> > > > > >
> > > > > > Andrus
> > > > > >
> > > > > > [1] https://www.jgoodies.com/downloads/libraries/
> > > > > > [2] https://twitter.com/jetbrains/status/1465245360973131777 <
> > > > > > https://twitter.com/jetbrains/status/1465245360973131777>
> > > > > > [3]
> > > > > >
> > > > >
> > > >
> > >
> >
> https://blog.jetbrains.com/kotlin/2021/08/compose-multiplatform-goes-alpha/#toolbox
> > > > > > <
> > > > > >
> > > > >
> > > >
> > >
> >
> https://blog.jetbrains.com/kotlin/2021/08/compose-multiplatform-goes-alpha/#toolbox
> > > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > > > On Dec 14, 2021, at 12:48 AM, John Huss <johnth...@gmail.com>
> > > wrote:
> > > > > > >
> > > > > > > I believe that compose UI library is used to build the new
> > upcoming
> > > > IDE
> > > > > > > from JetBrains called Fleet. So I expect it will continue to be
> > > > > supported
> > > > > > > unless that product completely flops.
> > > > > > >
> > > > > > > I don't mind the current modeler UI. It's good enough for me.
> > > > > > >
> > > > > > > https://www.jetbrains.com/fleet/
> > > > > > >
> > > > > > >
> > > > > > > On Sat, Dec 11, 2021 at 2:15 AM Andrus Adamchik <
> > > aadamc...@gmail.com
> > > > >
> > > > > > wrote:
> > > > > > >
> > > > > > >> A datapoint to our perennial discussion of technology to use
> for
> > > the
> > > > > > >> future CayenneModeler... With Swing being old and crusty, and
> > > JavaFX
> > > > > no
> > > > > > >> longer supported by Oracle, perhaps we should be looking for
> > > > something
> > > > > > >> fresh. I just came across a new "Compose Multiplatform"
> desktop
> > UI
> > > > > > >> framework by JetBrains [1]. It is programmed in Kotlin and is
> > > based
> > > > on
> > > > > > >> Google toolkit for Android. Their GitHub examples [2] are not
> > that
> > > > > > visually
> > > > > > >> impressive, but I would imagine it is a matter of styling. A
> > > > million $
> > > > > > >> question is whether it will be around and open source in 10-15
> > > > years.
> > > > > > >>
> > > > > > >> Anyone knows anything about it?
> > > > > > >>
> > > > > > >> Andrus
> > > > > > >>
> > > > > > >> [1] https://www.jetbrains.com/lp/compose-mpp/
> > > > > > >> [2]
> > > > > > >>
> > > > > >
> > > > >
> > > >
> > >
> >
> https://github.com/JetBrains/compose-jb/blob/master/artwork/readme/apps.png
> > > > > > >>
> > > > > > >>
> > > > > > >>
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
>

Reply via email to