diff --git a/GUI/coregui/Models/JobItem.cpp b/GUI/coregui/Models/JobItem.cpp
index 0ceee6f1a2cbab2125865964f45fa60faa9c1463..26b081705e44ad6f254f18bfa5c95fcd34552a8b 100644
--- a/GUI/coregui/Models/JobItem.cpp
+++ b/GUI/coregui/Models/JobItem.cpp
@@ -263,6 +263,25 @@ QString JobItem::presentationType()
     return getItemValue(P_PRESENTATION_TYPE).toString();
 }
 
+QString JobItem::defaultPresentationType()
+{
+    auto instrument = instrumentItem();
+    if (!instrument)
+        GUIHelpers::Error("Error in JobItem::defaultPresentationType: default presentation type "
+                          "cannot be determined");
+
+    auto instrument_type = instrument->modelType();
+    if (instrument_type == Constants::SpecularInstrumentType)
+        return Constants::SpecularDataPresentation;
+    else if (instrument_type == Constants::GISASInstrumentType
+             || instrument_type == Constants::OffSpecInstrumentType)
+        return Constants::IntensityDataPresentation;
+    else
+        GUIHelpers::Error("Error in JobItem::defaultPresentationType: unknown type of instrument "
+                          "attached to the job item.");
+    return QString();
+}
+
 //! Updates the name of file to store intensity data.
 
 void JobItem::updateIntensityDataFileName()
diff --git a/GUI/coregui/Models/JobItem.h b/GUI/coregui/Models/JobItem.h
index 927f40f0e5749b90e067f8ba405f0e3c185bcfe0..0620a0247035f5604f35b0bd25b77a560a1823e3 100644
--- a/GUI/coregui/Models/JobItem.h
+++ b/GUI/coregui/Models/JobItem.h
@@ -98,6 +98,7 @@ public:
     RealDataItem* realDataItem();
 
     QString presentationType();
+    QString defaultPresentationType();
 
 private:
     void updateIntensityDataFileName();
diff --git a/GUI/coregui/Models/JobModel.cpp b/GUI/coregui/Models/JobModel.cpp
index 40e1c75fb09b9208d700ff20d6892b39396313b0..8bf698d0f42728a5a3281a6304210fda4d1e3a4d 100644
--- a/GUI/coregui/Models/JobModel.cpp
+++ b/GUI/coregui/Models/JobModel.cpp
@@ -91,6 +91,8 @@ JobItem *JobModel::addJob(const MultiLayerItem *multiLayerItem,
     jobItem->getItem(JobItem::P_SAMPLE_NAME)->setValue(multiLayerItem->itemName());
     jobItem->getItem(JobItem::P_INSTRUMENT_NAME)->setValue(instrumentItem->itemName());
 
+    jobItem->setItemValue(JobItem::P_PRESENTATION_TYPE, jobItem->defaultPresentationType());
+
     ParameterTreeUtils::createParameterTree(jobItem);
 
     JobModelFunctions::setupJobItemOutput(jobItem);
diff --git a/GUI/coregui/Models/JobModelFunctions.cpp b/GUI/coregui/Models/JobModelFunctions.cpp
index 727a40ec8acc28afbeff4bb9fb41fdfd437f4fa3..e4ef5af0c7346fc1711eaf013c9088e223934014 100644
--- a/GUI/coregui/Models/JobModelFunctions.cpp
+++ b/GUI/coregui/Models/JobModelFunctions.cpp
@@ -62,7 +62,6 @@ void JobModelFunctions::setupJobItemOutput(JobItem* jobItem)
 
 }
 
-
 //! Setups JobItem for fit.
 
 void JobModelFunctions::setupJobItemForFit(JobItem *jobItem, const RealDataItem *realDataItem)
diff --git a/GUI/coregui/Models/item_constants.h b/GUI/coregui/Models/item_constants.h
index 6fae1f0802f3b29a0b9b47a8a0609f44c5e5d473..859854746027905ca158157843ce3aad03a9f384 100644
--- a/GUI/coregui/Models/item_constants.h
+++ b/GUI/coregui/Models/item_constants.h
@@ -263,6 +263,7 @@ const ModelType AVERAGE_LAYER_MATERIAL = "Average Layer Material";
 // --- Presentation types ----------------------------------------------------------
 
 const QString IntensityDataPresentation = "Color Map";
+const QString SpecularDataPresentation = "Reflectometry";
 const QString IntensityProjectionsPresentation = "Projections";
 const QString FitComparisonPresentation = "Fit Data";
 const QString MaskEditorPresentation = "Mask Editor";
diff --git a/GUI/coregui/Views/JobWidgets/JobOutputDataWidget.cpp b/GUI/coregui/Views/JobWidgets/JobOutputDataWidget.cpp
index 063275eb4035a091a270752937ca7a79737f8c68..e9639061d27f0f1f7c91673bcda9e5793b7fe29b 100644
--- a/GUI/coregui/Views/JobWidgets/JobOutputDataWidget.cpp
+++ b/GUI/coregui/Views/JobWidgets/JobOutputDataWidget.cpp
@@ -61,9 +61,9 @@ void JobOutputDataWidget::onActivityChanged(int activity)
         if (activity == JobViewFlags::FITTING_ACTIVITY) {
             widget->setPresentation(Constants::FitComparisonPresentation);
         } else if (activity == JobViewFlags::REAL_TIME_ACTIVITY) {
-            widget->setPresentation(Constants::IntensityDataPresentation);
+            widget->setDefaultPresentation();
         } else if (activity == JobViewFlags::JOB_VIEW_ACTIVITY) {
-            widget->setPresentation(Constants::IntensityDataPresentation);
+            widget->setDefaultPresentation();
         }
     }
 }
@@ -74,5 +74,5 @@ bool JobOutputDataWidget::isValidJobItem(JobItem *item)
         return false;
 
     // do not show running job items, the rest (canceled, fitted, etc) are shown
-    return item->isRunning() ? false: true;
+    return !item->isRunning();
 }
diff --git a/GUI/coregui/Views/JobWidgets/JobResultsPresenter.cpp b/GUI/coregui/Views/JobWidgets/JobResultsPresenter.cpp
index ddff3db8ae1def7644d8e8c13ce5e23464008c9d..662224c08d0d5dbd16e5e15e4f94690a42805e07 100644
--- a/GUI/coregui/Views/JobWidgets/JobResultsPresenter.cpp
+++ b/GUI/coregui/Views/JobWidgets/JobResultsPresenter.cpp
@@ -13,10 +13,11 @@
 // ************************************************************************** //
 
 #include "JobResultsPresenter.h"
-#include "IntensityDataProjectionsWidget.h"
 #include "FitComparisonWidget.h"
-#include "JobItem.h"
+#include "IntensityDataProjectionsWidget.h"
 #include "IntensityDataWidget.h"
+#include "JobItem.h"
+#include "SpecularDataWidget.h"
 
 namespace {
 // Will switch to the presentation which was used before for given item
@@ -32,6 +33,8 @@ JobResultsPresenter::JobResultsPresenter(QWidget* parent)
                    create_new<IntensityDataProjectionsWidget>);
 
     registerWidget(Constants::FitComparisonPresentation, create_new<FitComparisonWidget>);
+
+    registerWidget(Constants::SpecularDataPresentation, create_new<SpecularDataWidget>);
 }
 
 QString JobResultsPresenter::itemPresentation() const
@@ -48,6 +51,13 @@ void JobResultsPresenter::setPresentation(const QString& presentationType)
     currentItem()->setItemValue(JobItem::P_PRESENTATION_TYPE, presentationType);
 }
 
+void JobResultsPresenter::setDefaultPresentation()
+{
+    auto job_item = dynamic_cast<JobItem*>(currentItem());
+    Q_ASSERT(job_item);
+    setPresentation(job_item->defaultPresentationType());
+}
+
 //! Returns list of presentation types, available for given item. JobItem with fitting abilities
 //! is valid for IntensityDataWidget and FitComparisonWidget.
 
@@ -68,6 +78,7 @@ QStringList JobResultsPresenter::presentationList(SessionItem* item)
     Q_ASSERT(item->modelType() == Constants::JobItemType);
 
     return QStringList() << Constants::IntensityDataPresentation
+                         << Constants::SpecularDataPresentation
                          << Constants::IntensityProjectionsPresentation
                          << Constants::FitComparisonPresentation;
 }
diff --git a/GUI/coregui/Views/JobWidgets/JobResultsPresenter.h b/GUI/coregui/Views/JobWidgets/JobResultsPresenter.h
index 4a17aec49eea0a549812421a2b49eb22017daf5b..908dd5e33939ff9c030249467f7992bd34d8aa05 100644
--- a/GUI/coregui/Views/JobWidgets/JobResultsPresenter.h
+++ b/GUI/coregui/Views/JobWidgets/JobResultsPresenter.h
@@ -28,6 +28,7 @@ public:
     explicit JobResultsPresenter(QWidget* parent = 0);
 
     void setPresentation(const QString& presentationType) override;
+    void setDefaultPresentation();
 
 protected:
     QString itemPresentation() const override;
diff --git a/GUI/coregui/Views/SpecularDataWidgets/SpecularDataWidget.cpp b/GUI/coregui/Views/SpecularDataWidgets/SpecularDataWidget.cpp
index bf45393d6af01fddd9195077f860ffaf8cd84acb..9ea1ec02f6cd1b70dc624cf2eab6cc6911e8897a 100644
--- a/GUI/coregui/Views/SpecularDataWidgets/SpecularDataWidget.cpp
+++ b/GUI/coregui/Views/SpecularDataWidgets/SpecularDataWidget.cpp
@@ -13,11 +13,12 @@
 // ************************************************************************** //
 
 #include "SpecularDataWidget.h"
-#include "SpecularDataItem.h"
-#include "SpecularDataCanvas.h"
-#include "JobItem.h"
+#include "GUIHelpers.h"
 #include "IntensityDataItemUtils.h"
 #include "IntensityDataPropertyWidget.h"
+#include "JobItem.h"
+#include "SpecularDataItem.h"
+#include "SpecularDataCanvas.h"
 #include <QBoxLayout>
 #include <QMenu>
 
@@ -69,12 +70,10 @@ void SpecularDataWidget::onContextMenuRequest(const QPoint& point)
 
 SpecularDataItem* SpecularDataWidget::specularDataItem()
 {
-    // temporarily commented out
-    // return IntensityDataItemUtils::intensityDataItem(currentItem());
+    auto parent = currentItem();
+    if (!parent || parent->modelType() != Constants::JobItemType)
+        throw GUIHelpers::Error(
+            "Error in SpecularDataWidget::specularDataItem: parent item is of unexpected type");
 
-    // temporary solution, should be removed after starting to use
-    // JobItem
-    SpecularDataItem* result = dynamic_cast<SpecularDataItem*>(currentItem());
-    Q_ASSERT(result);
-    return result;
+    return &parent->item<SpecularDataItem>(JobItem::T_OUTPUT);
 }
diff --git a/GUI/coregui/Views/TestView.cpp b/GUI/coregui/Views/TestView.cpp
index 69f62308b9d239b284243ae9b67dc24e6f93387c..380ef195d38843589662a40f8378bd4814f8a951 100644
--- a/GUI/coregui/Views/TestView.cpp
+++ b/GUI/coregui/Views/TestView.cpp
@@ -15,6 +15,7 @@
 #include "TestView.h"
 #include "AccordionWidget.h"
 #include "JobModel.h"
+#include "JobItem.h"
 #include "MaskEditor.h"
 #include "MaterialEditor.h"
 #include "MinimizerItem.h"
@@ -184,13 +185,15 @@ void TestView::test_ba3d()
 void TestView::test_specular_data_widget()
 {
     SessionModel* tempModel = new SessionModel("Test", this);
-    auto data = fillTestItem(tempModel->insertNewItem(Constants::SpecularDataType));
+    auto job_item = dynamic_cast<JobItem*>(tempModel->insertNewItem(Constants::JobItemType));
+    fillTestItem(tempModel->insertNewItem(Constants::SpecularDataType,
+                                          tempModel->indexOfItem(job_item), -1, JobItem::T_OUTPUT));
 
     QVBoxLayout *layout = new QVBoxLayout;
     layout->setMargin(0);
     layout->setSpacing(0);
     auto widget = new SpecularDataWidget(this);
-    widget->setItem(data);
+    widget->setItem(job_item);
     layout->addWidget(widget);
     setLayout(layout);
 }