diff --git a/src/main/java/kieker/gui/common/AbstractProxyDataModel.java b/src/main/java/kieker/gui/common/AbstractDataModelProxy.java similarity index 78% rename from src/main/java/kieker/gui/common/AbstractProxyDataModel.java rename to src/main/java/kieker/gui/common/AbstractDataModelProxy.java index 73185a1142befbc5832e61429605822fc0299c7b..cbbcc5b32e43fbfc0d9ad1c5b4009a240e70907e 100644 --- a/src/main/java/kieker/gui/common/AbstractProxyDataModel.java +++ b/src/main/java/kieker/gui/common/AbstractDataModelProxy.java @@ -3,11 +3,11 @@ package kieker.gui.common; import java.util.Observable; import java.util.Observer; -public abstract class AbstractProxyDataModel<T> extends Observable implements IModel<T>, Observer { +public abstract class AbstractDataModelProxy<T> extends Observable implements IModel<T>, Observer { protected final DataModel dataModel; - public AbstractProxyDataModel(final DataModel dataModel) { + public AbstractDataModelProxy(final DataModel dataModel) { this.dataModel = dataModel; this.dataModel.addObserver(this); } diff --git a/src/main/java/kieker/gui/subview/aggregatedtraces/AbstractAggregatedTracesController.java b/src/main/java/kieker/gui/subview/aggregatedtraces/AbstractAggregatedTracesController.java new file mode 100644 index 0000000000000000000000000000000000000000..41f5a7ca16f13e863dc14f11a83feb00eb5de424 --- /dev/null +++ b/src/main/java/kieker/gui/subview/aggregatedtraces/AbstractAggregatedTracesController.java @@ -0,0 +1,42 @@ +package kieker.gui.subview.aggregatedtraces; + +import kieker.gui.common.DataModel; +import kieker.gui.common.IModel; +import kieker.gui.common.ISubController; +import kieker.gui.common.ISubView; +import kieker.gui.common.PropertiesModel; +import kieker.gui.common.domain.AggregatedExecution; + +import org.eclipse.swt.events.SelectionEvent; +import org.eclipse.swt.events.SelectionListener; + +public abstract class AbstractAggregatedTracesController implements ISubController, SelectionListener { + + private final ISubView view; + private final AggregatedTracesSubViewModel model; + + public AbstractAggregatedTracesController(final DataModel dataModel, final PropertiesModel propertiesModel) { + final IModel<AggregatedExecution> modelProxy = this.createModelProxy(dataModel); + this.model = new AggregatedTracesSubViewModel(); + + this.view = new AggregatedTracesSubView(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/AggregatedFailedTracesSubViewController.java b/src/main/java/kieker/gui/subview/aggregatedtraces/AggregatedFailedTracesSubViewController.java index 56f6a417668b6d28029ab5e357798936c51202f1..4dc1e290c9c8af91a104df587b27ad9c468a73ff 100644 --- a/src/main/java/kieker/gui/subview/aggregatedtraces/AggregatedFailedTracesSubViewController.java +++ b/src/main/java/kieker/gui/subview/aggregatedtraces/AggregatedFailedTracesSubViewController.java @@ -18,51 +18,39 @@ package kieker.gui.subview.aggregatedtraces; import java.util.List; -import kieker.gui.common.AbstractProxyDataModel; +import kieker.gui.common.AbstractDataModelProxy; import kieker.gui.common.DataModel; -import kieker.gui.common.ISubController; -import kieker.gui.common.ISubView; +import kieker.gui.common.IModel; import kieker.gui.common.PropertiesModel; import kieker.gui.common.domain.AggregatedExecution; -import org.eclipse.swt.events.SelectionEvent; -import org.eclipse.swt.events.SelectionListener; - /** * The sub-controller responsible for the sub-view presenting the available aggregated traces. * * @author Nils Christian Ehmke */ -public final class AggregatedFailedTracesSubViewController implements SelectionListener, ISubController { - - private final ISubView view; - private final AggregatedTracesSubViewModel model; +public final class AggregatedFailedTracesSubViewController extends AbstractAggregatedTracesController { public AggregatedFailedTracesSubViewController(final DataModel dataModel, final PropertiesModel propertiesModel) { - this.model = new AggregatedTracesSubViewModel(); - this.view = new AggregatedTracesSubView(new AbstractProxyDataModel<AggregatedExecution>(dataModel) { - - @Override - public List<AggregatedExecution> getContent() { - return super.dataModel.getFailedAggregatedTracesCopy(); - } - - }, this.model, propertiesModel, this); + super(dataModel, propertiesModel); } @Override - public ISubView getView() { - return this.view; + protected IModel<AggregatedExecution> createModelProxy(final DataModel dataModel) { + return new ModelProxy(dataModel); } - @Override - public void widgetSelected(final SelectionEvent e) { - if (e.item.getData() instanceof AggregatedExecution) { - this.model.setCurrentActiveTrace((AggregatedExecution) e.item.getData()); + private final class ModelProxy extends AbstractDataModelProxy<AggregatedExecution> { + + private ModelProxy(final DataModel dataModel) { + super(dataModel); } - } - @Override - public void widgetDefaultSelected(final SelectionEvent e) {} + @Override + public List<AggregatedExecution> getContent() { + return super.dataModel.getFailedAggregatedTracesCopy(); + } + + } } diff --git a/src/main/java/kieker/gui/subview/aggregatedtraces/AggregatedTracesSubViewController.java b/src/main/java/kieker/gui/subview/aggregatedtraces/AggregatedTracesSubViewController.java index 6a1e55a85e5d59f5a3478c5d8c9baf8303acaa12..a430026506406c3af3c68a3f8c7fb415954c6ed3 100644 --- a/src/main/java/kieker/gui/subview/aggregatedtraces/AggregatedTracesSubViewController.java +++ b/src/main/java/kieker/gui/subview/aggregatedtraces/AggregatedTracesSubViewController.java @@ -18,50 +18,44 @@ package kieker.gui.subview.aggregatedtraces; import java.util.List; -import kieker.gui.common.AbstractProxyDataModel; +import kieker.gui.common.AbstractDataModelProxy; import kieker.gui.common.DataModel; -import kieker.gui.common.ISubController; -import kieker.gui.common.ISubView; +import kieker.gui.common.IModel; import kieker.gui.common.PropertiesModel; import kieker.gui.common.domain.AggregatedExecution; import org.eclipse.swt.events.SelectionEvent; -import org.eclipse.swt.events.SelectionListener; /** * The sub-controller responsible for the sub-view presenting the available aggregated traces. * * @author Nils Christian Ehmke */ -public final class AggregatedTracesSubViewController implements SelectionListener, ISubController { - - private final ISubView view; - private final AggregatedTracesSubViewModel model; +public final class AggregatedTracesSubViewController extends AbstractAggregatedTracesController { public AggregatedTracesSubViewController(final DataModel dataModel, final PropertiesModel propertiesModel) { - this.model = new AggregatedTracesSubViewModel(); - this.view = new AggregatedTracesSubView(new AbstractProxyDataModel<AggregatedExecution>(dataModel) { - - @Override - public List<AggregatedExecution> getContent() { - return super.dataModel.getAggregatedTracesCopy(); - } - }, this.model, propertiesModel, this); + super(dataModel, propertiesModel); } @Override - public ISubView getView() { - return this.view; + protected IModel<AggregatedExecution> createModelProxy(final DataModel dataModel) { + return new ModelProxy(dataModel); } @Override - public void widgetSelected(final SelectionEvent e) { - if (e.item.getData() instanceof AggregatedExecution) { - this.model.setCurrentActiveTrace((AggregatedExecution) e.item.getData()); + public void widgetDefaultSelected(final SelectionEvent e) {} + + private final class ModelProxy extends AbstractDataModelProxy<AggregatedExecution> { + + private ModelProxy(final DataModel dataModel) { + super(dataModel); } - } - @Override - public void widgetDefaultSelected(final SelectionEvent e) {} + @Override + public List<AggregatedExecution> getContent() { + return super.dataModel.getAggregatedTracesCopy(); + } + + } } diff --git a/src/main/java/kieker/gui/subview/aggregatedtraces/FailureContainingAggregatedTracesSubViewController.java b/src/main/java/kieker/gui/subview/aggregatedtraces/FailureContainingAggregatedTracesSubViewController.java index 5ca5406bbc48168d1fa6a2fab1cc75f299d4c3e3..6f05223865882ebee1470306b8ccd68d60c660e4 100644 --- a/src/main/java/kieker/gui/subview/aggregatedtraces/FailureContainingAggregatedTracesSubViewController.java +++ b/src/main/java/kieker/gui/subview/aggregatedtraces/FailureContainingAggregatedTracesSubViewController.java @@ -18,50 +18,39 @@ package kieker.gui.subview.aggregatedtraces; import java.util.List; -import kieker.gui.common.AbstractProxyDataModel; +import kieker.gui.common.AbstractDataModelProxy; import kieker.gui.common.DataModel; -import kieker.gui.common.ISubController; -import kieker.gui.common.ISubView; +import kieker.gui.common.IModel; import kieker.gui.common.PropertiesModel; import kieker.gui.common.domain.AggregatedExecution; -import org.eclipse.swt.events.SelectionEvent; -import org.eclipse.swt.events.SelectionListener; - /** * The sub-controller responsible for the sub-view presenting the available aggregated traces. * * @author Nils Christian Ehmke */ -public final class FailureContainingAggregatedTracesSubViewController implements SelectionListener, ISubController { - - private final ISubView view; - private final AggregatedTracesSubViewModel model; +public final class FailureContainingAggregatedTracesSubViewController extends AbstractAggregatedTracesController { public FailureContainingAggregatedTracesSubViewController(final DataModel dataModel, final PropertiesModel propertiesModel) { - this.model = new AggregatedTracesSubViewModel(); - this.view = new AggregatedTracesSubView(new AbstractProxyDataModel<AggregatedExecution>(dataModel) { - - @Override - public List<AggregatedExecution> getContent() { - return super.dataModel.getFailureContainingAggregatedTracesCopy(); - } - }, this.model, propertiesModel, this); + super(dataModel, propertiesModel); } @Override - public ISubView getView() { - return this.view; + protected IModel<AggregatedExecution> createModelProxy(final DataModel dataModel) { + return new ModelProxy(dataModel); } - @Override - public void widgetSelected(final SelectionEvent e) { - if (e.item.getData() instanceof AggregatedExecution) { - this.model.setCurrentActiveTrace((AggregatedExecution) e.item.getData()); + private final class ModelProxy extends AbstractDataModelProxy<AggregatedExecution> { + + private ModelProxy(final DataModel dataModel) { + super(dataModel); } - } - @Override - public void widgetDefaultSelected(final SelectionEvent e) {} + @Override + public List<AggregatedExecution> getContent() { + return super.dataModel.getFailureContainingAggregatedTracesCopy(); + } + + } } diff --git a/src/main/java/kieker/gui/subview/records/RecordsSubView.java b/src/main/java/kieker/gui/subview/records/RecordsSubView.java index f8ff2535e40279117476c82d0ae967f880f7bb72..5c6ce782563cd09916c9561c92f21d4a04149fe1 100644 --- a/src/main/java/kieker/gui/subview/records/RecordsSubView.java +++ b/src/main/java/kieker/gui/subview/records/RecordsSubView.java @@ -20,7 +20,7 @@ import java.util.List; import java.util.Observable; import java.util.Observer; -import kieker.gui.common.DataModel; +import kieker.gui.common.IModel; import kieker.gui.common.ISubView; import kieker.gui.common.TableColumnSortListener; import kieker.gui.common.domain.Record; @@ -39,11 +39,11 @@ import org.eclipse.swt.widgets.TableItem; public final class RecordsSubView implements Observer, ISubView { - private final DataModel model; + private final IModel<Record> model; private Composite composite; private Table table; - public RecordsSubView(final DataModel model, final RecordsSubViewController controller) { + public RecordsSubView(final IModel<Record> model, final RecordsSubViewController controller) { this.model = model; model.addObserver(this); @@ -102,7 +102,7 @@ public final class RecordsSubView implements Observer, ISubView { } private void updateTable() { - final List<Record> records = this.model.getRecordsCopy(); + final List<Record> records = this.model.getContent(); this.table.setData(records); this.table.setItemCount(records.size()); diff --git a/src/main/java/kieker/gui/subview/records/RecordsSubViewController.java b/src/main/java/kieker/gui/subview/records/RecordsSubViewController.java index a96643928d8a68e9400605c48ee13977e048d487..8181f62071a2fa9efeb80d975f73575c752fdeff 100644 --- a/src/main/java/kieker/gui/subview/records/RecordsSubViewController.java +++ b/src/main/java/kieker/gui/subview/records/RecordsSubViewController.java @@ -16,9 +16,14 @@ package kieker.gui.subview.records; +import java.util.List; + +import kieker.gui.common.AbstractDataModelProxy; import kieker.gui.common.DataModel; +import kieker.gui.common.IModel; import kieker.gui.common.ISubController; import kieker.gui.common.ISubView; +import kieker.gui.common.domain.Record; /** * The sub-controller responsible for the sub-view presenting the available records. @@ -30,7 +35,9 @@ public final class RecordsSubViewController implements ISubController { private final ISubView view; public RecordsSubViewController(final DataModel dataModel) { - this.view = new RecordsSubView(dataModel, this); + final IModel<Record> modelProxy = new RecordsModelProxy(dataModel); + + this.view = new RecordsSubView(modelProxy, this); } @Override @@ -38,4 +45,16 @@ public final class RecordsSubViewController implements ISubController { return this.view; } + private final class RecordsModelProxy extends AbstractDataModelProxy<Record> { + + private RecordsModelProxy(final DataModel dataModel) { + super(dataModel); + } + + @Override + public List<Record> getContent() { + return super.dataModel.getRecordsCopy(); + } + } + } diff --git a/src/main/java/kieker/gui/subview/traces/FailedTracesSubViewController.java b/src/main/java/kieker/gui/subview/traces/FailedTracesSubViewController.java index befa9cf5773c5cdf86c1a5dfba70a6c91ace7d09..c9c2e731f6b0791d3699427f1b88acb1264e2183 100644 --- a/src/main/java/kieker/gui/subview/traces/FailedTracesSubViewController.java +++ b/src/main/java/kieker/gui/subview/traces/FailedTracesSubViewController.java @@ -18,7 +18,7 @@ package kieker.gui.subview.traces; import java.util.List; -import kieker.gui.common.AbstractProxyDataModel; +import kieker.gui.common.AbstractDataModelProxy; import kieker.gui.common.DataModel; import kieker.gui.common.ISubController; import kieker.gui.common.ISubView; @@ -40,7 +40,7 @@ public final class FailedTracesSubViewController implements SelectionListener, I public FailedTracesSubViewController(final DataModel dataModel, final PropertiesModel propertiesModel) { this.model = new TracesSubViewModel(); - this.view = new TracesSubView(new AbstractProxyDataModel<Execution>(dataModel) { + this.view = new TracesSubView(new AbstractDataModelProxy<Execution>(dataModel) { @Override public final List<Execution> getContent() { diff --git a/src/main/java/kieker/gui/subview/traces/FailureContainingTracesSubViewController.java b/src/main/java/kieker/gui/subview/traces/FailureContainingTracesSubViewController.java index 09d08d1e77b6ac2214c140205fc50fec874bd7c3..d336021fd31998d7e1bd4b01a50e88e4b47499ba 100644 --- a/src/main/java/kieker/gui/subview/traces/FailureContainingTracesSubViewController.java +++ b/src/main/java/kieker/gui/subview/traces/FailureContainingTracesSubViewController.java @@ -18,7 +18,7 @@ package kieker.gui.subview.traces; import java.util.List; -import kieker.gui.common.AbstractProxyDataModel; +import kieker.gui.common.AbstractDataModelProxy; import kieker.gui.common.DataModel; import kieker.gui.common.ISubController; import kieker.gui.common.ISubView; @@ -40,7 +40,7 @@ public final class FailureContainingTracesSubViewController implements Selection public FailureContainingTracesSubViewController(final DataModel dataModel, final PropertiesModel propertiesModel) { this.model = new TracesSubViewModel(); - this.view = new TracesSubView(new AbstractProxyDataModel<Execution>(dataModel) { + this.view = new TracesSubView(new AbstractDataModelProxy<Execution>(dataModel) { @Override public final List<Execution> getContent() { diff --git a/src/main/java/kieker/gui/subview/traces/TracesSubViewController.java b/src/main/java/kieker/gui/subview/traces/TracesSubViewController.java index ed8d6b7ec7543e06fe8db342db28c840b98e4585..299f97d3ba3bb9759b4251dd1e68094b61a5e339 100644 --- a/src/main/java/kieker/gui/subview/traces/TracesSubViewController.java +++ b/src/main/java/kieker/gui/subview/traces/TracesSubViewController.java @@ -18,7 +18,7 @@ package kieker.gui.subview.traces; import java.util.List; -import kieker.gui.common.AbstractProxyDataModel; +import kieker.gui.common.AbstractDataModelProxy; import kieker.gui.common.DataModel; import kieker.gui.common.ISubController; import kieker.gui.common.ISubView; @@ -40,7 +40,7 @@ public final class TracesSubViewController implements SelectionListener, ISubCon public TracesSubViewController(final DataModel dataModel, final PropertiesModel propertiesModel) { this.model = new TracesSubViewModel(); - this.view = new TracesSubView(new AbstractProxyDataModel<Execution>(dataModel) { + this.view = new TracesSubView(new AbstractDataModelProxy<Execution>(dataModel) { @Override public final List<Execution> getContent() {