mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-11-07 19:42:17 +00:00
added method to register result presenter to the retrieved data type
This commit is contained in:
1 parent
042d112f8c
commit
0a324810e5
3 files changed
+66
-46
No files matched your search
+3
-3
@@ -21,25 +21,25 @@ import org.moxieapps.gwt.highcharts.client.plotOptions.SeriesPlotOptions;
|
||||
import com.google.gwt.user.client.ui.SimpleLayoutPanel;
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.datamining.AbstractSailingResultsPresenter;
|
||||
import com.sap.sse.common.Util.Pair;
|
||||
import com.sap.sse.common.settings.Settings;
|
||||
import com.sap.sse.datamining.shared.GroupKey;
|
||||
import com.sap.sse.datamining.shared.data.PairWithStats;
|
||||
import com.sap.sse.datamining.shared.impl.CompoundGroupKey;
|
||||
import com.sap.sse.datamining.shared.impl.dto.QueryResultDTO;
|
||||
import com.sap.sse.datamining.ui.client.presentation.AbstractResultsPresenter;
|
||||
import com.sap.sse.gwt.client.shared.components.Component;
|
||||
import com.sap.sse.gwt.client.shared.components.SettingsDialogComponent;
|
||||
import com.sap.sse.gwt.client.shared.settings.ComponentContext;
|
||||
|
||||
public class NumberPairResultsPresenter extends AbstractResultsPresenter<Settings> {
|
||||
public class NumberPairResultsPresenter extends AbstractSailingResultsPresenter<Settings> {
|
||||
private QueryResultDTO<?> result;
|
||||
private final SimpleLayoutPanel chartPanel;
|
||||
private final Chart chart;
|
||||
private final Map<GroupKey, Series> seriesMappedByGroupKey;
|
||||
|
||||
public NumberPairResultsPresenter(Component<?> parent, ComponentContext<?> context, StringMessages stringMessages) {
|
||||
super(parent, context);
|
||||
super(parent, context, stringMessages);
|
||||
seriesMappedByGroupKey = new HashMap<>();
|
||||
chartPanel = new SimpleLayoutPanel() {
|
||||
@Override
|
||||
|
||||
+15
-43
@@ -1,62 +1,34 @@
|
||||
package com.sap.sailing.gwt.ui.datamining.presentation;
|
||||
|
||||
import com.sap.sailing.datamining.shared.ManeuverSpeedDetailsAggregation;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.polarmining.PolarBackendResultsPresenter;
|
||||
import com.sap.sailing.gwt.ui.polarmining.PolarResultsPresenter;
|
||||
import com.sap.sse.datamining.shared.impl.dto.QueryResultDTO;
|
||||
import com.sap.sailing.polars.datamining.shared.PolarAggregation;
|
||||
import com.sap.sailing.polars.datamining.shared.PolarBackendData;
|
||||
import com.sap.sse.datamining.shared.data.PairWithStats;
|
||||
import com.sap.sse.datamining.ui.client.presentation.AbstractTabbedResultsPresenter;
|
||||
import com.sap.sse.datamining.ui.client.presentation.MultiResultsPresenter;
|
||||
import com.sap.sse.datamining.ui.client.presentation.ResultsChart.DrillDownCallback;
|
||||
import com.sap.sse.gwt.client.shared.components.Component;
|
||||
import com.sap.sse.gwt.client.shared.settings.ComponentContext;
|
||||
|
||||
public class TabbedSailingResultsPresenter extends AbstractTabbedResultsPresenter {
|
||||
|
||||
private final StringMessages stringMessages;
|
||||
|
||||
public TabbedSailingResultsPresenter(Component<?> parent, ComponentContext<?> context,
|
||||
DrillDownCallback drillDownCallback, StringMessages stringMessages) {
|
||||
super(parent, context, drillDownCallback);
|
||||
this.stringMessages = stringMessages;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void showResult(QueryResultDTO<?> result) {
|
||||
if (result != null) {
|
||||
if (result.getResultType().equals("com.sap.sailing.polars.datamining.shared.PolarAggregation")) {
|
||||
CloseableTabHeader oldHeader = getSelectedHeader();
|
||||
addTabAndFocus(
|
||||
new PolarResultsPresenter(TabbedSailingResultsPresenter.this, getComponentContext(), stringMessages));
|
||||
removeTab(oldHeader);
|
||||
} else if (result.getResultType().equals("com.sap.sailing.polars.datamining.shared.PolarBackendData")) {
|
||||
CloseableTabHeader oldHeader = getSelectedHeader();
|
||||
addTabAndFocus(new PolarBackendResultsPresenter(TabbedSailingResultsPresenter.this, getComponentContext(),
|
||||
stringMessages));
|
||||
removeTab(oldHeader);
|
||||
} else if (result.getResultType()
|
||||
.equals("com.sap.sailing.datamining.shared.ManeuverSpeedDetailsAggregation")) {
|
||||
CloseableTabHeader oldHeader = getSelectedHeader();
|
||||
addTabAndFocus(new ManeuverSpeedDetailsResultsPresenter(TabbedSailingResultsPresenter.this,
|
||||
getComponentContext(), stringMessages));
|
||||
removeTab(oldHeader);
|
||||
}
|
||||
else if (result.getResultType()
|
||||
.equals("com.sap.sse.datamining.shared.data.PairWithStats")) {
|
||||
CloseableTabHeader oldHeader = getSelectedHeader();
|
||||
addTabAndFocus(new NumberPairResultsPresenter(TabbedSailingResultsPresenter.this,
|
||||
getComponentContext(), stringMessages));
|
||||
removeTab(oldHeader);
|
||||
}
|
||||
else {
|
||||
if (!(getSelectedPresenter() instanceof MultiResultsPresenter)) {
|
||||
CloseableTabHeader oldHeader = getSelectedHeader();
|
||||
addTabAndFocus(new MultiResultsPresenter(this, getComponentContext(), drillDownCallback));
|
||||
removeTab(oldHeader);
|
||||
}
|
||||
}
|
||||
getSelectedHeader().setText(result.getResultSignifier());
|
||||
}
|
||||
getSelectedPresenter().showResult(result);
|
||||
}
|
||||
registerResultPresenter(PolarAggregation.class,
|
||||
new PolarResultsPresenter(TabbedSailingResultsPresenter.this, getComponentContext(), stringMessages));
|
||||
|
||||
registerResultPresenter(PolarBackendData.class, new PolarBackendResultsPresenter(
|
||||
TabbedSailingResultsPresenter.this, getComponentContext(), stringMessages));
|
||||
|
||||
registerResultPresenter(ManeuverSpeedDetailsAggregation.class, new ManeuverSpeedDetailsResultsPresenter(
|
||||
TabbedSailingResultsPresenter.this, getComponentContext(), stringMessages));
|
||||
|
||||
registerResultPresenter(PairWithStats.class, new NumberPairResultsPresenter(TabbedSailingResultsPresenter.this,
|
||||
getComponentContext(), stringMessages));
|
||||
}
|
||||
}
|
||||
+48
@@ -32,6 +32,7 @@ public abstract class AbstractTabbedResultsPresenter extends AbstractDataMiningC
|
||||
protected final ScrolledTabLayoutPanel tabPanel;
|
||||
protected final Map<Widget, ResultsPresenter<?>> presentersMappedByHeader;
|
||||
protected final DrillDownCallback drillDownCallback;
|
||||
protected final Map<String, ResultsPresenter<Settings>> registeredResultPresenterMap;
|
||||
|
||||
public AbstractTabbedResultsPresenter(Component<?> parent, ComponentContext<?> context,
|
||||
DrillDownCallback drillDownCallback) {
|
||||
@@ -41,6 +42,7 @@ public abstract class AbstractTabbedResultsPresenter extends AbstractDataMiningC
|
||||
tabPanel.setAnimationDuration(0);
|
||||
tabPanel.getElement().getStyle().setMarginTop(10, Unit.PX);
|
||||
presentersMappedByHeader = new HashMap<>();
|
||||
registeredResultPresenterMap = new HashMap<>();
|
||||
|
||||
addNewTabTab();
|
||||
addTabAndFocus(new MultiResultsPresenter(this, context, drillDownCallback));
|
||||
@@ -185,4 +187,50 @@ public abstract class AbstractTabbedResultsPresenter extends AbstractDataMiningC
|
||||
public String getId() {
|
||||
return "TabbedResultsPresenter";
|
||||
}
|
||||
|
||||
/**
|
||||
* Register an {@link ResultsPresenter} to handle the retrieved {@link resultType}. Each {@link resultType} can only
|
||||
* be registered once. Multiple registrations will cause an {@link IllegalStateException}.
|
||||
*
|
||||
* @param resultType
|
||||
* of the datamining query.
|
||||
* @param resultPresenter
|
||||
* which shall be used to handle the datamaining query result.
|
||||
*
|
||||
* @throws IllegalStateException
|
||||
* if the {@link resultType} is already registered.
|
||||
*/
|
||||
protected void registerResultPresenter(Class<?> resultType, ResultsPresenter<Settings> resultPresenter)
|
||||
throws IllegalStateException {
|
||||
if (!registeredResultPresenterMap.containsKey(resultType)) {
|
||||
String className = resultType.getName();
|
||||
registeredResultPresenterMap.put(className, resultPresenter);
|
||||
} else {
|
||||
throw new IllegalStateException(
|
||||
"Multiple registration for result type key: " + resultType.toString() + "not allowed.");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void showResult(QueryResultDTO<?> result) {
|
||||
try {
|
||||
if (result != null) {
|
||||
if (registeredResultPresenterMap.containsKey(result.getResultType())) {
|
||||
CloseableTabHeader oldHeader = getSelectedHeader();
|
||||
addTabAndFocus(registeredResultPresenterMap.get(result.getResultType()));
|
||||
removeTab(oldHeader);
|
||||
} else {
|
||||
if (!(getSelectedPresenter() instanceof MultiResultsPresenter)) {
|
||||
CloseableTabHeader oldHeader = getSelectedHeader();
|
||||
addTabAndFocus(new MultiResultsPresenter(this, getComponentContext(), drillDownCallback));
|
||||
removeTab(oldHeader);
|
||||
}
|
||||
getSelectedHeader().setText(result.getResultSignifier());
|
||||
}
|
||||
}
|
||||
|
||||
} finally {
|
||||
getSelectedPresenter().showResult(result);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user