UrlSettings working initial

This commit is contained in:
Kai Boernert committed 2017-02-13 14:54:53 +01:00
1 parent 45483c8a5b
commit b527f49f99
7 files changed
+54 -18

No files matched your search

@@ -20,8 +20,8 @@ public class LeaderboardWithHeaderPerspectiveLifecycle extends AbstractPerspecti
(leaderboard.getDisplayName() == null ? leaderboard.name : leaderboard.getDisplayName()),
stringMessages);
this.componentLifecycles.add(leaderboardPanelLifecycle);
this.componentLifecycles.add(sapHeaderLifecycle);
addLifeCycle(leaderboardPanelLifecycle);
addLifeCycle(sapHeaderLifecycle);
}
@Override
@@ -12,9 +12,9 @@ public abstract class AbstractLeaderboardPerspectiveLifecycle extends AbstractPe
}
public AbstractLeaderboardPerspectiveLifecycle(StringMessages stringMessages, AbstractLeaderboardDTO leaderboard) {
componentLifecycles.add(new LeaderboardPanelLifecycle(leaderboard, stringMessages));
componentLifecycles.add(new MultiLeaderboardPanelLifecycle(null, stringMessages));
componentLifecycles.add(new OverallLeaderboardPanelLifecycle(null, stringMessages));
addLifeCycle(new LeaderboardPanelLifecycle(leaderboard, stringMessages));
addLifeCycle(new MultiLeaderboardPanelLifecycle(null, stringMessages));
addLifeCycle(new OverallLeaderboardPanelLifecycle(null, stringMessages));
}
@Override
@@ -11,7 +11,8 @@ public class OverallLeaderboardPanelLifecycle extends LeaderboardPanelLifecycle
super(leaderboard, stringMessages);
}
public static String getId() {
@Override
public String getComponentId() {
return ID;
}
@@ -36,12 +36,12 @@ public class RaceBoardPerspectiveLifecycle extends AbstractPerspectiveLifecycle<
mediaPlayerLifecycle = new MediaPlayerLifecycle(stringMessages);
raceTimePanelLifecycle = new RaceTimePanelLifecycle(stringMessages);
componentLifecycles.add(raceMapLifecycle);
componentLifecycles.add(windChartLifecycle);
componentLifecycles.add(leaderboardPanelLifecycle);
componentLifecycles.add(multiCompetitorRaceChartLifecycle);
componentLifecycles.add(mediaPlayerLifecycle);
componentLifecycles.add(raceTimePanelLifecycle);
addLifeCycle(raceMapLifecycle);
addLifeCycle(windChartLifecycle);
addLifeCycle(leaderboardPanelLifecycle);
addLifeCycle(multiCompetitorRaceChartLifecycle);
addLifeCycle(mediaPlayerLifecycle);
addLifeCycle(raceTimePanelLifecycle);
}
@Override
@@ -19,12 +19,21 @@ import com.sap.sse.gwt.client.shared.components.ComponentLifecycle;
*
*/
public abstract class AbstractPerspectiveLifecycle<PS extends Settings> implements PerspectiveLifecycle<PS> {
protected final List<ComponentLifecycle<?,?>> componentLifecycles;
final List<ComponentLifecycle<?, ?>> componentLifecycles;
public AbstractPerspectiveLifecycle() {
componentLifecycles = new ArrayList<>();
}
protected void addLifeCycle(ComponentLifecycle<?, ?> cycle) {
for (ComponentLifecycle<?, ?> old : componentLifecycles) {
if (old.getComponentId().equals(cycle.getComponentId())) {
throw new IllegalStateException("LifeCycle with duplicate ID " + cycle.getComponentId());
}
}
componentLifecycles.add(cycle);
}
public PerspectiveCompositeTabbedSettingsDialogComponent<PS> getSettingsDialogComponent(PerspectiveCompositeSettings<PS> settings) {
return new PerspectiveCompositeTabbedSettingsDialogComponent<PS>(this, settings);
}
@@ -77,7 +77,7 @@ public class PerspectiveCompositeTabbedSettingsDialogComponent<PS extends Settin
return perspectiveOwnSettings;
}
public SettingsDialogComponent<PS> getSettingsDialog() {
public SettingsDialogComponent<PS> getSettingsDialogComponent() {
return settingsDialog;
}
@@ -92,6 +92,12 @@ public class PerspectiveCompositeTabbedSettingsDialogComponent<PS extends Settin
public PerspectiveCompositeTabbedSettingsDialogComponent(Perspective<PS> perspective) {
this.componentIdsAndDialogComponents = new ArrayList<>();
for (Component<?> component : perspective.getComponents()) {
for (ComponentIdWithSettingsAndDialogComponent<?> c : componentIdsAndDialogComponents) {
if (c.getComponentId().equals(component.getId())) {
throw new IllegalStateException(
"Creating a SettingsDialog with duplicate componentids internally " + component.getId());
}
}
componentIdsAndDialogComponents.add(createComponentAndDialogComponent(component));
}
perspectiveIdsAndSettingsDialog = createPerspectiveAndDialogComponent(perspective);
@@ -122,6 +128,12 @@ public class PerspectiveCompositeTabbedSettingsDialogComponent<PS extends Settin
ComponentLifecycle<S, ?> componentLifecycle) {
@SuppressWarnings("unchecked")
S settingsOfComponent = (S) componentSettings.findSettingsByComponentId(componentLifecycle.getComponentId());
for (ComponentIdWithSettingsAndDialogComponent<?> c : componentIdsAndDialogComponents) {
if (c.getComponentId().equals(componentLifecycle.getComponentId())) {
throw new IllegalStateException("Creating a SettingsDialog with duplicate componentids internally "
+ componentLifecycle.getComponentId());
}
}
this.componentIdsAndDialogComponents.add(new ComponentIdWithSettingsAndDialogComponent<S>(componentLifecycle.getLocalizedShortName(), componentLifecycle.getComponentId(), settingsOfComponent,
componentLifecycle.getSettingsDialogComponent(settingsOfComponent)));
}
@@ -151,15 +163,22 @@ public class PerspectiveCompositeTabbedSettingsDialogComponent<PS extends Settin
}
private PS getPerspectiveOwnSettings(PerspectiveIdWithSettingsAndDialogComponent<PS> perspectiveAndDialog) {
return perspectiveAndDialog.getSettingsDialog().getResult();
SettingsDialogComponent<PS> settingsDialogComponent = perspectiveAndDialog.getSettingsDialogComponent();
if (settingsDialogComponent != null) {
return settingsDialogComponent.getResult();
}
return null;
}
@Override
public Widget getAdditionalWidget(final DataEntryDialog<?> dialog) {
TabPanel result = new TabPanel();
if(perspectiveIdsAndSettingsDialog != null) {
Widget w = perspectiveIdsAndSettingsDialog.getSettingsDialog().getAdditionalWidget((DataEntryDialog<?>) dialog);
result.add(w, perspectiveIdsAndSettingsDialog.getPerspectiveName());
SettingsDialogComponent<PS> additional = perspectiveIdsAndSettingsDialog.getSettingsDialogComponent();
if (additional != null) {
Widget w = additional.getAdditionalWidget((DataEntryDialog<?>) dialog);
result.add(w, perspectiveIdsAndSettingsDialog.getPerspectiveName());
}
}
for (ComponentIdWithSettingsAndDialogComponent<?> componentAndSettingsDialog : componentIdsAndDialogComponents) {
Widget w = componentAndSettingsDialog.getSettingsDialog().getAdditionalWidget((DataEntryDialog<?>) dialog);
@@ -180,6 +199,9 @@ public class PerspectiveCompositeTabbedSettingsDialogComponent<PS extends Settin
PS perspectiveOwnSettings = perspectiveIdsAndSettingsDialog != null ? getPerspectiveOwnSettings(perspectiveIdsAndSettingsDialog) : null;
Map<String, Settings> settings = new HashMap<>();
for (ComponentIdWithSettingsAndDialogComponent<?> componentAndDialog : componentIdsAndDialogComponents) {
if (settings.containsKey(componentAndDialog.getComponentId())) {
throw new IllegalStateException("Duplicate Componentid " + componentAndDialog.getComponentId());
}
settings.put(componentAndDialog.getComponentId(), componentAndDialog.getSettingsDialog().getResult());
}
return new PerspectiveCompositeSettings<PS>(perspectiveOwnSettings, settings);
@@ -20,7 +20,11 @@ public class PerspectiveCompositeValidator<PS extends Settings> implements Valid
private final Validator<PS> perspectiveValidator;
public PerspectiveCompositeValidator(PerspectiveIdWithSettingsAndDialogComponent<PS> perspectiveAndDialogComponent, Iterable<ComponentIdWithSettingsAndDialogComponent<?>> componentsAndDialogComponents) {
this.perspectiveValidator = perspectiveAndDialogComponent.getSettingsDialog().getValidator();
if (perspectiveAndDialogComponent.getSettingsDialogComponent() != null) {
this.perspectiveValidator = perspectiveAndDialogComponent.getSettingsDialogComponent().getValidator();
} else {
perspectiveValidator = null;
}
validatorsMappedByComponent = new HashMap<>();
for (ComponentIdWithSettingsAndDialogComponent<?> componentsAndSettingsDialog : componentsAndDialogComponents) {
validatorsMappedByComponent.put(componentsAndSettingsDialog.getComponentId(), componentsAndSettingsDialog.getSettingsDialog().getValidator());