From 773e134fc0df06c0f90075d8a35ea797a5088ec2 Mon Sep 17 00:00:00 2001 From: Christoph Date: Fri, 21 Aug 2020 11:00:18 +0200 Subject: [PATCH 1/4] New Crowdin updates (#6774) * New translations JabRef_en.properties (Spanish) * New translations JabRef_en.properties (Polish) * New translations JabRef_en.properties (Persian) * New translations JabRef_en.properties (Indonesian) * New translations JabRef_en.properties (Portuguese, Brazilian) * New translations JabRef_en.properties (Vietnamese) * New translations JabRef_en.properties (Swedish) * New translations JabRef_en.properties (Russian) * New translations JabRef_en.properties (Portuguese) * New translations JabRef_en.properties (Norwegian) * New translations JabRef_en.properties (Turkish) * New translations JabRef_en.properties (Dutch) * New translations JabRef_en.properties (Japanese) * New translations JabRef_en.properties (Italian) * New translations JabRef_en.properties (Greek) * New translations JabRef_en.properties (German) * New translations JabRef_en.properties (Danish) * New translations JabRef_en.properties (French) * New translations JabRef_en.properties (Chinese Simplified) * New translations JabRef_en.properties (Tagalog) * New translations JabRef_en.properties (Spanish) * New translations JabRef_en.properties (French) * New translations JabRef_en.properties (Italian) * New translations JabRef_en.properties (Russian) --- src/main/resources/l10n/JabRef_da.properties | 2 ++ src/main/resources/l10n/JabRef_de.properties | 3 +++ src/main/resources/l10n/JabRef_el.properties | 2 ++ src/main/resources/l10n/JabRef_es.properties | 8 ++++++++ src/main/resources/l10n/JabRef_fa.properties | 4 ++++ src/main/resources/l10n/JabRef_fr.properties | 5 +++++ src/main/resources/l10n/JabRef_in.properties | 2 ++ src/main/resources/l10n/JabRef_it.properties | 5 +++++ src/main/resources/l10n/JabRef_ja.properties | 2 ++ src/main/resources/l10n/JabRef_nl.properties | 2 ++ src/main/resources/l10n/JabRef_no.properties | 2 ++ src/main/resources/l10n/JabRef_pl.properties | 2 ++ src/main/resources/l10n/JabRef_pt.properties | 2 ++ src/main/resources/l10n/JabRef_pt_BR.properties | 2 ++ src/main/resources/l10n/JabRef_ru.properties | 5 +++++ src/main/resources/l10n/JabRef_sv.properties | 2 ++ src/main/resources/l10n/JabRef_tl.properties | 2 ++ src/main/resources/l10n/JabRef_tr.properties | 2 ++ src/main/resources/l10n/JabRef_vi.properties | 2 ++ src/main/resources/l10n/JabRef_zh.properties | 8 ++++++-- 20 files changed, 62 insertions(+), 2 deletions(-) diff --git a/src/main/resources/l10n/JabRef_da.properties b/src/main/resources/l10n/JabRef_da.properties index e9fe5629f89..d24fadc3a0e 100644 --- a/src/main/resources/l10n/JabRef_da.properties +++ b/src/main/resources/l10n/JabRef_da.properties @@ -1090,3 +1090,5 @@ Default\ pattern=Standardmønster + + diff --git a/src/main/resources/l10n/JabRef_de.properties b/src/main/resources/l10n/JabRef_de.properties index 751e342bbd7..0703973c35a 100644 --- a/src/main/resources/l10n/JabRef_de.properties +++ b/src/main/resources/l10n/JabRef_de.properties @@ -2171,11 +2171,14 @@ User-specific\ ranking.=Benutzerspezifische Rangliste. User-specific\ read\ status.=Benutzerspezifischer Lesestatus. User-specific\ relevance\ flag,\ in\ case\ the\ entry\ is\ relevant.=Benutzerspezifische Relevanz-Indikator, falls der Eintrag relevant ist. + Remove\ formatter\ for\ %0=Formatierer für %0 entfernen Remove\ formatter\ '%0'=Formatierer '%0 ' entfernen A\ multi-volume\ "Book".=Ein mehrbändiges "Buch". A\ multi-volume\ "Collection".=Eine mehrbändige "Sammlung". +Close\ other\ libraries=Andere Bibliotheken schließen + diff --git a/src/main/resources/l10n/JabRef_el.properties b/src/main/resources/l10n/JabRef_el.properties index 616ff84bb1b..ff4f9ab2db5 100644 --- a/src/main/resources/l10n/JabRef_el.properties +++ b/src/main/resources/l10n/JabRef_el.properties @@ -1746,3 +1746,5 @@ Default\ pattern=Προεπιλεγμένο μοτίβο + + diff --git a/src/main/resources/l10n/JabRef_es.properties b/src/main/resources/l10n/JabRef_es.properties index 33d66feee48..36479ea77c4 100644 --- a/src/main/resources/l10n/JabRef_es.properties +++ b/src/main/resources/l10n/JabRef_es.properties @@ -1531,6 +1531,7 @@ incorrect\ control\ digit=dígito de control incorrecto incorrect\ format=formato incorrecto Copied\ version\ to\ clipboard=Version copiada al portapapeles +Citation\ key=Clave de cita Message=Mensaje @@ -1800,6 +1801,7 @@ Entry\ from\ %0\ could\ not\ be\ parsed.=No se pudo analizar la entrada de %0. Invalid\ identifier\:\ '%0'.=Identificador no válido\: '%0'. This\ paper\ has\ been\ withdrawn.=Este artículo ha sido retirado. Finished\ writing\ XMP\ metadata.=Terminó de escribir metadatos XMP. +empty\ citation\ key=clave de cita vacía Your\ Java\ Runtime\ Environment\ is\ located\ at\ %0.=Su Java Runtime Environment se encuentra en %0. Aux\ file=Archivo Aux Group\ containing\ entries\ cited\ in\ a\ given\ TeX\ file=Grupo que contiene las entradas citadas en un archivo TeX determinado @@ -1922,6 +1924,7 @@ Are\ you\ sure\ you\ want\ to\ remove\ keyword\:\ "%0"?=¿Está seguro de que de Reset\ to\ default=Restablecer los valores por defecto Edit\ string\ constants=Editar constantes de la cadena Export\ all\ entries=Exportar todas las entradas +Generate\ citation\ keys=Generar claves de cita Groups\ interface=Interfaz de grupos Manage\ field\ names\ &\ content=Gestionar nombres y contenido de los campos New\ library=Nueva biblioteca @@ -2154,6 +2157,9 @@ Secondary\ editor\ performing\ a\ different\ editorial\ role,\ such\ as\ compili Another\ secondary\ editor\ performing\ a\ different\ role.=Otro editor secundario que desempeña un papel diferente. Type\ of\ editorial\ role\ performed\ by\ the\ "Editor".=Tipo de papel editorial realizado por el "Editor". +Auto\ complete\ disabled.=Auto completado desactivado. +Auto\ complete\ enabled.=Auto completado habilitado. + Remove\ the\ following\ characters\:=Eliminar los siguientes caracteres\: @@ -2166,6 +2172,8 @@ Close\ other\ libraries=Cerrar las otras bibliotecas Close\ others=Cerrar las otras Reveal\ in\ file\ explorer=Revelar en el explorador de archivos +(\ Note\:\ Press\ return\ to\ commit\ changes\ in\ the\ table\!\ )=(Nota\: oprima Intro para confirmar los cambios en la tabla.) + Reset=Restablecer Reset\ entry\ types\ and\ fields\ to\ defaults=Restablecer tipos de entradas y campos a los valores predeterminados This\ will\ reset\ all\ entry\ types\ to\ their\ default\ values\ and\ remove\ all\ custom\ entry\ types=Esto restablecerá todos los tipos de entradas a sus valores predeterminados y quitará todos los tipos de entrada personalizados diff --git a/src/main/resources/l10n/JabRef_fa.properties b/src/main/resources/l10n/JabRef_fa.properties index 38668037181..d78f43dc407 100644 --- a/src/main/resources/l10n/JabRef_fa.properties +++ b/src/main/resources/l10n/JabRef_fa.properties @@ -598,6 +598,10 @@ Push\ entries\ to\ external\ application\ (%0)=(نشاندن ورودی‌ها + + +Auto\ complete\ disabled.=تکمیل خودکار غیرفعال شد. +Auto\ complete\ enabled.=تکمیل خودکار غیرفعال شد. diff --git a/src/main/resources/l10n/JabRef_fr.properties b/src/main/resources/l10n/JabRef_fr.properties index 281d5042e81..a89a29e8088 100644 --- a/src/main/resources/l10n/JabRef_fr.properties +++ b/src/main/resources/l10n/JabRef_fr.properties @@ -2205,6 +2205,9 @@ User-specific\ ranking.=Classement spécifique à l'utilisateur. User-specific\ read\ status.=Statut de lecture spécifique à l'utilisateur. User-specific\ relevance\ flag,\ in\ case\ the\ entry\ is\ relevant.=Indicateur de pertinence spécifique à l'utilisateur, au cas où l'entrée est pertinente. +Auto\ complete\ disabled.=Auto-complétion désactivée. +Auto\ complete\ enabled.=Auto-complétion activée. + Remove\ formatter\ for\ %0=Supprimer le formateur pour %0 Remove\ formatter\ '%0'=Supprimer le formateur '%0' @@ -2252,6 +2255,8 @@ Close\ other\ libraries=Fermer les autres fichiers Close\ others=Fermer les autres Reveal\ in\ file\ explorer=Montrer dans l'explorateur de fichiers +(\ Note\:\ Press\ return\ to\ commit\ changes\ in\ the\ table\!\ )=(Remarque \: Appuyez sur Entrée pour valider les modifications dans le tableau \!) + Reset=Restaurer Reset\ entry\ types\ and\ fields\ to\ defaults=Réinitialiser les types d'entrées et les champs par défaut This\ will\ reset\ all\ entry\ types\ to\ their\ default\ values\ and\ remove\ all\ custom\ entry\ types=Cela réinitialisera tous les types d'entrée à leurs valeurs par défaut et supprimera tous les types d'entrée personnalisés diff --git a/src/main/resources/l10n/JabRef_in.properties b/src/main/resources/l10n/JabRef_in.properties index 0d26070ff70..9f34151d3ec 100644 --- a/src/main/resources/l10n/JabRef_in.properties +++ b/src/main/resources/l10n/JabRef_in.properties @@ -1687,3 +1687,5 @@ Default\ pattern=Pola bawaan + + diff --git a/src/main/resources/l10n/JabRef_it.properties b/src/main/resources/l10n/JabRef_it.properties index 7cc035c0854..487388b17ce 100644 --- a/src/main/resources/l10n/JabRef_it.properties +++ b/src/main/resources/l10n/JabRef_it.properties @@ -2205,6 +2205,9 @@ User-specific\ ranking.=Classifica specifica per l'utente. User-specific\ read\ status.=Stato di lettura specifico dell'utente. User-specific\ relevance\ flag,\ in\ case\ the\ entry\ is\ relevant.=Contrassegno di rilevanza specifica per l'utente, nel caso in cui la voce sia rilevante. +Auto\ complete\ disabled.=Completamento automatico disabilitato. +Auto\ complete\ enabled.=Completamento automatico abilitato. + Remove\ formatter\ for\ %0=Rimuovi formattatore per %0 Remove\ formatter\ '%0'=Rimuovi formattatore '%0' @@ -2252,6 +2255,8 @@ Close\ other\ libraries=Chiudi le altre librerie Close\ others=Chiudi gli altri Reveal\ in\ file\ explorer=Rivela nel file explorer +(\ Note\:\ Press\ return\ to\ commit\ changes\ in\ the\ table\!\ )=( Nota\: Premi invio per effettuare il commit delle modifiche nella tabella\! ) + Reset=Ripristina Reset\ entry\ types\ and\ fields\ to\ defaults=Reimposta i tipi di voci e i campi ai valori predefiniti This\ will\ reset\ all\ entry\ types\ to\ their\ default\ values\ and\ remove\ all\ custom\ entry\ types=Questo reimposterà tutti i tipi di voci ai loro valori predefiniti e rimuoverà tutti i tipi di voci personalizzate diff --git a/src/main/resources/l10n/JabRef_ja.properties b/src/main/resources/l10n/JabRef_ja.properties index 9f8df3afdb4..7408a6a2d6f 100644 --- a/src/main/resources/l10n/JabRef_ja.properties +++ b/src/main/resources/l10n/JabRef_ja.properties @@ -2011,3 +2011,5 @@ Required=必須 + + diff --git a/src/main/resources/l10n/JabRef_nl.properties b/src/main/resources/l10n/JabRef_nl.properties index 54f51189764..82fa8970791 100644 --- a/src/main/resources/l10n/JabRef_nl.properties +++ b/src/main/resources/l10n/JabRef_nl.properties @@ -1782,3 +1782,5 @@ Default\ pattern=Standaard patroon + + diff --git a/src/main/resources/l10n/JabRef_no.properties b/src/main/resources/l10n/JabRef_no.properties index e7e614014bc..218e5f2d696 100644 --- a/src/main/resources/l10n/JabRef_no.properties +++ b/src/main/resources/l10n/JabRef_no.properties @@ -1215,3 +1215,5 @@ Default\ pattern=Standardmønster + + diff --git a/src/main/resources/l10n/JabRef_pl.properties b/src/main/resources/l10n/JabRef_pl.properties index befdfb8a4a4..696dd619d50 100644 --- a/src/main/resources/l10n/JabRef_pl.properties +++ b/src/main/resources/l10n/JabRef_pl.properties @@ -958,3 +958,5 @@ Reset\ All=Resetuj wszystko + + diff --git a/src/main/resources/l10n/JabRef_pt.properties b/src/main/resources/l10n/JabRef_pt.properties index a440211d21e..dc964737398 100644 --- a/src/main/resources/l10n/JabRef_pt.properties +++ b/src/main/resources/l10n/JabRef_pt.properties @@ -1386,3 +1386,5 @@ Default\ pattern=Ppadrão predefinido + + diff --git a/src/main/resources/l10n/JabRef_pt_BR.properties b/src/main/resources/l10n/JabRef_pt_BR.properties index a1f5e4761fe..6d274fe43d6 100644 --- a/src/main/resources/l10n/JabRef_pt_BR.properties +++ b/src/main/resources/l10n/JabRef_pt_BR.properties @@ -2170,6 +2170,7 @@ User-specific\ printed\ flag,\ in\ case\ the\ entry\ has\ been\ printed.=Indica User-specific\ relevance\ flag,\ in\ case\ the\ entry\ is\ relevant.=Indicação de relevância específica do usuário, caso a referência seja relevante. + An\ article\ in\ a\ work\ of\ reference.\ This\ is\ a\ more\ specific\ variant\ of\ the\ generic\ "InCollection"\ entry\ type.=Um artigo em um trabalho de referência. Esta é uma variante mais específica do tipo de referência genérico de "InCollection". A\ multi-volume\ "Proceedings"\ entry.=Uma referência "Proceedings" com vários volumes. A\ multi-volume\ "Reference"\ entry.\ The\ standard\ styles\ will\ treat\ this\ entry\ type\ as\ an\ alias\ for\ "MvCollection".=Uma referência "Reference" de vários volumes. Os estilos padrão tratarão este tipo de referência como um apelido para "MvCollection". @@ -2185,6 +2186,7 @@ Close\ other\ libraries=Fechar outras bibliotecas Close\ others=Fechar outros Reveal\ in\ file\ explorer=Mostrar no explorador de arquivos + Reset=Reset Reset\ entry\ types\ and\ fields\ to\ defaults=Redefinir tipos de entrada e campos para o padrão This\ will\ reset\ all\ entry\ types\ to\ their\ default\ values\ and\ remove\ all\ custom\ entry\ types=Isso redefinirá todos os tipos de referências aos seus valores padrão e removerá todos os tipos de entrada personalizados diff --git a/src/main/resources/l10n/JabRef_ru.properties b/src/main/resources/l10n/JabRef_ru.properties index df9f530b8d7..9b5c1df0017 100644 --- a/src/main/resources/l10n/JabRef_ru.properties +++ b/src/main/resources/l10n/JabRef_ru.properties @@ -2156,6 +2156,9 @@ User-specific\ ranking.=Рейтинг, указанный пользовате User-specific\ read\ status.=Статус чтения, указанный пользователем. User-specific\ relevance\ flag,\ in\ case\ the\ entry\ is\ relevant.=Флаг релевантности, указанный пользователем. Только если запись актуальна. +Auto\ complete\ disabled.=Авто заполнение отключено. +Auto\ complete\ enabled.=Авто заполнение включено. + Remove\ formatter\ for\ %0=Удалить форматирование для %0 Remove\ formatter\ '%0'=Удалить форматирование '%0' @@ -2198,6 +2201,8 @@ Close\ other\ libraries=Закрыть другие библиотеки Close\ others=Закрыть другие Reveal\ in\ file\ explorer=Показать в обозревателе файлов +(\ Note\:\ Press\ return\ to\ commit\ changes\ in\ the\ table\!\ )=( Примечание\: Нажмите "возврат", чтобы сохранить изменения в таблице\! ) + Reset=Сбросить Reset\ entry\ types\ and\ fields\ to\ defaults=Сбросить типы записей и поля по умолчанию This\ will\ reset\ all\ entry\ types\ to\ their\ default\ values\ and\ remove\ all\ custom\ entry\ types=Это сбросит все типы записей к их значениям по умолчанию и удалит все пользовательские типы записей diff --git a/src/main/resources/l10n/JabRef_sv.properties b/src/main/resources/l10n/JabRef_sv.properties index e8e509812a5..dbe3fdf3a83 100644 --- a/src/main/resources/l10n/JabRef_sv.properties +++ b/src/main/resources/l10n/JabRef_sv.properties @@ -1525,8 +1525,10 @@ Shared\ database=Delad databas + Remove\ the\ following\ characters\:=Ta bort följande tecken\: Truncate=Förkorta Truncates\ a\ string\ after\ a\ given\ index.=Förkortar en sträng vid givet index. + diff --git a/src/main/resources/l10n/JabRef_tl.properties b/src/main/resources/l10n/JabRef_tl.properties index 9c79214a940..b687e8df80e 100644 --- a/src/main/resources/l10n/JabRef_tl.properties +++ b/src/main/resources/l10n/JabRef_tl.properties @@ -1396,3 +1396,5 @@ Default\ pattern=Default na pattern + + diff --git a/src/main/resources/l10n/JabRef_tr.properties b/src/main/resources/l10n/JabRef_tr.properties index f2f23c5480b..1e890cad1cb 100644 --- a/src/main/resources/l10n/JabRef_tr.properties +++ b/src/main/resources/l10n/JabRef_tr.properties @@ -2205,6 +2205,7 @@ User-specific\ ranking.=Kullanıcıya özgün tasnif. User-specific\ read\ status.=Kullanıcıya özgün okunma statüsü. User-specific\ relevance\ flag,\ in\ case\ the\ entry\ is\ relevant.=Eğer girdi ilgiliyse, kullanıcıya özgün ilgili işareti. + Remove\ formatter\ for\ %0=%0 için biçimleyiciyi kaldır Remove\ formatter\ '%0'='%0' biçimleyicisini kaldır @@ -2252,6 +2253,7 @@ Close\ other\ libraries=Diğer kütüphaneleri kapat Close\ others=Diğerlerini Kapat Reveal\ in\ file\ explorer=Dosya tarayıcısında açığa çıkar + Reset=Sıfırla Reset\ entry\ types\ and\ fields\ to\ defaults=Girdi türleri ve alanlarını öntanımlılara sıfırla This\ will\ reset\ all\ entry\ types\ to\ their\ default\ values\ and\ remove\ all\ custom\ entry\ types=Bu, tüm girdi türlerini öntanımlı değerlerine sıfırlayacak ve tüm özel girdi türlerini silecek diff --git a/src/main/resources/l10n/JabRef_vi.properties b/src/main/resources/l10n/JabRef_vi.properties index cc43daecbed..7eff2ff647c 100644 --- a/src/main/resources/l10n/JabRef_vi.properties +++ b/src/main/resources/l10n/JabRef_vi.properties @@ -1134,3 +1134,5 @@ Default\ pattern=Kiểu mặc định + + diff --git a/src/main/resources/l10n/JabRef_zh.properties b/src/main/resources/l10n/JabRef_zh.properties index 825ec6bf804..a146e084c1e 100644 --- a/src/main/resources/l10n/JabRef_zh.properties +++ b/src/main/resources/l10n/JabRef_zh.properties @@ -1292,7 +1292,7 @@ Library\ '%0'\ has\ changed.=文献库 '%0' 已修改。 Print\ entry\ preview=打印记录预览 Copy\ title=复制标题 Copy\ \\cite{citation\ key}=复制 \\cite{citation key} -Copy\ citation\ key\ and\ title=复制 bibtexkey 和标题 +Copy\ citation\ key\ and\ title=复制 ciation key 和标题 Invalid\ DOI\:\ '%0'.=不合法的 DOI\: Same\ DOI\ used\ in\ multiple\ entries=多个条目重复使用了相同的 DOI should\ start\ with\ a\ name=请以名称开头 @@ -1682,7 +1682,7 @@ should\ be\ normalized=应当被规范化 Empty\ search\ ID=清空搜索ID The\ given\ search\ ID\ was\ empty.=给定的搜索 ID 为空。 -Copy\ citation\ key\ and\ link=复制 bibtexkey 和链接 +Copy\ citation\ key\ and\ link=复制 citation key 和链接 biblatex\ field\ only=仅 biblatex 字段 Error\ while\ generating\ fetch\ URL=生成提取 URL 时出错 @@ -1973,6 +1973,9 @@ Shared\ database=共享数据库 Lookup=查找 +Auto\ complete\ disabled.=自动完成已禁用。 +Auto\ complete\ enabled.=自动完成已启用。 + Display\ count\ of\ items\ in\ group=显示组中的条目数量 @@ -1983,3 +1986,4 @@ Close\ all\ libraries=关闭所有库 Close\ other\ libraries=关闭其他库 + From bee9651dadc9aad9e2312ed6476ef6381325ad55 Mon Sep 17 00:00:00 2001 From: Rolf Green Date: Sat, 22 Aug 2020 16:31:29 +0200 Subject: [PATCH 2/4] Updated the eclipse doc with a note and image on how to add the run/debug configuration. (#6776) --- .../assets/eclipse-create-run-config.png | Bin 0 -> 102768 bytes ...delines-for-setting-up-a-local-workspace.md | 2 ++ 2 files changed, 2 insertions(+) create mode 100644 docs/.gitbook/assets/eclipse-create-run-config.png diff --git a/docs/.gitbook/assets/eclipse-create-run-config.png b/docs/.gitbook/assets/eclipse-create-run-config.png new file mode 100644 index 0000000000000000000000000000000000000000..1412291a55af3fab85dd1830d9fe23e88d636372 GIT binary patch literal 102768 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 Lsa$;3Jm`M_YN^F3 literal 0 HcmV?d00001 diff --git a/docs/getting-into-the-code/guidelines-for-setting-up-a-local-workspace.md b/docs/getting-into-the-code/guidelines-for-setting-up-a-local-workspace.md index 1761d33079f..3116ca2ecfa 100644 --- a/docs/getting-into-the-code/guidelines-for-setting-up-a-local-workspace.md +++ b/docs/getting-into-the-code/guidelines-for-setting-up-a-local-workspace.md @@ -188,6 +188,8 @@ Make sure your Eclipse installation us up to date, Eclipse JEE 2020-03 or newer * Remark: Importing it as gradle project will not work correctly. * Refresh the project in Eclipse 4. Create a run/debug configuration for the main class `org.jabref.JabRefLauncher` and/or for `org.jabref.JabRefMain` \(both can be used equivalently\) + * Remark: The run/debug configuration needs to be added by right clicking the class \(e.g. JabRefLauncher or JabRefMain\) otherwise it will not work. + ![Creating the run/debug configuration by right clicking on the class](../.gitbook/assets/eclipse-create-run-config.png) * In the tab "Arguments" of the run/debug configuration, enter the following runtime VM arguments: ```text From 9d17101626571966d8278bb7fbd02129eff78a71 Mon Sep 17 00:00:00 2001 From: hemantgs Date: Sat, 22 Aug 2020 20:03:15 +0530 Subject: [PATCH 3/4] [6574] Added support for biblatex-software (#6747) * [6574] Added support for biblatex-software Added change to changelog md checkstyle fixed checkstyle fixed * Added changes to the ADR Co-authored-by: Christoph --- CHANGELOG.md | 1 + ...13-add-native-support-biblatex-software.md | 48 +++++++++ src/main/java/org/jabref/gui/EntryType.fxml | 5 + .../java/org/jabref/gui/EntryTypeView.java | 8 ++ .../jabref/model/database/BibDatabase.java | 8 +- .../model/entry/BibEntryTypesManager.java | 4 +- .../model/entry/field/StandardField.java | 8 ++ .../BiblatexSoftwareEntryTypeDefinitions.java | 53 +++++++++ .../model/entry/types/StandardEntryType.java | 5 +- .../resources/testbib/biblatex-software.bib | 101 ++++++++++++++++++ 10 files changed, 235 insertions(+), 6 deletions(-) create mode 100644 docs/adr/0013-add-native-support-biblatex-software.md create mode 100644 src/main/java/org/jabref/model/entry/types/BiblatexSoftwareEntryTypeDefinitions.java create mode 100644 src/test/resources/testbib/biblatex-software.bib diff --git a/CHANGELOG.md b/CHANGELOG.md index bf4296c0688..5b7f10fe18e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -33,6 +33,7 @@ Note that this project **does not** adhere to [Semantic Versioning](http://semve - We added a new fetcher to enable users to search all available E-Libraries simultaneously. [koppor#369](https://github.com/koppor/jabref/issues/369) - We added the field "entrytype" to the export sort criteria [#6531](https://github.com/JabRef/jabref/pull/6531) - We added the possibility to change the display order of the fields in the entry editor. The order can now be configured using drag and drop in the "Customize entry types" dialog [#6152](https://github.com/JabRef/jabref/pull/6152) +- We added native support for biblatex-software [#6574](https://github.com/JabRef/jabref/issues/6574) - We added a missing restart warning for AutoComplete in the preferences dialog. [#6351](https://github.com/JabRef/jabref/issues/6351) - We added a note to the citation key pattern preferences dialog as a temporary workaround for a JavaFX bug, about committing changes in a table cell, if the focus is lost. [#5825](https://github.com/JabRef/jabref/issues/5825) diff --git a/docs/adr/0013-add-native-support-biblatex-software.md b/docs/adr/0013-add-native-support-biblatex-software.md new file mode 100644 index 00000000000..7f1d2c028d7 --- /dev/null +++ b/docs/adr/0013-add-native-support-biblatex-software.md @@ -0,0 +1,48 @@ +# Add Native Support for BibLatex-Sotware +* Deciders: Oliver Kopp + +Technical Story: [6574-Adding support for biblatex-software](https://github.com/JabRef/jabref/issues/6574) + +## Context and Problem Statement + +JabRef does not right now have support for Biblatex-Software out of the box, users have to add custome entry type. +With citing software becoming fairly common , native support is helpful. + + +## Decision Drivers + +* None of the existing flows should be impacted + +## Considered Options + +* Add the new entry types to the existing biblatex types +* Add a divider with label Biblatex-Software under which the new entries are listed : Native support for Biblatex-Software +* Support via customized entry types : A user can load a customized bib file + +## Decision Outcome + +Chosen option: Add a new divider, because comes out best (see below). + +### Positive Consequences + +* Inbuilt coverage for a entry type that is getting more and more importance + +### Negative Consequences + +* Adds a little bit more clutter to the Add Entry pane + +## Pros and Cons of the Options + +### Adding the new entry types to the existing biblatex types + +* Good, because there is no need for a new category in the add entry pane + +### Add a divider with label Biblatex-Software with relevant types + +* Good, since this gives the user a bit more clarity + +### Support via customized entry types + +* Good, because no code needs to be changed +* Bad, because documentation is needed +* Bad, because the users are not guided through the UI, but have to do other steps. diff --git a/src/main/java/org/jabref/gui/EntryType.fxml b/src/main/java/org/jabref/gui/EntryType.fxml index da5daa62136..a2d43feffbd 100644 --- a/src/main/java/org/jabref/gui/EntryType.fxml +++ b/src/main/java/org/jabref/gui/EntryType.fxml @@ -26,6 +26,11 @@ + + + + + diff --git a/src/main/java/org/jabref/gui/EntryTypeView.java b/src/main/java/org/jabref/gui/EntryTypeView.java index fc3fbfb1d65..3eaecd94a4e 100644 --- a/src/main/java/org/jabref/gui/EntryTypeView.java +++ b/src/main/java/org/jabref/gui/EntryTypeView.java @@ -7,7 +7,9 @@ import javafx.application.Platform; import javafx.event.Event; import javafx.fxml.FXML; + import javax.inject.Inject; + import javafx.scene.control.Button; import javafx.scene.control.ButtonType; import javafx.scene.control.ComboBox; @@ -27,6 +29,7 @@ import org.jabref.model.database.BibDatabaseMode; import org.jabref.model.entry.BibEntryType; import org.jabref.model.entry.types.BiblatexEntryTypeDefinitions; +import org.jabref.model.entry.types.BiblatexSoftwareEntryTypeDefinitions; import org.jabref.model.entry.types.BibtexEntryTypeDefinitions; import org.jabref.model.entry.types.EntryType; import org.jabref.model.entry.types.IEEETranEntryTypeDefinitions; @@ -52,10 +55,12 @@ public class EntryTypeView extends BaseDialog { @FXML private FlowPane bibTexPane; @FXML private FlowPane ieeetranPane; @FXML private FlowPane customPane; + @FXML private FlowPane biblatexSoftwarePane; @FXML private TitledPane biblatexTitlePane; @FXML private TitledPane bibTexTitlePane; @FXML private TitledPane ieeeTranTitlePane; @FXML private TitledPane customTitlePane; + @FXML private TitledPane biblatexSoftwareTitlePane; @Inject StateManager stateManager; @@ -140,9 +145,11 @@ public void initialize() { ieeeTranTitlePane.managedProperty().bind(ieeeTranTitlePane.visibleProperty()); biblatexTitlePane.managedProperty().bind(biblatexTitlePane.visibleProperty()); customTitlePane.managedProperty().bind(customTitlePane.visibleProperty()); + biblatexSoftwareTitlePane.managedProperty().bind(biblatexSoftwareTitlePane.visibleProperty()); if (basePanel.getBibDatabaseContext().isBiblatexMode()) { addEntriesToPane(biblatexPane, BiblatexEntryTypeDefinitions.ALL); + addEntriesToPane(biblatexSoftwarePane, BiblatexSoftwareEntryTypeDefinitions.ALL); bibTexTitlePane.setVisible(false); ieeeTranTitlePane.setVisible(false); @@ -155,6 +162,7 @@ public void initialize() { } } else { biblatexTitlePane.setVisible(false); + biblatexSoftwareTitlePane.setVisible(false); addEntriesToPane(bibTexPane, BibtexEntryTypeDefinitions.ALL); addEntriesToPane(ieeetranPane, IEEETranEntryTypeDefinitions.ALL); diff --git a/src/main/java/org/jabref/model/database/BibDatabase.java b/src/main/java/org/jabref/model/database/BibDatabase.java index b8c7d5471d7..7ba57bf2efc 100644 --- a/src/main/java/org/jabref/model/database/BibDatabase.java +++ b/src/main/java/org/jabref/model/database/BibDatabase.java @@ -61,15 +61,15 @@ public class BibDatabase { private String epilog = ""; private String sharedDatabaseID; - public BibDatabase() { - this.registerListener(new KeyChangeListener(this)); - } - public BibDatabase(List entries) { this(); insertEntries(entries); } + public BibDatabase() { + this.registerListener(new KeyChangeListener(this)); + } + /** * @param toResolve maybenull The text to resolve. * @param database maybenull The database to use for resolving the text. diff --git a/src/main/java/org/jabref/model/entry/BibEntryTypesManager.java b/src/main/java/org/jabref/model/entry/BibEntryTypesManager.java index f56230a110a..19d23afd288 100644 --- a/src/main/java/org/jabref/model/entry/BibEntryTypesManager.java +++ b/src/main/java/org/jabref/model/entry/BibEntryTypesManager.java @@ -12,6 +12,7 @@ import org.jabref.model.entry.field.BibField; import org.jabref.model.entry.field.FieldFactory; import org.jabref.model.entry.types.BiblatexEntryTypeDefinitions; +import org.jabref.model.entry.types.BiblatexSoftwareEntryTypeDefinitions; import org.jabref.model.entry.types.BibtexEntryTypeDefinitions; import org.jabref.model.entry.types.EntryType; import org.jabref.model.entry.types.EntryTypeFactory; @@ -20,7 +21,7 @@ public class BibEntryTypesManager { public static final String ENTRYTYPE_FLAG = "jabref-entrytype: "; private final InternalEntryTypes BIBTEX = new InternalEntryTypes(Stream.concat(BibtexEntryTypeDefinitions.ALL.stream(), IEEETranEntryTypeDefinitions.ALL.stream()).collect(Collectors.toList())); - private final InternalEntryTypes BIBLATEX = new InternalEntryTypes(BiblatexEntryTypeDefinitions.ALL); + private final InternalEntryTypes BIBLATEX = new InternalEntryTypes(Stream.concat(BiblatexEntryTypeDefinitions.ALL.stream(), BiblatexSoftwareEntryTypeDefinitions.ALL.stream()).collect(Collectors.toList())); public BibEntryTypesManager() { } @@ -97,6 +98,7 @@ public List getAllCustomTypes(BibDatabaseMode mode) { } else { return customizedTypes.stream() .filter(entryType -> BiblatexEntryTypeDefinitions.ALL.stream().noneMatch(biblatexType -> biblatexType.getType().equals(entryType.getType()))) + .filter(entryType -> BiblatexSoftwareEntryTypeDefinitions.ALL.stream().noneMatch(biblatexSoftware -> biblatexSoftware.getType().equals(entryType.getType()))) .collect(Collectors.toList()); } } diff --git a/src/main/java/org/jabref/model/entry/field/StandardField.java b/src/main/java/org/jabref/model/entry/field/StandardField.java index a79a4208e4b..a6f0a998b5f 100644 --- a/src/main/java/org/jabref/model/entry/field/StandardField.java +++ b/src/main/java/org/jabref/model/entry/field/StandardField.java @@ -55,11 +55,14 @@ public enum StandardField implements Field { FOREWORD("foreword", FieldProperty.PERSON_NAMES), FOLDER("folder"), GENDER("gender", FieldProperty.GENDER), + HALID("hal_id"), + HALVERSION("hal_version"), HOLDER("holder", FieldProperty.PERSON_NAMES), HOWPUBLISHED("howpublished"), IDS("ids", FieldProperty.MULTIPLE_ENTRY_LINK), INSTITUTION("institution"), INTRODUCTION("introduction", FieldProperty.PERSON_NAMES), + INTRODUCEDIN("introducedin"), ISBN("isbn", "ISBN", FieldProperty.ISBN), ISRN("isrn", "ISRN"), ISSN("issn", "ISSN"), @@ -74,6 +77,7 @@ public enum StandardField implements Field { LANGUAGE("language", FieldProperty.LANGUAGE), LABEL("label"), LIBRARY("library"), + LICENSE("license"), LOCATION("location"), MAINSUBTITLE("mainsubtitle", FieldProperty.BOOK_NAME), MAINTITLE("maintitle", FieldProperty.BOOK_NAME), @@ -98,7 +102,10 @@ public enum StandardField implements Field { PUBSTATE("pubstate", FieldProperty.PUBLICATION_STATE), PRIMARYCLASS("primaryclass"), RELATED("related", FieldProperty.MULTIPLE_ENTRY_LINK), + RELATEDTYPE("relatedtype"), + RELATEDSTRING("relatedstring"), REPORTNO("reportno"), + REPOSITORY("repository"), REVIEW("review"), REVISION("revision"), SCHOOL("school"), @@ -109,6 +116,7 @@ public enum StandardField implements Field { SORTKEY("sortkey"), SORTNAME("sortname", FieldProperty.PERSON_NAMES), SUBTITLE("subtitle"), + SWHID("swhid"), TITLE("title"), TITLEADDON("titleaddon"), TRANSLATOR("translator", FieldProperty.PERSON_NAMES), diff --git a/src/main/java/org/jabref/model/entry/types/BiblatexSoftwareEntryTypeDefinitions.java b/src/main/java/org/jabref/model/entry/types/BiblatexSoftwareEntryTypeDefinitions.java new file mode 100644 index 00000000000..0fc48e6d904 --- /dev/null +++ b/src/main/java/org/jabref/model/entry/types/BiblatexSoftwareEntryTypeDefinitions.java @@ -0,0 +1,53 @@ +package org.jabref.model.entry.types; + +import java.util.Arrays; +import java.util.List; + +import org.jabref.model.entry.BibEntryType; +import org.jabref.model.entry.BibEntryTypeBuilder; +import org.jabref.model.entry.field.OrFields; +import org.jabref.model.entry.field.StandardField; + +public class BiblatexSoftwareEntryTypeDefinitions { + private static final BibEntryType SOFTWARE = new BibEntryTypeBuilder() + .withType(StandardEntryType.Software) + .withImportantFields(StandardField.DATE, StandardField.DOI, StandardField.EPRINTTYPE, StandardField.EPRINTCLASS, StandardField.EPRINT, + StandardField.EDITOR, StandardField.FILE, StandardField.HALID, StandardField.HALVERSION, StandardField.INSTITUTION, StandardField.INTRODUCEDIN, + StandardField.LICENSE, StandardField.MONTH, StandardField.NOTE, StandardField.ORGANIZATION, StandardField.PUBLISHER, StandardField.RELATED, + StandardField.RELATEDSTRING, StandardField.REPOSITORY, StandardField.SWHID, StandardField.URLDATE, StandardField.VERSION) + .withRequiredFields(new OrFields(StandardField.AUTHOR, StandardField.EDITOR), StandardField.TITLE, StandardField.URL, StandardField.VERSION, StandardField.YEAR) + .build(); + + private static final BibEntryType SOFTWAREVERSION = new BibEntryTypeBuilder() + .withType(StandardEntryType.SoftwareVersion) + .withImportantFields(StandardField.DATE, StandardField.EPRINTCLASS, StandardField.EPRINTTYPE, StandardField.HALID, StandardField.HALVERSION, + StandardField.INSTITUTION, StandardField.INTRODUCEDIN, StandardField.LICENSE, StandardField.MONTH, StandardField.NOTE, StandardField.ORGANIZATION, + StandardField.PUBLISHER, StandardField.RELATED, StandardField.RELATEDTYPE, StandardField.RELATEDSTRING, + StandardField.REPOSITORY, StandardField.SWHID, StandardField.SUBTITLE, StandardField.URLDATE) + .withRequiredFields(new OrFields(StandardField.AUTHOR, StandardField.EDITOR), StandardField.TITLE, StandardField.URL, StandardField.YEAR, StandardField.VERSION) + .withDetailFields(StandardField.DATE, StandardField.EPRINTCLASS, StandardField.EPRINTTYPE, StandardField.HALID, StandardField.HALVERSION, + StandardField.INSTITUTION, StandardField.INTRODUCEDIN, StandardField.LICENSE, StandardField.MONTH, StandardField.NOTE, StandardField.ORGANIZATION, + StandardField.PUBLISHER, StandardField.RELATED, StandardField.RELATEDTYPE, StandardField.RELATEDSTRING, + StandardField.REPOSITORY, StandardField.SWHID, StandardField.SUBTITLE, StandardField.URLDATE) + .withRequiredFields(new OrFields(StandardField.AUTHOR, StandardField.EDITOR), StandardField.TITLE, StandardField.URL, StandardField.YEAR) + .build(); + private static final BibEntryType SOFTWAREMODULE = new BibEntryTypeBuilder() + .withType(StandardEntryType.SoftwareModule) + .withImportantFields(StandardField.DATE, StandardField.DOI, StandardField.EPRINTTYPE, StandardField.EPRINTCLASS, StandardField.EPRINT, + StandardField.EDITOR, StandardField.FILE, StandardField.HALID, StandardField.HALVERSION, StandardField.INSTITUTION, StandardField.INTRODUCEDIN, + StandardField.LICENSE, StandardField.MONTH, StandardField.NOTE, StandardField.ORGANIZATION, StandardField.PUBLISHER, StandardField.RELATED, + StandardField.RELATEDSTRING, StandardField.REPOSITORY, StandardField.SWHID, StandardField.URLDATE, StandardField.VERSION) + .withRequiredFields(StandardField.AUTHOR, StandardField.SUBTITLE, StandardField.URL, StandardField.YEAR) + .build(); + + private static final BibEntryType CODEFRAGMENT = new BibEntryTypeBuilder() + .withType(StandardEntryType.CodeFragment) + .withImportantFields(StandardField.DATE, StandardField.DOI, StandardField.EPRINTTYPE, StandardField.EPRINTCLASS, StandardField.EPRINT, + StandardField.EDITOR, StandardField.FILE, StandardField.HALID, StandardField.HALVERSION, StandardField.INSTITUTION, StandardField.INTRODUCEDIN, + StandardField.LICENSE, StandardField.MONTH, StandardField.NOTE, StandardField.ORGANIZATION, StandardField.PUBLISHER, StandardField.RELATED, + StandardField.RELATEDSTRING, StandardField.REPOSITORY, StandardField.SWHID, StandardField.URLDATE, StandardField.VERSION) + .withRequiredFields(StandardField.URL) + .build(); + + public static final List ALL = Arrays.asList(SOFTWAREVERSION, SOFTWARE, SOFTWAREMODULE, CODEFRAGMENT); +} diff --git a/src/main/java/org/jabref/model/entry/types/StandardEntryType.java b/src/main/java/org/jabref/model/entry/types/StandardEntryType.java index 6f6f91ac6a5..fb2922e61a0 100644 --- a/src/main/java/org/jabref/model/entry/types/StandardEntryType.java +++ b/src/main/java/org/jabref/model/entry/types/StandardEntryType.java @@ -36,7 +36,10 @@ public enum StandardEntryType implements EntryType { Thesis("Thesis"), WWW("WWW"), Software("Software"), - Dataset("Dataset"); + Dataset("Dataset"), + SoftwareVersion("SoftwareVersion"), + SoftwareModule("SoftwareModule"), + CodeFragment("CodeFragment"); private final String displayName; diff --git a/src/test/resources/testbib/biblatex-software.bib b/src/test/resources/testbib/biblatex-software.bib new file mode 100644 index 00000000000..b8b45a2e8ea --- /dev/null +++ b/src/test/resources/testbib/biblatex-software.bib @@ -0,0 +1,101 @@ +@softwareversion {delebecque:hal-02090402-condensed, + title = {Scilab}, + author = {Delebecque, Fran{\c c}ois and Gomez, Claude and Goursat, Maurice + and Nikoukhah, Ramine and Steer, Serge and Chancelier, Jean-Philippe}, + url = {https://www.scilab.org/}, + date = {1994-01}, + file = {https://hal.inria.fr/hal-02090402/file/scilab-1.1.tar.gz}, + institution = {Inria}, + license = {Scilab license}, + hal_id = {hal-02090402}, + hal_version = {v1}, + swhid = {swh:1:dir:1ba0b67b5d0c8f10961d878d91ae9d6e499d746a; + origin=https://hal.archives-ouvertes.fr/hal-02090402}, + version = {1.1}, + note = {First Scilab version. It was distributed by anonymous ftp.}, + repository= {https://github.com/scilab/scilab}, + abstract = {Software for Numerical Computation freely distributed.} +} + +@software {delebecque:hal-02090402, + title = {Scilab}, + author = {Delebecque, Fran{\c c}ois and Gomez, Claude and Goursat, Maurice + and Nikoukhah, Ramine and Steer, Serge and Chancelier, Jean-Philippe}, + date = {1994}, + institution = {Inria}, + license = {Scilab license}, + hal_id = {hal-02090402}, + hal_version = {v1}, + url = {https://www.scilab.org/}, + abstract = {Software for Numerical Computation freely distributed.}, + repository= {https://github.com/scilab/scilab}, +} + +@softwareversion {delebecque:hal-02090402v1, + version = {1.1}, + date = {1994-01}, + file = {https://hal.inria.fr/hal-02090402/file/scilab-1.1.tar.gz}, + swhid = {swh:1:dir:1ba0b67b5d0c8f10961d878d91ae9d6e499d746a; + origin=https://hal.archives-ouvertes.fr/hal-02090402}, + note = {First Scilab version. It was distributed by anonymous ftp.}, + crossref = {delebecque:hal-02090402} +} + + @software {cgal, + title = {The Computational Geometry Algorithms Library}, + author = {{The CGAL Project}}, + editor = {{CGAL Editorial Board}}, + date = {1996}, + url = {https://cgal.org/} + } + + @softwareversion{cgal:5-0-2, + crossref = {cgal}, + version = {{5.0.2}}, + url = {https://docs.cgal.org/5.02}, + date = {2020}, + swhid = {swh:1:rel:636541bbf6c77863908eae744610a3d91fa58855; + origin=https://github.com/CGAL/cgal/} + } + + @softwaremodule{cgal:lp-gi-20a, + crossref = {cgal:5-0-2}, + author = {Menelaos Karavelas}, + subtitle = {{2D} Voronoi Diagram Adaptor}, + license = {GPL}, + introducedin = {cgal:3-1}, + url = {https://doc.cgal.org/5.0.2/Manual/packages.html#PkgVoronoiDiagram2}, + } + + @softwaremodule{cgal:lp-gi-20a-condensed, + title = {The Computational Geometry Algorithms Library}, + subtitle = {{2D} Voronoi Diagram Adaptor}, + author = {Menelaos Karavelas}, + editor = {{CGAL Editorial Board}}, + license = {GPL}, + version = {{5.0.2}}, + introducedin = {cgal:3-1}, + date = {2020}, + swhid = {swh:1:rel:636541bbf6c77863908eae744610a3d91fa58855; + origin=https://github.com/CGAL/cgal/}, + url = {https://doc.cgal.org/5.0.2/Manual/packages.html#PkgVoronoiDiagram2}, + } + +@software {parmap, + title = {The Parmap library}, + author = {Di Cosmo, Roberto and Marco Danelutto}, + date = {2020}, + version = {1.1.1}, + institution = {{Inria} and {University of Paris} and {University of Pisa}}, + license = {LGPL-2.0}, + url = {https://rdicosmo.github.io/parmap/}, + repository= {https://github.com/rdicosmo/parmap}, +} + +@codefragment {simplemapper, + subtitle = {Core mapping routine}, + swhid = {swh:1:cnt:43a6b232768017b03da934ba22d9cc3f2726a6c5; + lines=192-228; + origin=https://github.com/rdicosmo/parmap}, + crossref = {parmap} +} From dc55a7643fd2dd41e73d4e27e7d7da264d5ff9f9 Mon Sep 17 00:00:00 2001 From: Carl Christian Snethlage <50491877+calixtus@users.noreply.github.com> Date: Sat, 22 Aug 2020 16:38:30 +0200 Subject: [PATCH 4/4] Streamline new library command (#6773) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Squashed 'src/main/resources/csl-styles/' changes from 586e0b8408..c5f14e2c4d c5f14e2c4d Update journal-of-plant-ecology.csl (#4837) b5d00abf54 Hotfix: pravnik.csl & iso690-full-note-cs.csl (#4833) fb8d48aec1 add PMID and DOI (#4832) 7ebdfff228 Update lancaster-university-harvard.csl (#4836) 8771e21166 Create journal-of-clinical-neurology.csl (#4835) 70beb7bd6c Harvard Lancaster: Fix in-text locator 0709b731c4 Update informal-logic.csl (#4831) d18d1338c1 Update gost-r-7-0-5-2008.csl (#4829) cfb5389ad4 Update gost-r-7-0-5-2008-numeric.csl (#4828) 0fc46eabf0 Update gost-r-7-0-5-2008-numeric-alphabetical.csl (#4827) fac26cb4f0 Create feminist-theory.csl (#4830) a2721e6aae Update pravnik.csl, masarykova-univerzita-pravnicka-fakulta.csl, and iso690-full-note-cs.csl (#4826) 2f0d735a16 Improve localization of DGfP 683d7d17ca Create zeitschrift-fur-theologie-und-philosophie.csl (#4813) 7c82406cb2 always show DOI in aps.csl (#4820) 1eb531d459 Update journal-of-international-business-studies.csl (#4819) 9caf926fc0 Create interdisziplinare-anthropologie.csl (#4818) 00210e123e UKSW2 (#4807) 015db6e8d3 UKSW1 (#4800) f706ef5e2f Update masarykova-univerzita-pravnicka-fakulta.csl (#4822) 096108d3ad Update epilepsia.csl (#4823) 07ebdc35bd Update eksploatacja-i-niezawodnosc.csl (#4824) 3d50f3cc5c Create ABNT-Universidade-Federal-de-Pernambuco-CFCH.csl (#4798) df94fa1832 Update eksploatacja-i-niezawodnosc.csl (#4808) 4089be5abb Update bulletin-de-la-societe-prehistorique-francaise.csl (#4810) f130aa7949 Update molecular-biology-and-evolution.csl (#4814) 86f452fda6 Create heiliger-dienst.csl (#4815) 5ccd3e9a21 Update revista-brasileira-de-ciencia-do-solo.csl (#4817) 0eea7348e0 Fix a delimiter in journal-of-the-royal-society-of-western-australia.csl (#4811) 1cbe790e45 Delete heiliger-dienst.csl 19fa29f7b0 Create heiliger-dienst.csl (#4787) 888bad15b5 Update RMIT Harvard to match Easy Cite (#4788) 46011dd948 Create universite-nangui-abrogoua-ufr-sn (#4676) 174adab070 Create apa-6th-edition-no-ampersand.csl (#4767) 03cf65f05d Create journal-of-plant-protection-research.csl (#4797) c749084451 Update eksploatacja-i-niezawodnosc.csl (#4782) 17e1501812 Update masarykova-univerzita-pravnicka-fakulta.csl (#4783) 5596d18a68 Update revista-brasileira-de-ciencia-do-solo.csl (#4790) 9c1a381876 create csl for the journal Textual Cultures (#4785) 83457623f6 Update taylor-and-francis-national-library-of-medicine.csl (#4786) 5ec1acfc1f Create british-journal-of-criminology.csl (#4789) 68550aca45 Update angewandte-chemie.csl (#4791) 09e27555c5 Create shock.csl (#4792) d46e49e52a Update antioxidants-and-redox-signaling.csl (#4793) git-subtree-dir: src/main/resources/csl-styles git-subtree-split: c5f14e2c4d1799827b202981f62322545cf17200 * Squashed 'src/main/resources/csl-styles/' changes from c5f14e2c4d..716f63557c 716f63557c Update changes in Harvard-Stellenbosch (#4862) a6a9a1af3a Create alkoholizmus-a-drogove-zavislosti.csl (#4859) 0560ca0b43 Update journal-of-the-american-college-of-surgeons.csl (#4858) 9e16631063 create independent style for cellular-and-molecular-gastroenterology-and-hepatology.csl (#4852) 87b0853e2c Update antiquity.csl (#4841) cb4e7f70a0 Update heart-rhythm.csl (#4850) b3b55eee3f Create iisue-moderno (#4846) 63973a7016 Create etasr.csl (#4848) 9942138d9b Create style for Journal of Vertebrate Biology (#4849) 7c7f3d343d Add Future Medicine dependents (#4838) abe2066984 Update methods-of-information-in-medicine.csl (#4847) c64d98b65d create independent style for new-zealand-journal-of-forestry-science (#4844) 28265f9ad8 Create continuity-and-change.csl (#4839) d065fdd9ec Create journal-of-clinical-ethics.csl (#4842) b9fbfa37d9 Update future-medicine.csl (#4843) ceb56fa72f Create future-medicine.csl (#4834) git-subtree-dir: src/main/resources/csl-styles git-subtree-split: 716f63557c0f32b3980432a6d124b73933722121 * Squashed 'src/main/resources/csl-styles/' changes from 716f63557c..a995c63a0a a995c63a0a Create errata.csl (#4894) 883b9cd71d Update archeologie-medievale.csl (#4892) a942b5c55d Update rmit-university-harvard.csl (#4890) 5d535fc878 Update universidade-do-porto-faculdade-de-engenharia-chicago.csl (#4891) f2a8fe3ec2 Fix AVMA style c5a2d7e22b Create universidade-do-porto-faculdade-de-engenharia-chicago.csl (#4872) 9f106ebb29 Update rmit-university-harvard.csl (#4884) 5213c2f483 Update universitetet-i-oslo-rettsvitenskap.csl (#4886) 7e0828d48c Update uclouvain-centre-charles-de-visscher-pour-le-droit-internation… (#4871) ae5eba3a8f Create revue-archeologique-de-lest.csl (#4881) 58a16727de Create pacific-conservation-biology.csl (#4880) 381106e341 Update national-institute-of-organisation-dynamics-australia-harvard.csl (#4879) c66a5c00d9 Create society-of-biblical-literature-author-date.csl (#4812) 008073c576 Create ruhr-universitat-bochum-medizinische-fakultat-variante-a.csl (#4874) 193385a00d Update manchester (#4878) fa9ef1148f Create Faculty of Psychology and Education Sciences, Porto (#4856) 2f70b14eae Add "personal communication" to remaining APA locales (#4866) 2b4f831d19 Fixed page-range-format (#4863) d5661ba156 universitat-bern-institut-fur-musikwissenschaft add missing cs:sort to cs:bibliography (#4860) e433c999ae fix delimiter issue for bioscience.csl (#4876) 4d97aabe83 update et-al settings for stroke.csl (#4875) 342b9e3c04 Update masarykova-univerzita-pravnicka-fakulta.csl (#4868) 91fe25eaf2 Add article number to IEEE (#4867) git-subtree-dir: src/main/resources/csl-styles git-subtree-split: a995c63a0a5cd56ede70cc131dfb566b2e7f2f48 * Squashed 'src/main/resources/csl-styles/' changes from a995c63a0a..bf698acec7 bf698acec7 Create common-market-law-review.csl (#4910) c962ecaea9 Create harvard-prifysgol-caerdydd.csl (#4922) 0c24e7f7f6 Update gewerblicher-rechtsschutz-und-urheberrecht.csl (#4923) d2ec1a736c Create Tijdschrift-voor-Geneeskunde.csl (#4907) 5df7250369 Update harvard-institut-fur-praxisforschung-de.csl (#4918) 093fd91618 Update universite-de-montreal-apa.csl (#4916) a3e41d49f7 Update thieme-german.csl (#4919) 648765ac11 add DOI to aerosol-science-and-technology.csl (#4909) bc1ebeece9 Reindent/reorder a8dc18a80d Fix documentation link for epidemiology & infection aab403aff7 Fix AGLC Newspaper date 4c018d5ef3 Add period between editor and translator (SBL styles) (#4906) 42f7491f64 Create geographische-zeitschrift.csl (#4898) a4002a6b0f Create german-kunstwissenschaft.csl (#4896) b01910b380 Disambiguation of names (#4895) git-subtree-dir: src/main/resources/csl-styles git-subtree-split: bf698acec747594a57e3c1423c351c69bc5ad6e1 * Squashed 'src/main/resources/csl-styles/' changes from bf698acec7..7cab2f7d8a 7cab2f7d8a Create depro-ufs.csl (#4947) 2fcda1fe03 Create journal-of-sport-science-and-medicine.csl (#4949) cd457d4bce Update american-marketing-association.csl (#4945) cacc4eefbd Create nejm-catalyst.csl (#4943) bd769b91da Update and rename dependent/chinese-medical-journal.csl to chinese-me… (#4941) 1f706cda6c Update health-services-research.csl (#4939) 76bcd1d9d7 Update journal-of-the-royal-society-of-western-australia.csl (#4932) e79640e74d Create afro-asia.csl (#4934) c601aa4e0f Update lancaster-university-harvard.csl (#4938) 184fd90210 Update collection-du-centre-jean-berard.csl (#4936) 82f9aec90f fix et-al & add DOI thyroid.csl (#4937) 4af169fc11 Create universidade-estadual-de-alagoas-uneal-abnt (#4885) 47165b3d5a Update and rename medical-physics.csl to dependent/medical-physics.csl (AMA) (#4905) 3cab27dc1a Update thieme-german.csl (#4931) eb2c9776e0 Create zeitschrift-fur-zahnarztliche-implantologie.csl (#4925) 4adb1ea0be Create karstenia.csl (#4929) 530a136786 Fix author substitute in Universita Cattolica git-subtree-dir: src/main/resources/csl-styles git-subtree-split: 7cab2f7d8ac0131f836c6cb55e88545ee5eda22a * Squashed 'src/main/resources/csl-styles/' changes from 7cab2f7d8a..827b986621 827b986621 add DOI preprint to american-society-for-microbiology.csl (#4946) git-subtree-dir: src/main/resources/csl-styles git-subtree-split: 827b986621348627f8e894d1b7f11191f905a8e2 * Squashed 'src/main/resources/csl-styles/' changes from 827b986621..eb0d37e0ff eb0d37e0ff Create natbib-plainnat-author-dat.csl (#4967) fb1592a1cd Update journal-of-fish-biology.csl (#4969) f6876cbe0f Update .travis.yml (#4970) d6d400b207 Create london-review-of-international-law.csl (#4966) d2a5ae1b16 Update harvard-stellenbosch-university.csl (#4965) 9c62141a40 Create phytopathologia-mediterranea.csl (#4964) 8ca2ea1a9c Update historical-materialism.csl (#4960) 80456dc749 Update historical-materialism.csl be2d91090c Update historical-materialism.csl 1d1cf095a6 Create atlande.csl (#4930) 89f41d404d Create juristische-zitierweise-oeffentliches-recht.csl (#4944) 8c677a08c5 Create korean-journal-of-gastroenterology.csl (#4954) eadb9508dd Create historical-materialism.csl (#4955) 5553dcdc9c Create revista-materia.csl (#4957) d23a3abd79 Bug fix in APA 6 original publication macro (#4959) 66f9974980 Always print publisher in APA 6th edition (#4899) 868809c063 Create agora.csl (#4940) 99c19c397e Update anthropologie-et-societes.csl (#4952) ee17423a93 Create critical-reviews-in-solid-state-and-materials-science.csl (#4951) 7a13a7d59e Create korean-journal-of-internal-medicine.csl (#4953) git-subtree-dir: src/main/resources/csl-styles git-subtree-split: eb0d37e0ff253e7c6d256b619e4831af306a28cf * Merged new library actions * l10n * Removed unused constructor * Fixed checkstyle failed check * Fixed one more checkstyle issue Co-authored-by: github actions --- CHANGELOG.md | 1 + src/main/java/org/jabref/gui/JabRefFrame.java | 16 +++------------- .../org/jabref/gui/actions/StandardActions.java | 3 --- .../jabref/gui/importer/NewDatabaseAction.java | 16 +++++++++++----- .../org/jabref/gui/preferences/GeneralTab.fxml | 2 +- src/main/resources/l10n/JabRef_en.properties | 3 +-- 6 files changed, 17 insertions(+), 24 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5b7f10fe18e..a4ed0bab46b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -54,6 +54,7 @@ Note that this project **does not** adhere to [Semantic Versioning](http://semve - We improved the "Possible duplicate entries" window to remember its size and position throughout a session. [#6582](https://github.com/JabRef/jabref/issues/6582) - We divided the toolbar into small parts, so if the application window is to small, only a part of the toolbar is moved into the chevron popup. [#6682](https://github.com/JabRef/jabref/pull/6682) - We changed the layout for of the buttons in the Open Office side panel to ensure that the button text is always visible, specially when resizing. [#6639](https://github.com/JabRef/jabref/issues/6639) +- We merged the two new library commands in the file menu to one which always creates a new library in the default library mode. [#6359](https://github.com/JabRef/jabref/pull/6539#issuecomment-641056536) ### Fixed diff --git a/src/main/java/org/jabref/gui/JabRefFrame.java b/src/main/java/org/jabref/gui/JabRefFrame.java index 007b95c7b21..ea46b25feb0 100644 --- a/src/main/java/org/jabref/gui/JabRefFrame.java +++ b/src/main/java/org/jabref/gui/JabRefFrame.java @@ -134,7 +134,6 @@ import org.jabref.logic.undo.UndoRedoEvent; import org.jabref.logic.util.io.FileUtil; import org.jabref.model.database.BibDatabaseContext; -import org.jabref.model.database.BibDatabaseMode; import org.jabref.model.database.shared.DatabaseLocation; import org.jabref.model.entry.BibEntry; import org.jabref.model.entry.field.SpecialField; @@ -507,20 +506,14 @@ private Node createToolbar() { final Region leftSpacer = new Region(); final Region rightSpacer = new Region(); - final Button newLibrary; - if (Globals.prefs.getDefaultBibDatabaseMode() == BibDatabaseMode.BIBLATEX) { - newLibrary = factory.createIconButton(StandardActions.NEW_LIBRARY_BIBLATEX, new NewDatabaseAction(this, BibDatabaseMode.BIBLATEX)); - } else { - newLibrary = factory.createIconButton(StandardActions.NEW_LIBRARY_BIBTEX, new NewDatabaseAction(this, BibDatabaseMode.BIBTEX)); - } - final PushToApplicationAction pushToApplicationAction = getPushToApplicationsManager().getPushToApplicationAction(); final Button pushToApplicationButton = factory.createIconButton(pushToApplicationAction.getActionInformation(), pushToApplicationAction); pushToApplicationsManager.registerReconfigurable(pushToApplicationButton); ToolBar toolBar = new ToolBar( - new HBox(newLibrary, + new HBox( + factory.createIconButton(StandardActions.NEW_LIBRARY, new NewDatabaseAction(this, prefs)), factory.createIconButton(StandardActions.OPEN_LIBRARY, new OpenDatabaseAction(this)), factory.createIconButton(StandardActions.SAVE_LIBRARY, new SaveAction(SaveAction.SaveMethod.SAVE, this, stateManager))), @@ -733,10 +726,7 @@ private MenuBar createMenu() { Menu help = new Menu(Localization.lang("Help")); file.getItems().addAll( - factory.createSubMenu(StandardActions.NEW_LIBRARY, - factory.createMenuItem(StandardActions.NEW_LIBRARY_BIBTEX, new NewDatabaseAction(this, BibDatabaseMode.BIBTEX)), - factory.createMenuItem(StandardActions.NEW_LIBRARY_BIBLATEX, new NewDatabaseAction(this, BibDatabaseMode.BIBLATEX))), - + factory.createMenuItem(StandardActions.NEW_LIBRARY, new NewDatabaseAction(this, prefs)), factory.createMenuItem(StandardActions.OPEN_LIBRARY, getOpenDatabaseAction()), fileHistory, factory.createMenuItem(StandardActions.SAVE_LIBRARY, new SaveAction(SaveAction.SaveMethod.SAVE, this, stateManager)), diff --git a/src/main/java/org/jabref/gui/actions/StandardActions.java b/src/main/java/org/jabref/gui/actions/StandardActions.java index 31c848def09..58d7e36ca74 100644 --- a/src/main/java/org/jabref/gui/actions/StandardActions.java +++ b/src/main/java/org/jabref/gui/actions/StandardActions.java @@ -6,7 +6,6 @@ import org.jabref.gui.icon.JabRefIcon; import org.jabref.gui.keyboard.KeyBinding; import org.jabref.logic.l10n.Localization; -import org.jabref.model.database.BibDatabaseMode; public enum StandardActions implements Action { @@ -59,8 +58,6 @@ public enum StandardActions implements Action { RELEVANCE(Localization.lang("Relevance"), IconTheme.JabRefIcons.RELEVANCE), RELEVANT(Localization.lang("Toggle relevance"), IconTheme.JabRefIcons.RELEVANCE), NEW_LIBRARY(Localization.lang("New library"), IconTheme.JabRefIcons.NEW), - NEW_LIBRARY_BIBTEX(Localization.lang("New %0 library", BibDatabaseMode.BIBTEX.getFormattedName()), IconTheme.JabRefIcons.NEW), - NEW_LIBRARY_BIBLATEX(Localization.lang("New %0 library", BibDatabaseMode.BIBLATEX.getFormattedName()), IconTheme.JabRefIcons.NEW), OPEN_LIBRARY(Localization.lang("Open library"), IconTheme.JabRefIcons.OPEN, KeyBinding.OPEN_DATABASE), IMPORT(Localization.lang("Import"), IconTheme.JabRefIcons.IMPORT), EXPORT(Localization.lang("Export"), IconTheme.JabRefIcons.EXPORT, KeyBinding.EXPORT), diff --git a/src/main/java/org/jabref/gui/importer/NewDatabaseAction.java b/src/main/java/org/jabref/gui/importer/NewDatabaseAction.java index 553361ae451..b2f0b15307a 100644 --- a/src/main/java/org/jabref/gui/importer/NewDatabaseAction.java +++ b/src/main/java/org/jabref/gui/importer/NewDatabaseAction.java @@ -3,7 +3,7 @@ import org.jabref.gui.JabRefFrame; import org.jabref.gui.actions.SimpleCommand; import org.jabref.model.database.BibDatabaseContext; -import org.jabref.model.database.BibDatabaseMode; +import org.jabref.preferences.PreferencesService; /** * Create a new, empty, database. @@ -11,17 +11,23 @@ public class NewDatabaseAction extends SimpleCommand { private final JabRefFrame jabRefFrame; - private final BibDatabaseMode mode; + private final PreferencesService preferencesService; - public NewDatabaseAction(JabRefFrame jabRefFrame, BibDatabaseMode mode) { + /** + * Constructs a command to create a new library of the default type + * + * @param jabRefFrame the application frame of JabRef + * @param preferencesService the preferencesService of JabRef + */ + public NewDatabaseAction(JabRefFrame jabRefFrame, PreferencesService preferencesService) { this.jabRefFrame = jabRefFrame; - this.mode = mode; + this.preferencesService = preferencesService; } @Override public void execute() { BibDatabaseContext bibDatabaseContext = new BibDatabaseContext(); - bibDatabaseContext.setMode(mode); + bibDatabaseContext.setMode(preferencesService.getGeneralPreferences().getDefaultBibDatabaseMode()); jabRefFrame.addTab(bibDatabaseContext, true); } } diff --git a/src/main/java/org/jabref/gui/preferences/GeneralTab.fxml b/src/main/java/org/jabref/gui/preferences/GeneralTab.fxml index 86dfee7fdf9..2f39cdb4c68 100644 --- a/src/main/java/org/jabref/gui/preferences/GeneralTab.fxml +++ b/src/main/java/org/jabref/gui/preferences/GeneralTab.fxml @@ -29,7 +29,7 @@