Added code to prevent empty project tree selection.
Why re-write Cayenne Modeler? While Cayenne Modeler is stable and works well, it is also built upon older technologies that make it harder to augment. The goal of this prototype project is to preserve everything that is good about Cayenne Modeler feature-wise, while upgrading the underlying technologies and features:
What will it look like? Well, it has the same basic layout as the current Cayenne Modeler, but with upgrades.
The following screenshots show how the prototype is shaping up. They'll be updated as work progresses.
DataDomain Editor 
DataMap Editor 
ObjEntity Class Editor 
ObjEntity Attributes Editor 
Multiple Window Data Synchronization 
Right-click on the main application, src/main/java/org/apache/cayenne/modeler/CayenneModeler.java, and choose Run As => Java Application.
From the top-level project, where the pom.xml file is located:
mvn exec:java -Dexec.mainClass=org.apache.cayenne.modeler.CayenneModeler
The project is Maven-based and has a typical Maven layout. That said, you can find some high-level things under:
src/main/resources/layouts contains the FXML files for the UI (edit with Scene Builder).src/main/java/org/apache/cayenne/modeler/layout contains the Java controllers for the FXML layouts (names should match up).src/main/resources/cayenne-analytic.xml contains the sample model currently being used for testing purposes.There are so many things needing to be done. See the issues for some of them.
The FontAwesomeFX library is used to provide icons from FontAwesome.