From 56843f86a70dd481b29113f863f918fcfc772d88 Mon Sep 17 00:00:00 2001 From: Nils Christian Ehmke <nie@informatik.uni-kiel.de> Date: Thu, 18 Dec 2014 14:02:14 +0100 Subject: [PATCH] Refactoring --- src/main/java/kieker/gui/Main.java | 4 +- .../kieker/gui/common/model/DataModel.java | 2 +- .../importer/ImportAnalysisConfiguration.java | 16 ++-- .../stages/FailedAggregatedTraceFilter.java | 2 +- .../importer/stages/FailedTraceFilter.java | 2 +- ...ailureContainingAggregatedTraceFilter.java | 2 +- .../stages/FailureContainingTraceFilter.java | 2 +- .../importer/stages/RecordSimplificator.java | 2 +- .../importer/stages/TraceAggregator.java | 2 +- .../importer/stages/TraceReconstructor.java | 2 +- .../java/kieker/gui/mainview/Controller.java | 14 +-- src/main/java/kieker/gui/mainview/Model.java | 7 +- src/main/java/kieker/gui/mainview/View.java | 21 +++-- .../kieker/gui/subview/ISubController.java | 1 - .../java/kieker/gui/subview/ISubView.java | 5 + .../aggregatedtraces/AbstractController.java | 42 --------- .../subview/aggregatedtraces/Controller.java | 91 +++++++++++++------ .../aggregatedtraces/FailedController.java | 56 ------------ .../aggregatedtraces/FailureController.java | 56 ------------ .../subview/traces/AbstractController.java | 42 --------- .../kieker/gui/subview/traces/Controller.java | 75 +++++++++++++-- .../gui/subview/traces/FailedController.java | 56 ------------ .../gui/subview/traces/FailureController.java | 56 ------------ .../stages/RecordSimplificatorTest.java | 4 +- .../stages/TraceReconstructorTest.java | 4 +- 25 files changed, 186 insertions(+), 380 deletions(-) rename src/main/java/kieker/gui/common/{ => model}/importer/ImportAnalysisConfiguration.java (93%) rename src/main/java/kieker/gui/common/{ => model}/importer/stages/FailedAggregatedTraceFilter.java (96%) rename src/main/java/kieker/gui/common/{ => model}/importer/stages/FailedTraceFilter.java (96%) rename src/main/java/kieker/gui/common/{ => model}/importer/stages/FailureContainingAggregatedTraceFilter.java (96%) rename src/main/java/kieker/gui/common/{ => model}/importer/stages/FailureContainingTraceFilter.java (96%) rename src/main/java/kieker/gui/common/{ => model}/importer/stages/RecordSimplificator.java (97%) rename src/main/java/kieker/gui/common/{ => model}/importer/stages/TraceAggregator.java (97%) rename src/main/java/kieker/gui/common/{ => model}/importer/stages/TraceReconstructor.java (98%) delete mode 100644 src/main/java/kieker/gui/subview/aggregatedtraces/AbstractController.java delete mode 100644 src/main/java/kieker/gui/subview/aggregatedtraces/FailedController.java delete mode 100644 src/main/java/kieker/gui/subview/aggregatedtraces/FailureController.java delete mode 100644 src/main/java/kieker/gui/subview/traces/AbstractController.java delete mode 100644 src/main/java/kieker/gui/subview/traces/FailedController.java delete mode 100644 src/main/java/kieker/gui/subview/traces/FailureController.java rename src/test/java/kieker/gui/common/{ => model}/importer/stages/RecordSimplificatorTest.java (93%) rename src/test/java/kieker/gui/common/{ => model}/importer/stages/TraceReconstructorTest.java (98%) diff --git a/src/main/java/kieker/gui/Main.java b/src/main/java/kieker/gui/Main.java index 48048b68..3600738d 100644 --- a/src/main/java/kieker/gui/Main.java +++ b/src/main/java/kieker/gui/Main.java @@ -23,11 +23,11 @@ import kieker.gui.mainview.Controller; * * @author Nils Christian Ehmke */ -public class Main { +public final class Main { /** * The main method of this application. - * + * * @param args * The command line arguments. They have no effect. */ diff --git a/src/main/java/kieker/gui/common/model/DataModel.java b/src/main/java/kieker/gui/common/model/DataModel.java index 152c4cab..770c7356 100644 --- a/src/main/java/kieker/gui/common/model/DataModel.java +++ b/src/main/java/kieker/gui/common/model/DataModel.java @@ -27,7 +27,7 @@ import kieker.common.record.misc.KiekerMetadataRecord; import kieker.gui.common.domain.AggregatedExecution; import kieker.gui.common.domain.Execution; import kieker.gui.common.domain.Record; -import kieker.gui.common.importer.ImportAnalysisConfiguration; +import kieker.gui.common.model.importer.ImportAnalysisConfiguration; import teetime.framework.Analysis; /** diff --git a/src/main/java/kieker/gui/common/importer/ImportAnalysisConfiguration.java b/src/main/java/kieker/gui/common/model/importer/ImportAnalysisConfiguration.java similarity index 93% rename from src/main/java/kieker/gui/common/importer/ImportAnalysisConfiguration.java rename to src/main/java/kieker/gui/common/model/importer/ImportAnalysisConfiguration.java index 92e0aa22..35f0a668 100644 --- a/src/main/java/kieker/gui/common/importer/ImportAnalysisConfiguration.java +++ b/src/main/java/kieker/gui/common/model/importer/ImportAnalysisConfiguration.java @@ -14,7 +14,7 @@ * limitations under the License. ***************************************************************************/ -package kieker.gui.common.importer; +package kieker.gui.common.model.importer; import java.io.File; import java.util.List; @@ -26,13 +26,13 @@ import kieker.common.record.misc.KiekerMetadataRecord; import kieker.gui.common.domain.AggregatedExecution; import kieker.gui.common.domain.Execution; import kieker.gui.common.domain.Record; -import kieker.gui.common.importer.stages.FailedAggregatedTraceFilter; -import kieker.gui.common.importer.stages.FailedTraceFilter; -import kieker.gui.common.importer.stages.FailureContainingAggregatedTraceFilter; -import kieker.gui.common.importer.stages.FailureContainingTraceFilter; -import kieker.gui.common.importer.stages.RecordSimplificator; -import kieker.gui.common.importer.stages.TraceAggregator; -import kieker.gui.common.importer.stages.TraceReconstructor; +import kieker.gui.common.model.importer.stages.FailedAggregatedTraceFilter; +import kieker.gui.common.model.importer.stages.FailedTraceFilter; +import kieker.gui.common.model.importer.stages.FailureContainingAggregatedTraceFilter; +import kieker.gui.common.model.importer.stages.FailureContainingTraceFilter; +import kieker.gui.common.model.importer.stages.RecordSimplificator; +import kieker.gui.common.model.importer.stages.TraceAggregator; +import kieker.gui.common.model.importer.stages.TraceReconstructor; import teetime.framework.AnalysisConfiguration; import teetime.framework.pipe.IPipeFactory; import teetime.framework.pipe.PipeFactoryRegistry.PipeOrdering; diff --git a/src/main/java/kieker/gui/common/importer/stages/FailedAggregatedTraceFilter.java b/src/main/java/kieker/gui/common/model/importer/stages/FailedAggregatedTraceFilter.java similarity index 96% rename from src/main/java/kieker/gui/common/importer/stages/FailedAggregatedTraceFilter.java rename to src/main/java/kieker/gui/common/model/importer/stages/FailedAggregatedTraceFilter.java index c8958943..f02d0976 100644 --- a/src/main/java/kieker/gui/common/importer/stages/FailedAggregatedTraceFilter.java +++ b/src/main/java/kieker/gui/common/model/importer/stages/FailedAggregatedTraceFilter.java @@ -14,7 +14,7 @@ * limitations under the License. ***************************************************************************/ -package kieker.gui.common.importer.stages; +package kieker.gui.common.model.importer.stages; import kieker.gui.common.domain.AggregatedExecution; import teetime.framework.AbstractConsumerStage; diff --git a/src/main/java/kieker/gui/common/importer/stages/FailedTraceFilter.java b/src/main/java/kieker/gui/common/model/importer/stages/FailedTraceFilter.java similarity index 96% rename from src/main/java/kieker/gui/common/importer/stages/FailedTraceFilter.java rename to src/main/java/kieker/gui/common/model/importer/stages/FailedTraceFilter.java index a4039182..11e3d189 100644 --- a/src/main/java/kieker/gui/common/importer/stages/FailedTraceFilter.java +++ b/src/main/java/kieker/gui/common/model/importer/stages/FailedTraceFilter.java @@ -14,7 +14,7 @@ * limitations under the License. ***************************************************************************/ -package kieker.gui.common.importer.stages; +package kieker.gui.common.model.importer.stages; import kieker.gui.common.domain.Execution; import teetime.framework.AbstractConsumerStage; diff --git a/src/main/java/kieker/gui/common/importer/stages/FailureContainingAggregatedTraceFilter.java b/src/main/java/kieker/gui/common/model/importer/stages/FailureContainingAggregatedTraceFilter.java similarity index 96% rename from src/main/java/kieker/gui/common/importer/stages/FailureContainingAggregatedTraceFilter.java rename to src/main/java/kieker/gui/common/model/importer/stages/FailureContainingAggregatedTraceFilter.java index 352d4cb2..9bdf7959 100644 --- a/src/main/java/kieker/gui/common/importer/stages/FailureContainingAggregatedTraceFilter.java +++ b/src/main/java/kieker/gui/common/model/importer/stages/FailureContainingAggregatedTraceFilter.java @@ -14,7 +14,7 @@ * limitations under the License. ***************************************************************************/ -package kieker.gui.common.importer.stages; +package kieker.gui.common.model.importer.stages; import kieker.gui.common.domain.AggregatedExecution; import teetime.framework.AbstractConsumerStage; diff --git a/src/main/java/kieker/gui/common/importer/stages/FailureContainingTraceFilter.java b/src/main/java/kieker/gui/common/model/importer/stages/FailureContainingTraceFilter.java similarity index 96% rename from src/main/java/kieker/gui/common/importer/stages/FailureContainingTraceFilter.java rename to src/main/java/kieker/gui/common/model/importer/stages/FailureContainingTraceFilter.java index 6ce1c1be..5b71e3f3 100644 --- a/src/main/java/kieker/gui/common/importer/stages/FailureContainingTraceFilter.java +++ b/src/main/java/kieker/gui/common/model/importer/stages/FailureContainingTraceFilter.java @@ -14,7 +14,7 @@ * limitations under the License. ***************************************************************************/ -package kieker.gui.common.importer.stages; +package kieker.gui.common.model.importer.stages; import kieker.gui.common.domain.Execution; import teetime.framework.AbstractConsumerStage; diff --git a/src/main/java/kieker/gui/common/importer/stages/RecordSimplificator.java b/src/main/java/kieker/gui/common/model/importer/stages/RecordSimplificator.java similarity index 97% rename from src/main/java/kieker/gui/common/importer/stages/RecordSimplificator.java rename to src/main/java/kieker/gui/common/model/importer/stages/RecordSimplificator.java index 8a455e86..644a82c5 100644 --- a/src/main/java/kieker/gui/common/importer/stages/RecordSimplificator.java +++ b/src/main/java/kieker/gui/common/model/importer/stages/RecordSimplificator.java @@ -14,7 +14,7 @@ * limitations under the License. ***************************************************************************/ -package kieker.gui.common.importer.stages; +package kieker.gui.common.model.importer.stages; import kieker.common.record.IMonitoringRecord; import kieker.gui.common.domain.Record; diff --git a/src/main/java/kieker/gui/common/importer/stages/TraceAggregator.java b/src/main/java/kieker/gui/common/model/importer/stages/TraceAggregator.java similarity index 97% rename from src/main/java/kieker/gui/common/importer/stages/TraceAggregator.java rename to src/main/java/kieker/gui/common/model/importer/stages/TraceAggregator.java index 15f94627..652e56a3 100644 --- a/src/main/java/kieker/gui/common/importer/stages/TraceAggregator.java +++ b/src/main/java/kieker/gui/common/model/importer/stages/TraceAggregator.java @@ -14,7 +14,7 @@ * limitations under the License. ***************************************************************************/ -package kieker.gui.common.importer.stages; +package kieker.gui.common.model.importer.stages; import java.util.HashMap; import java.util.Map; diff --git a/src/main/java/kieker/gui/common/importer/stages/TraceReconstructor.java b/src/main/java/kieker/gui/common/model/importer/stages/TraceReconstructor.java similarity index 98% rename from src/main/java/kieker/gui/common/importer/stages/TraceReconstructor.java rename to src/main/java/kieker/gui/common/model/importer/stages/TraceReconstructor.java index b2c1a5a7..7bb687b9 100644 --- a/src/main/java/kieker/gui/common/importer/stages/TraceReconstructor.java +++ b/src/main/java/kieker/gui/common/model/importer/stages/TraceReconstructor.java @@ -14,7 +14,7 @@ * limitations under the License. ***************************************************************************/ -package kieker.gui.common.importer.stages; +package kieker.gui.common.model.importer.stages; import java.util.Deque; import java.util.HashMap; diff --git a/src/main/java/kieker/gui/mainview/Controller.java b/src/main/java/kieker/gui/mainview/Controller.java index 0026df57..c279e1ba 100644 --- a/src/main/java/kieker/gui/mainview/Controller.java +++ b/src/main/java/kieker/gui/mainview/Controller.java @@ -23,6 +23,8 @@ import kieker.gui.common.model.DataModel; import kieker.gui.common.model.PropertiesModel; import kieker.gui.subview.ISubController; import kieker.gui.subview.ISubView; +import kieker.gui.subview.aggregatedtraces.Controller.Filter; +import kieker.gui.subview.traces.Controller.Type; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.events.SelectionListener; @@ -47,12 +49,12 @@ public final class Controller implements SelectionListener { // Create the sub-controllers final ISubController subViewController1 = new kieker.gui.subview.records.Controller(this.dataModel); - final ISubController subViewController2 = new kieker.gui.subview.aggregatedtraces.Controller(this.dataModel, this.propertiesModel); - final ISubController subViewController3 = new kieker.gui.subview.traces.FailedController(this.dataModel, this.propertiesModel); - final ISubController subViewController4 = new kieker.gui.subview.traces.Controller(this.dataModel, this.propertiesModel); - final ISubController subViewController5 = new kieker.gui.subview.traces.FailureController(this.dataModel, this.propertiesModel); - final ISubController subViewController6 = new kieker.gui.subview.aggregatedtraces.FailedController(this.dataModel, this.propertiesModel); - final ISubController subViewController7 = new kieker.gui.subview.aggregatedtraces.FailureController(this.dataModel, this.propertiesModel); + final ISubController subViewController2 = new kieker.gui.subview.aggregatedtraces.Controller(Filter.NONE, this.dataModel, this.propertiesModel); + final ISubController subViewController3 = new kieker.gui.subview.traces.Controller(Type.JUST_FAILED_TRACES, this.dataModel, this.propertiesModel); + final ISubController subViewController4 = new kieker.gui.subview.traces.Controller(Type.NONE, this.dataModel, this.propertiesModel); + final ISubController subViewController5 = new kieker.gui.subview.traces.Controller(Type.JUST_FAILURE_CONTAINING_TRACES, this.dataModel, this.propertiesModel); + final ISubController subViewController6 = new kieker.gui.subview.aggregatedtraces.Controller(Filter.JUST_FAILED_TRACES, this.dataModel, this.propertiesModel); + final ISubController subViewController7 = new kieker.gui.subview.aggregatedtraces.Controller(Filter.JUST_FAILURE_CONTAINING_TRACES, this.dataModel, this.propertiesModel); // Get the sub-views from the controllers final Map<String, ISubView> subViews = new HashMap<>(); diff --git a/src/main/java/kieker/gui/mainview/Model.java b/src/main/java/kieker/gui/mainview/Model.java index a3d5a348..bd5bdcee 100644 --- a/src/main/java/kieker/gui/mainview/Model.java +++ b/src/main/java/kieker/gui/mainview/Model.java @@ -18,9 +18,14 @@ package kieker.gui.mainview; import java.util.Observable; +/** + * The model of the main view. + * + * @author Nils Christian Ehmke + */ public final class Model extends Observable { - private String currentActiveSubViewKey = ""; + private String currentActiveSubViewKey; 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 13e09a6e..9e4ba0a2 100644 --- a/src/main/java/kieker/gui/mainview/View.java +++ b/src/main/java/kieker/gui/mainview/View.java @@ -36,7 +36,12 @@ import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.Tree; import org.eclipse.swt.widgets.TreeItem; -public class View implements Observer { +/** + * The main view of the application. For the most part it uses sub-views to show data. + * + * @author Nils Christian Ehmke + */ +public final class View implements Observer { private final DataModel dataModel; private final Model mainViewModel; @@ -46,20 +51,22 @@ public class View implements Observer { private Shell shell; private Composite subViewComposite; private StackLayout subViewLayout; - private Tree tree; - private TreeItem trtmExplorer; - private TreeItem trtmRecords; - private TreeItem trtmTraces; + + private DirectoryDialog dialog; + private MenuItem mntmExit; private MenuItem mntmShortOperationNames; private MenuItem mntmLongOperationNames; private MenuItem mntmShortComponentNames; private MenuItem mntmLongComponentNames; private MenuItem mntmOpenMonitoringLog; - private DirectoryDialog dialog; + + private Tree tree; + private TreeItem trtmExplorer; + private TreeItem trtmRecords; + private TreeItem trtmTraces; private TreeItem trtmAggregatedTraces; private TreeItem trtmJustFailedTraces; - private TreeItem trtmJustTracesContaining; private TreeItem trtmJustFailedAggTraces; private TreeItem trtmJustAggTracesContaining; diff --git a/src/main/java/kieker/gui/subview/ISubController.java b/src/main/java/kieker/gui/subview/ISubController.java index f5d51194..a59d5b16 100644 --- a/src/main/java/kieker/gui/subview/ISubController.java +++ b/src/main/java/kieker/gui/subview/ISubController.java @@ -16,7 +16,6 @@ package kieker.gui.subview; - /** * A commons interface for all sub-controllers to reduce dependencies. * diff --git a/src/main/java/kieker/gui/subview/ISubView.java b/src/main/java/kieker/gui/subview/ISubView.java index f3962248..982b393b 100644 --- a/src/main/java/kieker/gui/subview/ISubView.java +++ b/src/main/java/kieker/gui/subview/ISubView.java @@ -18,6 +18,11 @@ package kieker.gui.subview; import org.eclipse.swt.widgets.Composite; +/** + * An interface for classes representing sub-views within the main view. + * + * @author Nils Christian Ehmke + */ public interface ISubView { public void createComposite(final Composite parent); diff --git a/src/main/java/kieker/gui/subview/aggregatedtraces/AbstractController.java b/src/main/java/kieker/gui/subview/aggregatedtraces/AbstractController.java deleted file mode 100644 index cd0eab52..00000000 --- a/src/main/java/kieker/gui/subview/aggregatedtraces/AbstractController.java +++ /dev/null @@ -1,42 +0,0 @@ -package kieker.gui.subview.aggregatedtraces; - -import kieker.gui.common.domain.AggregatedExecution; -import kieker.gui.common.model.DataModel; -import kieker.gui.common.model.PropertiesModel; -import kieker.gui.subview.ISubController; -import kieker.gui.subview.ISubView; -import kieker.gui.subview.util.IModel; - -import org.eclipse.swt.events.SelectionEvent; -import org.eclipse.swt.events.SelectionListener; - -public abstract class AbstractController implements ISubController, SelectionListener { - - private final ISubView view; - private final Model model; - - public AbstractController(final DataModel dataModel, final PropertiesModel propertiesModel) { - final IModel<AggregatedExecution> modelProxy = this.createModelProxy(dataModel); - this.model = new Model(); - - this.view = new View(modelProxy, this.model, propertiesModel, this); - } - - @Override - public ISubView getView() { - return this.view; - } - - @Override - public void widgetSelected(final SelectionEvent e) { - if (e.item.getData() instanceof AggregatedExecution) { - this.model.setCurrentActiveTrace((AggregatedExecution) e.item.getData()); - } - } - - @Override - public void widgetDefaultSelected(final SelectionEvent e) {} - - protected abstract IModel<AggregatedExecution> createModelProxy(final DataModel dataModel); - -} diff --git a/src/main/java/kieker/gui/subview/aggregatedtraces/Controller.java b/src/main/java/kieker/gui/subview/aggregatedtraces/Controller.java index 8a0f312f..7a60deae 100644 --- a/src/main/java/kieker/gui/subview/aggregatedtraces/Controller.java +++ b/src/main/java/kieker/gui/subview/aggregatedtraces/Controller.java @@ -1,19 +1,3 @@ -/*************************************************************************** - * 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.subview.aggregatedtraces; import java.util.List; @@ -21,33 +5,58 @@ import java.util.List; import kieker.gui.common.domain.AggregatedExecution; import kieker.gui.common.model.DataModel; import kieker.gui.common.model.PropertiesModel; +import kieker.gui.subview.ISubController; +import kieker.gui.subview.ISubView; import kieker.gui.subview.util.AbstractDataModelProxy; import kieker.gui.subview.util.IModel; import org.eclipse.swt.events.SelectionEvent; +import org.eclipse.swt.events.SelectionListener; + +public class Controller implements ISubController, SelectionListener { + + private final ISubView view; + private final Model model; -/** - * The sub-controller responsible for the sub-view presenting the available aggregated traces. - * - * @author Nils Christian Ehmke - */ -public final class Controller extends AbstractController { + public Controller(final Filter filter, final DataModel dataModel, final PropertiesModel propertiesModel) { + final IModel<AggregatedExecution> modelProxy = createModelProxy(dataModel, filter); + this.model = new Model(); - public Controller(final DataModel dataModel, final PropertiesModel propertiesModel) { - super(dataModel, propertiesModel); + this.view = new View(modelProxy, this.model, propertiesModel, this); } @Override - protected IModel<AggregatedExecution> createModelProxy(final DataModel dataModel) { - return new ModelProxy(dataModel); + public ISubView getView() { + return this.view; + } + + @Override + public void widgetSelected(final SelectionEvent e) { + if (e.item.getData() instanceof AggregatedExecution) { + this.model.setCurrentActiveTrace((AggregatedExecution) e.item.getData()); + } } @Override public void widgetDefaultSelected(final SelectionEvent e) {} - private final class ModelProxy extends AbstractDataModelProxy<AggregatedExecution> { + private static IModel<AggregatedExecution> createModelProxy(final DataModel dataModel, final Filter filter) { + if (filter == Filter.JUST_FAILED_TRACES) { + return new FailedTracesModelProxy(dataModel); + } + if (filter == Filter.JUST_FAILURE_CONTAINING_TRACES) { + return new FailureContainingTracesModelProxy(dataModel); + } + return new TracesModelProxy(dataModel); + } + + public enum Filter { + NONE, JUST_FAILED_TRACES, JUST_FAILURE_CONTAINING_TRACES + } + + private static final class TracesModelProxy extends AbstractDataModelProxy<AggregatedExecution> { - private ModelProxy(final DataModel dataModel) { + private TracesModelProxy(final DataModel dataModel) { super(dataModel); } @@ -58,4 +67,30 @@ public final class Controller extends AbstractController { } + private static final class FailedTracesModelProxy extends AbstractDataModelProxy<AggregatedExecution> { + + private FailedTracesModelProxy(final DataModel dataModel) { + super(dataModel); + } + + @Override + public List<AggregatedExecution> getContent() { + return super.dataModel.getFailedAggregatedTracesCopy(); + } + + } + + private static final class FailureContainingTracesModelProxy extends AbstractDataModelProxy<AggregatedExecution> { + + private FailureContainingTracesModelProxy(final DataModel dataModel) { + super(dataModel); + } + + @Override + public List<AggregatedExecution> getContent() { + return super.dataModel.getFailureContainingAggregatedTracesCopy(); + } + + } + } diff --git a/src/main/java/kieker/gui/subview/aggregatedtraces/FailedController.java b/src/main/java/kieker/gui/subview/aggregatedtraces/FailedController.java deleted file mode 100644 index 2f55b7e6..00000000 --- a/src/main/java/kieker/gui/subview/aggregatedtraces/FailedController.java +++ /dev/null @@ -1,56 +0,0 @@ -/*************************************************************************** - * 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.subview.aggregatedtraces; - -import java.util.List; - -import kieker.gui.common.domain.AggregatedExecution; -import kieker.gui.common.model.DataModel; -import kieker.gui.common.model.PropertiesModel; -import kieker.gui.subview.util.AbstractDataModelProxy; -import kieker.gui.subview.util.IModel; - -/** - * The sub-controller responsible for the sub-view presenting the available aggregated traces. - * - * @author Nils Christian Ehmke - */ -public final class FailedController extends AbstractController { - - public FailedController(final DataModel dataModel, final PropertiesModel propertiesModel) { - super(dataModel, propertiesModel); - } - - @Override - protected IModel<AggregatedExecution> createModelProxy(final DataModel dataModel) { - return new ModelProxy(dataModel); - } - - private final class ModelProxy extends AbstractDataModelProxy<AggregatedExecution> { - - private ModelProxy(final DataModel dataModel) { - super(dataModel); - } - - @Override - public List<AggregatedExecution> getContent() { - return super.dataModel.getFailedAggregatedTracesCopy(); - } - - } - -} diff --git a/src/main/java/kieker/gui/subview/aggregatedtraces/FailureController.java b/src/main/java/kieker/gui/subview/aggregatedtraces/FailureController.java deleted file mode 100644 index d4effffa..00000000 --- a/src/main/java/kieker/gui/subview/aggregatedtraces/FailureController.java +++ /dev/null @@ -1,56 +0,0 @@ -/*************************************************************************** - * 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.subview.aggregatedtraces; - -import java.util.List; - -import kieker.gui.common.domain.AggregatedExecution; -import kieker.gui.common.model.DataModel; -import kieker.gui.common.model.PropertiesModel; -import kieker.gui.subview.util.AbstractDataModelProxy; -import kieker.gui.subview.util.IModel; - -/** - * The sub-controller responsible for the sub-view presenting the available aggregated traces. - * - * @author Nils Christian Ehmke - */ -public final class FailureController extends AbstractController { - - public FailureController(final DataModel dataModel, final PropertiesModel propertiesModel) { - super(dataModel, propertiesModel); - } - - @Override - protected IModel<AggregatedExecution> createModelProxy(final DataModel dataModel) { - return new ModelProxy(dataModel); - } - - private final class ModelProxy extends AbstractDataModelProxy<AggregatedExecution> { - - private ModelProxy(final DataModel dataModel) { - super(dataModel); - } - - @Override - public List<AggregatedExecution> getContent() { - return super.dataModel.getFailureContainingAggregatedTracesCopy(); - } - - } - -} diff --git a/src/main/java/kieker/gui/subview/traces/AbstractController.java b/src/main/java/kieker/gui/subview/traces/AbstractController.java deleted file mode 100644 index be95a30a..00000000 --- a/src/main/java/kieker/gui/subview/traces/AbstractController.java +++ /dev/null @@ -1,42 +0,0 @@ -package kieker.gui.subview.traces; - -import kieker.gui.common.domain.Execution; -import kieker.gui.common.model.DataModel; -import kieker.gui.common.model.PropertiesModel; -import kieker.gui.subview.ISubController; -import kieker.gui.subview.ISubView; -import kieker.gui.subview.util.IModel; - -import org.eclipse.swt.events.SelectionEvent; -import org.eclipse.swt.events.SelectionListener; - -public abstract class AbstractController implements ISubController, SelectionListener { - - private final ISubView view; - private final Model model; - - public AbstractController(final DataModel dataModel, final PropertiesModel propertiesModel) { - final IModel<Execution> modelProxy = this.createModelProxy(dataModel); - this.model = new Model(); - - this.view = new View(modelProxy, this.model, propertiesModel, this); - } - - @Override - public ISubView getView() { - return this.view; - } - - @Override - public void widgetSelected(final SelectionEvent e) { - if (e.item.getData() instanceof Execution) { - this.model.setCurrentActiveTrace((Execution) e.item.getData()); - } - } - - @Override - public void widgetDefaultSelected(final SelectionEvent e) {} - - protected abstract IModel<Execution> createModelProxy(final DataModel dataModel); - -} diff --git a/src/main/java/kieker/gui/subview/traces/Controller.java b/src/main/java/kieker/gui/subview/traces/Controller.java index 6c6b76ba..022e275f 100644 --- a/src/main/java/kieker/gui/subview/traces/Controller.java +++ b/src/main/java/kieker/gui/subview/traces/Controller.java @@ -21,28 +21,63 @@ import java.util.List; import kieker.gui.common.domain.Execution; import kieker.gui.common.model.DataModel; import kieker.gui.common.model.PropertiesModel; +import kieker.gui.subview.ISubController; +import kieker.gui.subview.ISubView; import kieker.gui.subview.util.AbstractDataModelProxy; import kieker.gui.subview.util.IModel; +import org.eclipse.swt.events.SelectionEvent; +import org.eclipse.swt.events.SelectionListener; + /** * The sub-controller responsible for the sub-view presenting the available traces. * * @author Nils Christian Ehmke */ -public final class Controller extends AbstractController { +public final class Controller implements ISubController, SelectionListener { + + private final ISubView view; + private final Model model; + + public Controller(final Type filter, final DataModel dataModel, final PropertiesModel propertiesModel) { + final IModel<Execution> modelProxy = createModelProxy(dataModel, filter); + this.model = new Model(); + + this.view = new View(modelProxy, this.model, propertiesModel, this); + } - public Controller(final DataModel dataModel, final PropertiesModel propertiesModel) { - super(dataModel, propertiesModel); + @Override + public ISubView getView() { + return this.view; + } + + @Override + public void widgetSelected(final SelectionEvent e) { + if (e.item.getData() instanceof Execution) { + this.model.setCurrentActiveTrace((Execution) e.item.getData()); + } } @Override - protected IModel<Execution> createModelProxy(final DataModel dataModel) { - return new ModelProxy(dataModel); + public void widgetDefaultSelected(final SelectionEvent e) {} + + private static IModel<Execution> createModelProxy(final DataModel dataModel, final Type filter) { + if (filter == Type.JUST_FAILED_TRACES) { + return new FailedTracesModelProxy(dataModel); + } + if (filter == Type.JUST_FAILURE_CONTAINING_TRACES) { + return new FailureContainingTracesModelProxy(dataModel); + } + return new TracesModelProxy(dataModel); } - private final class ModelProxy extends AbstractDataModelProxy<Execution> { + public enum Type { + NONE, JUST_FAILED_TRACES, JUST_FAILURE_CONTAINING_TRACES + } - private ModelProxy(final DataModel dataModel) { + private static final class TracesModelProxy extends AbstractDataModelProxy<Execution> { + + private TracesModelProxy(final DataModel dataModel) { super(dataModel); } @@ -53,4 +88,30 @@ public final class Controller extends AbstractController { } + private static final class FailedTracesModelProxy extends AbstractDataModelProxy<Execution> { + + private FailedTracesModelProxy(final DataModel dataModel) { + super(dataModel); + } + + @Override + public List<Execution> getContent() { + return super.dataModel.getFailedTracesCopy(); + } + + } + + private static final class FailureContainingTracesModelProxy extends AbstractDataModelProxy<Execution> { + + private FailureContainingTracesModelProxy(final DataModel dataModel) { + super(dataModel); + } + + @Override + public List<Execution> getContent() { + return super.dataModel.getFailureContainingTracesCopy(); + } + + } + } diff --git a/src/main/java/kieker/gui/subview/traces/FailedController.java b/src/main/java/kieker/gui/subview/traces/FailedController.java deleted file mode 100644 index 4bd6798c..00000000 --- a/src/main/java/kieker/gui/subview/traces/FailedController.java +++ /dev/null @@ -1,56 +0,0 @@ -/*************************************************************************** - * 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.subview.traces; - -import java.util.List; - -import kieker.gui.common.domain.Execution; -import kieker.gui.common.model.DataModel; -import kieker.gui.common.model.PropertiesModel; -import kieker.gui.subview.util.AbstractDataModelProxy; -import kieker.gui.subview.util.IModel; - -/** - * The sub-controller responsible for the sub-view presenting the available failed traces. - * - * @author Nils Christian Ehmke - */ -public final class FailedController extends AbstractController { - - public FailedController(final DataModel dataModel, final PropertiesModel propertiesModel) { - super(dataModel, propertiesModel); - } - - @Override - protected IModel<Execution> createModelProxy(final DataModel dataModel) { - return new ModelProxy(dataModel); - } - - private final class ModelProxy extends AbstractDataModelProxy<Execution> { - - private ModelProxy(final DataModel dataModel) { - super(dataModel); - } - - @Override - public List<Execution> getContent() { - return super.dataModel.getFailedTracesCopy(); - } - - } - -} diff --git a/src/main/java/kieker/gui/subview/traces/FailureController.java b/src/main/java/kieker/gui/subview/traces/FailureController.java deleted file mode 100644 index 2864ac4b..00000000 --- a/src/main/java/kieker/gui/subview/traces/FailureController.java +++ /dev/null @@ -1,56 +0,0 @@ -/*************************************************************************** - * 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.subview.traces; - -import java.util.List; - -import kieker.gui.common.domain.Execution; -import kieker.gui.common.model.DataModel; -import kieker.gui.common.model.PropertiesModel; -import kieker.gui.subview.util.AbstractDataModelProxy; -import kieker.gui.subview.util.IModel; - -/** - * The sub-controller responsible for the sub-view presenting the available failure-containing traces. - * - * @author Nils Christian Ehmke - */ -public final class FailureController extends AbstractController { - - public FailureController(final DataModel dataModel, final PropertiesModel propertiesModel) { - super(dataModel, propertiesModel); - } - - @Override - protected IModel<Execution> createModelProxy(final DataModel dataModel) { - return new ModelProxy(dataModel); - } - - private final class ModelProxy extends AbstractDataModelProxy<Execution> { - - private ModelProxy(final DataModel dataModel) { - super(dataModel); - } - - @Override - public List<Execution> getContent() { - return super.dataModel.getFailureContainingTracesCopy(); - } - - } - -} diff --git a/src/test/java/kieker/gui/common/importer/stages/RecordSimplificatorTest.java b/src/test/java/kieker/gui/common/model/importer/stages/RecordSimplificatorTest.java similarity index 93% rename from src/test/java/kieker/gui/common/importer/stages/RecordSimplificatorTest.java rename to src/test/java/kieker/gui/common/model/importer/stages/RecordSimplificatorTest.java index 3fac242a..16816888 100644 --- a/src/test/java/kieker/gui/common/importer/stages/RecordSimplificatorTest.java +++ b/src/test/java/kieker/gui/common/model/importer/stages/RecordSimplificatorTest.java @@ -1,4 +1,4 @@ -package kieker.gui.common.importer.stages; +package kieker.gui.common.model.importer.stages; import static org.hamcrest.Matchers.hasSize; import static org.hamcrest.Matchers.is; @@ -9,7 +9,7 @@ import java.util.List; import kieker.common.record.flow.trace.operation.BeforeOperationEvent; import kieker.gui.common.domain.Record; -import kieker.gui.common.importer.stages.RecordSimplificator; +import kieker.gui.common.model.importer.stages.RecordSimplificator; import org.junit.Before; import org.junit.Test; diff --git a/src/test/java/kieker/gui/common/importer/stages/TraceReconstructorTest.java b/src/test/java/kieker/gui/common/model/importer/stages/TraceReconstructorTest.java similarity index 98% rename from src/test/java/kieker/gui/common/importer/stages/TraceReconstructorTest.java rename to src/test/java/kieker/gui/common/model/importer/stages/TraceReconstructorTest.java index c344c0d5..cd3a13f9 100644 --- a/src/test/java/kieker/gui/common/importer/stages/TraceReconstructorTest.java +++ b/src/test/java/kieker/gui/common/model/importer/stages/TraceReconstructorTest.java @@ -1,4 +1,4 @@ -package kieker.gui.common.importer.stages; +package kieker.gui.common.model.importer.stages; import static org.hamcrest.Matchers.hasSize; import static org.hamcrest.Matchers.is; @@ -13,7 +13,7 @@ import kieker.common.record.flow.trace.operation.AfterOperationEvent; import kieker.common.record.flow.trace.operation.AfterOperationFailedEvent; import kieker.common.record.flow.trace.operation.BeforeOperationEvent; import kieker.gui.common.domain.Execution; -import kieker.gui.common.importer.stages.TraceReconstructor; +import kieker.gui.common.model.importer.stages.TraceReconstructor; import org.junit.Before; import org.junit.Test; -- GitLab