diff --git a/java/com.sap.sailing.gwt.ui/CommonControls.css b/java/com.sap.sailing.gwt.ui/CommonControls.css index 400a62c3061..6b99aff0e19 100644 --- a/java/com.sap.sailing.gwt.ui/CommonControls.css +++ b/java/com.sap.sailing.gwt.ui/CommonControls.css @@ -285,9 +285,6 @@ body ::-webkit-scrollbar-track { } .gwt-SettingsButton { - position: absolute; - top: 0px; - right: 1px; border: none; background: grey url(images/SAP_RV_Settings.png) center no-repeat; z-index: 1; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/components/SettingsDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/components/SettingsDialog.java index c6704dc9deb..62fa5bf02d3 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/components/SettingsDialog.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/components/SettingsDialog.java @@ -1,8 +1,12 @@ package com.sap.sailing.gwt.ui.client.shared.components; +import com.google.gwt.event.dom.client.ClickEvent; +import com.google.gwt.event.dom.client.ClickHandler; +import com.google.gwt.user.client.ui.Button; import com.google.gwt.user.client.ui.FocusWidget; import com.google.gwt.user.client.ui.Widget; import com.sap.sailing.gwt.ui.client.StringMessages; +import com.sap.sailing.gwt.ui.leaderboard.LeaderboardSettings; import com.sap.sse.gwt.client.dialog.DataEntryDialog; public class SettingsDialog extends DataEntryDialog { @@ -12,6 +16,24 @@ public class SettingsDialog extends DataEntryDialog this(component, stringMessages, /* animationEnabled */ true); } + /** + * Creates a settings button for component that, when clicked, opens a settings dialog for that + * component and when confirmed, updates that component's settings. The button style uses CSS class + * gwt-SettingsButton. + */ + public static Button createSettingsButton(final Component component, final StringMessages stringMessages) { + Button settingsButton = new Button(); + settingsButton.setStyleName("gwt-SettingsButton"); + settingsButton.addClickHandler(new ClickHandler() { + @Override + public void onClick(ClickEvent event) { + new SettingsDialog(component, stringMessages).show(); + } + }); + return settingsButton; + } + + /** * This auxiliary constructor is required to avoid duplicate calls to {@link Component#getSettingsDialogComponent()} * which may choose to create a new instance each call. Such duplicate instances would cause the validator to diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/CompetitorSearchTextBox.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/CompetitorSearchTextBox.java index eeda64e2a15..9766fb097ff 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/CompetitorSearchTextBox.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/CompetitorSearchTextBox.java @@ -326,13 +326,18 @@ public class CompetitorSearchTextBox extends HorizontalPanel implements KeyUpHan totalRankFilter.setValue(50); topNTotalRankCompetitorsFilterSet.addFilter(totalRankFilter); filterSets.addFilterSet(topNTotalRankCompetitorsFilterSet); - // set default active filter filterSets.setActiveFilterSet(topNRaceRankCompetitorsFilterSet); - return filterSets; } + /** + * A settings button will be added to the left of the panel + */ + public void addSettingsButton(Button settingsButton) { + insert(settingsButton, 0); + } + @Override public void filterChanged(FilterSet> oldFilterSet, FilterSet> newFilterSet) { @@ -349,4 +354,5 @@ public class CompetitorSearchTextBox extends HorizontalPanel implements KeyUpHan @Override public void filteredCompetitorsListChanged(Iterable filteredCompetitors) {} @Override public void addedToSelection(CompetitorDTO competitor) {} @Override public void removedFromSelection(CompetitorDTO competitor) {} + } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/LeaderboardPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/LeaderboardPanel.java index b5aa291d7da..6a7a6768120 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/LeaderboardPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/LeaderboardPanel.java @@ -41,7 +41,6 @@ import com.google.gwt.user.cellview.client.SafeHtmlHeader; import com.google.gwt.user.client.rpc.AsyncCallback; import com.google.gwt.user.client.ui.AbstractImagePrototype; import com.google.gwt.user.client.ui.Anchor; -import com.google.gwt.user.client.ui.Button; import com.google.gwt.user.client.ui.DockPanel; import com.google.gwt.user.client.ui.FlowPanel; import com.google.gwt.user.client.ui.HasHorizontalAlignment; @@ -1764,8 +1763,8 @@ public class LeaderboardPanel extends SimplePanel implements TimeListener, PlayS if (competitorSearchTextBox != null) { contentPanel.add(competitorSearchTextBox); contentPanel.add(busyIndicator); + competitorSearchTextBox.addSettingsButton(SettingsDialog.createSettingsButton(this, stringMessages)); } - contentPanel.add(createSettingsButton(this)); SortedCellTable leaderboardTable = getLeaderboardTable(); leaderboardTable.getElement().getStyle().setMarginTop(10, Unit.PX); contentPanel.add(leaderboardTable); @@ -1773,18 +1772,6 @@ public class LeaderboardPanel extends SimplePanel implements TimeListener, PlayS raceNameForDefaultSorting = settings.getNameOfRaceToSort(); } - private Button createSettingsButton(final Component component) { - Button settingsButton = new Button(); - settingsButton.setStyleName("gwt-SettingsButton"); - settingsButton.addClickHandler(new ClickHandler() { - @Override - public void onClick(ClickEvent event) { - new SettingsDialog(component, stringMessages).show(); - } - }); - return settingsButton; - } - private static class TotalDistanceTraveledInMetersField implements LegDetailField { @Override public Double get(LeaderboardRowDTO row) {