From b7c3d4757e3b4366a7a986d91ee9b68c5a79f80f Mon Sep 17 00:00:00 2001 From: Carl Christian Snethlage Date: Sun, 1 Sep 2019 21:09:15 +0200 Subject: [PATCH 1/6] Initial --- .../jabref/gui/actions/StandardActions.java | 2 + .../preferences/NameFormatterItemModel.java | 41 +++ .../gui/preferences/NameFormatterTab.fxml | 40 +++ .../gui/preferences/NameFormatterTab.java | 233 ------------------ .../gui/preferences/NameFormatterTabView.java | 104 ++++++++ .../NameFormatterTabViewModel.java | 97 ++++++++ .../PreferencesDialogViewModel.java | 4 +- .../jabref/gui/preferences/XmpPrefsTab.java | 181 -------------- .../gui/preferences/XmpPrivacyItemModel.java | 29 +++ .../jabref/gui/preferences/XmpPrivacyTab.fxml | 34 +++ .../gui/preferences/XmpPrivacyTabView.java | 121 +++++++++ .../preferences/XmpPrivacyTabViewModel.java | 106 ++++++++ src/main/resources/l10n/JabRef_en.properties | 3 +- 13 files changed, 578 insertions(+), 417 deletions(-) create mode 100644 src/main/java/org/jabref/gui/preferences/NameFormatterItemModel.java create mode 100644 src/main/java/org/jabref/gui/preferences/NameFormatterTab.fxml delete mode 100644 src/main/java/org/jabref/gui/preferences/NameFormatterTab.java create mode 100644 src/main/java/org/jabref/gui/preferences/NameFormatterTabView.java create mode 100644 src/main/java/org/jabref/gui/preferences/NameFormatterTabViewModel.java delete mode 100644 src/main/java/org/jabref/gui/preferences/XmpPrefsTab.java create mode 100644 src/main/java/org/jabref/gui/preferences/XmpPrivacyItemModel.java create mode 100644 src/main/java/org/jabref/gui/preferences/XmpPrivacyTab.fxml create mode 100644 src/main/java/org/jabref/gui/preferences/XmpPrivacyTabView.java create mode 100644 src/main/java/org/jabref/gui/preferences/XmpPrivacyTabViewModel.java diff --git a/src/main/java/org/jabref/gui/actions/StandardActions.java b/src/main/java/org/jabref/gui/actions/StandardActions.java index 117b75ceffa..aca9669e4cd 100644 --- a/src/main/java/org/jabref/gui/actions/StandardActions.java +++ b/src/main/java/org/jabref/gui/actions/StandardActions.java @@ -88,6 +88,8 @@ public enum StandardActions implements Action { PARSE_TEX(Localization.lang("Search for Citations in LaTeX Files"), IconTheme.JabRefIcons.LATEX_CITATIONS), NEW_SUB_LIBRARY_FROM_AUX(Localization.lang("New sublibrary based on AUX file") + "...", Localization.lang("New BibTeX sublibrary") + Localization.lang("This feature generates a new library based on which entries are needed in an existing LaTeX document."), IconTheme.JabRefIcons.NEW), WRITE_XMP(Localization.lang("Write XMP-metadata to PDFs"), Localization.lang("Will write XMP-metadata to the PDFs linked from selected entries."), KeyBinding.WRITE_XMP), + XMP_FILTER_ADD(Localization.lang("Add"), Localization.lang("Add field to filter list"), IconTheme.JabRefIcons.ADD_NOBOX), + NAME_FORMATTER_ADD(Localization.lang("Add"), Localization.lang("Add formatter to list"), IconTheme.JabRefIcons.ADD_NOBOX), OPEN_FOLDER(Localization.lang("Open folder"), Localization.lang("Open folder"), KeyBinding.OPEN_FOLDER), OPEN_FILE(Localization.lang("Open file"), Localization.lang("Open file"), IconTheme.JabRefIcons.FILE, KeyBinding.OPEN_FILE), OPEN_CONSOLE(Localization.lang("Open terminal here"), Localization.lang("Open terminal here"), IconTheme.JabRefIcons.CONSOLE, KeyBinding.OPEN_CONSOLE), diff --git a/src/main/java/org/jabref/gui/preferences/NameFormatterItemModel.java b/src/main/java/org/jabref/gui/preferences/NameFormatterItemModel.java new file mode 100644 index 00000000000..44998f216da --- /dev/null +++ b/src/main/java/org/jabref/gui/preferences/NameFormatterItemModel.java @@ -0,0 +1,41 @@ +package org.jabref.gui.preferences; + +import javafx.beans.property.SimpleStringProperty; +import javafx.beans.property.StringProperty; + +import org.jabref.logic.layout.format.NameFormatter; + +public class NameFormatterItemModel { + private final StringProperty name; + private final StringProperty format; + + NameFormatterItemModel() { this(""); } + + NameFormatterItemModel(String name) { + this(name, NameFormatter.DEFAULT_FORMAT); + } + + NameFormatterItemModel(String name, String format) { + this.name = new SimpleStringProperty(name); + this.format = new SimpleStringProperty(format); + } + + public void setName(String name) { + this.name.setValue(name); + } + + public String getName() { + return name.getValue(); + } + + public void setFormat(String format) { + this.format.setValue(format); + } + + public String getFormat() { + return format.getValue(); + } + + @Override + public String toString() { return "[" + name.getValue() + "," + format.getValue() + "]"; } +} diff --git a/src/main/java/org/jabref/gui/preferences/NameFormatterTab.fxml b/src/main/java/org/jabref/gui/preferences/NameFormatterTab.fxml new file mode 100644 index 00000000000..4a86c3a4485 --- /dev/null +++ b/src/main/java/org/jabref/gui/preferences/NameFormatterTab.fxml @@ -0,0 +1,40 @@ + + + + + + + + + + + + diff --git a/src/main/java/org/jabref/gui/preferences/NameFormatterTabView.java b/src/main/java/org/jabref/gui/preferences/NameFormatterTabView.java index 8b5aa3bbbd4..d6a390bd95b 100644 --- a/src/main/java/org/jabref/gui/preferences/NameFormatterTabView.java +++ b/src/main/java/org/jabref/gui/preferences/NameFormatterTabView.java @@ -11,7 +11,6 @@ import org.jabref.Globals; import org.jabref.gui.actions.ActionFactory; -import org.jabref.gui.actions.SimpleCommand; import org.jabref.gui.actions.StandardActions; import org.jabref.gui.help.HelpAction; import org.jabref.gui.icon.IconTheme; @@ -31,7 +30,6 @@ public class NameFormatterTabView extends AbstractPreferenceTabView implements P @FXML private TextField addFormatterName; @FXML private TextField addFormatterString; @FXML private Button formatterHelp; - @FXML private Button addFormatter; public NameFormatterTabView(JabRefPreferences preferences) { this.preferences = preferences; @@ -56,9 +54,7 @@ public void initialize () { formatterNameColumn.setCellFactory(TextFieldTableCell.forTableColumn()); formatterNameColumn.setOnEditCommit( (TableColumn.CellEditEvent event) -> { - event.getTableView().getItems().get( - event.getTablePosition().getRow()) - .setName(event.getNewValue()); + event.getRowValue().setName(event.getNewValue()); }); formatterStringColumn.setSortable(true); @@ -67,9 +63,7 @@ public void initialize () { formatterStringColumn.setCellFactory(TextFieldTableCell.forTableColumn()); formatterStringColumn.setOnEditCommit( (TableColumn.CellEditEvent event) -> { - event.getTableView().getItems().get( - event.getTablePosition().getRow()) - .setFormat(event.getNewValue()); + event.getRowValue().setFormat(event.getNewValue()); }); actionsColumn.setSortable(false); @@ -96,10 +90,10 @@ public void initialize () { ActionFactory actionFactory = new ActionFactory(Globals.getKeyPrefs()); actionFactory.configureIconButton(StandardActions.HELP_NAME_FORMATTER, new HelpAction(HelpFile.CUSTOM_EXPORTS_NAME_FORMATTER), formatterHelp); - actionFactory.configureIconButton(StandardActions.NAME_FORMATTER_ADD, new SimpleCommand() { - @Override - public void execute() { nameFormatterTabViewModel.addFormatter(); } - }, addFormatter); + } + + public void addFormatter() { + ((NameFormatterTabViewModel) viewModel).addFormatter(); } } diff --git a/src/main/java/org/jabref/gui/preferences/NameFormatterTabViewModel.java b/src/main/java/org/jabref/gui/preferences/NameFormatterTabViewModel.java index e3ad811cec9..2d510bcceb2 100644 --- a/src/main/java/org/jabref/gui/preferences/NameFormatterTabViewModel.java +++ b/src/main/java/org/jabref/gui/preferences/NameFormatterTabViewModel.java @@ -45,26 +45,15 @@ public void setValues() { @Override public void storeSettings() { - // First we remove all rows with empty names. - int i = 0; - while (i < formatterListProperty.getValue().size()) { - if (formatterListProperty.getValue().get(i).getName().isEmpty()) { - formatterListProperty.getValue().remove(i); - } else { - i++; - } - } - // Then we make lists + formatterListProperty.removeIf(formatter -> formatter.getName().isEmpty()); List names = new ArrayList<>(formatterListProperty.size()); List formats = new ArrayList<>(formatterListProperty.size()); - - for (NameFormatterItemModel formatter : formatterListProperty) { - names.add(formatter.getName()); - formats.add(formatter.getFormat()); + for (NameFormatterItemModel formatterListItem : formatterListProperty) { + names.add(formatterListItem.getName()); + formats.add(formatterListItem.getFormat()); } - // Finally, we store the new preferences. preferences.putStringList(JabRefPreferences.NAME_FORMATER_KEY, names); preferences.putStringList(JabRefPreferences.NAME_FORMATTER_VALUE, formats); } diff --git a/src/main/java/org/jabref/gui/preferences/XmpPrivacyItemModel.java b/src/main/java/org/jabref/gui/preferences/XmpPrivacyItemModel.java deleted file mode 100644 index 45e265c966a..00000000000 --- a/src/main/java/org/jabref/gui/preferences/XmpPrivacyItemModel.java +++ /dev/null @@ -1,29 +0,0 @@ -package org.jabref.gui.preferences; - -import javafx.beans.property.ObjectProperty; -import javafx.beans.property.SimpleObjectProperty; - -import org.jabref.model.entry.field.Field; - -public class XmpPrivacyItemModel { - private ObjectProperty field; - - XmpPrivacyItemModel(Field field) { - this.field = new SimpleObjectProperty<>(field); - } - - public void setField(Field field) { this.field.setValue(field); } - - public Field getField() { return this.field.getValue(); } - - public ObjectProperty fieldProperty() { - return field; - } - - public String getName() { return field.getValue().getName();} - - @Override - public String toString() { - return field.getValue().getName(); - } -} diff --git a/src/main/java/org/jabref/gui/preferences/XmpPrivacyTab.fxml b/src/main/java/org/jabref/gui/preferences/XmpPrivacyTab.fxml index 649f70ef4fb..d9684450cc5 100644 --- a/src/main/java/org/jabref/gui/preferences/XmpPrivacyTab.fxml +++ b/src/main/java/org/jabref/gui/preferences/XmpPrivacyTab.fxml @@ -6,9 +6,12 @@ + + + diff --git a/src/main/java/org/jabref/gui/preferences/XmpPrivacyTabView.java b/src/main/java/org/jabref/gui/preferences/XmpPrivacyTabView.java index b7579a73c70..a977be8ccf3 100644 --- a/src/main/java/org/jabref/gui/preferences/XmpPrivacyTabView.java +++ b/src/main/java/org/jabref/gui/preferences/XmpPrivacyTabView.java @@ -5,17 +5,13 @@ import javafx.scene.control.Button; import javafx.scene.control.CheckBox; import javafx.scene.control.ComboBox; -import javafx.scene.control.TableCell; import javafx.scene.control.TableColumn; import javafx.scene.control.TableView; import javafx.scene.input.KeyCode; import javafx.util.StringConverter; -import org.jabref.Globals; -import org.jabref.gui.actions.ActionFactory; -import org.jabref.gui.actions.SimpleCommand; -import org.jabref.gui.actions.StandardActions; import org.jabref.gui.icon.IconTheme; +import org.jabref.gui.util.BindingsHelper; import org.jabref.gui.util.FieldsUtil; import org.jabref.gui.util.IconValidationDecorator; import org.jabref.gui.util.ValueTableCellFactory; @@ -31,9 +27,9 @@ public class XmpPrivacyTabView extends AbstractPreferenceTabView implements PreferencesTab { @FXML private CheckBox enableXmpFilter; - @FXML private TableView filterList; - @FXML private TableColumn fieldColumn; - @FXML private TableColumn actionsColumn; + @FXML private TableView filterList; + @FXML private TableColumn fieldColumn; + @FXML private TableColumn actionsColumn; @FXML private ComboBox addFieldName; @FXML private Button addField; @@ -61,27 +57,15 @@ public void initialize () { fieldColumn.setSortable(true); fieldColumn.setReorderable(false); - fieldColumn.setCellValueFactory(cellData -> cellData.getValue().fieldProperty()); - fieldColumn.setCellFactory(cellData -> new TableCell<>() { - @Override - public void updateItem(Field item, boolean empty) { - super.updateItem(item, empty); - if (item == null) { - setText(""); - } else { - setText(FieldsUtil.getNameWithType(item)); - } - } - - private String getString() { - return getItem() == null ? "" : getItem().getName(); - } - }); + fieldColumn.setCellValueFactory(cellData -> BindingsHelper.constantOf(cellData.getValue())); + new ValueTableCellFactory() + .withText(FieldsUtil::getNameWithType) + .install(fieldColumn); actionsColumn.setSortable(false); actionsColumn.setReorderable(false); - actionsColumn.setCellValueFactory(cellData -> cellData.getValue().fieldProperty()); - new ValueTableCellFactory() + actionsColumn.setCellValueFactory(cellData -> BindingsHelper.constantOf(cellData.getValue())); + new ValueTableCellFactory() .withGraphic(item -> IconTheme.JabRefIcons.DELETE_ENTRY.getGraphicNode()) .withTooltip(item -> Localization.lang("Remove") + " " + item.getName()) .withOnMouseClickedEvent(item -> evt -> { @@ -107,7 +91,7 @@ private String getString() { @Override public String toString(Field object) { if (object != null) { - return object.getName(); + return object.getDisplayName(); } else { return ""; } @@ -121,11 +105,7 @@ public Field fromString(String string) { validationVisualizer.setDecoration(new IconValidationDecorator()); Platform.runLater(() -> validationVisualizer.initVisualization(xmpPrivacyTabViewModel.xmpFilterListValidationStatus(), filterList)); - - ActionFactory actionFactory = new ActionFactory(Globals.getKeyPrefs()); - actionFactory.configureIconButton(StandardActions.XMP_FILTER_ADD, new SimpleCommand() { - @Override - public void execute() { xmpPrivacyTabViewModel.addField(); } - }, addField); } + + public void addField() { ((XmpPrivacyTabViewModel) viewModel).addField(); } } diff --git a/src/main/java/org/jabref/gui/preferences/XmpPrivacyTabViewModel.java b/src/main/java/org/jabref/gui/preferences/XmpPrivacyTabViewModel.java index bcf802d0713..ad9d5b7445f 100644 --- a/src/main/java/org/jabref/gui/preferences/XmpPrivacyTabViewModel.java +++ b/src/main/java/org/jabref/gui/preferences/XmpPrivacyTabViewModel.java @@ -25,9 +25,9 @@ public class XmpPrivacyTabViewModel implements PreferenceTabViewModel { private final BooleanProperty xmpFilterEnabledProperty = new SimpleBooleanProperty(); - private final ListProperty xmpFilterListProperty = new SimpleListProperty<>(FXCollections.observableArrayList()); + private final ListProperty xmpFilterListProperty = new SimpleListProperty<>(FXCollections.observableArrayList()); private final ListProperty availableFieldsProperty = new SimpleListProperty<>(FXCollections.observableArrayList()); - private final ObjectProperty addFieldNameProperty = new SimpleObjectProperty<>(); + private final ObjectProperty addFieldProperty = new SimpleObjectProperty<>(); private final DialogService dialogService; private final JabRefPreferences preferences; @@ -54,9 +54,9 @@ public void setValues() { xmpFilterEnabledProperty.setValue(preferences.getBoolean(JabRefPreferences.USE_XMP_PRIVACY_FILTER)); xmpFilterListProperty.clear(); - List xmpExclusions = preferences.getStringList(JabRefPreferences.XMP_PRIVACY_FILTERS) - .stream().map(name -> new XmpPrivacyItemModel(FieldFactory.parseField(name))).collect(Collectors.toList()); - xmpFilterListProperty.addAll(xmpExclusions); + List xmpFilters = preferences.getStringList(JabRefPreferences.XMP_PRIVACY_FILTERS) + .stream().map(FieldFactory::parseField).collect(Collectors.toList()); + xmpFilterListProperty.addAll(xmpFilters); availableFieldsProperty.clear(); availableFieldsProperty.addAll(FieldFactory.getCommonFields()); @@ -66,23 +66,22 @@ public void setValues() { public void storeSettings() { preferences.putBoolean(JabRefPreferences.USE_XMP_PRIVACY_FILTER, xmpFilterEnabledProperty.getValue()); preferences.putStringList(JabRefPreferences.XMP_PRIVACY_FILTERS, xmpFilterListProperty.getValue().stream() - .map(XmpPrivacyItemModel::getField) .map(Field::getName) .collect(Collectors.toList())); } public void addField() { - if (addFieldNameProperty.getValue() == null) { + if (addFieldProperty.getValue() == null) { return; } - if (xmpFilterListProperty.getValue().stream().filter(item -> item.getField().equals(addFieldNameProperty.getValue())).findAny().isEmpty()) { - xmpFilterListProperty.add(new XmpPrivacyItemModel(addFieldNameProperty.getValue())); - addFieldNameProperty.setValue(null); + if (xmpFilterListProperty.getValue().stream().filter(item -> item.equals(addFieldProperty.getValue())).findAny().isEmpty()) { + xmpFilterListProperty.add(addFieldProperty.getValue()); + addFieldProperty.setValue(null); } } - public void removeFilter(XmpPrivacyItemModel filter) { + public void removeFilter(Field filter) { xmpFilterListProperty.remove(filter); } @@ -106,10 +105,10 @@ public boolean validateSettings() { public BooleanProperty xmpFilterEnabledProperty() { return xmpFilterEnabledProperty; } - public ListProperty filterListProperty() { return xmpFilterListProperty; } + public ListProperty filterListProperty() { return xmpFilterListProperty; } public ListProperty availableFieldsProperty() { return availableFieldsProperty; } - public ObjectProperty addFieldNameProperty() { return addFieldNameProperty; } + public ObjectProperty addFieldNameProperty() { return addFieldProperty; } } diff --git a/src/main/java/org/jabref/gui/util/FieldsUtil.java b/src/main/java/org/jabref/gui/util/FieldsUtil.java index 715392af08f..e313a064481 100644 --- a/src/main/java/org/jabref/gui/util/FieldsUtil.java +++ b/src/main/java/org/jabref/gui/util/FieldsUtil.java @@ -15,17 +15,17 @@ public class FieldsUtil { public static String getNameWithType(Field field) { if (field instanceof SpecialField) { - return field.getName() + " (" + Localization.lang("Special") + ")"; + return field.getDisplayName() + " (" + Localization.lang("Special") + ")"; } else if (field instanceof IEEEField) { - return field.getName() + " (" + Localization.lang("IEEE") + ")"; + return field.getDisplayName() + " (" + Localization.lang("IEEE") + ")"; } else if (field instanceof InternalField) { - return field.getName() + " (" + Localization.lang("Internal") + ")"; + return field.getDisplayName() + " (" + Localization.lang("Internal") + ")"; } else if (field instanceof UnknownField) { - return field.getName() + " (" + Localization.lang("Custom") + ")"; + return field.getDisplayName() + " (" + Localization.lang("Custom") + ")"; } else if (field instanceof ExtraFilePseudoField) { - return field.getName() + " (" + Localization.lang("File type") + ")"; + return field.getDisplayName() + " (" + Localization.lang("File type") + ")"; } else { - return field.getName(); + return field.getDisplayName(); } } From 19ac23a58419b7866cf8c302b01f42c1f29e340b Mon Sep 17 00:00:00 2001 From: Carl Christian Snethlage Date: Tue, 3 Sep 2019 20:56:15 +0200 Subject: [PATCH 5/6] l10n --- src/main/resources/l10n/JabRef_en.properties | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/main/resources/l10n/JabRef_en.properties b/src/main/resources/l10n/JabRef_en.properties index 66ec75e11a7..639970999d2 100644 --- a/src/main/resources/l10n/JabRef_en.properties +++ b/src/main/resources/l10n/JabRef_en.properties @@ -2118,3 +2118,7 @@ Add\ formatter\ to\ list=Add formatter to list IEEE=IEEE Internal=Internal Special=Special +File\ type=File type +Filter\ List=Filter List +List\ must\ not\ be\ empty.=List must not be empty. +xmp-metadata=xmp-metadata From bce84e55f53eb6616447d372b1f82a66935c30bc Mon Sep 17 00:00:00 2001 From: Carl Christian Snethlage Date: Wed, 4 Sep 2019 13:43:17 +0200 Subject: [PATCH 6/6] Removed PropertyValueFactory --- .../gui/preferences/NameFormatterItemModel.java | 12 ++++++++---- .../jabref/gui/preferences/NameFormatterTabView.java | 9 +++++---- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/src/main/java/org/jabref/gui/preferences/NameFormatterItemModel.java b/src/main/java/org/jabref/gui/preferences/NameFormatterItemModel.java index 44998f216da..721407bc3b3 100644 --- a/src/main/java/org/jabref/gui/preferences/NameFormatterItemModel.java +++ b/src/main/java/org/jabref/gui/preferences/NameFormatterItemModel.java @@ -6,8 +6,8 @@ import org.jabref.logic.layout.format.NameFormatter; public class NameFormatterItemModel { - private final StringProperty name; - private final StringProperty format; + private final StringProperty name = new SimpleStringProperty(""); + private final StringProperty format = new SimpleStringProperty(""); NameFormatterItemModel() { this(""); } @@ -16,8 +16,8 @@ public class NameFormatterItemModel { } NameFormatterItemModel(String name, String format) { - this.name = new SimpleStringProperty(name); - this.format = new SimpleStringProperty(format); + this.name.setValue(name); + this.format.setValue(format); } public void setName(String name) { @@ -28,6 +28,8 @@ public String getName() { return name.getValue(); } + public StringProperty nameProperty() { return name; } + public void setFormat(String format) { this.format.setValue(format); } @@ -36,6 +38,8 @@ public String getFormat() { return format.getValue(); } + public StringProperty formatProperty() { return format; } + @Override public String toString() { return "[" + name.getValue() + "," + format.getValue() + "]"; } } diff --git a/src/main/java/org/jabref/gui/preferences/NameFormatterTabView.java b/src/main/java/org/jabref/gui/preferences/NameFormatterTabView.java index d6a390bd95b..950c610d24e 100644 --- a/src/main/java/org/jabref/gui/preferences/NameFormatterTabView.java +++ b/src/main/java/org/jabref/gui/preferences/NameFormatterTabView.java @@ -5,7 +5,6 @@ import javafx.scene.control.TableColumn; import javafx.scene.control.TableView; import javafx.scene.control.TextField; -import javafx.scene.control.cell.PropertyValueFactory; import javafx.scene.control.cell.TextFieldTableCell; import javafx.scene.input.KeyCode; @@ -50,8 +49,9 @@ public void initialize () { formatterNameColumn.setSortable(true); formatterNameColumn.setReorderable(false); - formatterNameColumn.setCellValueFactory(new PropertyValueFactory<>("name")); + formatterNameColumn.setCellValueFactory(cellData -> cellData.getValue().nameProperty()); formatterNameColumn.setCellFactory(TextFieldTableCell.forTableColumn()); + formatterNameColumn.setEditable(true); formatterNameColumn.setOnEditCommit( (TableColumn.CellEditEvent event) -> { event.getRowValue().setName(event.getNewValue()); @@ -59,8 +59,9 @@ public void initialize () { formatterStringColumn.setSortable(true); formatterStringColumn.setReorderable(false); - formatterStringColumn.setCellValueFactory(new PropertyValueFactory<>("format")); + formatterStringColumn.setCellValueFactory(cellData -> cellData.getValue().formatProperty()); formatterStringColumn.setCellFactory(TextFieldTableCell.forTableColumn()); + formatterStringColumn.setEditable(true); formatterStringColumn.setOnEditCommit( (TableColumn.CellEditEvent event) -> { event.getRowValue().setFormat(event.getNewValue()); @@ -68,7 +69,7 @@ public void initialize () { actionsColumn.setSortable(false); actionsColumn.setReorderable(false); - actionsColumn.setCellValueFactory(new PropertyValueFactory<>("name")); + actionsColumn.setCellValueFactory(cellData -> cellData.getValue().nameProperty()); new ValueTableCellFactory() .withGraphic(name -> IconTheme.JabRefIcons.DELETE_ENTRY.getGraphicNode()) .withTooltip(name -> Localization.lang("Remove") + " " + name)