From 1290a40dff502909a38c7c2b6b8df4540fd94c92 Mon Sep 17 00:00:00 2001
From: luis-valdez <lvaldez@nearsoft.com>
Date: Wed, 2 Dec 2020 14:30:09 -0700
Subject: [PATCH 1/7] Add needsSharedDatabase to validate if DatabaseLocation
 is shared

---
 src/main/java/org/jabref/gui/actions/ActionHelper.java    | 8 ++++++++
 .../jabref/gui/shared/PullChangesFromSharedAction.java    | 2 +-
 2 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/src/main/java/org/jabref/gui/actions/ActionHelper.java b/src/main/java/org/jabref/gui/actions/ActionHelper.java
index acda7c7c1df..08d09f270f2 100644
--- a/src/main/java/org/jabref/gui/actions/ActionHelper.java
+++ b/src/main/java/org/jabref/gui/actions/ActionHelper.java
@@ -12,6 +12,7 @@
 import javafx.scene.control.TabPane;
 
 import org.jabref.gui.StateManager;
+import org.jabref.logic.shared.DatabaseLocation;
 import org.jabref.model.entry.BibEntry;
 import org.jabref.model.entry.LinkedFile;
 import org.jabref.model.entry.field.Field;
@@ -26,6 +27,13 @@ public static BooleanExpression needsDatabase(StateManager stateManager) {
         return stateManager.activeDatabaseProperty().isPresent();
     }
 
+    public static BooleanExpression needsSharedDatabase(StateManager stateManager){
+        var binding = Bindings.createBooleanBinding(() ->
+                        stateManager.activeDatabaseProperty().getValue().filter(context -> context.getLocation() == DatabaseLocation.SHARED).isPresent(),
+                stateManager.activeDatabaseProperty());
+        return BooleanExpression.booleanExpression(binding);
+    }
+
     public static BooleanExpression needsEntriesSelected(StateManager stateManager) {
         return Bindings.isNotEmpty(stateManager.getSelectedEntries());
     }
diff --git a/src/main/java/org/jabref/gui/shared/PullChangesFromSharedAction.java b/src/main/java/org/jabref/gui/shared/PullChangesFromSharedAction.java
index c3c75e18e2a..d19090cf367 100644
--- a/src/main/java/org/jabref/gui/shared/PullChangesFromSharedAction.java
+++ b/src/main/java/org/jabref/gui/shared/PullChangesFromSharedAction.java
@@ -12,7 +12,7 @@ public class PullChangesFromSharedAction extends SimpleCommand {
     public PullChangesFromSharedAction(StateManager stateManager) {
         this.stateManager = stateManager;
 
-        this.executable.bind(ActionHelper.needsDatabase(stateManager));
+        this.executable.bind(ActionHelper.needsDatabase(stateManager).and(ActionHelper.needsSharedDatabase(stateManager)));
     }
 
     public void execute() {

From 139115ba788eddf36a36fed1064be8b4337dc166 Mon Sep 17 00:00:00 2001
From: luis-valdez <lvaldez@nearsoft.com>
Date: Wed, 2 Dec 2020 17:05:31 -0700
Subject: [PATCH 2/7] Update CHANGELOG.md with fix for
 pullingChangesFromSharedDb exception

---
 CHANGELOG.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index bfcd7cb3ce1..81d5e29e509 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -11,7 +11,7 @@ Note that this project **does not** adhere to [Semantic Versioning](http://semve
 ## [Unreleased]
 
 ### Added
-
+- We added a Boolean Expression to validate if the current database location is shared, preventing an exception when Pulling Changes From Shared Database. [#6959](https://github.com/JabRef/jabref/issues/6959)
 - We added a query parser and mapping layer to enable conversion of queries formulated in simplified lucene syntax by the user into api queries. [#6799](https://github.com/JabRef/jabref/pull/6799)
 - We added some basic functionality to customise the look of JabRef by importing a css theme file. [#5790](https://github.com/JabRef/jabref/issues/5790)
 - We added connection check function in network preference setting [#6560](https://github.com/JabRef/jabref/issues/6560)

From b6f88e045b533bcb81159656f0afa4bf952d3851 Mon Sep 17 00:00:00 2001
From: luis-valdez <lvaldez@nearsoft.com>
Date: Thu, 3 Dec 2020 12:10:12 -0700
Subject: [PATCH 3/7] Refactor needsSharedDatabase to use EasyBind.map

---
 src/main/java/org/jabref/gui/actions/ActionHelper.java | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/main/java/org/jabref/gui/actions/ActionHelper.java b/src/main/java/org/jabref/gui/actions/ActionHelper.java
index 08d09f270f2..7bbccc731b9 100644
--- a/src/main/java/org/jabref/gui/actions/ActionHelper.java
+++ b/src/main/java/org/jabref/gui/actions/ActionHelper.java
@@ -5,6 +5,7 @@
 import java.util.List;
 import java.util.Optional;
 
+import com.tobiasdiez.easybind.EasyBinding;
 import javafx.beans.binding.Binding;
 import javafx.beans.binding.Bindings;
 import javafx.beans.binding.BooleanExpression;
@@ -27,10 +28,9 @@ public static BooleanExpression needsDatabase(StateManager stateManager) {
         return stateManager.activeDatabaseProperty().isPresent();
     }
 
-    public static BooleanExpression needsSharedDatabase(StateManager stateManager){
-        var binding = Bindings.createBooleanBinding(() ->
-                        stateManager.activeDatabaseProperty().getValue().filter(context -> context.getLocation() == DatabaseLocation.SHARED).isPresent(),
-                stateManager.activeDatabaseProperty());
+    public static BooleanExpression needsSharedDatabase(StateManager stateManager) {
+        EasyBinding<Boolean> binding = EasyBind.map(stateManager.activeDatabaseProperty(), context ->
+                context.filter( c -> c.getLocation() == DatabaseLocation.SHARED).isPresent());
         return BooleanExpression.booleanExpression(binding);
     }
 

From 394762ee1c7cb47d026d5db6dde8b966ce31bd6c Mon Sep 17 00:00:00 2001
From: luis-valdez <lvaldez@nearsoft.com>
Date: Thu, 3 Dec 2020 12:13:04 -0700
Subject: [PATCH 4/7] Change Boolean Expression for validation to simplify

---
 CHANGELOG.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 81d5e29e509..8eda1305e96 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -11,7 +11,7 @@ Note that this project **does not** adhere to [Semantic Versioning](http://semve
 ## [Unreleased]
 
 ### Added
-- We added a Boolean Expression to validate if the current database location is shared, preventing an exception when Pulling Changes From Shared Database. [#6959](https://github.com/JabRef/jabref/issues/6959)
+- We added a validation to check if the current database location is shared, preventing an exception when Pulling Changes From Shared Database. [#6959](https://github.com/JabRef/jabref/issues/6959)
 - We added a query parser and mapping layer to enable conversion of queries formulated in simplified lucene syntax by the user into api queries. [#6799](https://github.com/JabRef/jabref/pull/6799)
 - We added some basic functionality to customise the look of JabRef by importing a css theme file. [#5790](https://github.com/JabRef/jabref/issues/5790)
 - We added connection check function in network preference setting [#6560](https://github.com/JabRef/jabref/issues/6560)

From 452ce01df1dfc05b3f597c14297a1dcbc3f1b8ab Mon Sep 17 00:00:00 2001
From: luis-valdez <lvaldez@nearsoft.com>
Date: Thu, 3 Dec 2020 13:01:04 -0700
Subject: [PATCH 5/7] Remove whitespace to meet checkstyle criteria

---
 src/main/java/org/jabref/gui/actions/ActionHelper.java | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/src/main/java/org/jabref/gui/actions/ActionHelper.java b/src/main/java/org/jabref/gui/actions/ActionHelper.java
index 7bbccc731b9..156db0a8990 100644
--- a/src/main/java/org/jabref/gui/actions/ActionHelper.java
+++ b/src/main/java/org/jabref/gui/actions/ActionHelper.java
@@ -19,7 +19,6 @@
 import org.jabref.model.entry.field.Field;
 import org.jabref.model.util.FileHelper;
 import org.jabref.preferences.PreferencesService;
-
 import com.tobiasdiez.easybind.EasyBind;
 
 public class ActionHelper {
@@ -29,8 +28,7 @@ public static BooleanExpression needsDatabase(StateManager stateManager) {
     }
 
     public static BooleanExpression needsSharedDatabase(StateManager stateManager) {
-        EasyBinding<Boolean> binding = EasyBind.map(stateManager.activeDatabaseProperty(), context ->
-                context.filter( c -> c.getLocation() == DatabaseLocation.SHARED).isPresent());
+        EasyBinding<Boolean> binding = EasyBind.map(stateManager.activeDatabaseProperty(), context -> context.filter(c -> c.getLocation() == DatabaseLocation.SHARED).isPresent());
         return BooleanExpression.booleanExpression(binding);
     }
 

From 5dfa820e29ed62e949beeada7532b23f0508f43b Mon Sep 17 00:00:00 2001
From: luis-valdez <lvaldez@nearsoft.com>
Date: Thu, 3 Dec 2020 14:07:30 -0700
Subject: [PATCH 6/7] Refactor import order to meet checkstyle criteria

---
 src/main/java/org/jabref/gui/actions/ActionHelper.java | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/main/java/org/jabref/gui/actions/ActionHelper.java b/src/main/java/org/jabref/gui/actions/ActionHelper.java
index 156db0a8990..4225ca8f2bf 100644
--- a/src/main/java/org/jabref/gui/actions/ActionHelper.java
+++ b/src/main/java/org/jabref/gui/actions/ActionHelper.java
@@ -5,7 +5,6 @@
 import java.util.List;
 import java.util.Optional;
 
-import com.tobiasdiez.easybind.EasyBinding;
 import javafx.beans.binding.Binding;
 import javafx.beans.binding.Bindings;
 import javafx.beans.binding.BooleanExpression;
@@ -19,7 +18,9 @@
 import org.jabref.model.entry.field.Field;
 import org.jabref.model.util.FileHelper;
 import org.jabref.preferences.PreferencesService;
+
 import com.tobiasdiez.easybind.EasyBind;
+import com.tobiasdiez.easybind.EasyBinding;
 
 public class ActionHelper {
 

From bde9d557c75ecb85bc2df739a36b1edf02792bc4 Mon Sep 17 00:00:00 2001
From: luis-valdez <lvaldez@nearsoft.com>
Date: Thu, 3 Dec 2020 14:14:54 -0700
Subject: [PATCH 7/7] Add blankline after heading to meet checkstyle criteria

---
 CHANGELOG.md | 1 +
 1 file changed, 1 insertion(+)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 8eda1305e96..08cfc225f5c 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -11,6 +11,7 @@ Note that this project **does not** adhere to [Semantic Versioning](http://semve
 ## [Unreleased]
 
 ### Added
+
 - We added a validation to check if the current database location is shared, preventing an exception when Pulling Changes From Shared Database. [#6959](https://github.com/JabRef/jabref/issues/6959)
 - We added a query parser and mapping layer to enable conversion of queries formulated in simplified lucene syntax by the user into api queries. [#6799](https://github.com/JabRef/jabref/pull/6799)
 - We added some basic functionality to customise the look of JabRef by importing a css theme file. [#5790](https://github.com/JabRef/jabref/issues/5790)