Skip to content

Commit 4e48079

Browse files
committed
Fix action helper when no library is open
1 parent b472942 commit 4e48079

File tree

2 files changed

+9
-2
lines changed

2 files changed

+9
-2
lines changed

src/main/java/org/jabref/gui/actions/ActionHelper.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
import javafx.beans.binding.Bindings;
99
import javafx.beans.binding.BooleanExpression;
10+
import javafx.beans.property.SimpleStringProperty;
1011
import javafx.collections.ObservableList;
1112

1213
import org.jabref.gui.StateManager;
@@ -51,6 +52,10 @@ public static BooleanExpression isAnyFieldSetForSelectedEntry(List<Field> fields
5152

5253
public static BooleanExpression isFilePresentForSelectedEntry(StateManager stateManager, PreferencesService preferencesService) {
5354
return Bindings.createBooleanBinding(() -> {
55+
56+
if (stateManager.getSelectedEntries().isEmpty()) {
57+
return false;
58+
}
5459
List<LinkedFile> files = stateManager.getSelectedEntries().get(0).getFiles();
5560
if ((files.size() > 0) && stateManager.getActiveDatabase().isPresent()) {
5661
Optional<Path> filename = FileHelper.find(
@@ -62,6 +67,6 @@ public static BooleanExpression isFilePresentForSelectedEntry(StateManager state
6267
return false;
6368
}
6469
}, stateManager.getSelectedEntries(),
65-
stateManager.getSelectedEntries().get(0).getFieldBinding(StandardField.FILE));
70+
stateManager.getSelectedEntries().isEmpty() ? new SimpleStringProperty("") : stateManager.getSelectedEntries().get(0).getFieldBinding(StandardField.FILE));
6671
}
6772
}

src/main/java/org/jabref/gui/documentviewer/ShowDocumentViewerAction.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,12 @@
55
import org.jabref.gui.actions.SimpleCommand;
66
import org.jabref.preferences.PreferencesService;
77

8+
import static org.jabref.gui.actions.ActionHelper.needsEntriesSelected;
9+
810
public class ShowDocumentViewerAction extends SimpleCommand {
911

1012
public ShowDocumentViewerAction(StateManager stateManager, PreferencesService preferences) {
11-
this.executable.bind(ActionHelper.isFilePresentForSelectedEntry(stateManager, preferences));
13+
this.executable.bind(needsEntriesSelected(stateManager).and(ActionHelper.isFilePresentForSelectedEntry(stateManager, preferences)));
1214
}
1315

1416
@Override

0 commit comments

Comments
 (0)