From fb403f8c0a981fa54d6dbc0342c4c05de3a17909 Mon Sep 17 00:00:00 2001
From: Nils Christian Ehmke <nie@informatik.uni-kiel.de>
Date: Tue, 16 Dec 2014 14:13:53 +0100
Subject: [PATCH] Refactoring and added Apache 2 License header to the source
 files

---
 src/main/java/kieker/gui/Main.java            |  16 +++
 .../AggregatedTracesSubViewController.java    |  19 ++-
 .../FailedTracesSubViewController.java        |  19 ++-
 ...lureContainingTracesSubViewController.java |  19 ++-
 .../ISubController.java}                      |  28 +----
 .../gui/controller/MainViewController.java    | 109 +++++++++++-------
 .../controller/RecordsSubViewController.java  |  19 ++-
 .../controller/TracesSubViewController.java   |  19 ++-
 .../model/AggregatedTracesSubViewModel.java   |  18 +++
 src/main/java/kieker/gui/model/DataModel.java |  16 +++
 .../java/kieker/gui/model/MainViewModel.java  |  16 +++
 .../kieker/gui/model/PropertiesModel.java     |  16 +++
 .../kieker/gui/model/TracesSubViewModel.java  |  16 +++
 .../model/domain/AbstractExecutionEntry.java  |  16 +++
 .../importer/stages/FailedTraceFilter.java    |  16 +++
 .../stages/FailureContainingTraceFilter.java  |  16 +++
 .../gui/view/AggregatedTracesSubView.java     |  18 ++-
 src/main/java/kieker/gui/view/ISubView.java   |  16 +++
 src/main/java/kieker/gui/view/MainView.java   |  16 +++
 .../java/kieker/gui/view/RecordsSubView.java  |  16 +++
 .../java/kieker/gui/view/TracesSubView.java   |  16 +++
 .../view/util/AbstractDirectedComparator.java |  16 +++
 .../ExecutionEntryComponentComparator.java    |  16 +++
 .../ExecutionEntryContainerComparator.java    |  16 +++
 .../ExecutionEntryDurationComparator.java     |  16 +++
 .../ExecutionEntryOperationComparator.java    |  16 +++
 .../util/ExecutionEntryTraceIDComparator.java |  16 +++
 .../util/RecordEntryTimestampComparator.java  |  16 +++
 .../view/util/RecordEntryTypeComparator.java  |  16 +++
 .../view/util/TableColumnSortListener.java    |  16 +++
 .../gui/view/util/TreeColumnSortListener.java |  21 +++-
 31 files changed, 552 insertions(+), 73 deletions(-)
 rename src/main/java/kieker/gui/{model/importer/stages/Cloner.java => controller/ISubController.java} (51%)

diff --git a/src/main/java/kieker/gui/Main.java b/src/main/java/kieker/gui/Main.java
index c276f226..d81eb6fa 100644
--- a/src/main/java/kieker/gui/Main.java
+++ b/src/main/java/kieker/gui/Main.java
@@ -1,3 +1,19 @@
+/***************************************************************************
+ * Copyright 2014 Kieker Project (http://kieker-monitoring.net)
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ ***************************************************************************/
+
 package kieker.gui;
 
 import kieker.gui.controller.MainViewController;
diff --git a/src/main/java/kieker/gui/controller/AggregatedTracesSubViewController.java b/src/main/java/kieker/gui/controller/AggregatedTracesSubViewController.java
index 488b797b..8ce401db 100644
--- a/src/main/java/kieker/gui/controller/AggregatedTracesSubViewController.java
+++ b/src/main/java/kieker/gui/controller/AggregatedTracesSubViewController.java
@@ -1,3 +1,19 @@
+/***************************************************************************
+ * Copyright 2014 Kieker Project (http://kieker-monitoring.net)
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ ***************************************************************************/
+
 package kieker.gui.controller;
 
 import kieker.gui.model.AggregatedTracesSubViewModel;
@@ -9,7 +25,7 @@ import kieker.gui.view.AggregatedTracesSubView;
 import org.eclipse.swt.events.SelectionEvent;
 import org.eclipse.swt.events.SelectionListener;
 
-public class AggregatedTracesSubViewController implements SelectionListener {
+public class AggregatedTracesSubViewController implements SelectionListener, ISubController {
 
 	private final DataModel model;
 	private final AggregatedTracesSubView view;
@@ -22,6 +38,7 @@ public class AggregatedTracesSubViewController implements SelectionListener {
 		this.view = new AggregatedTracesSubView(this.model, this.aggregatedTracesSubViewModel, propertiesModel, this);
 	}
 
+	@Override
 	public AggregatedTracesSubView getView() {
 		return this.view;
 	}
diff --git a/src/main/java/kieker/gui/controller/FailedTracesSubViewController.java b/src/main/java/kieker/gui/controller/FailedTracesSubViewController.java
index cbef6bc2..d42878b0 100644
--- a/src/main/java/kieker/gui/controller/FailedTracesSubViewController.java
+++ b/src/main/java/kieker/gui/controller/FailedTracesSubViewController.java
@@ -1,3 +1,19 @@
+/***************************************************************************
+ * Copyright 2014 Kieker Project (http://kieker-monitoring.net)
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ ***************************************************************************/
+
 package kieker.gui.controller;
 
 import kieker.gui.model.DataModel;
@@ -9,7 +25,7 @@ import kieker.gui.view.TracesSubView;
 import org.eclipse.swt.events.SelectionEvent;
 import org.eclipse.swt.events.SelectionListener;
 
-public class FailedTracesSubViewController implements SelectionListener {
+public class FailedTracesSubViewController implements SelectionListener, ISubController {
 
 	private final TracesSubViewModel tracesSubViewModel;
 	private final TracesSubView view;
@@ -19,6 +35,7 @@ public class FailedTracesSubViewController implements SelectionListener {
 		this.view = new TracesSubView(TracesSubView.Type.SHOW_JUST_FAILED_TRACES, model, this.tracesSubViewModel, propertiesModel, this);
 	}
 
+	@Override
 	public TracesSubView getView() {
 		return this.view;
 	}
diff --git a/src/main/java/kieker/gui/controller/FailureContainingTracesSubViewController.java b/src/main/java/kieker/gui/controller/FailureContainingTracesSubViewController.java
index 934e80b5..6342c853 100644
--- a/src/main/java/kieker/gui/controller/FailureContainingTracesSubViewController.java
+++ b/src/main/java/kieker/gui/controller/FailureContainingTracesSubViewController.java
@@ -1,3 +1,19 @@
+/***************************************************************************
+ * Copyright 2014 Kieker Project (http://kieker-monitoring.net)
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ ***************************************************************************/
+
 package kieker.gui.controller;
 
 import kieker.gui.model.DataModel;
@@ -9,7 +25,7 @@ import kieker.gui.view.TracesSubView;
 import org.eclipse.swt.events.SelectionEvent;
 import org.eclipse.swt.events.SelectionListener;
 
-public class FailureContainingTracesSubViewController implements SelectionListener {
+public class FailureContainingTracesSubViewController implements SelectionListener, ISubController {
 
 	private final TracesSubViewModel tracesSubViewModel;
 	private final TracesSubView view;
@@ -19,6 +35,7 @@ public class FailureContainingTracesSubViewController implements SelectionListen
 		this.view = new TracesSubView(TracesSubView.Type.SHOW_JUST_FAILURE_CONTAINING_TRACES, model, this.tracesSubViewModel, propertiesModel, this);
 	}
 
+	@Override
 	public TracesSubView getView() {
 		return this.view;
 	}
diff --git a/src/main/java/kieker/gui/model/importer/stages/Cloner.java b/src/main/java/kieker/gui/controller/ISubController.java
similarity index 51%
rename from src/main/java/kieker/gui/model/importer/stages/Cloner.java
rename to src/main/java/kieker/gui/controller/ISubController.java
index a846056c..a01b4529 100644
--- a/src/main/java/kieker/gui/model/importer/stages/Cloner.java
+++ b/src/main/java/kieker/gui/controller/ISubController.java
@@ -14,32 +14,12 @@
  * limitations under the License.
  ***************************************************************************/
 
-package kieker.gui.model.importer.stages;
+package kieker.gui.controller;
 
-import teetime.framework.AbstractConsumerStage;
-import teetime.framework.OutputPort;
+import kieker.gui.view.ISubView;
 
-/**
- * Distributes incoming elements to the two output ports.
- *
- * @author Nils Christian Ehmke
- */
-public final class Cloner<T> extends AbstractConsumerStage<T> {
-
-	private final OutputPort<T> firstOutputPort = super.createOutputPort();
-	private final OutputPort<T> secondOutputPort = super.createOutputPort();
-
-	@Override
-	protected void execute(final T element) {
-		this.firstOutputPort.send(element);
-		this.secondOutputPort.send(element);
-	}
+public interface ISubController {
 
-	public OutputPort<T> getFirstOutputPort() {
-		return this.firstOutputPort;
-	}
+	public ISubView getView();
 
-	public OutputPort<T> getSecondOutputPort() {
-		return this.secondOutputPort;
-	}
 }
diff --git a/src/main/java/kieker/gui/controller/MainViewController.java b/src/main/java/kieker/gui/controller/MainViewController.java
index f64137eb..2a234e72 100644
--- a/src/main/java/kieker/gui/controller/MainViewController.java
+++ b/src/main/java/kieker/gui/controller/MainViewController.java
@@ -1,18 +1,32 @@
+/***************************************************************************
+ * Copyright 2014 Kieker Project (http://kieker-monitoring.net)
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ ***************************************************************************/
+
 package kieker.gui.controller;
 
 import kieker.gui.model.DataModel;
 import kieker.gui.model.MainViewModel;
 import kieker.gui.model.MainViewModel.SubView;
 import kieker.gui.model.PropertiesModel;
-import kieker.gui.view.AggregatedTracesSubView;
+import kieker.gui.view.ISubView;
 import kieker.gui.view.MainView;
-import kieker.gui.view.RecordsSubView;
-import kieker.gui.view.TracesSubView;
 
 import org.eclipse.swt.events.SelectionEvent;
 import org.eclipse.swt.events.SelectionListener;
 
-public class MainViewController implements SelectionListener {
+public final class MainViewController implements SelectionListener {
 
 	private final DataModel dataModel;
 	private final MainViewModel mainViewModel;
@@ -20,23 +34,27 @@ public class MainViewController implements SelectionListener {
 	private final MainView view;
 
 	public MainViewController() {
+		// Create the top models
 		this.dataModel = new DataModel();
-		this.mainViewModel = new MainViewModel();
 		this.propertiesModel = new PropertiesModel();
 
-		final RecordsSubViewController subView1Controller = new RecordsSubViewController(this.dataModel);
-		final TracesSubViewController subView2Controller = new TracesSubViewController(this.dataModel, this.propertiesModel);
-		final AggregatedTracesSubViewController subView3Controller = new AggregatedTracesSubViewController(this.dataModel, this.propertiesModel);
-		final FailedTracesSubViewController subView4Controller = new FailedTracesSubViewController(this.dataModel, this.propertiesModel);
-		final FailureContainingTracesSubViewController subView5Controller = new FailureContainingTracesSubViewController(this.dataModel, this.propertiesModel);
-
-		final RecordsSubView subView1 = subView1Controller.getView();
-		final TracesSubView subView2 = subView2Controller.getView();
-		final AggregatedTracesSubView subView3 = subView3Controller.getView();
-		final TracesSubView subView4 = subView4Controller.getView();
-		final TracesSubView subView5 = subView5Controller.getView();
-
-		this.view = new MainView(this.dataModel, this.mainViewModel, this, subView1, subView2, subView4, subView3, subView5);
+		// Create the sub-controllers
+		final ISubController subViewController1 = new RecordsSubViewController(this.dataModel);
+		final ISubController subViewController2 = new TracesSubViewController(this.dataModel, this.propertiesModel);
+		final ISubController subViewController3 = new FailedTracesSubViewController(this.dataModel, this.propertiesModel);
+		final ISubController subViewController4 = new AggregatedTracesSubViewController(this.dataModel, this.propertiesModel);
+		final ISubController subViewController5 = new FailureContainingTracesSubViewController(this.dataModel, this.propertiesModel);
+
+		// Get the sub-views from the controllers
+		final ISubView subView1 = subViewController1.getView();
+		final ISubView subView2 = subViewController2.getView();
+		final ISubView subView3 = subViewController3.getView();
+		final ISubView subView4 = subViewController4.getView();
+		final ISubView subView5 = subViewController5.getView();
+
+		// Create the main model and the main view
+		this.mainViewModel = new MainViewModel();
+		this.view = new MainView(this.dataModel, this.mainViewModel, this, subView1, subView2, subView3, subView4, subView5);
 	}
 
 	public void showView() {
@@ -45,25 +63,27 @@ public class MainViewController implements SelectionListener {
 
 	@Override
 	public void widgetSelected(final SelectionEvent e) {
-		if (e.item == this.view.getTrtmExplorer()) {
-			this.mainViewModel.setCurrentActiveSubView(SubView.NONE);
-		}
-		if (e.item == this.view.getTrtmRecords()) {
-			this.mainViewModel.setCurrentActiveSubView(SubView.RECORDS_SUB_VIEW);
-		}
-		if (e.item == this.view.getTrtmTraces()) {
-			this.mainViewModel.setCurrentActiveSubView(SubView.TRACES_SUB_VIEW);
+		this.handlePotentialTreeSelection(e);
+		this.handlePotentialMenuSelection(e);
+		this.handlePotentialPropertiesSelection(e);
+	}
+
+	private void handlePotentialPropertiesSelection(final SelectionEvent e) {
+		if (e.widget == this.view.getMntmShortOperationNames()) {
+			this.propertiesModel.setShortOperationNames(true);
 		}
-		if (e.item == this.view.getTrtmAggregatedTraces()) {
-			this.mainViewModel.setCurrentActiveSubView(SubView.AGGREGATED_TRACES_SUB_VIEW);
+		if (e.widget == this.view.getMntmLongOperationNames()) {
+			this.propertiesModel.setShortOperationNames(false);
 		}
-		if (e.item == this.view.getTrtmJustFailedTraces()) {
-			this.mainViewModel.setCurrentActiveSubView(SubView.FAILED_TRACES_SUB_VIEW);
+		if (e.widget == this.view.getMntmShortComponentNames()) {
+			this.propertiesModel.setShortComponentNames(true);
 		}
-		if (e.item == this.view.getTrtmJustTracesContaining()) {
-			this.mainViewModel.setCurrentActiveSubView(SubView.FAILURE_CONTAINING_TRACES_SUB_VIEW);
+		if (e.widget == this.view.getMntmLongComponentNames()) {
+			this.propertiesModel.setShortComponentNames(false);
 		}
+	}
 
+	private void handlePotentialMenuSelection(final SelectionEvent e) {
 		if (e.widget == this.view.getMntmOpenMonitoringLog()) {
 			final String selectedDirectory = this.view.getDialog().open();
 
@@ -71,21 +91,30 @@ public class MainViewController implements SelectionListener {
 				this.dataModel.loadMonitoringLogFromFS(selectedDirectory);
 			}
 		}
+
 		if (e.widget == this.view.getMntmExit()) {
 			this.view.close();
 		}
+	}
 
-		if (e.widget == this.view.getMntmShortOperationNames()) {
-			this.propertiesModel.setShortOperationNames(true);
+	private void handlePotentialTreeSelection(final SelectionEvent e) {
+		if (e.item == this.view.getTrtmExplorer()) {
+			this.mainViewModel.setCurrentActiveSubView(SubView.NONE);
 		}
-		if (e.widget == this.view.getMntmLongOperationNames()) {
-			this.propertiesModel.setShortOperationNames(false);
+		if (e.item == this.view.getTrtmRecords()) {
+			this.mainViewModel.setCurrentActiveSubView(SubView.RECORDS_SUB_VIEW);
 		}
-		if (e.widget == this.view.getMntmShortComponentNames()) {
-			this.propertiesModel.setShortComponentNames(true);
+		if (e.item == this.view.getTrtmTraces()) {
+			this.mainViewModel.setCurrentActiveSubView(SubView.TRACES_SUB_VIEW);
 		}
-		if (e.widget == this.view.getMntmLongComponentNames()) {
-			this.propertiesModel.setShortComponentNames(false);
+		if (e.item == this.view.getTrtmAggregatedTraces()) {
+			this.mainViewModel.setCurrentActiveSubView(SubView.AGGREGATED_TRACES_SUB_VIEW);
+		}
+		if (e.item == this.view.getTrtmJustFailedTraces()) {
+			this.mainViewModel.setCurrentActiveSubView(SubView.FAILED_TRACES_SUB_VIEW);
+		}
+		if (e.item == this.view.getTrtmJustTracesContaining()) {
+			this.mainViewModel.setCurrentActiveSubView(SubView.FAILURE_CONTAINING_TRACES_SUB_VIEW);
 		}
 	}
 
diff --git a/src/main/java/kieker/gui/controller/RecordsSubViewController.java b/src/main/java/kieker/gui/controller/RecordsSubViewController.java
index 661f1735..8f0492f4 100644
--- a/src/main/java/kieker/gui/controller/RecordsSubViewController.java
+++ b/src/main/java/kieker/gui/controller/RecordsSubViewController.java
@@ -1,9 +1,25 @@
+/***************************************************************************
+ * Copyright 2014 Kieker Project (http://kieker-monitoring.net)
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ ***************************************************************************/
+
 package kieker.gui.controller;
 
 import kieker.gui.model.DataModel;
 import kieker.gui.view.RecordsSubView;
 
-public class RecordsSubViewController {
+public class RecordsSubViewController implements ISubController {
 
 	private final DataModel model;
 	private final RecordsSubView view;
@@ -13,6 +29,7 @@ public class RecordsSubViewController {
 		this.view = new RecordsSubView(this.model, this);
 	}
 
+	@Override
 	public RecordsSubView getView() {
 		return this.view;
 	}
diff --git a/src/main/java/kieker/gui/controller/TracesSubViewController.java b/src/main/java/kieker/gui/controller/TracesSubViewController.java
index 8a860321..ae788f4e 100644
--- a/src/main/java/kieker/gui/controller/TracesSubViewController.java
+++ b/src/main/java/kieker/gui/controller/TracesSubViewController.java
@@ -1,3 +1,19 @@
+/***************************************************************************
+ * Copyright 2014 Kieker Project (http://kieker-monitoring.net)
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ ***************************************************************************/
+
 package kieker.gui.controller;
 
 import kieker.gui.model.DataModel;
@@ -9,7 +25,7 @@ import kieker.gui.view.TracesSubView;
 import org.eclipse.swt.events.SelectionEvent;
 import org.eclipse.swt.events.SelectionListener;
 
-public class TracesSubViewController implements SelectionListener {
+public class TracesSubViewController implements SelectionListener, ISubController {
 
 	private final TracesSubViewModel tracesSubViewModel;
 	private final TracesSubView view;
@@ -19,6 +35,7 @@ public class TracesSubViewController implements SelectionListener {
 		this.view = new TracesSubView(TracesSubView.Type.SHOW_ALL_TRACES, model, this.tracesSubViewModel, propertiesModel, this);
 	}
 
+	@Override
 	public TracesSubView getView() {
 		return this.view;
 	}
diff --git a/src/main/java/kieker/gui/model/AggregatedTracesSubViewModel.java b/src/main/java/kieker/gui/model/AggregatedTracesSubViewModel.java
index 88bc468e..29db6652 100644
--- a/src/main/java/kieker/gui/model/AggregatedTracesSubViewModel.java
+++ b/src/main/java/kieker/gui/model/AggregatedTracesSubViewModel.java
@@ -1,3 +1,21 @@
+/****************************import java.util.Observable;
+
+import kieker.gui.model.domain.AggregatedExecutionEntry;
+kieker-monitoring.net)
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ ***************************************************************************/
+
 package kieker.gui.model;
 
 import java.util.Observable;
diff --git a/src/main/java/kieker/gui/model/DataModel.java b/src/main/java/kieker/gui/model/DataModel.java
index 1569c7c9..0598525a 100644
--- a/src/main/java/kieker/gui/model/DataModel.java
+++ b/src/main/java/kieker/gui/model/DataModel.java
@@ -1,3 +1,19 @@
+/***************************************************************************
+ * Copyright 2014 Kieker Project (http://kieker-monitoring.net)
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ ***************************************************************************/
+
 package kieker.gui.model;
 
 import java.io.File;
diff --git a/src/main/java/kieker/gui/model/MainViewModel.java b/src/main/java/kieker/gui/model/MainViewModel.java
index 8f80b61f..12ddc393 100644
--- a/src/main/java/kieker/gui/model/MainViewModel.java
+++ b/src/main/java/kieker/gui/model/MainViewModel.java
@@ -1,3 +1,19 @@
+/***************************************************************************
+ * Copyright 2014 Kieker Project (http://kieker-monitoring.net)
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ ***************************************************************************/
+
 package kieker.gui.model;
 
 import java.util.Observable;
diff --git a/src/main/java/kieker/gui/model/PropertiesModel.java b/src/main/java/kieker/gui/model/PropertiesModel.java
index b3d1a3ec..9a575245 100644
--- a/src/main/java/kieker/gui/model/PropertiesModel.java
+++ b/src/main/java/kieker/gui/model/PropertiesModel.java
@@ -1,3 +1,19 @@
+/***************************************************************************
+ * Copyright 2014 Kieker Project (http://kieker-monitoring.net)
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ ***************************************************************************/
+
 package kieker.gui.model;
 
 import java.util.Observable;
diff --git a/src/main/java/kieker/gui/model/TracesSubViewModel.java b/src/main/java/kieker/gui/model/TracesSubViewModel.java
index d0de2ec6..c0adb986 100644
--- a/src/main/java/kieker/gui/model/TracesSubViewModel.java
+++ b/src/main/java/kieker/gui/model/TracesSubViewModel.java
@@ -1,3 +1,19 @@
+/***************************************************************************
+ * Copyright 2014 Kieker Project (http://kieker-monitoring.net)
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ ***************************************************************************/
+
 package kieker.gui.model;
 
 import java.util.Observable;
diff --git a/src/main/java/kieker/gui/model/domain/AbstractExecutionEntry.java b/src/main/java/kieker/gui/model/domain/AbstractExecutionEntry.java
index 00c5ac4f..17f68d5d 100644
--- a/src/main/java/kieker/gui/model/domain/AbstractExecutionEntry.java
+++ b/src/main/java/kieker/gui/model/domain/AbstractExecutionEntry.java
@@ -1,3 +1,19 @@
+/***************************************************************************
+ * Copyright 2014 Kieker Project (http://kieker-monitoring.net)
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ ***************************************************************************/
+
 package kieker.gui.model.domain;
 
 import java.util.ArrayList;
diff --git a/src/main/java/kieker/gui/model/importer/stages/FailedTraceFilter.java b/src/main/java/kieker/gui/model/importer/stages/FailedTraceFilter.java
index 2e6d2270..747b9cbf 100644
--- a/src/main/java/kieker/gui/model/importer/stages/FailedTraceFilter.java
+++ b/src/main/java/kieker/gui/model/importer/stages/FailedTraceFilter.java
@@ -1,3 +1,19 @@
+/***************************************************************************
+ * Copyright 2014 Kieker Project (http://kieker-monitoring.net)
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ ***************************************************************************/
+
 package kieker.gui.model.importer.stages;
 
 import kieker.gui.model.domain.ExecutionEntry;
diff --git a/src/main/java/kieker/gui/model/importer/stages/FailureContainingTraceFilter.java b/src/main/java/kieker/gui/model/importer/stages/FailureContainingTraceFilter.java
index cf4138b1..14f0512a 100644
--- a/src/main/java/kieker/gui/model/importer/stages/FailureContainingTraceFilter.java
+++ b/src/main/java/kieker/gui/model/importer/stages/FailureContainingTraceFilter.java
@@ -1,3 +1,19 @@
+/***************************************************************************
+ * Copyright 2014 Kieker Project (http://kieker-monitoring.net)
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ ***************************************************************************/
+
 package kieker.gui.model.importer.stages;
 
 import kieker.gui.model.domain.ExecutionEntry;
diff --git a/src/main/java/kieker/gui/view/AggregatedTracesSubView.java b/src/main/java/kieker/gui/view/AggregatedTracesSubView.java
index dfd5dab4..ac166bcc 100644
--- a/src/main/java/kieker/gui/view/AggregatedTracesSubView.java
+++ b/src/main/java/kieker/gui/view/AggregatedTracesSubView.java
@@ -1,3 +1,19 @@
+/***************************************************************************
+ * Copyright 2014 Kieker Project (http://kieker-monitoring.net)
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ ***************************************************************************/
+
 package kieker.gui.view;
 
 import java.util.List;
@@ -298,7 +314,7 @@ public class AggregatedTracesSubView implements Observer, ISubView {
 				item.setText(new String[] { executionEntry.getContainer(), componentName, operationString, "", minDuration, avgDuration, maxDuration });
 			} else {
 				item.setText(new String[] { executionEntry.getContainer(), componentName, operationString, Integer.toString(executionEntry.getCalls()), minDuration, avgDuration,
-						maxDuration });
+					maxDuration });
 			}
 
 			if (executionEntry.isFailed()) {
diff --git a/src/main/java/kieker/gui/view/ISubView.java b/src/main/java/kieker/gui/view/ISubView.java
index d6a27348..239d6715 100644
--- a/src/main/java/kieker/gui/view/ISubView.java
+++ b/src/main/java/kieker/gui/view/ISubView.java
@@ -1,3 +1,19 @@
+/***************************************************************************
+ * Copyright 2014 Kieker Project (http://kieker-monitoring.net)
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ ***************************************************************************/
+
 package kieker.gui.view;
 
 import org.eclipse.swt.widgets.Composite;
diff --git a/src/main/java/kieker/gui/view/MainView.java b/src/main/java/kieker/gui/view/MainView.java
index 5f1dc7b4..99bf7994 100644
--- a/src/main/java/kieker/gui/view/MainView.java
+++ b/src/main/java/kieker/gui/view/MainView.java
@@ -1,3 +1,19 @@
+/***************************************************************************
+ * Copyright 2014 Kieker Project (http://kieker-monitoring.net)
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ ***************************************************************************/
+
 package kieker.gui.view;
 
 import java.util.Observable;
diff --git a/src/main/java/kieker/gui/view/RecordsSubView.java b/src/main/java/kieker/gui/view/RecordsSubView.java
index a17d8d20..9dfdcf19 100644
--- a/src/main/java/kieker/gui/view/RecordsSubView.java
+++ b/src/main/java/kieker/gui/view/RecordsSubView.java
@@ -1,3 +1,19 @@
+/***************************************************************************
+ * Copyright 2014 Kieker Project (http://kieker-monitoring.net)
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ ***************************************************************************/
+
 package kieker.gui.view;
 
 import java.util.List;
diff --git a/src/main/java/kieker/gui/view/TracesSubView.java b/src/main/java/kieker/gui/view/TracesSubView.java
index 5dbb6b0f..8b872537 100644
--- a/src/main/java/kieker/gui/view/TracesSubView.java
+++ b/src/main/java/kieker/gui/view/TracesSubView.java
@@ -1,3 +1,19 @@
+/***************************************************************************
+ * Copyright 2014 Kieker Project (http://kieker-monitoring.net)
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ ***************************************************************************/
+
 package kieker.gui.view;
 
 import java.util.List;
diff --git a/src/main/java/kieker/gui/view/util/AbstractDirectedComparator.java b/src/main/java/kieker/gui/view/util/AbstractDirectedComparator.java
index 52a28e64..e4f10fa8 100644
--- a/src/main/java/kieker/gui/view/util/AbstractDirectedComparator.java
+++ b/src/main/java/kieker/gui/view/util/AbstractDirectedComparator.java
@@ -1,3 +1,19 @@
+/***************************************************************************
+ * Copyright 2014 Kieker Project (http://kieker-monitoring.net)
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ ***************************************************************************/
+
 package kieker.gui.view.util;
 
 import java.util.Comparator;
diff --git a/src/main/java/kieker/gui/view/util/ExecutionEntryComponentComparator.java b/src/main/java/kieker/gui/view/util/ExecutionEntryComponentComparator.java
index 9ef0303b..e5bf9bee 100644
--- a/src/main/java/kieker/gui/view/util/ExecutionEntryComponentComparator.java
+++ b/src/main/java/kieker/gui/view/util/ExecutionEntryComponentComparator.java
@@ -1,3 +1,19 @@
+/***************************************************************************
+ * Copyright 2014 Kieker Project (http://kieker-monitoring.net)
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ ***************************************************************************/
+
 package kieker.gui.view.util;
 
 import kieker.gui.model.domain.ExecutionEntry;
diff --git a/src/main/java/kieker/gui/view/util/ExecutionEntryContainerComparator.java b/src/main/java/kieker/gui/view/util/ExecutionEntryContainerComparator.java
index 9095cda7..219f25fe 100644
--- a/src/main/java/kieker/gui/view/util/ExecutionEntryContainerComparator.java
+++ b/src/main/java/kieker/gui/view/util/ExecutionEntryContainerComparator.java
@@ -1,3 +1,19 @@
+/***************************************************************************
+ * Copyright 2014 Kieker Project (http://kieker-monitoring.net)
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ ***************************************************************************/
+
 package kieker.gui.view.util;
 
 import kieker.gui.model.domain.ExecutionEntry;
diff --git a/src/main/java/kieker/gui/view/util/ExecutionEntryDurationComparator.java b/src/main/java/kieker/gui/view/util/ExecutionEntryDurationComparator.java
index 7f1537ff..f7302fe3 100644
--- a/src/main/java/kieker/gui/view/util/ExecutionEntryDurationComparator.java
+++ b/src/main/java/kieker/gui/view/util/ExecutionEntryDurationComparator.java
@@ -1,3 +1,19 @@
+/***************************************************************************
+ * Copyright 2014 Kieker Project (http://kieker-monitoring.net)
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ ***************************************************************************/
+
 package kieker.gui.view.util;
 
 import kieker.gui.model.domain.ExecutionEntry;
diff --git a/src/main/java/kieker/gui/view/util/ExecutionEntryOperationComparator.java b/src/main/java/kieker/gui/view/util/ExecutionEntryOperationComparator.java
index 61c9bca0..dda9307a 100644
--- a/src/main/java/kieker/gui/view/util/ExecutionEntryOperationComparator.java
+++ b/src/main/java/kieker/gui/view/util/ExecutionEntryOperationComparator.java
@@ -1,3 +1,19 @@
+/***************************************************************************
+ * Copyright 2014 Kieker Project (http://kieker-monitoring.net)
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ ***************************************************************************/
+
 package kieker.gui.view.util;
 
 import kieker.gui.model.domain.ExecutionEntry;
diff --git a/src/main/java/kieker/gui/view/util/ExecutionEntryTraceIDComparator.java b/src/main/java/kieker/gui/view/util/ExecutionEntryTraceIDComparator.java
index cd9dea0a..cdb65e23 100644
--- a/src/main/java/kieker/gui/view/util/ExecutionEntryTraceIDComparator.java
+++ b/src/main/java/kieker/gui/view/util/ExecutionEntryTraceIDComparator.java
@@ -1,3 +1,19 @@
+/***************************************************************************
+ * Copyright 2014 Kieker Project (http://kieker-monitoring.net)
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ ***************************************************************************/
+
 package kieker.gui.view.util;
 
 import kieker.gui.model.domain.ExecutionEntry;
diff --git a/src/main/java/kieker/gui/view/util/RecordEntryTimestampComparator.java b/src/main/java/kieker/gui/view/util/RecordEntryTimestampComparator.java
index 2b03ff11..d34febd2 100644
--- a/src/main/java/kieker/gui/view/util/RecordEntryTimestampComparator.java
+++ b/src/main/java/kieker/gui/view/util/RecordEntryTimestampComparator.java
@@ -1,3 +1,19 @@
+/***************************************************************************
+ * Copyright 2014 Kieker Project (http://kieker-monitoring.net)
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ ***************************************************************************/
+
 package kieker.gui.view.util;
 
 import kieker.gui.model.domain.RecordEntry;
diff --git a/src/main/java/kieker/gui/view/util/RecordEntryTypeComparator.java b/src/main/java/kieker/gui/view/util/RecordEntryTypeComparator.java
index 611a46f8..f5c4cc81 100644
--- a/src/main/java/kieker/gui/view/util/RecordEntryTypeComparator.java
+++ b/src/main/java/kieker/gui/view/util/RecordEntryTypeComparator.java
@@ -1,3 +1,19 @@
+/***************************************************************************
+ * Copyright 2014 Kieker Project (http://kieker-monitoring.net)
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ ***************************************************************************/
+
 package kieker.gui.view.util;
 
 import kieker.gui.model.domain.RecordEntry;
diff --git a/src/main/java/kieker/gui/view/util/TableColumnSortListener.java b/src/main/java/kieker/gui/view/util/TableColumnSortListener.java
index 67fba7d5..b6873cae 100644
--- a/src/main/java/kieker/gui/view/util/TableColumnSortListener.java
+++ b/src/main/java/kieker/gui/view/util/TableColumnSortListener.java
@@ -1,3 +1,19 @@
+/***************************************************************************
+ * Copyright 2014 Kieker Project (http://kieker-monitoring.net)
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ ***************************************************************************/
+
 package kieker.gui.view.util;
 
 import java.util.Collections;
diff --git a/src/main/java/kieker/gui/view/util/TreeColumnSortListener.java b/src/main/java/kieker/gui/view/util/TreeColumnSortListener.java
index 882c4952..db468582 100644
--- a/src/main/java/kieker/gui/view/util/TreeColumnSortListener.java
+++ b/src/main/java/kieker/gui/view/util/TreeColumnSortListener.java
@@ -1,6 +1,20 @@
-package kieker.gui.view.util;
-
-import java.util.Collections;
+/***************************************************************************
+ * Copyright 2014 Kieker Project (http://kieker-monitoring.net)
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ ***************************************************************************/
+
+package kieker.gui.view.util;import java.util.Collections;
 import java.util.List;
 
 import org.eclipse.swt.SWT;
@@ -8,6 +22,7 @@ import org.eclipse.swt.events.SelectionAdapter;
 import org.eclipse.swt.events.SelectionEvent;
 import org.eclipse.swt.widgets.Tree;
 import org.eclipse.swt.widgets.TreeColumn;
+n;
 
 public final class TreeColumnSortListener<T> extends SelectionAdapter {
 
-- 
GitLab