From 587b40a1cb201c3e7c914b2ba96c66b467ae6384 Mon Sep 17 00:00:00 2001 From: Oliver Kopp Date: Tue, 29 Aug 2023 00:19:39 +0200 Subject: [PATCH] Nice UI defaults --- .../saving/SavingPropertiesViewModel.java | 12 +++++++++++- .../java/org/jabref/model/metadata/SaveOrder.java | 8 +++++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/jabref/gui/libraryproperties/saving/SavingPropertiesViewModel.java b/src/main/java/org/jabref/gui/libraryproperties/saving/SavingPropertiesViewModel.java index b2eb29ee294..3454a83411f 100644 --- a/src/main/java/org/jabref/gui/libraryproperties/saving/SavingPropertiesViewModel.java +++ b/src/main/java/org/jabref/gui/libraryproperties/saving/SavingPropertiesViewModel.java @@ -1,6 +1,7 @@ package org.jabref.gui.libraryproperties.saving; import java.util.ArrayList; +import java.util.List; import java.util.Optional; import java.util.Set; @@ -18,6 +19,7 @@ import org.jabref.model.entry.field.Field; import org.jabref.model.entry.field.FieldFactory; import org.jabref.model.entry.field.InternalField; +import org.jabref.model.entry.field.StandardField; import org.jabref.model.metadata.MetaData; import org.jabref.model.metadata.SaveOrder; import org.jabref.preferences.CleanupPreferences; @@ -25,6 +27,14 @@ public class SavingPropertiesViewModel implements PropertiesTabViewModel { + private static final SaveOrder UI_DEFAULT_SAVE_ORDER = new SaveOrder(SaveOrder.OrderType.ORIGINAL, List.of( + new SaveOrder.SortCriterion(StandardField.AUTHOR), + new SaveOrder.SortCriterion(StandardField.YEAR), + new SaveOrder.SortCriterion(StandardField.TITLE), + // Pro users generate their citation keys well. They can just delete the above three proposals and get a well-sorted library. + new SaveOrder.SortCriterion(InternalField.KEY_FIELD) + )); + private final BooleanProperty protectDisableProperty = new SimpleBooleanProperty(); private final BooleanProperty libraryProtectedProperty = new SimpleBooleanProperty(); @@ -48,7 +58,7 @@ public SavingPropertiesViewModel(BibDatabaseContext databaseContext, Preferences this.databaseContext = databaseContext; this.preferencesService = preferencesService; this.initialMetaData = databaseContext.getMetaData(); - this.saveOrder = initialMetaData.getSaveOrder().orElse(SaveOrder.getDefaultSaveOrder()); + this.saveOrder = initialMetaData.getSaveOrder().orElse(UI_DEFAULT_SAVE_ORDER); } @Override diff --git a/src/main/java/org/jabref/model/metadata/SaveOrder.java b/src/main/java/org/jabref/model/metadata/SaveOrder.java index a0f63d8c30e..8d263d68d2d 100644 --- a/src/main/java/org/jabref/model/metadata/SaveOrder.java +++ b/src/main/java/org/jabref/model/metadata/SaveOrder.java @@ -128,7 +128,13 @@ public static class SortCriterion { public final boolean descending; /** - * + * Given field sorted ascending + */ + public SortCriterion(Field field) { + this(field, false); + } + + /** * @param field The field * @param descending Must be a boolean value as string, e.g. "true", "false" */