Skip to content

Commit 6ac10c7

Browse files
committed
Persist file notifications
1 parent 8d5520c commit 6ac10c7

3 files changed

Lines changed: 13 additions & 0 deletions

File tree

jabgui/src/main/java/org/jabref/gui/DialogService.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import java.util.Optional;
99
import java.util.function.Consumer;
1010

11+
import javafx.collections.ObservableList;
1112
import javafx.concurrent.Task;
1213
import javafx.print.PrinterJob;
1314
import javafx.scene.control.Alert;
@@ -264,6 +265,8 @@ Optional<ButtonType> showCustomButtonDialogWithTooltipsAndWait(Alert.AlertType t
264265

265266
List<NotificationGroup<?, ? extends Notification<?>>> getNotificationGroups();
266267

268+
ObservableList<? extends Notification<?>> getPersistentNotifications();
269+
267270
/// Notify the user in a non-blocking way (e.g. a toast).
268271
///
269272
/// @param notification the message to show.

jabgui/src/main/java/org/jabref/gui/JabRefDialogService.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import java.util.function.Consumer;
1313

1414
import javafx.application.Platform;
15+
import javafx.collections.ObservableList;
1516
import javafx.concurrent.Task;
1617
import javafx.print.PrinterJob;
1718
import javafx.scene.Group;
@@ -83,12 +84,15 @@ public class JabRefDialogService implements DialogService {
8384
private final NotificationGroup<Object, Notifications.UiNotification> uiNotifications = new NotificationGroup<>(Localization.lang("Preview"));
8485
private final NotificationGroup<Task<?>, Notifications.TaskNotification> taskNotifications = new NotificationGroup<>(Localization.lang("Tasks"));
8586

87+
private final ObservableList<Notification<?>> persistentNotifications;
88+
8689
private final Window mainWindow;
8790

8891
public JabRefDialogService(Window mainWindow) {
8992
this.mainWindow = mainWindow;
9093

9194
taskNotifications.setViewFactory(Notifications.TaskNotificationView::new);
95+
persistentNotifications = EasyBind.concat(fileNotifications.getNotifications());
9296
}
9397

9498
private FXDialog createDialog(AlertType type, String title, String content) {
@@ -561,4 +565,8 @@ private String getContentByCode(int statusCode) {
561565
public List<NotificationGroup<?, ? extends Notification<?>>> getNotificationGroups() {
562566
return List.of(undefinedNotifications, fileNotifications, uiNotifications, taskNotifications);
563567
}
568+
569+
public ObservableList<? extends Notification<?>> getPersistentNotifications() {
570+
return persistentNotifications;
571+
}
564572
}

jabgui/src/main/java/org/jabref/gui/JabRefGUI.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99

1010
import javafx.application.Application;
1111
import javafx.application.Platform;
12+
import javafx.beans.binding.Bindings;
1213
import javafx.collections.ListChangeListener;
1314
import javafx.concurrent.Task;
1415
import javafx.geometry.Rectangle2D;
@@ -322,6 +323,7 @@ private void openWindow() {
322323
Injector.setModelOrService(InfoCenterPane.class, powerpane.getInfoCenterPane());
323324
powerpane.setContent(JabRefGUI.mainFrame);
324325
powerpane.getInfoCenterPane().setInfoCenterViewPos(InfoCenterViewPos.BOTTOM_RIGHT);
326+
powerpane.getInfoCenterPane().autoHideProperty().bind(Bindings.isEmpty(dialogService.getPersistentNotifications()));
325327

326328
Scene scene = new Scene(powerpane);
327329

0 commit comments

Comments
 (0)