diff --git a/GUI/coregui/Views/Components/JobQueueWidgets/AdvModelTuningWidget.cpp b/GUI/coregui/Views/Components/JobQueueWidgets/AdvModelTuningWidget.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..0d30dd03f45f2c8220f33395bac2611cb04cd4cf
--- /dev/null
+++ b/GUI/coregui/Views/Components/JobQueueWidgets/AdvModelTuningWidget.cpp
@@ -0,0 +1,27 @@
+#include "AdvModelTuningWidget.h"
+#include "JobItem.h"
+#include <QLabel>
+#include <QVBoxLayout>
+
+AdvModelTuningWidget::AdvModelTuningWidget(QWidget *parent)
+    : QWidget(parent)
+    , m_currentJobItem(0)
+{
+    setMinimumSize(128, 128);
+    setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
+
+    QVBoxLayout *mainLayout = new QVBoxLayout;
+
+    m_label = new QLabel();
+
+    mainLayout->addWidget(m_label);
+
+    setLayout(mainLayout);
+
+}
+
+void AdvModelTuningWidget::setCurrentItem(JobItem *item)
+{
+    m_currentJobItem = item;
+    m_label->setText(item->getName());
+}
diff --git a/GUI/coregui/Views/Components/JobQueueWidgets/AdvModelTuningWidget.h b/GUI/coregui/Views/Components/JobQueueWidgets/AdvModelTuningWidget.h
new file mode 100644
index 0000000000000000000000000000000000000000..2af92e21ee7ede5aa6aa07728d59cebfc397b4e0
--- /dev/null
+++ b/GUI/coregui/Views/Components/JobQueueWidgets/AdvModelTuningWidget.h
@@ -0,0 +1,27 @@
+#ifndef ADVMODELTUNINGWIDGET_H
+#define ADVMODELTUNINGWIDGET_H
+
+#include <QWidget>
+class QLabel;
+class JobItem;
+
+class AdvModelTuningWidget : public QWidget
+{
+    Q_OBJECT
+
+public:
+
+    AdvModelTuningWidget(QWidget *parent = 0);
+    virtual ~AdvModelTuningWidget() {}
+
+    void setCurrentItem(JobItem *item);
+
+private:
+    QLabel *m_label;
+    JobItem *m_currentJobItem;
+};
+
+
+
+#endif
+
diff --git a/GUI/coregui/Views/Components/JobQueueWidgets/JobListWidget.cpp b/GUI/coregui/Views/Components/JobQueueWidgets/JobListWidget.cpp
index 9e4df8df50627475bb0f0250e08c2a73ce6e1f6b..14a08964d1137a2a7fd5a5cf253d81c1a3bece7e 100644
--- a/GUI/coregui/Views/Components/JobQueueWidgets/JobListWidget.cpp
+++ b/GUI/coregui/Views/Components/JobQueueWidgets/JobListWidget.cpp
@@ -3,6 +3,7 @@
 #include "JobItem.h"
 #include "JobListViewDelegate.h"
 #include "styledbar.h"
+#include "SimulationToolBar.h"
 #include <QPushButton>
 #include <QListView>
 #include <QMenu>
@@ -39,7 +40,8 @@ JobListWidget::JobListWidget(QWidget *parent)
     mainLayout->setMargin(0);
     mainLayout->setSpacing(0);
 
-    Manhattan::StyledBar *bar = new Manhattan::StyledBar;
+//    Manhattan::StyledBar *bar = new Manhattan::StyledBar;
+    SimulationToolBar *bar = new SimulationToolBar;
     mainLayout->addWidget(bar);
 
 //    QHBoxLayout *buttonsLayout = new QHBoxLayout;
diff --git a/GUI/coregui/Views/Components/JobQueueWidgets/JobRealTimeWidget.cpp b/GUI/coregui/Views/Components/JobQueueWidgets/JobRealTimeWidget.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..e8221810457b8aed19db36ed476e1d03f7ea915c
--- /dev/null
+++ b/GUI/coregui/Views/Components/JobQueueWidgets/JobRealTimeWidget.cpp
@@ -0,0 +1,151 @@
+#include "JobRealTimeWidget.h"
+#include "JobQueueModel.h"
+#include "AdvModelTuningWidget.h"
+#include "SimulationToolBar.h"
+#include <QToolBar>
+#include <QVBoxLayout>
+#include <QPushButton>
+#include <QStackedWidget>
+#include <QAction>
+#include <QLabel>
+#include <QDebug>
+#include "GUIHelpers.h"
+
+
+JobRealTimeWidget::JobRealTimeWidget(JobQueueModel *jobQueueModel, QWidget *parent)
+    : QWidget(parent)
+    , m_jobQueueModel(0)
+    , m_stack(new QStackedWidget(this))
+    , m_toolBar(new SimulationToolBar)
+{
+    setJobQueueModel(jobQueueModel);
+
+    setMinimumSize(100, 400);
+    setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
+
+    setWindowTitle(QLatin1String("Job Real Time"));
+    setObjectName(QLatin1String("Job Real Time"));
+
+    m_stack->setMinimumSize(100, 400);
+    m_stack->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
+
+    QVBoxLayout *mainLayout = new QVBoxLayout;
+    mainLayout->setMargin(0);
+    mainLayout->setSpacing(0);
+
+    mainLayout->addWidget(m_toolBar);
+    mainLayout->addWidget(m_stack);
+
+    setLayout(mainLayout);
+
+    connectSignals();
+}
+
+
+void JobRealTimeWidget::setJobQueueModel(JobQueueModel *jobQueueModel)
+{
+    Q_ASSERT(jobQueueModel);
+    if(jobQueueModel != m_jobQueueModel) {
+        m_jobQueueModel = jobQueueModel;
+
+        connect(m_jobQueueModel,
+            SIGNAL( selectionChanged(JobItem *) ),
+            this,
+            SLOT( itemClicked(JobItem *) )
+            );
+
+        connect(m_jobQueueModel->getJobQueueData(), SIGNAL(jobIsFinished(QString))
+                , this, SLOT(onJobItemFinished(QString)));
+
+        connect(m_jobQueueModel, SIGNAL(aboutToDeleteJobItem(JobItem*))
+                , this, SLOT(onJobItemDelete(JobItem*)));
+    }
+}
+
+
+void JobRealTimeWidget::itemClicked(JobItem * item)
+{
+    qDebug() << "JobOutputDataWidget::itemClicked()";
+
+
+
+    m_currentJobItem = item;
+
+    AdvModelTuningWidget *widget = m_jobItemToTuningWidget[item];
+    if( !widget && (item->getStatus() == JobItem::Completed || item->getStatus() == JobItem::Canceled)) {
+
+        qDebug() << "JobOutputDataWidget::itemClicked() -> creating";
+        widget = new AdvModelTuningWidget();
+        widget->setCurrentItem(item);
+        m_stack->addWidget(widget);
+        m_jobItemToTuningWidget[item] = widget;
+
+    }
+    else
+    {
+        if( m_stack->currentWidget())
+        {
+            m_stack->currentWidget()->hide();
+        }
+    }
+
+
+    if(widget)
+    {
+        qDebug() << "JobOutputDataWidget::itemClicked() -> setCurrentWidget";
+
+        if(widget->isHidden())
+        {
+            widget->show();
+        }
+
+        m_stack->setCurrentWidget(widget);
+    }
+}
+
+
+void JobRealTimeWidget::onJobItemFinished(const QString &identifier)
+{
+    qDebug() << "JobOutputDataWidget::onJobItemFinished()";
+    JobItem *jobItem = m_jobQueueModel->getJobQueueData()->getJobItem(identifier);
+
+    if(jobItem == m_currentJobItem)
+    {
+        if((jobItem->getStatus() == JobItem::Completed || jobItem->getStatus() == JobItem::Canceled) && jobItem->getOutputDataItem())
+        {
+            qDebug() << "JobOutputDataWidget::dataChanged() JobItem::Completed";
+            itemClicked(jobItem);
+        }
+    }
+}
+
+
+
+void JobRealTimeWidget::connectSignals()
+{
+}
+
+
+
+void JobRealTimeWidget::onJobItemDelete(JobItem *item)
+{
+    qDebug() << "JobOutputDataWidget::onJobItemDelete()";
+    AdvModelTuningWidget *widget = m_jobItemToTuningWidget[item];
+    if( !widget ) {
+        // this is the case when user removes failed job which doesn't have propper widget
+        return;
+    }
+
+    QMap<JobItem *, AdvModelTuningWidget *>::iterator it = m_jobItemToTuningWidget.begin();
+    while(it!=m_jobItemToTuningWidget.end()) {
+        if(it.value() == widget) {
+            it = m_jobItemToTuningWidget.erase(it);
+        } else {
+            ++it;
+        }
+    }
+
+    m_stack->removeWidget(widget);
+    delete widget;
+}
+
diff --git a/GUI/coregui/Views/Components/JobQueueWidgets/JobRealTimeWidget.h b/GUI/coregui/Views/Components/JobQueueWidgets/JobRealTimeWidget.h
new file mode 100644
index 0000000000000000000000000000000000000000..b5191e342e70fa457c67d6f9fd4b6bf1b77dbff0
--- /dev/null
+++ b/GUI/coregui/Views/Components/JobQueueWidgets/JobRealTimeWidget.h
@@ -0,0 +1,41 @@
+#ifndef JOBREALTIMEWIDGET_H
+#define JOBREALTIMEWIDGET_H
+
+#include "WinDllMacros.h"
+#include <QWidget>
+#include <QMap>
+
+class JobQueueModel;
+class QStackedWidget;
+class QModelIndex;
+class JobItem;
+class AdvModelTuningWidget;
+class SimulationToolBar;
+
+//! The JobRealTimeWidget provides tuning of sample parameters and run of the simulation in real time.
+//! Located on the right side of JobView and is visible when realtime activity is selected.
+class BA_CORE_API_ JobRealTimeWidget : public QWidget
+{
+    Q_OBJECT
+public:
+    explicit JobRealTimeWidget(JobQueueModel *jobQueueModel, QWidget *parent = 0);
+
+    void setJobQueueModel(JobQueueModel *jobQueueModel);
+
+public slots:
+    void itemClicked(JobItem *item);
+    void onJobItemDelete(JobItem *item);
+    void onJobItemFinished(const QString &identifier);
+
+private:
+    void connectSignals();
+
+    JobQueueModel *m_jobQueueModel;
+    JobItem *m_currentJobItem;
+    QStackedWidget *m_stack;
+    QMap<JobItem *, AdvModelTuningWidget *> m_jobItemToTuningWidget;
+    SimulationToolBar *m_toolBar;
+};
+
+
+#endif
diff --git a/GUI/coregui/Views/Components/SimulationWidgets/SimulationToolBar.cpp b/GUI/coregui/Views/Components/SimulationWidgets/SimulationToolBar.cpp
index a51c2d1fe6ea610b477e47c9c7fb84ac631f28a5..ae325162f77a2e0c6e534f4eefe071dc76cd818e 100644
--- a/GUI/coregui/Views/Components/SimulationWidgets/SimulationToolBar.cpp
+++ b/GUI/coregui/Views/Components/SimulationWidgets/SimulationToolBar.cpp
@@ -13,6 +13,7 @@ SimulationToolBar::SimulationToolBar(QWidget *parent)
     : QToolBar(parent)
 {
     setMovable(false);
+    setMinimumSize(128, 25);
 
     const int size = style()->pixelMetric(QStyle::PM_SmallIconSize);
     setIconSize(QSize(size, size));
diff --git a/GUI/coregui/Views/JobView.cpp b/GUI/coregui/Views/JobView.cpp
index 9cb804f2fbfa004174a68093c87986761261d27b..e7225bd1cf9ac286122aac8be4648c5b9f20ae11 100644
--- a/GUI/coregui/Views/JobView.cpp
+++ b/GUI/coregui/Views/JobView.cpp
@@ -3,6 +3,7 @@
 #include "JobSelectorWidget.h"
 #include "JobOutputDataWidget.h"
 #include "JobQueueModel.h"
+#include "JobRealTimeWidget.h"
 #include "mainwindow.h"
 #include "progressbar.h"
 #include <QFrame>
@@ -18,6 +19,7 @@ struct JobViewPrivate
     JobQueueModel *m_jobQueueModel;
     JobSelectorWidget *m_jobSelector;
     JobOutputDataWidget *m_jobOutputDataWidget;
+    JobRealTimeWidget *m_jobRealTimeWidget;
     Manhattan::ProgressBar *m_progressBar; //!< general progress bar
 };
 
@@ -124,6 +126,8 @@ void JobView::resetToDefaultLayout()
         dockWidget->show();
 
     setTrackingEnabled(true);
+
+    onJobViewActivityRequest();
 }
 
 
@@ -150,15 +154,14 @@ void JobView::initWindows()
     m_d->m_jobSelector = new JobSelectorWidget(m_d->m_jobQueueModel, this);
     m_d->m_subWindows[JobListDock] = m_d->m_jobSelector;
 
-    TestView *realTimeWidget = new TestView(this);
-    realTimeWidget->setWindowTitle("RealTimeWidget");
-    realTimeWidget->setObjectName("RealTimeWidget");
-    m_d->m_subWindows[RealTimeDock] = realTimeWidget;
+    m_d->m_jobRealTimeWidget = new JobRealTimeWidget(m_d->m_jobQueueModel, this);
+    m_d->m_subWindows[RealTimeDock] = m_d->m_jobRealTimeWidget;
 }
 
 
 void JobView::connectSignals()
 {
+    connect(this, SIGNAL(resetLayout()), this, SLOT(resetToDefaultLayout()));
     connect(m_d->m_jobQueueModel->getJobQueueData(), SIGNAL(globalProgress(int)), this, SLOT(updateGlobalProgressBar(int)));
     connect(m_d->m_jobQueueModel->getJobQueueData(), SIGNAL(focusRequest(JobItem*)), this, SLOT(onFocusRequest(JobItem*)));
     connect(m_d->m_jobOutputDataWidget, SIGNAL(jobViewActivityRequest()), this, SLOT(onJobViewActivityRequest()));