diff --git a/src/main/java/kieker/gui/mainview/Controller.java b/src/main/java/kieker/gui/mainview/Controller.java
index fac94024fea3e1c1f0bef159869aad6a4c86e6dc..d707d8ea9d91e1e07165555e9130f37f50a7e947 100644
--- a/src/main/java/kieker/gui/mainview/Controller.java
+++ b/src/main/java/kieker/gui/mainview/Controller.java
@@ -26,8 +26,10 @@ import kieker.gui.subview.ISubView;
 import kieker.gui.subview.aggregatedtraces.Controller.Filter;
 import kieker.gui.subview.traces.Controller.Type;
 
+import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.SelectionEvent;
 import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.widgets.Display;
 
 /**
  * The main controller of this application. It is responsible for creating top level models, further sub-controllers, and for creating and controlling the
@@ -68,7 +70,7 @@ public final class Controller implements SelectionListener {
 
 		// Create the main model and the main view
 		this.mainViewModel = new Model();
-		this.mainView = new View(this.dataModel, this.mainViewModel, this, subViews);
+		this.mainView = new View(this.mainViewModel, this, subViews);
 	}
 
 	public void showView() {
@@ -102,7 +104,9 @@ public final class Controller implements SelectionListener {
 			final String selectedDirectory = this.mainView.getDialog().open();
 
 			if (null != selectedDirectory) {
+				this.mainViewModel.setCursor(Display.getCurrent().getSystemCursor(SWT.CURSOR_WAIT));
 				this.dataModel.loadMonitoringLogFromFS(selectedDirectory);
+				this.mainViewModel.setCursor(Display.getCurrent().getSystemCursor(SWT.CURSOR_ARROW));
 			}
 		}
 
diff --git a/src/main/java/kieker/gui/mainview/Model.java b/src/main/java/kieker/gui/mainview/Model.java
index bd5bdceea18d5c46836d252df2ceffcf4c44c557..241dd5ca27a56585a0ccebd77a361ae241e6926b 100644
--- a/src/main/java/kieker/gui/mainview/Model.java
+++ b/src/main/java/kieker/gui/mainview/Model.java
@@ -18,6 +18,8 @@ package kieker.gui.mainview;
 
 import java.util.Observable;
 
+import org.eclipse.swt.graphics.Cursor;
+
 /**
  * The model of the main view.
  *
@@ -25,8 +27,20 @@ import java.util.Observable;
  */
 public final class Model extends Observable {
 
+	private Cursor cursor;
 	private String currentActiveSubViewKey;
 
+	public Cursor getCursor() {
+		return this.cursor;
+	}
+
+	public void setCursor(final Cursor cursor) {
+		this.cursor = cursor;
+
+		this.setChanged();
+		this.notifyObservers();
+	}
+
 	public String getCurrentActiveSubViewKey() {
 		return this.currentActiveSubViewKey;
 	}
diff --git a/src/main/java/kieker/gui/mainview/View.java b/src/main/java/kieker/gui/mainview/View.java
index f4646481ddc09ead16f154b4fa6889bd551bb7cb..a4b583d21253986a646d24a1f9aeacd6799d1180 100644
--- a/src/main/java/kieker/gui/mainview/View.java
+++ b/src/main/java/kieker/gui/mainview/View.java
@@ -20,7 +20,6 @@ import java.util.Map;
 import java.util.Observable;
 import java.util.Observer;
 
-import kieker.gui.common.model.DataModel;
 import kieker.gui.subview.ISubView;
 
 import org.eclipse.swt.SWT;
@@ -45,8 +44,7 @@ import org.eclipse.swt.widgets.Widget;
  */
 public final class View implements Observer {
 
-	private final DataModel dataModel;
-	private final Model mainViewModel;
+	private final Model model;
 	private final Controller controller;
 	private final Map<String, ISubView> subViews;
 
@@ -75,9 +73,8 @@ public final class View implements Observer {
 	private TreeItem trtmJustAggTracesContaining;
 	private MenuItem mntmAbout;
 
-	public View(final DataModel dataModel, final Model mainViewModel, final Controller controller, final Map<String, ISubView> subViews) {
-		this.dataModel = dataModel;
-		this.mainViewModel = mainViewModel;
+	public View(final Model mainViewModel, final Controller controller, final Map<String, ISubView> subViews) {
+		this.model = mainViewModel;
 		this.subViews = subViews;
 
 		this.controller = controller;
@@ -276,8 +273,7 @@ public final class View implements Observer {
 	}
 
 	private void addLogic() {
-		this.dataModel.addObserver(this);
-		this.mainViewModel.addObserver(this);
+		this.model.addObserver(this);
 
 		this.tree.addSelectionListener(this.controller);
 
@@ -293,16 +289,14 @@ public final class View implements Observer {
 
 	@Override
 	public void update(final Observable observable, final Object obj) {
-		if (observable == this.dataModel) {
-
-		}
-		if (observable == this.mainViewModel) {
+		if (observable == this.model) {
 			this.handleChangedSubView();
+			this.handleChangedCursor();
 		}
 	}
 
 	private void handleChangedSubView() {
-		final String subViewKey = this.mainViewModel.getCurrentActiveSubViewKey();
+		final String subViewKey = this.model.getCurrentActiveSubViewKey();
 
 		final ISubView subViewToShow = this.subViews.get(subViewKey);
 		final Composite compositeToShow = (subViewToShow != null) ? subViewToShow.getComposite() : null;
@@ -311,4 +305,8 @@ public final class View implements Observer {
 		this.subViewComposite.layout();
 	}
 
+	private void handleChangedCursor() {
+		this.shell.setCursor(this.model.getCursor());
+	}
+
 }