diff --git a/scripts/Engineering/gui/engineering_diffraction/engineering_diffraction.py b/scripts/Engineering/gui/engineering_diffraction/engineering_diffraction.py
index a7601f3f2e9e1193e79457d54bbaa3b8ef29cd42..bfb03af5406423359bacc1aed41705c377a401fe 100644
--- a/scripts/Engineering/gui/engineering_diffraction/engineering_diffraction.py
+++ b/scripts/Engineering/gui/engineering_diffraction/engineering_diffraction.py
@@ -41,6 +41,9 @@ class EngineeringDiffractionGui(QtWidgets.QMainWindow, Ui_main_window):
         self.setup_calibration()
         self.setup_focus()
 
+        # Setup notifiers
+        self.setup_calibration_notifier()
+
     def setup_calibration(self):
         cal_model = CalibrationModel()
         cal_view = CalibrationView(parent=self.tabs)
@@ -57,6 +60,9 @@ class EngineeringDiffractionGui(QtWidgets.QMainWindow, Ui_main_window):
         self.set_on_rb_num_changed(self.focus_presenter.set_rb_number)
         self.tabs.addTab(focus_view, "Focus")
 
+    def setup_calibration_notifier(self):
+        self.calibration_presenter.calibration_notifier.add_subscriber(self.focus_presenter.calibration_observer)
+
     def set_on_help_clicked(self, slot):
         self.pushButton_help.clicked.connect(slot)
 
diff --git a/scripts/Engineering/gui/engineering_diffraction/tabs/calibration/presenter.py b/scripts/Engineering/gui/engineering_diffraction/tabs/calibration/presenter.py
index a646505f5cbf9d18b96fe7fff6cd859aca19a66c..79c5f9e50085d10d40c3a9bb444ed31d397b6c0f 100644
--- a/scripts/Engineering/gui/engineering_diffraction/tabs/calibration/presenter.py
+++ b/scripts/Engineering/gui/engineering_diffraction/tabs/calibration/presenter.py
@@ -9,6 +9,7 @@ from __future__ import (absolute_import, division, print_function)
 
 from mantidqt.utils.asynchronous import AsyncTask
 from mantid.simpleapi import logger
+from mantidqt.utils.observer_pattern import Observable
 
 
 class CalibrationPresenter(object):
@@ -16,6 +17,7 @@ class CalibrationPresenter(object):
         self.model = model
         self.view = view
         self.worker = None
+        self.calibration_notifier = self.CalibrationNotifier(self)
 
         self.current_calibration = {"vanadium_path": None, "ceria_path": None}
         self.pending_calibration = {"vanadium_path": None, "ceria_path": None}
@@ -62,6 +64,7 @@ class CalibrationPresenter(object):
     def set_current_calibration(self, success_info):
         logger.information("Thread executed in " + str(success_info.elapsed_time) + " seconds.")
         self.current_calibration = self.pending_calibration
+        self.calibration_notifier.notify_subscribers(self.current_calibration)
         self.pending_calibration = {"vanadium_path": None, "ceria_path": None}
         self.enable_calibrate_buttons()
 
@@ -95,3 +98,14 @@ class CalibrationPresenter(object):
     def _on_error(self, failure_info):
         logger.warning(str(failure_info))
         self.enable_calibrate_buttons()
+
+    # -----------------------
+    # Observers / Observables
+    # -----------------------
+    class CalibrationNotifier(Observable):
+        def __init__(self, outer):
+            Observable.__init__(self)
+            self.outer = outer
+
+        def notify_subscribers(self, *args, **kwargs):
+            Observable.notify_subscribers(self, *args)
diff --git a/scripts/Engineering/gui/engineering_diffraction/tabs/focus/presenter.py b/scripts/Engineering/gui/engineering_diffraction/tabs/focus/presenter.py
index 8492ab6632533b43ef3992d8e9425ffa27924c95..59989643cb0a0ba398938ad3203787a2f479c266 100644
--- a/scripts/Engineering/gui/engineering_diffraction/tabs/focus/presenter.py
+++ b/scripts/Engineering/gui/engineering_diffraction/tabs/focus/presenter.py
@@ -10,6 +10,7 @@ from __future__ import (absolute_import, division, print_function)
 from qtpy.QtWidgets import QMessageBox
 
 from mantidqt.utils.asynchronous import AsyncTask
+from mantidqt.utils.observer_pattern import Observer
 from mantid.simpleapi import logger
 
 
@@ -18,12 +19,13 @@ class FocusPresenter(object):
         self.model = model
         self.view = view
         self.worker = None
+        self.calibration_observer = self.CalibrationObserver(self)
 
         # Connect view signals to local methods.
         self.view.set_on_focus_clicked(self.on_focus_clicked)
 
         # Variables from other GUI tabs.
-        self.current_calibration = {"vanadium_path": "307521", "ceria_path": None}  # TODO: USE OBSERVER PATTERN
+        self.current_calibration = {"vanadium_path": None, "ceria_path": None}
         self.instrument = "ENGINX"
         self.rb_num = None
 
@@ -90,3 +92,17 @@ class FocusPresenter(object):
         if self.view.get_south_bank():
             banks.append("South")
         return banks
+
+    def update_calibration(self, calibration):
+        self.current_calibration = calibration
+
+    # -----------------------
+    # Observers / Observables
+    # -----------------------
+    class CalibrationObserver(Observer):
+        def __init__(self, outer):
+            Observer.__init__(self)
+            self.outer = outer
+
+        def update(self, observable, calibration):
+            self.outer.update_calibration(calibration)