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 6baf331e7 Modeler Cleanup
6baf331e7 is described below
commit 6baf331e75d604eedf72271b83e23ced808c4905
Author: Andrus Adamchik <[email protected]>
AuthorDate: Fri Apr 24 19:09:40 2026 -0400
Modeler Cleanup
---
.../cayenne/modeler/action/OpenProjectAction.java | 45 ++++++++-------
.../cayenne/modeler/action/RevertAction.java | 5 +-
.../cayenne/modeler/ui/ModelerController.java | 8 +--
.../{util => ui/welcome}/BackgroundPanel.java | 8 ++-
.../modeler/ui/welcome/RecentFileListModel.java | 16 +++---
.../cayenne/modeler/ui/welcome/WelcomeScreen.java | 1 -
.../welcome}/path/CompoundPathTrimmer.java | 17 ++----
.../{util => ui/welcome}/path/HomePathTrimmer.java | 13 ++---
.../welcome}/path/MaxLengthTrimmer.java | 10 +---
.../{util => ui/welcome}/path/PathTrimmer.java | 9 ++-
.../apache/cayenne/modeler/util/FileMenuItem.java | 54 ------------------
.../cayenne/modeler/util/RecentFileMenu.java | 46 +++++++--------
.../modeler/util/path/DefaultPathTrimmer.java | 31 ----------
.../modeler/util/path/DefaultResourceTrimmer.java | 40 -------------
.../cayenne/modeler/util/path/LongPathTrimmer.java | 66 ----------------------
15 files changed, 85 insertions(+), 284 deletions(-)
diff --git
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/OpenProjectAction.java
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/OpenProjectAction.java
index 3f3a190c8..0e79afec4 100644
---
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/OpenProjectAction.java
+++
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/OpenProjectAction.java
@@ -28,13 +28,11 @@ import org.apache.cayenne.project.upgrade.UpgradeMetaData;
import org.apache.cayenne.project.upgrade.UpgradeService;
import org.apache.cayenne.resource.Resource;
import org.apache.cayenne.resource.URLResource;
-import org.apache.cayenne.modeler.util.FileMenuItem;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import javax.swing.JOptionPane;
-import javax.swing.KeyStroke;
-import java.awt.Toolkit;
+import javax.swing.*;
+import java.awt.*;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.Transferable;
import java.awt.datatransfer.UnsupportedFlavorException;
@@ -51,19 +49,20 @@ public class OpenProjectAction extends ProjectAction {
private static final Logger LOGGER =
LoggerFactory.getLogger(OpenProjectAction.class);
private static final Map<String, String> PROJECT_TO_MODELER_VERSION;
+
static {
// Correspondence between project version and latest Modeler version
that can upgrade it.
// Modeler v4.1 can handle versions from 3.1 and 4.0 (including
intermediate versions) modeler.
Map<String, String> map = new HashMap<>();
- map.put("1.0", "v3.0");
- map.put("1.1", "v3.0");
- map.put("1.2", "v3.0");
- map.put("2.0", "v3.0");
- map.put("3.0.0.1", "v3.1");
+ map.put("1.0", "v3.0");
+ map.put("1.1", "v3.0");
+ map.put("1.2", "v3.0");
+ map.put("2.0", "v3.0");
+ map.put("3.0.0.1", "v3.1");
PROJECT_TO_MODELER_VERSION = Collections.unmodifiableMap(map);
}
- private ProjectOpener fileChooser;
+ private final ProjectOpener fileChooser;
public static String getActionName() {
return "Open Project";
@@ -94,9 +93,13 @@ public class OpenProjectAction extends ProjectAction {
}
File f = null;
- if (e.getSource() instanceof FileMenuItem) {
- FileMenuItem menu = (FileMenuItem) e.getSource();
- f = menu.getFile();
+ if (e.getSource() instanceof JMenuItem) {
+ JMenuItem menu = (JMenuItem) e.getSource();
+
+ if (menu.getText() != null) {
+ f = new File(menu.getText());
+ }
+
} else if (e.getSource() instanceof File) {
f = (File) e.getSource();
}
@@ -122,7 +125,9 @@ public class OpenProjectAction extends ProjectAction {
application.getUndoManager().discardAllEdits();
}
- /** Opens specified project file. File must already exist. */
+ /**
+ * Opens specified project file. File must already exist.
+ */
public void openProject(File file) {
try {
if (!file.exists()) {
@@ -145,20 +150,20 @@ public class OpenProjectAction extends ProjectAction {
switch (metaData.getUpgradeType()) {
case INTERMEDIATE_UPGRADE_NEEDED:
String modelerVersion =
PROJECT_TO_MODELER_VERSION.get(metaData.getProjectVersion());
- if(modelerVersion == null) {
+ if (modelerVersion == null) {
modelerVersion = "";
}
JOptionPane.showMessageDialog(Application.getFrame(),
- "Open the project in the older Modeler " +
modelerVersion
- + " to do an intermediate
upgrade\nbefore you can upgrade to latest version.",
- "Can't Upgrade Project",
JOptionPane.ERROR_MESSAGE);
+ "Open the project in the older Modeler " +
modelerVersion
+ + " to do an intermediate upgrade\nbefore
you can upgrade to latest version.",
+ "Can't Upgrade Project",
JOptionPane.ERROR_MESSAGE);
closeProject(false);
return;
case DOWNGRADE_NEEDED:
JOptionPane.showMessageDialog(Application.getFrame(),
- "Can't open project - it was created using
a newer version of the Modeler",
- "Can't Open Project",
JOptionPane.ERROR_MESSAGE);
+ "Can't open project - it was created using a newer
version of the Modeler",
+ "Can't Open Project", JOptionPane.ERROR_MESSAGE);
closeProject(false);
return;
diff --git
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/RevertAction.java
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/RevertAction.java
index fb2fd7d1e..4ef5d68f5 100644
---
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/RevertAction.java
+++
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/RevertAction.java
@@ -55,11 +55,10 @@ public class RevertAction extends CayenneAction {
// reopen existing
if (!isNew && fileDirectory.isFile()) {
- OpenProjectAction openAction = controller
+ controller
.getApplication()
.getActionManager()
- .getAction(OpenProjectAction.class);
- openAction.openProject(fileDirectory);
+
.getAction(OpenProjectAction.class).openProject(fileDirectory);
}
// create new
diff --git
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/ModelerController.java
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/ModelerController.java
index 6a4097e1d..e02f51614 100644
---
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/ModelerController.java
+++
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/ModelerController.java
@@ -21,13 +21,13 @@ package org.apache.cayenne.modeler.ui;
import org.apache.cayenne.CayenneRuntimeException;
import org.apache.cayenne.modeler.Application;
-import org.apache.cayenne.modeler.pref.LastProjectsPreferences;
import org.apache.cayenne.modeler.action.ExitAction;
import org.apache.cayenne.modeler.action.OpenProjectAction;
-import org.apache.cayenne.modeler.platform.PlatformInitializer;
import org.apache.cayenne.modeler.mvc.RootController;
+import org.apache.cayenne.modeler.platform.PlatformInitializer;
import org.apache.cayenne.modeler.pref.ComponentGeometry;
import org.apache.cayenne.modeler.pref.FSPath;
+import org.apache.cayenne.modeler.pref.LastProjectsPreferences;
import org.apache.cayenne.modeler.ui.project.ProjectController;
import
org.apache.cayenne.modeler.ui.project.editor.datamap.dbimport.DbImportController;
import
org.apache.cayenne.modeler.ui.project.validator.ProjectValidatorDialogController;
@@ -45,7 +45,6 @@ import java.awt.datatransfer.Transferable;
import java.awt.dnd.DropTarget;
import java.awt.dnd.DropTargetAdapter;
import java.awt.dnd.DropTargetDropEvent;
-import java.awt.event.ActionEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.File;
@@ -110,8 +109,7 @@ public class ModelerController extends RootController {
if (transferFile.isFile()) {
FileFilter filter = FileFilters.getApplicationFilter();
if (filter.accept(transferFile)) {
- ActionEvent e = new ActionEvent(transferFile,
ActionEvent.ACTION_PERFORMED, "OpenProject");
-
Application.getInstance().getActionManager().getAction(OpenProjectAction.class).actionPerformed(e);
+
Application.getInstance().getActionManager().getAction(OpenProjectAction.class).openProject(transferFile);
return true;
}
}
diff --git
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/BackgroundPanel.java
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/welcome/BackgroundPanel.java
similarity index 89%
rename from
modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/BackgroundPanel.java
rename to
modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/welcome/BackgroundPanel.java
index c368e5144..903fda024 100644
---
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/BackgroundPanel.java
+++
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/welcome/BackgroundPanel.java
@@ -17,7 +17,9 @@
* under the License.
****************************************************************/
-package org.apache.cayenne.modeler.util;
+package org.apache.cayenne.modeler.ui.welcome;
+
+import org.apache.cayenne.modeler.util.ModelerUtil;
import javax.swing.ImageIcon;
import javax.swing.JPanel;
@@ -25,9 +27,9 @@ import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Image;
-public class BackgroundPanel extends JPanel {
+class BackgroundPanel extends JPanel {
- private Image backgroundImage;
+ private final Image backgroundImage;
public BackgroundPanel(String imagePath) {
super(null);
diff --git
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/welcome/RecentFileListModel.java
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/welcome/RecentFileListModel.java
index 638f86fb4..ff90fee30 100644
---
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/welcome/RecentFileListModel.java
+++
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/welcome/RecentFileListModel.java
@@ -19,24 +19,24 @@
package org.apache.cayenne.modeler.ui.welcome;
+import org.apache.cayenne.modeler.ui.welcome.path.PathTrimmer;
+
+import javax.swing.*;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
-import javax.swing.AbstractListModel;
-
-import org.apache.cayenne.modeler.util.path.DefaultPathTrimmer;
-import org.apache.cayenne.modeler.util.path.PathTrimmer;
class RecentFileListModel extends AbstractListModel<String> {
- private List<File> fileListFull;
- private List<String> fileList;
- private static PathTrimmer pathTrimmer = new DefaultPathTrimmer();
+ private final List<File> fileListFull;
+ private final List<String> fileList;
+
+ private static final PathTrimmer pathTrimmer = PathTrimmer.getInstance();
RecentFileListModel(List<File> fileList) {
this.fileListFull = fileList;
this.fileList = new ArrayList<>(fileList.size());
- for(File next : fileList) {
+ for (File next : fileList) {
this.fileList.add(pathTrimmer.trim(next.getAbsolutePath()));
}
}
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 744e75cf8..c861d1d4d 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
@@ -24,7 +24,6 @@ import
org.apache.cayenne.modeler.pref.LastProjectsPreferences;
import org.apache.cayenne.modeler.action.NewProjectAction;
import org.apache.cayenne.modeler.action.OpenProjectAction;
import org.apache.cayenne.modeler.event.model.RecentFileListListener;
-import org.apache.cayenne.modeler.util.BackgroundPanel;
import org.apache.cayenne.modeler.util.ModelerUtil;
import javax.swing.*;
diff --git
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/path/CompoundPathTrimmer.java
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/welcome/path/CompoundPathTrimmer.java
similarity index 77%
rename from
modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/path/CompoundPathTrimmer.java
rename to
modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/welcome/path/CompoundPathTrimmer.java
index 40b14d930..2c38107d2 100644
---
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/path/CompoundPathTrimmer.java
+++
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/welcome/path/CompoundPathTrimmer.java
@@ -17,28 +17,23 @@
* under the License.
****************************************************************/
-package org.apache.cayenne.modeler.util.path;
+package org.apache.cayenne.modeler.ui.welcome.path;
-public class CompoundPathTrimmer implements PathTrimmer {
+class CompoundPathTrimmer implements PathTrimmer {
- protected int maxLength;
-
- private PathTrimmer[] decorators;
+ private final int maxLength;
+ private final PathTrimmer[] decorators;
public CompoundPathTrimmer(int maxLength, PathTrimmer... decorators) {
this.maxLength = maxLength;
this.decorators = decorators;
}
- public CompoundPathTrimmer(PathTrimmer... decorators) {
- this(DEFAULT_MAX_LENGTH, decorators);
- }
-
@Override
public String trim(String path) {
- for(PathTrimmer decorator : decorators) {
+ for (PathTrimmer decorator : decorators) {
path = decorator.trim(path);
- if(path.length() <= maxLength) {
+ if (path.length() <= maxLength) {
return path;
}
}
diff --git
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/path/HomePathTrimmer.java
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/welcome/path/HomePathTrimmer.java
similarity index 77%
rename from
modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/path/HomePathTrimmer.java
rename to
modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/welcome/path/HomePathTrimmer.java
index bf77df208..cf5cdc0c2 100644
---
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/path/HomePathTrimmer.java
+++
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/welcome/path/HomePathTrimmer.java
@@ -17,18 +17,17 @@
* under the License.
****************************************************************/
-package org.apache.cayenne.modeler.util.path;
+package org.apache.cayenne.modeler.ui.welcome.path;
import java.io.File;
-public class HomePathTrimmer implements PathTrimmer {
+class HomePathTrimmer implements PathTrimmer {
+
+ private static final String homeDir = System.getProperty("user.home");
+ private final static String replacement;
- private static String homeDir = System.getProperty("user.home");
- private static String replacement = "~";
static {
- if(homeDir.endsWith(File.separator)) {
- replacement = "~" + File.separator;
- }
+ replacement = homeDir.endsWith(File.separator) ? "~" + File.separator
: "~";
}
@Override
diff --git
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/path/MaxLengthTrimmer.java
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/welcome/path/MaxLengthTrimmer.java
similarity index 87%
rename from
modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/path/MaxLengthTrimmer.java
rename to
modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/welcome/path/MaxLengthTrimmer.java
index ea6be2921..049cab791 100644
---
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/path/MaxLengthTrimmer.java
+++
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/welcome/path/MaxLengthTrimmer.java
@@ -17,15 +17,11 @@
* under the License.
****************************************************************/
-package org.apache.cayenne.modeler.util.path;
+package org.apache.cayenne.modeler.ui.welcome.path;
public class MaxLengthTrimmer implements PathTrimmer {
- private int maxLength;
-
- public MaxLengthTrimmer() {
- this(DEFAULT_MAX_LENGTH);
- }
+ private final int maxLength;
public MaxLengthTrimmer(int maxLength) {
this.maxLength = maxLength;
@@ -33,7 +29,7 @@ public class MaxLengthTrimmer implements PathTrimmer {
@Override
public String trim(String path) {
- if(path.length() <= maxLength) {
+ if (path.length() <= maxLength) {
return path;
}
return "..." + path.substring(path.length() - maxLength);
diff --git
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/path/PathTrimmer.java
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/welcome/path/PathTrimmer.java
similarity index 79%
rename from
modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/path/PathTrimmer.java
rename to
modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/welcome/path/PathTrimmer.java
index 1f80b1f45..701172c5c 100644
---
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/path/PathTrimmer.java
+++
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/welcome/path/PathTrimmer.java
@@ -17,10 +17,17 @@
* under the License.
****************************************************************/
-package org.apache.cayenne.modeler.util.path;
+package org.apache.cayenne.modeler.ui.welcome.path;
public interface PathTrimmer {
int DEFAULT_MAX_LENGTH = 120;
String trim(String path);
+
+ static PathTrimmer getInstance() {
+ return new CompoundPathTrimmer(
+ DEFAULT_MAX_LENGTH,
+ new HomePathTrimmer(),
+ new MaxLengthTrimmer(DEFAULT_MAX_LENGTH));
+ }
}
\ No newline at end of file
diff --git
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/FileMenuItem.java
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/FileMenuItem.java
deleted file mode 100644
index 7eb918f86..000000000
---
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/FileMenuItem.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*****************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- ****************************************************************/
-
-package org.apache.cayenne.modeler.util;
-
-import javax.swing.*;
-import java.io.File;
-
-/**
- * A menu item that points to a file.
- */
-public class FileMenuItem extends JMenuItem {
-
- public FileMenuItem(String fileName) {
- super(fileName);
- }
-
- @Override
- protected void configurePropertiesFromAction(Action a) {
- // excludes most generic action keys that are not applicable here...
- setIcon(a != null ? (Icon) a.getValue(Action.SMALL_ICON) : null);
- setEnabled(a == null || a.isEnabled());
- }
-
- /**
- * Returns a file if this menu item points to a readable file or
directory, or null
- * otherwise.
- */
- public File getFile() {
- if (getText() == null) {
- return null;
- }
-
- File f = new File(getText());
- return f.canRead() ? f : null;
- }
-
-}
diff --git
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/RecentFileMenu.java
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/RecentFileMenu.java
index 03877b717..e2c5eb574 100644
---
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/RecentFileMenu.java
+++
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/RecentFileMenu.java
@@ -30,29 +30,17 @@ import java.io.File;
import java.util.List;
/**
- * Menu that contains a list of previously used files. It is built from
CayenneModeler
- * preferences by calling <code>rebuildFromPreferences</code>.
- *
+ * Menu that contains a list of previously used files. It is built from
CayenneModeler preferences via
+ * {@link #rebuildFromPreferences()}
*/
public class RecentFileMenu extends JMenu implements RecentFileListListener {
-
- /**
- * Constructor for RecentFileMenu.
- */
+
public RecentFileMenu(String s) {
super(s);
}
/**
- * @see javax.swing.JMenu#add(JMenuItem)
- */
- public FileMenuItem add(FileMenuItem menuItem) {
- return (FileMenuItem) super.add(menuItem);
- }
-
- /**
- * Rebuilds internal menu items list with the files stored in
CayenneModeler
- * preferences.
+ * Rebuilds internal menu items list with the files stored in
CayenneModeler preferences.
*/
public void rebuildFromPreferences() {
@@ -63,16 +51,24 @@ public class RecentFileMenu extends JMenu implements
RecentFileListListener {
int curSize = comps.length;
int prefSize = files.size();
+ OpenProjectAction action =
Application.getInstance().getActionManager().getAction(OpenProjectAction.class);
+
for (int i = 0; i < prefSize; i++) {
String name = files.get(i).getAbsolutePath();
if (i < curSize) {
- // update existing one
- FileMenuItem item = (FileMenuItem) comps[i];
- item.setText(name);
+ ((JMenuItem) comps[i]).setText(name);
} else {
- // add a new one
- FileMenuItem item = new FileMenuItem(name);
- item.setAction(findAction());
+
+ JMenuItem item = new JMenuItem(name) {
+ @Override
+ protected void configurePropertiesFromAction(Action a) {
+ // exclude most generic action keys that are not
applicable here
+ setIcon((Icon) a.getValue(Action.SMALL_ICON));
+ setEnabled(a.isEnabled());
+ }
+ };
+
+ item.setAction(action);
add(item);
}
}
@@ -83,11 +79,7 @@ public class RecentFileMenu extends JMenu implements
RecentFileListListener {
}
}
- protected Action findAction() {
- return Application.getInstance().getActionManager().getAction(
- OpenProjectAction.class);
- }
-
+ @Override
public void recentFileListChanged() {
rebuildFromPreferences();
setEnabled(getMenuComponentCount() > 0);
diff --git
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/path/DefaultPathTrimmer.java
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/path/DefaultPathTrimmer.java
deleted file mode 100644
index 77155ae8e..000000000
---
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/path/DefaultPathTrimmer.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*****************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- ****************************************************************/
-
-package org.apache.cayenne.modeler.util.path;
-
-public class DefaultPathTrimmer extends CompoundPathTrimmer {
- public DefaultPathTrimmer() {
- super(
- new HomePathTrimmer(),
-// new DefaultResourceTrimmer(),
-// new LongPathTrimmer(),
- new MaxLengthTrimmer(DEFAULT_MAX_LENGTH)
- );
- }
-}
diff --git
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/path/DefaultResourceTrimmer.java
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/path/DefaultResourceTrimmer.java
deleted file mode 100644
index 475fe4ffb..000000000
---
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/path/DefaultResourceTrimmer.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*****************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- ****************************************************************/
-
-package org.apache.cayenne.modeler.util.path;
-
-import java.io.File;
-
-public class DefaultResourceTrimmer implements PathTrimmer {
-
- private static String DEFAULT_RESOURCE_PATH;
- private static String DEFAULT_TEST_RESOURCE_PATH;
- static {
- String separator = File.separator;
- DEFAULT_RESOURCE_PATH = "src" + separator + "main" + separator +
"resources";
- DEFAULT_TEST_RESOURCE_PATH = "src" + separator + "test" + separator +
"resources";
- }
-
- @Override
- public String trim(String path) {
- path = path.replace(DEFAULT_TEST_RESOURCE_PATH, "..test..");
- path = path.replace(DEFAULT_RESOURCE_PATH, "..main..");
- return path;
- }
-}
diff --git
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/path/LongPathTrimmer.java
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/path/LongPathTrimmer.java
deleted file mode 100644
index b2033fb1a..000000000
---
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/path/LongPathTrimmer.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*****************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- ****************************************************************/
-
-package org.apache.cayenne.modeler.util.path;
-
-import java.io.File;
-
-public class LongPathTrimmer implements PathTrimmer {
-
- private static final String PATH_SEPARATOR = File.separator;
- private static final int PATH_LENGTH_THRESHOLD = 8;
-
- private String[] splitPath(String path) {
- return path.split(PATH_SEPARATOR);
- }
-
- private String joinPath(String[] components) {
- if(components.length == 0) {
- return "";
- }
- StringBuilder sb = new StringBuilder(components[0]);
- for(int i=1; i<components.length; i++) {
- sb.append(PATH_SEPARATOR);
- sb.append(components[i]);
- }
- return sb.toString();
- }
-
- @Override
- public String trim(String path) {
- String[] components = splitPath(path);
- if(components.length <= PATH_LENGTH_THRESHOLD + 1) {
- return path;
- }
- String[] strippedComponents = new String[PATH_LENGTH_THRESHOLD + 1];
- int half = PATH_LENGTH_THRESHOLD / 2;
- int end = components.length - half;
- int idx = 0;
- boolean trimAdded = false;
- for(int i=0; i<components.length; i++) {
- if(i < half || i >= end) {
- strippedComponents[idx++] = components[i];
- } else if(!trimAdded) {
- strippedComponents[idx++] = "...";
- trimAdded = true;
- }
- }
- return joinPath(strippedComponents);
- }
-}