Skip to content

Commit 25eda20

Browse files
Rohith GurramRohith Gurram
authored andcommitted
Column Preference Reset
1 parent 7a4500c commit 25eda20

File tree

3 files changed

+78
-10
lines changed

3 files changed

+78
-10
lines changed

jabgui/src/main/java/org/jabref/gui/maintable/ColumnPreferences.java

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,37 @@ public ColumnPreferences(List<MainTableColumnModel> columns,
1919
this.columnSortOrder = FXCollections.observableArrayList(columnSortOrder);
2020
}
2121

22+
// Private default constructor with hardcoded default values
23+
private ColumnPreferences() {
24+
this(
25+
List.of(
26+
new MainTableColumnModel(MainTableColumnModel.Type.GROUPS, "", 28),
27+
new MainTableColumnModel(MainTableColumnModel.Type.GROUP_ICONS, "", 40),
28+
new MainTableColumnModel(MainTableColumnModel.Type.FILES, "", 28),
29+
new MainTableColumnModel(MainTableColumnModel.Type.LINKED_IDENTIFIER, "", 28),
30+
new MainTableColumnModel(MainTableColumnModel.Type.NORMALFIELD, "citationkey", 100),
31+
new MainTableColumnModel(MainTableColumnModel.Type.NORMALFIELD, "entrytype", 75),
32+
new MainTableColumnModel(MainTableColumnModel.Type.NORMALFIELD, "author/editor", 300),
33+
new MainTableColumnModel(MainTableColumnModel.Type.NORMALFIELD, "title", 470),
34+
new MainTableColumnModel(MainTableColumnModel.Type.NORMALFIELD, "year", 60),
35+
new MainTableColumnModel(MainTableColumnModel.Type.NORMALFIELD, "journal/booktitle", 130),
36+
new MainTableColumnModel(MainTableColumnModel.Type.SPECIALFIELD, "ranking", 50),
37+
new MainTableColumnModel(MainTableColumnModel.Type.SPECIALFIELD, "readstatus", 50),
38+
new MainTableColumnModel(MainTableColumnModel.Type.SPECIALFIELD, "priority", 50)
39+
),
40+
List.of()
41+
);
42+
}
43+
44+
public static ColumnPreferences getDefault() {
45+
return new ColumnPreferences();
46+
}
47+
48+
public void setAll(ColumnPreferences preferences) {
49+
this.columns.setAll(preferences.getColumns());
50+
this.columnSortOrder.setAll(preferences.getColumnSortOrder());
51+
}
52+
2253
public ObservableList<MainTableColumnModel> getColumns() {
2354
return columns;
2455
}

jabgui/src/main/java/org/jabref/gui/maintable/MainTablePreferences.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,24 @@ public MainTablePreferences(ColumnPreferences columnPreferences,
1616
this.extraFileColumnsEnabled.set(extraFileColumnsEnabled);
1717
}
1818

19+
private MainTablePreferences() {
20+
this(
21+
ColumnPreferences.getDefault(),
22+
false,
23+
false
24+
);
25+
}
26+
27+
public static MainTablePreferences getDefault() {
28+
return new MainTablePreferences();
29+
}
30+
31+
public void setAll(MainTablePreferences preferences) {
32+
this.columnPreferences.setAll(preferences.getColumnPreferences());
33+
this.resizeColumnsToFit.set(preferences.getResizeColumnsToFit());
34+
this.extraFileColumnsEnabled.set(preferences.getExtraFileColumnsEnabled());
35+
}
36+
1937
public ColumnPreferences getColumnPreferences() {
2038
return columnPreferences;
2139
}

jabgui/src/main/java/org/jabref/gui/preferences/JabRefGuiPreferences.java

Lines changed: 29 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -350,8 +350,6 @@ private JabRefGuiPreferences() {
350350

351351
// region: Main table, main table column, and search dialog column preferences
352352
defaults.put(EXTRA_FILE_COLUMNS, Boolean.FALSE);
353-
defaults.put(COLUMN_NAMES, "groups;group_icons;files;linked_id;field:citationkey;field:entrytype;field:author/editor;field:title;field:year;field:journal/booktitle;special:ranking;special:readstatus;special:priority");
354-
defaults.put(COLUMN_WIDTHS, "28;40;28;28;100;75;300;470;60;130;50;50;50");
355353

356354
defaults.put(SIDE_PANE_COMPONENT_NAMES, "");
357355
defaults.put(SIDE_PANE_COMPONENT_PREFERRED_POSITIONS, "");
@@ -410,6 +408,8 @@ public void clear() throws BackingStoreException {
410408
getWorkspacePreferences().setAll(WorkspacePreferences.getDefault());
411409
getGuiPreferences().setAll(CoreGuiPreferences.getDefault());
412410
getDonationPreferences().setAll(DonationPreferences.getDefault());
411+
getMainTablePreferences().setAll(MainTablePreferences.getDefault());
412+
getMainTableColumnPreferences().setAll(ColumnPreferences.getDefault());
413413
}
414414

415415
@Override
@@ -420,6 +420,8 @@ public void importPreferences(Path file) throws JabRefException {
420420
getWorkspacePreferences().setAll(getWorkspacePreferencesFromBackingStore(getWorkspacePreferences()));
421421
getGuiPreferences().setAll(getCoreGuiPreferencesFromBackingStore(getGuiPreferences()));
422422
getDonationPreferences().setAll(getDonationPreferencesFromBackingStore(getDonationPreferences()));
423+
getMainTablePreferences().setAll(getMainTablePreferencesFromBackingStore(getMainTablePreferences()));
424+
getMainTableColumnPreferences().setAll(getMainTableColumnPreferencesFromBackingStore(getMainTableColumnPreferences()));
423425
}
424426

425427
// region EntryEditorPreferences
@@ -1000,10 +1002,7 @@ public MainTablePreferences getMainTablePreferences() {
10001002
return mainTablePreferences;
10011003
}
10021004

1003-
mainTablePreferences = new MainTablePreferences(
1004-
getMainTableColumnPreferences(),
1005-
getBoolean(AUTO_RESIZE_MODE),
1006-
getBoolean(EXTRA_FILE_COLUMNS));
1005+
mainTablePreferences = getMainTablePreferencesFromBackingStore(MainTablePreferences.getDefault());
10071006

10081007
EasyBind.listen(mainTablePreferences.resizeColumnsToFitProperty(),
10091008
(obs, oldValue, newValue) -> putBoolean(AUTO_RESIZE_MODE, newValue));
@@ -1018,9 +1017,7 @@ public ColumnPreferences getMainTableColumnPreferences() {
10181017
return mainTableColumnPreferences;
10191018
}
10201019

1021-
List<MainTableColumnModel> columns = getColumns(COLUMN_NAMES, COLUMN_WIDTHS, COLUMN_SORT_TYPES, ColumnPreferences.DEFAULT_COLUMN_WIDTH);
1022-
List<MainTableColumnModel> columnSortOrder = getColumnSortOrder(COLUMN_SORT_ORDER, columns);
1023-
mainTableColumnPreferences = new ColumnPreferences(columns, columnSortOrder);
1020+
mainTableColumnPreferences = getMainTableColumnPreferencesFromBackingStore(ColumnPreferences.getDefault());
10241021

10251022
mainTableColumnPreferences.getColumns().addListener((InvalidationListener) change -> {
10261023
putStringList(COLUMN_NAMES, getColumnNamesAsStringList(mainTableColumnPreferences));
@@ -1054,6 +1051,28 @@ public ColumnPreferences getSearchDialogColumnPreferences() {
10541051
return searchDialogColumnPreferences;
10551052
}
10561053

1054+
private MainTablePreferences getMainTablePreferencesFromBackingStore(MainTablePreferences defaults) {
1055+
return new MainTablePreferences(
1056+
getMainTableColumnPreferences(),
1057+
getBoolean(AUTO_RESIZE_MODE, defaults.getResizeColumnsToFit()),
1058+
getBoolean(EXTRA_FILE_COLUMNS, defaults.getExtraFileColumnsEnabled())
1059+
);
1060+
}
1061+
1062+
private ColumnPreferences getMainTableColumnPreferencesFromBackingStore(ColumnPreferences defaults) {
1063+
List<String> storedColumnNames = getStringList(COLUMN_NAMES);
1064+
1065+
if (storedColumnNames.isEmpty()) {
1066+
return defaults;
1067+
}
1068+
1069+
List<MainTableColumnModel> columns = getColumns(COLUMN_NAMES, COLUMN_WIDTHS, COLUMN_SORT_TYPES, ColumnPreferences.DEFAULT_COLUMN_WIDTH);
1070+
List<MainTableColumnModel> columnSortOrder = getColumnSortOrder(COLUMN_SORT_ORDER, columns);
1071+
return new ColumnPreferences(columns, columnSortOrder);
1072+
}
1073+
1074+
// end region
1075+
10571076
// --- Generic column handling ---
10581077
@SuppressWarnings("SameParameterValue")
10591078
private List<MainTableColumnModel> getColumns(String columnNamesList, String columnWidthList, String sortTypeList, double defaultWidth) {
@@ -1216,7 +1235,7 @@ public DonationPreferences getDonationPreferences() {
12161235
}
12171236

12181237
donationPreferences = getDonationPreferencesFromBackingStore(DonationPreferences.getDefault());
1219-
1238+
12201239
EasyBind.listen(donationPreferences.neverShowAgainProperty(), (_, _, newValue) -> putBoolean(DONATION_NEVER_SHOW, newValue));
12211240
EasyBind.listen(donationPreferences.lastShownEpochDayProperty(), (_, _, newValue) -> putInt(DONATION_LAST_SHOWN_EPOCH_DAY, newValue.intValue()));
12221241
return donationPreferences;

0 commit comments

Comments
 (0)