From 39af6119baf30429de95af3a60e15a4dc4ce90d1 Mon Sep 17 00:00:00 2001
From: Nils Christian Ehmke <nils@rhocas.de>
Date: Sat, 14 Jan 2017 10:35:21 +0100
Subject: [PATCH] #30 [Cache views]

---
 .../controller/calls/CallsViewController.java      | 12 ++++++++++--
 .../controller/traces/TracesViewController.java    | 14 ++++++++++++++
 2 files changed, 24 insertions(+), 2 deletions(-)

diff --git a/src/main/java/kieker/diagnosis/controller/calls/CallsViewController.java b/src/main/java/kieker/diagnosis/controller/calls/CallsViewController.java
index 2e1ec9dc..ddcee1f2 100644
--- a/src/main/java/kieker/diagnosis/controller/calls/CallsViewController.java
+++ b/src/main/java/kieker/diagnosis/controller/calls/CallsViewController.java
@@ -126,15 +126,23 @@ public final class CallsViewController extends AbstractController {
 	}
 	
 	private void jumpToCalls(final AggregatedOperationCall aCall) {
+		// Clear all filters (as the view might be cached)
+		this.ivFilterLowerDate.setValue(null);
+		this.ivFilterLowerTime.setCalendar(null);
+		this.ivFilterUpperDate.setValue(null);
+		this.ivFilterUpperTime.setCalendar(null);
+		this.ivFilterTraceID.setText(null);
+		this.ivFilterException.setText(null);
+		this.ivShowAllButton.setSelected(true);
+		
+		// Now use the values from the given aggregated call for the filters
 		this.ivFilterContainer.setText(aCall.getContainer());
 		this.ivFilterComponent.setText(aCall.getComponent());
 		this.ivFilterOperation.setText(aCall.getOperation());
 
 		if (aCall.getFailedCause() != null) {
 			this.ivFilterException.setText(aCall.getFailedCause());
-			this.ivShowAllButton.setSelected(true);
 		} else {
-			this.ivFilterException.setText(null);
 			this.ivShowJustSuccessful.setSelected(true);
 		}
 
diff --git a/src/main/java/kieker/diagnosis/controller/traces/TracesViewController.java b/src/main/java/kieker/diagnosis/controller/traces/TracesViewController.java
index a62aa6ae..c2034eee 100644
--- a/src/main/java/kieker/diagnosis/controller/traces/TracesViewController.java
+++ b/src/main/java/kieker/diagnosis/controller/traces/TracesViewController.java
@@ -119,6 +119,20 @@ public final class TracesViewController extends AbstractController {
 	}
 	
 	private void jumpToCall(final OperationCall aCall) {
+		// Clear all filters (as the view might be cached)
+		this.ivFilterComponent.setText(null);
+		this.ivFilterContainer.setText(null);
+		this.ivFilterException.setText(null);
+		this.ivFilterOperation.setText(null);
+		this.ivFilterLowerDate.setValue(null);
+		this.ivFilterLowerTime.setCalendar(null);
+		this.ivFilterUpperDate.setValue(null);
+		this.ivFilterUpperTime.setCalendar(null);
+		this.ivFilterTraceID.setText(null);
+		this.ivFilterException.setText(null);
+		this.ivShowAllButton.setSelected(true);
+		this.useFilter();
+				
 		final TreeItem<OperationCall> root = this.ivTreetable.getRoot();
 
 		final Optional<TreeItem<OperationCall>> traceRoot = this.findTraceRoot(root, aCall);
-- 
GitLab