moved leaderboard settings button into CompetitorSearchTextBox control

This commit is contained in:
Axel Uhl committed 2014-08-07 23:16:43 +02:00
1 parent 9b9f976e0e
commit 96843ff109
4 files changed
+31 -19

No files matched your search

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