diff --git a/src/main/java/org/jabref/gui/maintable/RightClickMenu.java b/src/main/java/org/jabref/gui/maintable/RightClickMenu.java index cf1792b3c28..11f21c5c3d6 100644 --- a/src/main/java/org/jabref/gui/maintable/RightClickMenu.java +++ b/src/main/java/org/jabref/gui/maintable/RightClickMenu.java @@ -1,5 +1,6 @@ package org.jabref.gui.maintable; +import java.nio.file.Path; import java.util.ArrayList; import java.util.List; @@ -36,7 +37,10 @@ import org.jabref.logic.citationstyle.CitationStyleOutputFormat; import org.jabref.logic.citationstyle.CitationStylePreviewLayout; import org.jabref.logic.journals.JournalAbbreviationRepository; +import org.jabref.logic.l10n.Localization; +import org.jabref.logic.shared.DatabaseLocation; import org.jabref.logic.util.TaskExecutor; +import org.jabref.logic.util.io.FileUtil; import org.jabref.model.database.BibDatabaseContext; import org.jabref.model.entry.BibEntryTypesManager; import org.jabref.model.entry.field.SpecialField; @@ -121,24 +125,28 @@ private static Menu createCopyToMenu(ActionFactory factory, List checkedPaths = new ArrayList<>(); if (!openDatabases.isEmpty()) { - openDatabases.forEach(library -> { - library.getDatabasePath().ifPresent(databasePath -> { - String path = databasePath.toString(); - String name = path.substring(path.lastIndexOf('\\') + 1); - - if (!checkedPaths.contains(path)) { - checkedPaths.add(path); - } - - copyToMenu.getItems().addAll( - factory.createCustomCheckMenuItem( - StandardActions.COPY_TO, - new CopyTo(dialogService, stateManager, preferences.getCopyToPreferences(), checkedPaths, path), - true, - name - ) - ); - }); + openDatabases.forEach(bibDatabaseContext -> { + String path = " "; + + if (bibDatabaseContext.getDatabasePath().isPresent()) { + Path databasePath = bibDatabaseContext.getDatabasePath().get(); + path = FileUtil.getUniquePathFragment(stateManager.collectAllDatabasePaths(), databasePath).get(); + } else if (bibDatabaseContext.getLocation() == DatabaseLocation.SHARED) { + path = bibDatabaseContext.getDBMSSynchronizer().getDBName() + " [" + Localization.lang("shared") + "]"; + } + + if (!checkedPaths.contains(path)) { + checkedPaths.add(path); + } + + copyToMenu.getItems().addAll( + factory.createCustomCheckMenuItem( + StandardActions.COPY_TO, + new CopyTo(dialogService, stateManager, preferences.getCopyToPreferences(), checkedPaths, path), + true, + path + ) + ); }); }