diff --git a/src/main/java/kieker/gui/Main.java b/src/main/java/kieker/gui/Main.java index 48048b687e969a295790f9bab327581af1b20112..3600738d11f59f99d05dba3ab00138a4499681b9 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 152c4cabfa15def3ce12a9266c6d154a4a65dc86..770c7356f56fbac45a9f9b0909e055d00acd67db 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 92e0aa22ecca09479d205ed21b54f5074ba97f92..35f0a6686975ae5b7ad0ceae0ef118ba6b01bb97 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 c8958943fb418cfd2997cbfcacd55a2bef7dd047..f02d0976ab59f850a637c69e6d61406ce493cb57 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 a40391829fbd444b6b44ffd49aa7574998d20612..11e3d189727622906d2d6708d58ac50752eef002 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 352d4cb2c3b0686876da55f834bc2c1521b2df16..9bdf795935fdfb1ced5229e57e30cc3abe002ec6 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 6ce1c1beac0397836a48a243458006623c4faaf3..5b71e3f3bf3cf9fcfef02b81d264050d9908e122 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 8a455e8667aa337e2c563afcd65a10f58f04e882..644a82c5cb149b2b52b1f587ad7db50c79d4fae8 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 15f9462743705f1e607b763e71ce230b7907d73b..652e56a385542660abaa72afd34e2cc91f0e8401 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 b2c1a5a7f3e54f4cfcc024b8b13512741ead54cc..7bb687b931201757d08127de972cbc4d16f945a6 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 0026df57effe5b28a298f771e0ba60b8509f712a..c279e1bae8be304b5cfe4b94c46c27b364709cd6 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 a3d5a3485d599cc111ee5e580aae2d41bf0142a1..bd5bdceea18d5c46836d252df2ceffcf4c44c557 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 13e09a6e489160ee4544dfcfdad33a23562e9538..9e4ba0a2efc3c2ba603d5c82809d179a51c9705a 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 f5d511940fc346221d09b7b614c34f040a1d1e5f..a59d5b16579e17cd7f68f7c3266f25275c7a5789 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 f396224881340f4d06bc7b905c7b034648932e75..982b393beab0a334c4dfa68685666fe7040aab50 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 cd0eab526e4848ed1244fde2976c414fc5e0fa33..0000000000000000000000000000000000000000 --- 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 8a0f312f92cba519a5fec2a3b788d7ac8acd2d17..7a60deae0ee4255eac41f12a2fdef64d8eaad98e 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 2f55b7e6aba0632811d1b6430f7fe623ced92060..0000000000000000000000000000000000000000 --- 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 d4effffa9e8e09cb62bcc64ae10b0bee10b5c06c..0000000000000000000000000000000000000000 --- 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 be95a30a39d11edd7237867cd1fbf3e18050d199..0000000000000000000000000000000000000000 --- 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 6c6b76ba359b5e5ffd0f441e193e6ab3f396d251..022e275f67fc7ec10146231517bdb66b7bda2711 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 4bd6798c050dc2173171ddc7e1226fa8478f25be..0000000000000000000000000000000000000000 --- 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 2864ac4b1b96381815169c8c1c436a64c26a802e..0000000000000000000000000000000000000000 --- 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 3fac242aa3db57047cbbf57e945555d56979a71a..168168886a070651b5f2ae63ad4f313da9d86981 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 c344c0d5f0e9bf406021e17c4fb877676aee950f..cd3a13f97d5aaba8d032e454203a1d223cac4c19 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;