Re: UI toolkit for the future Modeler

Michael Gentry <[email protected]>
Newsgroups gmane.comp.java.cayenne.devel
Message-ID <CAOy5kzOGHv15jG+ENX-j6paZYcEYx-5wcVWNm6gHhY1eoO_Y2Q@mail.gmail.com>
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 <[email protected]> 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 <[email protected]>
> 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 <[email protected]>
> > wrote:
> >
> > > What about an Electron app? 😬
> > >
> > > On Tue, Dec 14, 2021 at 3:59 PM John Huss <[email protected]> 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 <
> [email protected]>
> > > > 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 <[email protected]>
> > 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 <
> > [email protected]
> > > >
> > > > > 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
> > > > > >>
> > > > > >>
> > > > > >>
> > > > >
> > > > >
> > > >
> > >
> >
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.