This is an automated email from the ASF dual-hosted git repository.
asf-gitbox-commits pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cayenne.git
The following commit(s) were added to refs/heads/master by this push:
new 856a4c9ad Modeler cleanup
856a4c9ad is described below
commit 856a4c9ad12eab82b7620f992a46618b7b398cad
Author: Andrus Adamchik <[email protected]>
AuthorDate: Sun May 17 18:14:47 2026 -0400
Modeler cleanup
---
.../org/apache/cayenne/modeler/Application.java | 33 ++++++++-----------
...leListListener.java => RecentFileListener.java} | 4 +--
.../modeler/platform/generic/GenericButtonUI.java | 21 +++++-------
.../cayenne/modeler/platform/mac/MacOSVersion.java | 38 +++++-----------------
.../cayenne/modeler/platform/mac/MacPanelUI.java | 2 +-
.../platform/mac/MacToolBarSeparatorUI.java | 9 ++---
.../modeler/platform/mac/MacUIInitializer.java | 16 ++++-----
.../modeler/platform/win/WinCustomTextFieldUI.java | 11 +++----
.../org/apache/cayenne/modeler/ui/MainFrame.java | 2 +-
.../org/apache/cayenne/modeler/ui/MainMenuBar.java | 13 +++-----
.../cayenne/modeler/ui/welcome/WelcomeScreen.java | 4 +--
11 files changed, 54 insertions(+), 99 deletions(-)
diff --git
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/Application.java
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/Application.java
index fe7cdba9f..e430cf476 100644
---
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/Application.java
+++
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/Application.java
@@ -65,26 +65,19 @@ public class Application {
private static final Logger LOGGER =
LoggerFactory.getLogger(Application.class);
public static void launch(String[] args, UIInitializer
platformInitializer) {
- try {
- // logger should go after Look And Feel or Logger Console will be
without style
- LOGGER.info("Starting CayenneModeler.");
- LOGGER.info("JRE v.{} at {}", System.getProperty("java.version"),
System.getProperty("java.home"));
-
- // TODO: this is dirty... CoreModule is out of place inside the
Modeler...
- // If we need CayenneRuntime for certain operations, those should
start their own stack...
- Injector injector = DIBootstrap.createInjector(
- new CoreModule(),
- new ProjectModule(),
- new DbSyncModule(),
- new ModelerModule());
-
- SwingUtilities.invokeLater(() -> {
- new Application(injector,
platformInitializer).launch(initialProjectFromArgs(args));
- });
- } catch (Exception e) {
- e.printStackTrace();
- System.exit(1);
- }
+
+ LOGGER.info("Starting CayenneModeler.");
+ LOGGER.info("JRE v.{} at {}", System.getProperty("java.version"),
System.getProperty("java.home"));
+
+ // TODO: this is dirty... CoreModule is out of place inside the
Modeler...
+ // If we need CayenneRuntime for certain operations, those should
start their own stack...
+ Injector injector = DIBootstrap.createInjector(
+ new CoreModule(),
+ new ProjectModule(),
+ new DbSyncModule(),
+ new ModelerModule());
+
+ SwingUtilities.invokeLater(() -> new Application(injector,
platformInitializer).launch(initialProjectFromArgs(args)));
}
private static File initialProjectFromArgs(String[] args) {
diff --git
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/event/model/RecentFileListListener.java
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/event/model/RecentFileListener.java
similarity index 93%
rename from
modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/event/model/RecentFileListListener.java
rename to
modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/event/model/RecentFileListener.java
index f3b4d4333..fb104e4de 100644
---
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/event/model/RecentFileListListener.java
+++
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/event/model/RecentFileListener.java
@@ -20,9 +20,9 @@
package org.apache.cayenne.modeler.event.model;
/**
- * Listens to changes in recent file list
+ * Listens to changes in the recent file list
*/
-public interface RecentFileListListener {
+public interface RecentFileListener {
/**
* Invoked when recent files list changed (for instance, a new project was
opened
diff --git
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/platform/generic/GenericButtonUI.java
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/platform/generic/GenericButtonUI.java
index 167028e39..f748fd726 100644
---
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/platform/generic/GenericButtonUI.java
+++
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/platform/generic/GenericButtonUI.java
@@ -19,23 +19,18 @@
package org.apache.cayenne.modeler.platform.generic;
-import java.awt.Color;
-import java.awt.Dimension;
-import java.awt.Graphics;
-import java.awt.event.MouseAdapter;
-import java.awt.event.MouseEvent;
-import javax.swing.AbstractButton;
-import javax.swing.BorderFactory;
-import javax.swing.JComponent;
+import com.jgoodies.looks.plastic.PlasticButtonUI;
+import org.apache.cayenne.modeler.toolkit.AppAction;
+
+import javax.swing.*;
import javax.swing.border.Border;
import javax.swing.plaf.ComponentUI;
+import java.awt.*;
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
-import org.apache.cayenne.modeler.toolkit.AppAction;
+public class GenericButtonUI extends PlasticButtonUI {
-/**
- * @since 4.0
- */
-public class GenericButtonUI extends
com.jgoodies.looks.plastic.PlasticButtonUI {
private static final GenericButtonUI INSTANCE = new GenericButtonUI();
private static final Border BORDER = BorderFactory.createCompoundBorder(
diff --git
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/platform/mac/MacOSVersion.java
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/platform/mac/MacOSVersion.java
index 983e697d8..38a6adef1 100644
---
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/platform/mac/MacOSVersion.java
+++
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/platform/mac/MacOSVersion.java
@@ -19,30 +19,27 @@
package org.apache.cayenne.modeler.platform.mac;
-/**
- * @since 4.2
- */
-public class MacOSVersion {
+import org.apache.cayenne.modeler.service.os.OperatingSystem;
+
+public record MacOSVersion(int major, int minor) {
public static final MacOSVersion UNKNOWN = new MacOSVersion(-1, -1);
public static final MacOSVersion CATALINA = new MacOSVersion(10, 15);
public static final MacOSVersion BIG_SUR = new MacOSVersion(10, 16);
- private final int major;
- private final int minor;
-
public static MacOSVersion fromSystemProperties() {
+
// sanity check in case this code executed not on macOS
- String osName = System.getProperty("os.name").toLowerCase();
- if(!osName.contains("mac")) {
+ if (OperatingSystem.os != OperatingSystem.MAC_OS) {
return UNKNOWN;
}
String osVersion = System.getProperty("os.version");
String[] osVersionComponents = osVersion.split("\\.");
- if(osVersionComponents.length != 2) {
+ if (osVersionComponents.length != 2) {
return UNKNOWN;
}
+
try {
int major = Integer.parseInt(osVersionComponents[0]);
int minor = Integer.parseInt(osVersionComponents[1]);
@@ -52,26 +49,7 @@ public class MacOSVersion {
}
}
- public MacOSVersion(int major, int minor) {
- this.major = major;
- this.minor = minor;
- }
-
public boolean gt(MacOSVersion version) {
- return getMajor() >= version.getMajor()
- && getMinor() > version.getMinor();
- }
-
- public boolean eq(MacOSVersion version) {
- return getMajor() == version.getMajor()
- && getMinor() == version.getMinor();
- }
-
- public int getMajor() {
- return major;
- }
-
- public int getMinor() {
- return minor;
+ return major() > version.major() || (major() == version.major() &&
minor() > version.minor());
}
}
diff --git
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/platform/mac/MacPanelUI.java
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/platform/mac/MacPanelUI.java
index 70d0e5a0e..80b9dacc6 100644
---
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/platform/mac/MacPanelUI.java
+++
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/platform/mac/MacPanelUI.java
@@ -46,7 +46,7 @@ public class MacPanelUI extends BasicPanelUI {
INSTANCE = new MacPanelUI(delegate);
}
- private BasicPanelUI delegate;
+ private final BasicPanelUI delegate;
private MacPanelUI(BasicPanelUI delegate) {
this.delegate = delegate;
diff --git
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/platform/mac/MacToolBarSeparatorUI.java
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/platform/mac/MacToolBarSeparatorUI.java
index 1348dd354..57ef304f6 100644
---
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/platform/mac/MacToolBarSeparatorUI.java
+++
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/platform/mac/MacToolBarSeparatorUI.java
@@ -18,16 +18,13 @@
****************************************************************/
package org.apache.cayenne.modeler.platform.mac;
-import java.awt.Dimension;
-import java.awt.Graphics;
-import javax.swing.JComponent;
-import javax.swing.JToolBar;
-import javax.swing.SwingConstants;
+import javax.swing.*;
import javax.swing.plaf.ComponentUI;
import javax.swing.plaf.basic.BasicToolBarSeparatorUI;
+import java.awt.*;
/**
- * This class provides correct size as in AquaToolBarSeparatorUI, but doesn't
render anything.
+ * Provides correct size as in AquaToolBarSeparatorUI, but doesn't render
anything.
*
* @since 4.0
*/
diff --git
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/platform/mac/MacUIInitializer.java
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/platform/mac/MacUIInitializer.java
index d4051348d..dcd14d482 100644
---
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/platform/mac/MacUIInitializer.java
+++
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/platform/mac/MacUIInitializer.java
@@ -113,25 +113,23 @@ public class MacUIInitializer implements UIInitializer {
removeActions.add(globalActions.getAction(ConfigurePreferencesAction.class));
JMenuBar menuBar = frame.getJMenuBar();
- for (Component menu : menuBar.getComponents()) {
- if (menu instanceof JMenu) {
- JMenu jMenu = (JMenu) menu;
+ for (Component c : menuBar.getComponents()) {
+ if (c instanceof JMenu menu) {
- Component[] menuItems = jMenu.getPopupMenu().getComponents();
+ Component[] menuItems = menu.getPopupMenu().getComponents();
for (int i = 0; i < menuItems.length; i++) {
- if (menuItems[i] instanceof JMenuItem) {
- JMenuItem jMenuItem = (JMenuItem) menuItems[i];
+ if (menuItems[i] instanceof JMenuItem menuItem) {
- if (removeActions.contains(jMenuItem.getAction())) {
- jMenu.remove(jMenuItem);
+ if (removeActions.contains(menuItem.getAction())) {
+ menu.remove(menuItem);
// this algorithm is pretty lame, but it works for
// the current (as of 08.2010) menu layout
if (i > 0
&& i == menuItems.length - 1
&& menuItems[i - 1] instanceof
JPopupMenu.Separator) {
- jMenu.remove(i - 1);
+ menu.remove(i - 1);
}
}
}
diff --git
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/platform/win/WinCustomTextFieldUI.java
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/platform/win/WinCustomTextFieldUI.java
index 09950a48f..45055a72b 100644
---
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/platform/win/WinCustomTextFieldUI.java
+++
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/platform/win/WinCustomTextFieldUI.java
@@ -19,16 +19,13 @@
package org.apache.cayenne.modeler.platform.win;
-import java.lang.reflect.Constructor;
-import javax.swing.JComponent;
+import org.apache.cayenne.modeler.toolkit.combobox.EditorTextField;
+
+import javax.swing.*;
import javax.swing.plaf.ComponentUI;
import javax.swing.plaf.basic.BasicTextFieldUI;
+import java.lang.reflect.Constructor;
-import org.apache.cayenne.modeler.toolkit.combobox.EditorTextField;
-
-/**
- * @since 4.0
- */
public class WinCustomTextFieldUI extends BasicTextFieldUI {
private static Constructor<? extends ComponentUI> winFieldUIConstructor;
diff --git
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/MainFrame.java
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/MainFrame.java
index 2ea845d87..53296d359 100644
---
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/MainFrame.java
+++
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/MainFrame.java
@@ -356,7 +356,7 @@ public class MainFrame extends AppFrame {
return false;
}
- File transferFile = fileList.get(0);
+ File transferFile = fileList.getFirst();
if (transferFile.isFile()) {
FileFilter filter = FileFilters.getApplicationFilter();
if (filter.accept(transferFile)) {
diff --git
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/MainMenuBar.java
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/MainMenuBar.java
index 0e6d863ab..08ddea2e2 100644
---
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/MainMenuBar.java
+++
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/MainMenuBar.java
@@ -20,7 +20,7 @@
package org.apache.cayenne.modeler.ui;
import org.apache.cayenne.modeler.Application;
-import org.apache.cayenne.modeler.event.model.RecentFileListListener;
+import org.apache.cayenne.modeler.event.model.RecentFileListener;
import org.apache.cayenne.modeler.pref.RecentProjectsPrefs;
import org.apache.cayenne.modeler.service.action.GlobalActions;
import org.apache.cayenne.modeler.ui.action.*;
@@ -34,16 +34,13 @@ import java.util.List;
class MainMenuBar extends JMenuBar {
- private final List<RecentFileListListener> recentFileListeners;
+ private final List<RecentFileListener> recentFileListeners;
private final Application app;
MainMenuBar(Application app) {
this.recentFileListeners = new ArrayList<>();
this.app = app;
- initLayout();
- }
- private void initLayout() {
JMenu fileMenu = new JMenu("File");
JMenu editMenu = new JMenu("Edit");
JMenu viewMenu = new JMenu("View");
@@ -128,17 +125,17 @@ class MainMenuBar extends JMenuBar {
add(helpMenu);
}
- void addRecentFileListener(RecentFileListListener listener) {
+ void addRecentFileListener(RecentFileListener listener) {
recentFileListeners.add(listener);
}
void fireRecentFileListChanged() {
- for (RecentFileListListener listener : recentFileListeners) {
+ for (RecentFileListener listener : recentFileListeners) {
listener.recentFileListChanged();
}
}
- class RecentFileMenu extends JMenu implements RecentFileListListener {
+ class RecentFileMenu extends JMenu implements RecentFileListener {
private final OpenProjectAction action;
diff --git
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/welcome/WelcomeScreen.java
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/welcome/WelcomeScreen.java
index 78c3a3b6e..5e0784f03 100644
---
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/welcome/WelcomeScreen.java
+++
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/welcome/WelcomeScreen.java
@@ -26,7 +26,7 @@ import org.apache.cayenne.modeler.toolkit.AppPanel;
import org.apache.cayenne.modeler.toolkit.icon.IconFactory;
import org.apache.cayenne.modeler.ui.action.NewProjectAction;
import org.apache.cayenne.modeler.ui.action.OpenProjectAction;
-import org.apache.cayenne.modeler.event.model.RecentFileListListener;
+import org.apache.cayenne.modeler.event.model.RecentFileListener;
import javax.swing.*;
import java.awt.*;
@@ -37,7 +37,7 @@ import java.util.List;
/**
* A panel shown when no project is open. User can quickly create new project
or open an existing one.
*/
-public class WelcomeScreen extends AppPanel implements RecentFileListListener,
RecentFileListRenderer.OnFileClickListener {
+public class WelcomeScreen extends AppPanel implements RecentFileListener,
RecentFileListRenderer.OnFileClickListener {
private final GlobalActions actionManager;