From 454c53b061c805e76dd09bb3415d0f9055b2392d Mon Sep 17 00:00:00 2001 From: Robert Date: Sun, 26 Nov 2017 17:02:40 +0100 Subject: [PATCH 01/47] The grid pane on the right side is disabled if there are no annotations in the linked file. Confusion because the gridpane is initially disabled even if there are annotations. After clicking on the file in the Combobox it works fine. --- .../entryeditor/fileannotationtab/FileAnnotationTab.fxml | 2 +- .../fileannotationtab/FileAnnotationTabController.java | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/jabref/gui/entryeditor/fileannotationtab/FileAnnotationTab.fxml b/src/main/java/org/jabref/gui/entryeditor/fileannotationtab/FileAnnotationTab.fxml index d0891792fc4..b3d7a1ede3e 100644 --- a/src/main/java/org/jabref/gui/entryeditor/fileannotationtab/FileAnnotationTab.fxml +++ b/src/main/java/org/jabref/gui/entryeditor/fileannotationtab/FileAnnotationTab.fxml @@ -37,7 +37,7 @@ - + diff --git a/src/main/java/org/jabref/gui/entryeditor/fileannotationtab/FileAnnotationTabController.java b/src/main/java/org/jabref/gui/entryeditor/fileannotationtab/FileAnnotationTabController.java index 6eb90070e11..01def5213ee 100644 --- a/src/main/java/org/jabref/gui/entryeditor/fileannotationtab/FileAnnotationTabController.java +++ b/src/main/java/org/jabref/gui/entryeditor/fileannotationtab/FileAnnotationTabController.java @@ -14,6 +14,7 @@ import javafx.scene.control.ListView; import javafx.scene.control.SelectionMode; import javafx.scene.control.TextArea; +import javafx.scene.layout.GridPane; import javafx.scene.layout.HBox; import javafx.scene.layout.VBox; import javafx.scene.text.Text; @@ -43,6 +44,8 @@ public class FileAnnotationTabController extends AbstractController viewModel.notifyNewSelectedFile(newValue)); @@ -63,6 +66,7 @@ public void initialize() { // Set-up annotation list annotationList.getSelectionModel().setSelectionMode(SelectionMode.SINGLE); annotationList.getSelectionModel().selectedItemProperty().addListener((observable, oldValue, newValue) -> viewModel.notifyNewSelectedAnnotation(newValue)); + annotationList.getSelectionModel().selectedItemProperty().addListener((observable, oldValue, newValue) -> grid.setDisable(newValue == null)); ViewModelListCellFactory cellFactory = new ViewModelListCellFactory() .withTooltip(FileAnnotationViewModel::getDescription) .withGraphic(annotation -> { @@ -95,6 +99,8 @@ public void initialize() { date.textProperty().bind(EasyBind.select(viewModel.currentAnnotationProperty()).selectObject(FileAnnotationViewModel::dateProperty)); content.textProperty().bind(EasyBind.select(viewModel.currentAnnotationProperty()).selectObject(FileAnnotationViewModel::contentProperty)); marking.textProperty().bind(EasyBind.select(viewModel.currentAnnotationProperty()).selectObject(FileAnnotationViewModel::markingProperty)); + grid.setDisable(true); + //grid.disableProperty().bind(Bindings.and(viewModel.isAnnotationsEmpty(), false)); } public void copy(ActionEvent event) { From f19e062fa0d48cebed26166b32ae3f5a080f684a Mon Sep 17 00:00:00 2001 From: Tarix Date: Sun, 26 Nov 2017 17:05:18 +0100 Subject: [PATCH 02/47] add boolean props --- .../fileannotationtab/FileAnnotationTabViewModel.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/main/java/org/jabref/gui/entryeditor/fileannotationtab/FileAnnotationTabViewModel.java b/src/main/java/org/jabref/gui/entryeditor/fileannotationtab/FileAnnotationTabViewModel.java index 5e7f412fa08..236df1fd0fb 100644 --- a/src/main/java/org/jabref/gui/entryeditor/fileannotationtab/FileAnnotationTabViewModel.java +++ b/src/main/java/org/jabref/gui/entryeditor/fileannotationtab/FileAnnotationTabViewModel.java @@ -35,6 +35,7 @@ public class FileAnnotationTabViewModel extends AbstractViewModel { private final ListProperty annotations = new SimpleListProperty<>(FXCollections.observableArrayList()); private final ListProperty files = new SimpleListProperty<>(FXCollections.observableArrayList()); private final ObjectProperty currentAnnotation = new SimpleObjectProperty<>(); + private final ObjectProperty annotaionEmpty = new SimpleObjectProperty(null); private final FileAnnotationCache cache; private final BibEntry entry; @@ -59,6 +60,10 @@ public ObjectProperty currentAnnotationProperty() { return currentAnnotation; } + public boolean isAnnotationsEmpty() { + return annotations.isEmpty(); + } + public ListProperty annotationsProperty() { return annotations; } From 686f72b4fccf69c689032f1f6ced4809248d89a4 Mon Sep 17 00:00:00 2001 From: Tarix Date: Sun, 26 Nov 2017 17:12:37 +0100 Subject: [PATCH 03/47] add isEmpty function with object-boolean --- .../fileannotationtab/FileAnnotationTabController.java | 6 +++--- .../fileannotationtab/FileAnnotationTabViewModel.java | 9 ++++++--- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/main/java/org/jabref/gui/entryeditor/fileannotationtab/FileAnnotationTabController.java b/src/main/java/org/jabref/gui/entryeditor/fileannotationtab/FileAnnotationTabController.java index 01def5213ee..17ef8600e16 100644 --- a/src/main/java/org/jabref/gui/entryeditor/fileannotationtab/FileAnnotationTabController.java +++ b/src/main/java/org/jabref/gui/entryeditor/fileannotationtab/FileAnnotationTabController.java @@ -57,7 +57,7 @@ public class FileAnnotationTabController extends AbstractController viewModel.notifyNewSelectedFile(newValue)); @@ -66,7 +66,7 @@ public void initialize() { // Set-up annotation list annotationList.getSelectionModel().setSelectionMode(SelectionMode.SINGLE); annotationList.getSelectionModel().selectedItemProperty().addListener((observable, oldValue, newValue) -> viewModel.notifyNewSelectedAnnotation(newValue)); - annotationList.getSelectionModel().selectedItemProperty().addListener((observable, oldValue, newValue) -> grid.setDisable(newValue == null)); + //annotationList.getSelectionModel().selectedItemProperty().addListener((observable, oldValue, newValue) -> grid.setDisable(newValue == null)); ViewModelListCellFactory cellFactory = new ViewModelListCellFactory() .withTooltip(FileAnnotationViewModel::getDescription) .withGraphic(annotation -> { @@ -100,7 +100,7 @@ public void initialize() { content.textProperty().bind(EasyBind.select(viewModel.currentAnnotationProperty()).selectObject(FileAnnotationViewModel::contentProperty)); marking.textProperty().bind(EasyBind.select(viewModel.currentAnnotationProperty()).selectObject(FileAnnotationViewModel::markingProperty)); grid.setDisable(true); - //grid.disableProperty().bind(Bindings.and(viewModel.isAnnotationsEmpty(), false)); + grid.disableProperty().bind(viewModel.isAnnotationsEmpty()); } public void copy(ActionEvent event) { diff --git a/src/main/java/org/jabref/gui/entryeditor/fileannotationtab/FileAnnotationTabViewModel.java b/src/main/java/org/jabref/gui/entryeditor/fileannotationtab/FileAnnotationTabViewModel.java index 236df1fd0fb..91259d467e7 100644 --- a/src/main/java/org/jabref/gui/entryeditor/fileannotationtab/FileAnnotationTabViewModel.java +++ b/src/main/java/org/jabref/gui/entryeditor/fileannotationtab/FileAnnotationTabViewModel.java @@ -60,8 +60,8 @@ public ObjectProperty currentAnnotationProperty() { return currentAnnotation; } - public boolean isAnnotationsEmpty() { - return annotations.isEmpty(); + public ObjectProperty isAnnotationsEmpty() { + return annotaionEmpty; } public ListProperty annotationsProperty() { @@ -89,7 +89,10 @@ public void notifyNewSelectedFile(Path newFile) { .map(FileAnnotationViewModel::new) .collect(Collectors.toList()); annotations.setAll(newAnnotations); - + if (annotations.isEmpty()) + annotaionEmpty.setValue(true); + else + annotaionEmpty.setValue(false); try { fileMonitor.addListenerForFile(currentFile, fileListener); } catch (IOException e) { From 94754425577c827e6ec022f71bdf0dd4180e4cc7 Mon Sep 17 00:00:00 2001 From: Tarix Date: Sun, 26 Nov 2017 17:21:46 +0100 Subject: [PATCH 04/47] remove comments --- .../fileannotationtab/FileAnnotationTabController.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/main/java/org/jabref/gui/entryeditor/fileannotationtab/FileAnnotationTabController.java b/src/main/java/org/jabref/gui/entryeditor/fileannotationtab/FileAnnotationTabController.java index 17ef8600e16..9df54542897 100644 --- a/src/main/java/org/jabref/gui/entryeditor/fileannotationtab/FileAnnotationTabController.java +++ b/src/main/java/org/jabref/gui/entryeditor/fileannotationtab/FileAnnotationTabController.java @@ -66,7 +66,6 @@ public void initialize() { // Set-up annotation list annotationList.getSelectionModel().setSelectionMode(SelectionMode.SINGLE); annotationList.getSelectionModel().selectedItemProperty().addListener((observable, oldValue, newValue) -> viewModel.notifyNewSelectedAnnotation(newValue)); - //annotationList.getSelectionModel().selectedItemProperty().addListener((observable, oldValue, newValue) -> grid.setDisable(newValue == null)); ViewModelListCellFactory cellFactory = new ViewModelListCellFactory() .withTooltip(FileAnnotationViewModel::getDescription) .withGraphic(annotation -> { @@ -99,7 +98,6 @@ public void initialize() { date.textProperty().bind(EasyBind.select(viewModel.currentAnnotationProperty()).selectObject(FileAnnotationViewModel::dateProperty)); content.textProperty().bind(EasyBind.select(viewModel.currentAnnotationProperty()).selectObject(FileAnnotationViewModel::contentProperty)); marking.textProperty().bind(EasyBind.select(viewModel.currentAnnotationProperty()).selectObject(FileAnnotationViewModel::markingProperty)); - grid.setDisable(true); grid.disableProperty().bind(viewModel.isAnnotationsEmpty()); } From 0bcfff8696590c4f2326353a5aebf46b19d75529 Mon Sep 17 00:00:00 2001 From: Robert Date: Mon, 27 Nov 2017 12:53:06 +0100 Subject: [PATCH 05/47] Added curly braces for if else (if (annotations.isEmpty())) --- .../fileannotationtab/FileAnnotationTabViewModel.java | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/main/java/org/jabref/gui/entryeditor/fileannotationtab/FileAnnotationTabViewModel.java b/src/main/java/org/jabref/gui/entryeditor/fileannotationtab/FileAnnotationTabViewModel.java index 91259d467e7..c77ba4286eb 100644 --- a/src/main/java/org/jabref/gui/entryeditor/fileannotationtab/FileAnnotationTabViewModel.java +++ b/src/main/java/org/jabref/gui/entryeditor/fileannotationtab/FileAnnotationTabViewModel.java @@ -35,14 +35,14 @@ public class FileAnnotationTabViewModel extends AbstractViewModel { private final ListProperty annotations = new SimpleListProperty<>(FXCollections.observableArrayList()); private final ListProperty files = new SimpleListProperty<>(FXCollections.observableArrayList()); private final ObjectProperty currentAnnotation = new SimpleObjectProperty<>(); - private final ObjectProperty annotaionEmpty = new SimpleObjectProperty(null); + private final ObjectProperty annotaionEmpty = new SimpleObjectProperty<>(null); private final FileAnnotationCache cache; private final BibEntry entry; private Map> fileAnnotations; private Path currentFile; - private FileUpdateMonitor fileMonitor; - private FileUpdateListener fileListener = this::reloadAnnotations; + private final FileUpdateMonitor fileMonitor; + private final FileUpdateListener fileListener = this::reloadAnnotations; public FileAnnotationTabViewModel(FileAnnotationCache cache, BibEntry entry, FileUpdateMonitor fileMonitor) { this.cache = cache; @@ -89,10 +89,11 @@ public void notifyNewSelectedFile(Path newFile) { .map(FileAnnotationViewModel::new) .collect(Collectors.toList()); annotations.setAll(newAnnotations); - if (annotations.isEmpty()) + if (annotations.isEmpty()) { annotaionEmpty.setValue(true); - else + } else { annotaionEmpty.setValue(false); + } try { fileMonitor.addListenerForFile(currentFile, fileListener); } catch (IOException e) { From 1dec710df0d8fddd8054f3a3ab22042d0da3c9a7 Mon Sep 17 00:00:00 2001 From: Robert Date: Mon, 27 Nov 2017 12:55:46 +0100 Subject: [PATCH 06/47] Fixed spelling mistake at 'annotationEmpty' --- .../fileannotationtab/FileAnnotationTabViewModel.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/jabref/gui/entryeditor/fileannotationtab/FileAnnotationTabViewModel.java b/src/main/java/org/jabref/gui/entryeditor/fileannotationtab/FileAnnotationTabViewModel.java index c77ba4286eb..ad87e98be47 100644 --- a/src/main/java/org/jabref/gui/entryeditor/fileannotationtab/FileAnnotationTabViewModel.java +++ b/src/main/java/org/jabref/gui/entryeditor/fileannotationtab/FileAnnotationTabViewModel.java @@ -35,7 +35,7 @@ public class FileAnnotationTabViewModel extends AbstractViewModel { private final ListProperty annotations = new SimpleListProperty<>(FXCollections.observableArrayList()); private final ListProperty files = new SimpleListProperty<>(FXCollections.observableArrayList()); private final ObjectProperty currentAnnotation = new SimpleObjectProperty<>(); - private final ObjectProperty annotaionEmpty = new SimpleObjectProperty<>(null); + private final ObjectProperty annotationEmpty = new SimpleObjectProperty<>(null); private final FileAnnotationCache cache; private final BibEntry entry; @@ -61,7 +61,7 @@ public ObjectProperty currentAnnotationProperty() { } public ObjectProperty isAnnotationsEmpty() { - return annotaionEmpty; + return annotationEmpty; } public ListProperty annotationsProperty() { @@ -90,9 +90,9 @@ public void notifyNewSelectedFile(Path newFile) { .collect(Collectors.toList()); annotations.setAll(newAnnotations); if (annotations.isEmpty()) { - annotaionEmpty.setValue(true); + annotationEmpty.setValue(true); } else { - annotaionEmpty.setValue(false); + annotationEmpty.setValue(false); } try { fileMonitor.addListenerForFile(currentFile, fileListener); From fb02d7ee8e1dcf5707ab184fcde9b62e637fa7a4 Mon Sep 17 00:00:00 2001 From: Robert Date: Sat, 2 Dec 2017 17:10:52 +0100 Subject: [PATCH 07/47] Sample FXML file for an annotation list entry --- .../fileannotationtab/ListItem.fxml | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 src/main/java/org/jabref/gui/entryeditor/fileannotationtab/ListItem.fxml diff --git a/src/main/java/org/jabref/gui/entryeditor/fileannotationtab/ListItem.fxml b/src/main/java/org/jabref/gui/entryeditor/fileannotationtab/ListItem.fxml new file mode 100644 index 00000000000..d290fe2e8b3 --- /dev/null +++ b/src/main/java/org/jabref/gui/entryeditor/fileannotationtab/ListItem.fxml @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From b438c8530206ab770ff00f7cd4018f9e03988052 Mon Sep 17 00:00:00 2001 From: Tarix Date: Sat, 2 Dec 2017 20:01:53 +0100 Subject: [PATCH 08/47] addd table view and change vie for right panel --- .../fileannotationtab/FileAnnotationTab.fxml | 63 +++++----------- .../FileAnnotationTabController.java | 71 ++++++++++++++++--- .../FileAnnotationViewModel.java | 2 +- .../fileannotationtab/ListItem.fxml | 6 +- 4 files changed, 86 insertions(+), 56 deletions(-) diff --git a/src/main/java/org/jabref/gui/entryeditor/fileannotationtab/FileAnnotationTab.fxml b/src/main/java/org/jabref/gui/entryeditor/fileannotationtab/FileAnnotationTab.fxml index b3d7a1ede3e..0e00fd7a62e 100644 --- a/src/main/java/org/jabref/gui/entryeditor/fileannotationtab/FileAnnotationTab.fxml +++ b/src/main/java/org/jabref/gui/entryeditor/fileannotationtab/FileAnnotationTab.fxml @@ -1,82 +1,57 @@ - - - - - + + - + -
- +
- + - - - + + + - - - - - + + + + + -