From b1eb18b488bc669bb00a34210bf5af880c448ede Mon Sep 17 00:00:00 2001 From: Nils Christian Ehmke <nie@informatik.uni-kiel.de> Date: Wed, 17 Dec 2014 16:35:30 +0100 Subject: [PATCH] Refactoring --- ...Model.java => AbstractDataModelProxy.java} | 4 +- .../AbstractAggregatedTracesController.java | 42 ++++++++++++++++++ ...gregatedFailedTracesSubViewController.java | 44 +++++++------------ .../AggregatedTracesSubViewController.java | 42 ++++++++---------- ...ningAggregatedTracesSubViewController.java | 43 +++++++----------- .../gui/subview/records/RecordsSubView.java | 8 ++-- .../records/RecordsSubViewController.java | 21 ++++++++- .../traces/FailedTracesSubViewController.java | 4 +- ...lureContainingTracesSubViewController.java | 4 +- .../traces/TracesSubViewController.java | 4 +- 10 files changed, 124 insertions(+), 92 deletions(-) rename src/main/java/kieker/gui/common/{AbstractProxyDataModel.java => AbstractDataModelProxy.java} (78%) create mode 100644 src/main/java/kieker/gui/subview/aggregatedtraces/AbstractAggregatedTracesController.java 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 73185a11..cbbcc5b3 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 00000000..41f5a7ca --- /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 56f6a417..4dc1e290 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 6a1e55a8..a4300265 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 5ca5406b..6f052238 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 f8ff2535..5c6ce782 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 a9664392..8181f620 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 befa9cf5..c9c2e731 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 09d08d1e..d336021f 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 ed8d6b7e..299f97d3 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() { -- GitLab