Skip to content

Commit 9322cde

Browse files
calixtustobiasdiez
authored andcommitted
NPE-fix for Preferences/Ext-Prog/Settings for X/Browse (#4983)
* Added handover dialogservice * Undone previous * Refactor Constructors, handing over dialogService * Reword Identifier * Reformat for codestyle * Refactor Constructors * Delete superfluous import for checkstyle * Reformat whitespace * Refactor Constructors * Refactor Cleanup
1 parent df2a178 commit 9322cde

File tree

6 files changed

+24
-7
lines changed

6 files changed

+24
-7
lines changed

src/main/java/org/jabref/gui/preferences/ExternalTab.java

+3-2
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
import org.jabref.gui.push.PushToApplication;
2020
import org.jabref.gui.push.PushToApplicationSettings;
2121
import org.jabref.gui.push.PushToApplicationSettingsDialog;
22-
import org.jabref.gui.push.PushToApplicationsManager;
2322
import org.jabref.gui.util.FileDialogConfiguration;
2423
import org.jabref.logic.l10n.Localization;
2524
import org.jabref.logic.util.OS;
@@ -28,6 +27,7 @@
2827

2928
class ExternalTab implements PrefsTab {
3029

30+
private final JabRefFrame frame;
3131
private final JabRefPreferences prefs;
3232
private final TextField emailSubject;
3333
private final TextField citeCommand;
@@ -54,6 +54,7 @@ class ExternalTab implements PrefsTab {
5454

5555
public ExternalTab(JabRefFrame frame, PreferencesDialog prefsDiag, JabRefPreferences prefs) {
5656
this.prefs = prefs;
57+
this.frame = frame;
5758
dialogService = frame.getDialogService();
5859
builder.setVgap(7);
5960

@@ -197,7 +198,7 @@ public Node getBuilder() {
197198
}
198199

199200
private void addSettingsButton(final PushToApplication application, GridPane panel, int index) {
200-
PushToApplicationSettings settings = PushToApplicationsManager.getSettings(application);
201+
PushToApplicationSettings settings = frame.getPushApplications().getSettings(application);
201202
Button button = new Button(Localization.lang("Settings for %0", application.getApplicationName()));
202203
button.setPrefSize(150, 20);
203204
button.setOnAction(e -> PushToApplicationSettingsDialog.showSettingsDialog(dialogService, settings, index));

src/main/java/org/jabref/gui/push/PushToApplicationSettings.java

+4
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,10 @@ public class PushToApplicationSettings {
1919
protected AbstractPushToApplication application;
2020
private DialogService dialogService;
2121

22+
public PushToApplicationSettings(DialogService dialogService) {
23+
this.dialogService = dialogService;
24+
}
25+
2226
public GridPane getJFXSettingPane(int n) {
2327
switch (n) {
2428
case 0:

src/main/java/org/jabref/gui/push/PushToApplicationsManager.java

+8-5
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,10 @@ public class PushToApplicationsManager {
1010

1111
private final List<PushToApplication> applications;
1212

13+
private final DialogService dialogService;
14+
1315
public PushToApplicationsManager(DialogService dialogService) {
16+
this.dialogService = dialogService;
1417
// Set up the current available choices:
1518
applications = new ArrayList<>();
1619
applications.add(new PushToEmacs(dialogService));
@@ -25,15 +28,15 @@ public List<PushToApplication> getApplications() {
2528
return applications;
2629
}
2730

28-
public static PushToApplicationSettings getSettings(PushToApplication application) {
31+
public PushToApplicationSettings getSettings(PushToApplication application) {
2932
if (application instanceof PushToEmacs) {
30-
return new PushToEmacsSettings();
33+
return new PushToEmacsSettings(dialogService);
3134
} else if (application instanceof PushToLyx) {
32-
return new PushToLyxSettings();
35+
return new PushToLyxSettings(dialogService);
3336
} else if (application instanceof PushToVim) {
34-
return new PushToVimSettings();
37+
return new PushToVimSettings(dialogService);
3538
} else {
36-
return new PushToApplicationSettings();
39+
return new PushToApplicationSettings(dialogService);
3740
}
3841
}
3942

src/main/java/org/jabref/gui/push/PushToEmacsSettings.java

+3
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,16 @@
44
import javafx.scene.control.TextField;
55

66
import org.jabref.Globals;
7+
import org.jabref.gui.DialogService;
78
import org.jabref.logic.l10n.Localization;
89
import org.jabref.preferences.JabRefPreferences;
910

1011
public class PushToEmacsSettings extends PushToApplicationSettings {
1112

1213
private final TextField additionalParams = new TextField();
1314

15+
public PushToEmacsSettings (DialogService dialogService) { super(dialogService); }
16+
1417
@Override
1518
public void storeSettings() {
1619
super.storeSettings();

src/main/java/org/jabref/gui/push/PushToLyxSettings.java

+3
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
11
package org.jabref.gui.push;
22

33
import org.jabref.Globals;
4+
import org.jabref.gui.DialogService;
45
import org.jabref.logic.l10n.Localization;
56
import org.jabref.preferences.JabRefPreferences;
67

78
public class PushToLyxSettings extends PushToApplicationSettings {
89

10+
public PushToLyxSettings (DialogService dialogService) { super(dialogService); }
11+
912
@Override
1013
protected void initJFXSettingsPanel() {
1114
super.initJFXSettingsPanel();

src/main/java/org/jabref/gui/push/PushToVimSettings.java

+3
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,16 @@
44
import javafx.scene.control.TextField;
55

66
import org.jabref.Globals;
7+
import org.jabref.gui.DialogService;
78
import org.jabref.logic.l10n.Localization;
89
import org.jabref.preferences.JabRefPreferences;
910

1011
public class PushToVimSettings extends PushToApplicationSettings {
1112

1213
private final TextField vimServer = new TextField();
1314

15+
public PushToVimSettings (DialogService dialogService) { super(dialogService); }
16+
1417
@Override
1518
public void storeSettings() {
1619
super.storeSettings();

0 commit comments

Comments
 (0)