From b17d128cabdc78af62c89f2625604039139fb2fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sven=20J=C3=A4ger?= Date: Fri, 25 Nov 2022 14:11:14 +0100 Subject: [PATCH 1/5] Deprecated fields depend on mode --- .../gui/entryeditor/DeprecatedFieldsTab.java | 6 ++++-- .../gui/entryeditor/OptionalFieldsTabBase.java | 6 ++++-- .../jabref/gui/entryeditor/OtherFieldsTab.java | 6 ++++-- .../org/jabref/model/entry/BibEntryType.java | 18 ++++++++++++------ 4 files changed, 24 insertions(+), 12 deletions(-) diff --git a/src/main/java/org/jabref/gui/entryeditor/DeprecatedFieldsTab.java b/src/main/java/org/jabref/gui/entryeditor/DeprecatedFieldsTab.java index d5bc20da9e6..6acf35d0854 100644 --- a/src/main/java/org/jabref/gui/entryeditor/DeprecatedFieldsTab.java +++ b/src/main/java/org/jabref/gui/entryeditor/DeprecatedFieldsTab.java @@ -19,6 +19,7 @@ import org.jabref.logic.l10n.Localization; import org.jabref.logic.pdf.search.indexing.IndexingTaskManager; import org.jabref.model.database.BibDatabaseContext; +import org.jabref.model.database.BibDatabaseMode; import org.jabref.model.entry.BibEntry; import org.jabref.model.entry.BibEntryType; import org.jabref.model.entry.BibEntryTypesManager; @@ -50,9 +51,10 @@ public DeprecatedFieldsTab(BibDatabaseContext databaseContext, @Override protected Set determineFieldsToShow(BibEntry entry) { - Optional entryType = entryTypesManager.enrich(entry.getType(), databaseContext.getMode()); + BibDatabaseMode mode = databaseContext.getMode(); + Optional entryType = entryTypesManager.enrich(entry.getType(), mode); if (entryType.isPresent()) { - return entryType.get().getDeprecatedFields().stream().filter(field -> !entry.getField(field).isEmpty()).collect(Collectors.toSet()); + return entryType.get().getDeprecatedFields(mode).stream().filter(field -> !entry.getField(field).isEmpty()).collect(Collectors.toSet()); } else { // Entry type unknown -> treat all fields as required return Collections.emptySet(); diff --git a/src/main/java/org/jabref/gui/entryeditor/OptionalFieldsTabBase.java b/src/main/java/org/jabref/gui/entryeditor/OptionalFieldsTabBase.java index af1a5f9f0b6..edb22834ff2 100644 --- a/src/main/java/org/jabref/gui/entryeditor/OptionalFieldsTabBase.java +++ b/src/main/java/org/jabref/gui/entryeditor/OptionalFieldsTabBase.java @@ -18,6 +18,7 @@ import org.jabref.logic.l10n.Localization; import org.jabref.logic.pdf.search.indexing.IndexingTaskManager; import org.jabref.model.database.BibDatabaseContext; +import org.jabref.model.database.BibDatabaseMode; import org.jabref.model.entry.BibEntry; import org.jabref.model.entry.BibEntryType; import org.jabref.model.entry.BibEntryTypesManager; @@ -61,12 +62,13 @@ public OptionalFieldsTabBase(String title, @Override protected Set determineFieldsToShow(BibEntry entry) { - Optional entryType = entryTypesManager.enrich(entry.getType(), databaseContext.getMode()); + BibDatabaseMode mode = databaseContext.getMode(); + Optional entryType = entryTypesManager.enrich(entry.getType(), mode); if (entryType.isPresent()) { if (isPrimaryOptionalFields) { return entryType.get().getPrimaryOptionalFields(); } else { - return entryType.get().getSecondaryOptionalNotDeprecatedFields(); + return entryType.get().getSecondaryOptionalNotDeprecatedFields(mode); } } else { // Entry type unknown -> treat all fields as required diff --git a/src/main/java/org/jabref/gui/entryeditor/OtherFieldsTab.java b/src/main/java/org/jabref/gui/entryeditor/OtherFieldsTab.java index 0fe1281c077..50a8066d2cd 100644 --- a/src/main/java/org/jabref/gui/entryeditor/OtherFieldsTab.java +++ b/src/main/java/org/jabref/gui/entryeditor/OtherFieldsTab.java @@ -21,6 +21,7 @@ import org.jabref.logic.l10n.Localization; import org.jabref.logic.pdf.search.indexing.IndexingTaskManager; import org.jabref.model.database.BibDatabaseContext; +import org.jabref.model.database.BibDatabaseMode; import org.jabref.model.entry.BibEntry; import org.jabref.model.entry.BibEntryType; import org.jabref.model.entry.BibEntryTypesManager; @@ -67,12 +68,13 @@ public OtherFieldsTab(BibDatabaseContext databaseContext, @Override protected Set determineFieldsToShow(BibEntry entry) { - Optional entryType = entryTypesManager.enrich(entry.getType(), databaseContext.getMode()); + BibDatabaseMode mode = databaseContext.getMode(); + Optional entryType = entryTypesManager.enrich(entry.getType(), mode); if (entryType.isPresent()) { Set allKnownFields = entryType.get().getAllFields(); Set otherFields = entry.getFields().stream().filter(field -> !allKnownFields.contains(field)).collect(Collectors.toCollection(LinkedHashSet::new)); - otherFields.removeAll(entryType.get().getDeprecatedFields()); + otherFields.removeAll(entryType.get().getDeprecatedFields(mode)); otherFields.removeAll(entryType.get().getOptionalFields().stream().map(BibField::getField).collect(Collectors.toSet())); otherFields.remove(InternalField.KEY_FIELD); otherFields.removeAll(customTabFieldNames); diff --git a/src/main/java/org/jabref/model/entry/BibEntryType.java b/src/main/java/org/jabref/model/entry/BibEntryType.java index f2f03f871c0..aa8803de337 100644 --- a/src/main/java/org/jabref/model/entry/BibEntryType.java +++ b/src/main/java/org/jabref/model/entry/BibEntryType.java @@ -7,6 +7,7 @@ import java.util.Set; import java.util.stream.Collectors; +import org.jabref.model.database.BibDatabaseMode; import org.jabref.model.entry.field.BibField; import org.jabref.model.entry.field.Field; import org.jabref.model.entry.field.FieldPriority; @@ -82,19 +83,24 @@ public Set getSecondaryOptionalFields() { .collect(Collectors.toCollection(LinkedHashSet::new)); } - public Set getDeprecatedFields() { - Set deprecatedFields = new LinkedHashSet<>(EntryConverter.FIELD_ALIASES_TEX_TO_LTX.keySet()); - deprecatedFields.add(StandardField.YEAR); - deprecatedFields.add(StandardField.MONTH); + public Set getDeprecatedFields(BibDatabaseMode mode) { + Set deprecatedFields; + if(mode == BibDatabaseMode.BIBLATEX) { + deprecatedFields = new LinkedHashSet<>(EntryConverter.FIELD_ALIASES_TEX_TO_LTX.keySet()); + deprecatedFields.add(StandardField.YEAR); + deprecatedFields.add(StandardField.MONTH); + } else { + deprecatedFields = new LinkedHashSet<>(EntryConverter.FIELD_ALIASES_LTX_TO_TEX.keySet()); + } deprecatedFields.retainAll(getOptionalFieldsAndAliases()); return deprecatedFields; } - public Set getSecondaryOptionalNotDeprecatedFields() { + public Set getSecondaryOptionalNotDeprecatedFields(BibDatabaseMode mode) { Set optionalFieldsNotPrimaryOrDeprecated = new LinkedHashSet<>(getSecondaryOptionalFields()); - optionalFieldsNotPrimaryOrDeprecated.removeAll(getDeprecatedFields()); + optionalFieldsNotPrimaryOrDeprecated.removeAll(getDeprecatedFields(mode)); return optionalFieldsNotPrimaryOrDeprecated; } From 790b1d95708bc68d7d0452bfefa7d16432f660e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sven=20J=C3=A4ger?= Date: Sun, 18 Dec 2022 08:22:15 +0100 Subject: [PATCH 2/5] reformating according to review comment --- src/main/java/org/jabref/model/entry/BibEntryType.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/jabref/model/entry/BibEntryType.java b/src/main/java/org/jabref/model/entry/BibEntryType.java index aa8803de337..b4d4351e41b 100644 --- a/src/main/java/org/jabref/model/entry/BibEntryType.java +++ b/src/main/java/org/jabref/model/entry/BibEntryType.java @@ -85,7 +85,7 @@ public Set getSecondaryOptionalFields() { public Set getDeprecatedFields(BibDatabaseMode mode) { Set deprecatedFields; - if(mode == BibDatabaseMode.BIBLATEX) { + if (mode == BibDatabaseMode.BIBLATEX) { deprecatedFields = new LinkedHashSet<>(EntryConverter.FIELD_ALIASES_TEX_TO_LTX.keySet()); deprecatedFields.add(StandardField.YEAR); deprecatedFields.add(StandardField.MONTH); From 0910630d23148f0e81e61aaf08a3f035bca2d136 Mon Sep 17 00:00:00 2001 From: Oliver Kopp Date: Sun, 18 Dec 2022 23:55:13 +0100 Subject: [PATCH 3/5] Show "deprecated fields" tab only in biblatex-mode - Add paramter "mode" to getSecondaryOptionalNotDeprecatedFields - More advanced tool tip - Make variable name in EntryConverter more readable Co-authored-by: Christoph Co-authored-by: Carl Christian Snethlage <50491877+calixtus@users.noreply.github.com> --- CHANGELOG.md | 2 +- .../gui/entryeditor/DeprecatedFieldsTab.java | 12 ++++++-- .../entryeditor/OptionalFieldsTabBase.java | 6 ++-- .../gui/entryeditor/OtherFieldsTab.java | 6 ++-- .../cleanup/ConvertToBiblatexCleanup.java | 2 +- .../logic/cleanup/ConvertToBibtexCleanup.java | 2 +- .../org/jabref/model/entry/BibEntryType.java | 26 +++++++++++------ .../model/entry/BibEntryTypesManager.java | 2 +- .../jabref/model/entry/EntryConverter.java | 28 +++++++++---------- src/main/resources/l10n/JabRef_en.properties | 5 +++- 10 files changed, 56 insertions(+), 35 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e04e75ce6eb..b07f3802535 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,7 +23,7 @@ Note that this project **does not** adhere to [Semantic Versioning](http://semve ### Fixed - +- The tab "deprecated fields" is shown in biblatex-mode only. [#7757](https://github.com/JabRef/jabref/issues/7757) diff --git a/src/main/java/org/jabref/gui/entryeditor/DeprecatedFieldsTab.java b/src/main/java/org/jabref/gui/entryeditor/DeprecatedFieldsTab.java index d5bc20da9e6..eafd4f5c4ad 100644 --- a/src/main/java/org/jabref/gui/entryeditor/DeprecatedFieldsTab.java +++ b/src/main/java/org/jabref/gui/entryeditor/DeprecatedFieldsTab.java @@ -25,6 +25,8 @@ import org.jabref.model.entry.field.Field; import org.jabref.preferences.PreferencesService; +import com.tobiasdiez.easybind.EasyBind; + public class DeprecatedFieldsTab extends FieldsEditorTab { private final BibEntryTypesManager entryTypesManager; @@ -44,7 +46,13 @@ public DeprecatedFieldsTab(BibDatabaseContext databaseContext, this.entryTypesManager = entryTypesManager; setText(Localization.lang("Deprecated fields")); - setTooltip(new Tooltip(Localization.lang("Show deprecated BibTeX fields"))); + EasyBind.subscribe(preferences.getGeneralPreferences().showAdvancedHintsProperty(), advancedHints -> { + if (advancedHints) { + setTooltip(new Tooltip(Localization.lang("Shows fields having a successor in biblatex.\nFor instance, the publication month should be part of the date field.\nUse the Cleanup Entries functionality to convert the entry to biblatex."))); + } else { + setTooltip(new Tooltip(Localization.lang("Shows fields having a successor in biblatex."))); + } + }); setGraphic(IconTheme.JabRefIcons.OPTIONAL.getGraphicNode()); } @@ -52,7 +60,7 @@ public DeprecatedFieldsTab(BibDatabaseContext databaseContext, protected Set determineFieldsToShow(BibEntry entry) { Optional entryType = entryTypesManager.enrich(entry.getType(), databaseContext.getMode()); if (entryType.isPresent()) { - return entryType.get().getDeprecatedFields().stream().filter(field -> !entry.getField(field).isEmpty()).collect(Collectors.toSet()); + return entryType.get().getDeprecatedFields(databaseContext.getMode()).stream().filter(field -> !entry.getField(field).isEmpty()).collect(Collectors.toSet()); } else { // Entry type unknown -> treat all fields as required return Collections.emptySet(); diff --git a/src/main/java/org/jabref/gui/entryeditor/OptionalFieldsTabBase.java b/src/main/java/org/jabref/gui/entryeditor/OptionalFieldsTabBase.java index af1a5f9f0b6..edb22834ff2 100644 --- a/src/main/java/org/jabref/gui/entryeditor/OptionalFieldsTabBase.java +++ b/src/main/java/org/jabref/gui/entryeditor/OptionalFieldsTabBase.java @@ -18,6 +18,7 @@ import org.jabref.logic.l10n.Localization; import org.jabref.logic.pdf.search.indexing.IndexingTaskManager; import org.jabref.model.database.BibDatabaseContext; +import org.jabref.model.database.BibDatabaseMode; import org.jabref.model.entry.BibEntry; import org.jabref.model.entry.BibEntryType; import org.jabref.model.entry.BibEntryTypesManager; @@ -61,12 +62,13 @@ public OptionalFieldsTabBase(String title, @Override protected Set determineFieldsToShow(BibEntry entry) { - Optional entryType = entryTypesManager.enrich(entry.getType(), databaseContext.getMode()); + BibDatabaseMode mode = databaseContext.getMode(); + Optional entryType = entryTypesManager.enrich(entry.getType(), mode); if (entryType.isPresent()) { if (isPrimaryOptionalFields) { return entryType.get().getPrimaryOptionalFields(); } else { - return entryType.get().getSecondaryOptionalNotDeprecatedFields(); + return entryType.get().getSecondaryOptionalNotDeprecatedFields(mode); } } else { // Entry type unknown -> treat all fields as required diff --git a/src/main/java/org/jabref/gui/entryeditor/OtherFieldsTab.java b/src/main/java/org/jabref/gui/entryeditor/OtherFieldsTab.java index 0fe1281c077..50a8066d2cd 100644 --- a/src/main/java/org/jabref/gui/entryeditor/OtherFieldsTab.java +++ b/src/main/java/org/jabref/gui/entryeditor/OtherFieldsTab.java @@ -21,6 +21,7 @@ import org.jabref.logic.l10n.Localization; import org.jabref.logic.pdf.search.indexing.IndexingTaskManager; import org.jabref.model.database.BibDatabaseContext; +import org.jabref.model.database.BibDatabaseMode; import org.jabref.model.entry.BibEntry; import org.jabref.model.entry.BibEntryType; import org.jabref.model.entry.BibEntryTypesManager; @@ -67,12 +68,13 @@ public OtherFieldsTab(BibDatabaseContext databaseContext, @Override protected Set determineFieldsToShow(BibEntry entry) { - Optional entryType = entryTypesManager.enrich(entry.getType(), databaseContext.getMode()); + BibDatabaseMode mode = databaseContext.getMode(); + Optional entryType = entryTypesManager.enrich(entry.getType(), mode); if (entryType.isPresent()) { Set allKnownFields = entryType.get().getAllFields(); Set otherFields = entry.getFields().stream().filter(field -> !allKnownFields.contains(field)).collect(Collectors.toCollection(LinkedHashSet::new)); - otherFields.removeAll(entryType.get().getDeprecatedFields()); + otherFields.removeAll(entryType.get().getDeprecatedFields(mode)); otherFields.removeAll(entryType.get().getOptionalFields().stream().map(BibField::getField).collect(Collectors.toSet())); otherFields.remove(InternalField.KEY_FIELD); otherFields.removeAll(customTabFieldNames); diff --git a/src/main/java/org/jabref/logic/cleanup/ConvertToBiblatexCleanup.java b/src/main/java/org/jabref/logic/cleanup/ConvertToBiblatexCleanup.java index c6e2ab13309..470d01f335b 100644 --- a/src/main/java/org/jabref/logic/cleanup/ConvertToBiblatexCleanup.java +++ b/src/main/java/org/jabref/logic/cleanup/ConvertToBiblatexCleanup.java @@ -21,7 +21,7 @@ public class ConvertToBiblatexCleanup implements CleanupJob { @Override public List cleanup(BibEntry entry) { List changes = new ArrayList<>(); - for (Map.Entry alias : EntryConverter.FIELD_ALIASES_TEX_TO_LTX.entrySet()) { + for (Map.Entry alias : EntryConverter.FIELD_ALIASES_BIBTEX_TO_BIBLATEX.entrySet()) { Field oldField = alias.getKey(); Field newField = alias.getValue(); entry.getField(oldField).ifPresent(oldValue -> { diff --git a/src/main/java/org/jabref/logic/cleanup/ConvertToBibtexCleanup.java b/src/main/java/org/jabref/logic/cleanup/ConvertToBibtexCleanup.java index 20a524cfac8..5d14bec9eef 100644 --- a/src/main/java/org/jabref/logic/cleanup/ConvertToBibtexCleanup.java +++ b/src/main/java/org/jabref/logic/cleanup/ConvertToBibtexCleanup.java @@ -36,7 +36,7 @@ public List cleanup(BibEntry entry) { } }); - for (Map.Entry alias : EntryConverter.FIELD_ALIASES_TEX_TO_LTX.entrySet()) { + for (Map.Entry alias : EntryConverter.FIELD_ALIASES_BIBTEX_TO_BIBLATEX.entrySet()) { Field oldField = alias.getValue(); Field newField = alias.getKey(); entry.getField(oldField).ifPresent(oldValue -> { diff --git a/src/main/java/org/jabref/model/entry/BibEntryType.java b/src/main/java/org/jabref/model/entry/BibEntryType.java index f2f03f871c0..c8eb7b92b6e 100644 --- a/src/main/java/org/jabref/model/entry/BibEntryType.java +++ b/src/main/java/org/jabref/model/entry/BibEntryType.java @@ -7,6 +7,7 @@ import java.util.Set; import java.util.stream.Collectors; +import org.jabref.model.database.BibDatabaseMode; import org.jabref.model.entry.field.BibField; import org.jabref.model.entry.field.Field; import org.jabref.model.entry.field.FieldPriority; @@ -82,31 +83,38 @@ public Set getSecondaryOptionalFields() { .collect(Collectors.toCollection(LinkedHashSet::new)); } - public Set getDeprecatedFields() { - Set deprecatedFields = new LinkedHashSet<>(EntryConverter.FIELD_ALIASES_TEX_TO_LTX.keySet()); - deprecatedFields.add(StandardField.YEAR); - deprecatedFields.add(StandardField.MONTH); + public Set getDeprecatedFields(BibDatabaseMode mode) { + if (mode == BibDatabaseMode.BIBTEX) { + return Collections.emptySet(); + } + Set deprecatedFields = new LinkedHashSet<>(EntryConverter.FIELD_ALIASES_BIBTEX_TO_BIBLATEX.keySet()); + // Only the optional fields which are mapped to another BibLaTeX name should be shown as "deprecated" deprecatedFields.retainAll(getOptionalFieldsAndAliases()); + // BibLaTeX aims for that field "date" is used + // Thus, year + month is deprecated + // However, year is used in the wild very often, so we do not mark that as default as deprecated + deprecatedFields.add(StandardField.MONTH); + return deprecatedFields; } - public Set getSecondaryOptionalNotDeprecatedFields() { + public Set getSecondaryOptionalNotDeprecatedFields(BibDatabaseMode mode) { Set optionalFieldsNotPrimaryOrDeprecated = new LinkedHashSet<>(getSecondaryOptionalFields()); - optionalFieldsNotPrimaryOrDeprecated.removeAll(getDeprecatedFields()); + optionalFieldsNotPrimaryOrDeprecated.removeAll(getDeprecatedFields(mode)); return optionalFieldsNotPrimaryOrDeprecated; } /** - * Get list of all optional fields of this entry and their aliases. + * Get list of all optional fields of this entry and all fields being source for a BibTeX to BibLaTeX conversion. */ private Set getOptionalFieldsAndAliases() { Set optionalFieldsAndAliases = new LinkedHashSet<>(getOptionalFields().size()); for (BibField field : getOptionalFields()) { optionalFieldsAndAliases.add(field.getField()); - if (EntryConverter.FIELD_ALIASES_LTX_TO_TEX.containsKey(field.getField())) { - optionalFieldsAndAliases.add(EntryConverter.FIELD_ALIASES_LTX_TO_TEX.get(field.getField())); + if (EntryConverter.FIELD_ALIASES_BIBTEX_TO_BIBLATEX.containsKey(field.getField())) { + optionalFieldsAndAliases.add(field.getField()); } } return optionalFieldsAndAliases; diff --git a/src/main/java/org/jabref/model/entry/BibEntryTypesManager.java b/src/main/java/org/jabref/model/entry/BibEntryTypesManager.java index 836cd39dac8..39e9f7ecdb3 100644 --- a/src/main/java/org/jabref/model/entry/BibEntryTypesManager.java +++ b/src/main/java/org/jabref/model/entry/BibEntryTypesManager.java @@ -170,7 +170,7 @@ public InternalEntryTypes(List standardTypes) { /** * This method returns the BibtexEntryType for the name of a type, - * or null if it does not exist. + * or an empty optional if it does not exist. */ public Optional enrich(EntryType type) { Optional enrichedType = customOrModifiedType.stream() diff --git a/src/main/java/org/jabref/model/entry/EntryConverter.java b/src/main/java/org/jabref/model/entry/EntryConverter.java index b4d1ee478c0..0a6f6621dd9 100644 --- a/src/main/java/org/jabref/model/entry/EntryConverter.java +++ b/src/main/java/org/jabref/model/entry/EntryConverter.java @@ -12,34 +12,32 @@ */ public class EntryConverter { - // BibTeX to biblatex - public static Map FIELD_ALIASES_TEX_TO_LTX; + public static Map FIELD_ALIASES_BIBTEX_TO_BIBLATEX; - // biblatex to BibTeX - public static Map FIELD_ALIASES_LTX_TO_TEX; + public static Map FIELD_ALIASES_BIBLATEX_TO_BIBTEX; // All aliases public static Map FIELD_ALIASES; static { - EntryConverter.FIELD_ALIASES_TEX_TO_LTX = new HashMap<>(); - EntryConverter.FIELD_ALIASES_TEX_TO_LTX.put(StandardField.ADDRESS, StandardField.LOCATION); - EntryConverter.FIELD_ALIASES_TEX_TO_LTX.put(StandardField.ANNOTE, StandardField.ANNOTATION); - EntryConverter.FIELD_ALIASES_TEX_TO_LTX.put(StandardField.ARCHIVEPREFIX, StandardField.EPRINTTYPE); - EntryConverter.FIELD_ALIASES_TEX_TO_LTX.put(StandardField.JOURNAL, StandardField.JOURNALTITLE); - EntryConverter.FIELD_ALIASES_TEX_TO_LTX.put(StandardField.KEY, StandardField.SORTKEY); - EntryConverter.FIELD_ALIASES_TEX_TO_LTX.put(StandardField.PRIMARYCLASS, StandardField.EPRINTCLASS); - EntryConverter.FIELD_ALIASES_TEX_TO_LTX.put(StandardField.SCHOOL, StandardField.INSTITUTION); + EntryConverter.FIELD_ALIASES_BIBTEX_TO_BIBLATEX = new HashMap<>(); + EntryConverter.FIELD_ALIASES_BIBTEX_TO_BIBLATEX.put(StandardField.ADDRESS, StandardField.LOCATION); + EntryConverter.FIELD_ALIASES_BIBTEX_TO_BIBLATEX.put(StandardField.ANNOTE, StandardField.ANNOTATION); + EntryConverter.FIELD_ALIASES_BIBTEX_TO_BIBLATEX.put(StandardField.ARCHIVEPREFIX, StandardField.EPRINTTYPE); + EntryConverter.FIELD_ALIASES_BIBTEX_TO_BIBLATEX.put(StandardField.JOURNAL, StandardField.JOURNALTITLE); + EntryConverter.FIELD_ALIASES_BIBTEX_TO_BIBLATEX.put(StandardField.KEY, StandardField.SORTKEY); + EntryConverter.FIELD_ALIASES_BIBTEX_TO_BIBLATEX.put(StandardField.PRIMARYCLASS, StandardField.EPRINTCLASS); + EntryConverter.FIELD_ALIASES_BIBTEX_TO_BIBLATEX.put(StandardField.SCHOOL, StandardField.INSTITUTION); // inverse map - EntryConverter.FIELD_ALIASES_LTX_TO_TEX = EntryConverter.FIELD_ALIASES_TEX_TO_LTX + EntryConverter.FIELD_ALIASES_BIBLATEX_TO_BIBTEX = EntryConverter.FIELD_ALIASES_BIBTEX_TO_BIBLATEX .entrySet().stream() .collect(Collectors.toMap(Map.Entry::getValue, Map.Entry::getKey)); // all aliases FIELD_ALIASES = new HashMap<>(); - FIELD_ALIASES.putAll(EntryConverter.FIELD_ALIASES_TEX_TO_LTX); - FIELD_ALIASES.putAll(EntryConverter.FIELD_ALIASES_LTX_TO_TEX); + FIELD_ALIASES.putAll(EntryConverter.FIELD_ALIASES_BIBTEX_TO_BIBLATEX); + FIELD_ALIASES.putAll(EntryConverter.FIELD_ALIASES_BIBLATEX_TO_BIBTEX); } private EntryConverter() { diff --git a/src/main/resources/l10n/JabRef_en.properties b/src/main/resources/l10n/JabRef_en.properties index 99236d2167f..70f196c1c29 100644 --- a/src/main/resources/l10n/JabRef_en.properties +++ b/src/main/resources/l10n/JabRef_en.properties @@ -1283,6 +1283,10 @@ Convert\ to\ biblatex\ format\ (e.g.,\ store\ publication\ date\ in\ date\ field Convert\ to\ BibTeX\ format\ (e.g.,\ store\ publication\ date\ in\ year\ and\ month\ fields)=Convert to BibTeX format (e.g., store publication date in year and month fields) Deprecated\ fields=Deprecated fields +Shows\ fields\ having\ a\ successor\ in\ biblatex.=Shows fields having a successor in biblatex. +Shows\ fields\ having\ a\ successor\ in\ biblatex.\nFor\ instance,\ the\ publication\ month\ should\ be\ part\ of\ the\ date\ field.\nUse\ the\ Cleanup\ Entries\ functionality\ to\ convert\ the\ entry\ to\ biblatex.=Shows fields having a successor in biblatex.\nFor instance, the publication month should be part of the date field.\n Use the Cleanup Entries functionality to convert the entry to biblatex. + + No\ read\ status\ information=No read status information Printed=Printed Read\ status=Read status @@ -1291,7 +1295,6 @@ Read\ status\ skimmed=Read status skimmed Save\ selected\ as\ plain\ BibTeX...=Save selected as plain BibTeX... Set\ read\ status\ to\ read=Set read status to read Set\ read\ status\ to\ skimmed=Set read status to skimmed -Show\ deprecated\ BibTeX\ fields=Show deprecated BibTeX fields Opens\ JabRef's\ GitHub\ page=Opens JabRef's GitHub page Opens\ JabRef's\ Twitter\ page=Opens JabRef's Twitter page From 8ea341a69ca3e8eef38cb4c997c5531820da7065 Mon Sep 17 00:00:00 2001 From: Oliver Kopp Date: Mon, 19 Dec 2022 00:22:57 +0100 Subject: [PATCH 4/5] Really use mode variable --- .../java/org/jabref/gui/entryeditor/DeprecatedFieldsTab.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/jabref/gui/entryeditor/DeprecatedFieldsTab.java b/src/main/java/org/jabref/gui/entryeditor/DeprecatedFieldsTab.java index a4e6e74b96e..91d876c41b5 100644 --- a/src/main/java/org/jabref/gui/entryeditor/DeprecatedFieldsTab.java +++ b/src/main/java/org/jabref/gui/entryeditor/DeprecatedFieldsTab.java @@ -62,7 +62,7 @@ protected Set determineFieldsToShow(BibEntry entry) { BibDatabaseMode mode = databaseContext.getMode(); Optional entryType = entryTypesManager.enrich(entry.getType(), mode); if (entryType.isPresent()) { - return entryType.get().getDeprecatedFields(databaseContext.getMode()).stream().filter(field -> !entry.getField(field).isEmpty()).collect(Collectors.toSet()); + return entryType.get().getDeprecatedFields(mode).stream().filter(field -> !entry.getField(field).isEmpty()).collect(Collectors.toSet()); } else { // Entry type unknown -> treat all fields as required return Collections.emptySet(); From c8ebfd0a1f3f61b5e1514b60338367fcf0f4355f Mon Sep 17 00:00:00 2001 From: Oliver Kopp Date: Mon, 19 Dec 2022 00:30:57 +0100 Subject: [PATCH 5/5] Fix space --- src/main/resources/l10n/JabRef_en.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/resources/l10n/JabRef_en.properties b/src/main/resources/l10n/JabRef_en.properties index 70f196c1c29..50741976a41 100644 --- a/src/main/resources/l10n/JabRef_en.properties +++ b/src/main/resources/l10n/JabRef_en.properties @@ -1284,7 +1284,7 @@ Convert\ to\ BibTeX\ format\ (e.g.,\ store\ publication\ date\ in\ year\ and\ mo Deprecated\ fields=Deprecated fields Shows\ fields\ having\ a\ successor\ in\ biblatex.=Shows fields having a successor in biblatex. -Shows\ fields\ having\ a\ successor\ in\ biblatex.\nFor\ instance,\ the\ publication\ month\ should\ be\ part\ of\ the\ date\ field.\nUse\ the\ Cleanup\ Entries\ functionality\ to\ convert\ the\ entry\ to\ biblatex.=Shows fields having a successor in biblatex.\nFor instance, the publication month should be part of the date field.\n Use the Cleanup Entries functionality to convert the entry to biblatex. +Shows\ fields\ having\ a\ successor\ in\ biblatex.\nFor\ instance,\ the\ publication\ month\ should\ be\ part\ of\ the\ date\ field.\nUse\ the\ Cleanup\ Entries\ functionality\ to\ convert\ the\ entry\ to\ biblatex.=Shows fields having a successor in biblatex.\nFor instance, the publication month should be part of the date field.\nUse the Cleanup Entries functionality to convert the entry to biblatex. No\ read\ status\ information=No read status information