mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-09-28 08:26:44 +00:00
Quick fix for the settings for touch devices
This commit is contained in:
+8
-1
@@ -4,12 +4,14 @@ import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
import com.google.gwt.dom.client.Style;
|
||||
import com.google.gwt.dom.client.Style.Unit;
|
||||
import com.google.gwt.user.client.Window;
|
||||
import com.google.gwt.user.client.ui.DockLayoutPanel;
|
||||
import com.google.gwt.user.client.ui.FlowPanel;
|
||||
import com.google.gwt.user.client.ui.RootLayoutPanel;
|
||||
import com.google.gwt.user.client.ui.RootPanel;
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
import com.sap.sailing.domain.common.DefaultLeaderboardName;
|
||||
import com.sap.sailing.domain.common.RaceIdentifier;
|
||||
import com.sap.sailing.domain.common.impl.Util.Pair;
|
||||
@@ -242,11 +244,16 @@ public class RaceBoardEntryPoint extends AbstractEntryPoint {
|
||||
RootLayoutPanel.get().add(p);
|
||||
|
||||
FlowPanel breadcrumbPanel = createBreadcrumbPanel();
|
||||
//TODO Quickfix for touch devices
|
||||
Widget settingsWidget = raceBoardPanel.getSettingsWidget();
|
||||
settingsWidget.getElement().getStyle().setFloat(Style.Float.LEFT);
|
||||
breadcrumbPanel.add(settingsWidget);
|
||||
//
|
||||
FlowPanel logoAndTitlePanel = createLogoAndTitlePanel(raceBoardPanel);
|
||||
FlowPanel timePanel = createTimePanel(raceBoardPanel);
|
||||
|
||||
p.addNorth(logoAndTitlePanel, 68);
|
||||
p.addNorth(breadcrumbPanel,30);
|
||||
p.addNorth(breadcrumbPanel,60);
|
||||
p.addSouth(timePanel, 122);
|
||||
p.add(raceBoardPanel);
|
||||
}
|
||||
|
||||
+52
-14
@@ -13,8 +13,10 @@ import com.google.gwt.event.dom.client.ClickHandler;
|
||||
import com.google.gwt.user.client.Command;
|
||||
import com.google.gwt.user.client.Window;
|
||||
import com.google.gwt.user.client.ui.Anchor;
|
||||
import com.google.gwt.user.client.ui.Button;
|
||||
import com.google.gwt.user.client.ui.FlowPanel;
|
||||
import com.google.gwt.user.client.ui.FormPanel;
|
||||
import com.google.gwt.user.client.ui.Label;
|
||||
import com.google.gwt.user.client.ui.MenuBar;
|
||||
import com.google.gwt.user.client.ui.ToggleButton;
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
@@ -78,6 +80,7 @@ public class RaceBoardPanel extends FormPanel implements EventDisplayer, RaceSel
|
||||
|
||||
private final List<ComponentViewer> componentViewers;
|
||||
private FlowPanel componentsNavigationPanel;
|
||||
private FlowPanel settingsPanel;
|
||||
private RaceTimePanel timePanel;
|
||||
private final Timer timer;
|
||||
private final RaceSelectionProvider raceSelectionProvider;
|
||||
@@ -182,21 +185,34 @@ public class RaceBoardPanel extends FormPanel implements EventDisplayer, RaceSel
|
||||
mainPanel.add(componentViewer.getViewerWidget());
|
||||
}
|
||||
|
||||
MenuBar mainMenu = new MenuBar();
|
||||
mainMenu.setStyleName("raceBoardNavigation-navigationitem");
|
||||
MenuBar settingsMenu = new MenuBar(true);
|
||||
mainMenu.addItem("Settings", settingsMenu);
|
||||
|
||||
addSettingsMenuItem(settingsMenu, leaderboardPanel);
|
||||
addSettingsMenuItem(settingsMenu, raceMap);
|
||||
addSettingsMenuItem(settingsMenu, windChart);
|
||||
addSettingsMenuItem(settingsMenu, competitorChart);
|
||||
//TODO binding of settings to the user agent
|
||||
// MenuBar mainMenu = new MenuBar();
|
||||
// mainMenu.setStyleName("raceBoardNavigation-navigationitem");
|
||||
// MenuBar settingsMenu = new MenuBar(true);
|
||||
// mainMenu.addItem("Settings", settingsMenu);
|
||||
//
|
||||
// addSettingsMenuItem(settingsMenu, leaderboardPanel);
|
||||
// addSettingsMenuItem(settingsMenu, raceMap);
|
||||
// addSettingsMenuItem(settingsMenu, windChart);
|
||||
// addSettingsMenuItem(settingsMenu, competitorChart);
|
||||
//
|
||||
// mainMenu.getElement().getStyle().setFloat(Style.Float.LEFT);
|
||||
// mainMenu.getElement().getStyle().setPadding(3, Style.Unit.PX);
|
||||
// mainMenu.getElement().getStyle().setMargin(3, Style.Unit.PX);
|
||||
//
|
||||
// componentsNavigationPanel.add(mainMenu);
|
||||
settingsPanel = new FlowPanel();
|
||||
settingsPanel.addStyleName("raceBoardNavigation-settingsButtonPanel");
|
||||
Label settingsLabel = new Label("Settings: ");
|
||||
settingsLabel.addStyleName("raceBoardNavigation-settingsLabel");
|
||||
settingsLabel.getElement().getStyle().setFloat(Style.Float.LEFT);
|
||||
settingsLabel.getElement().getStyle().setPadding(3, Style.Unit.PX);
|
||||
settingsPanel.add(settingsLabel);
|
||||
|
||||
mainMenu.getElement().getStyle().setFloat(Style.Float.LEFT);
|
||||
mainMenu.getElement().getStyle().setPadding(3, Style.Unit.PX);
|
||||
mainMenu.getElement().getStyle().setMargin(3, Style.Unit.PX);
|
||||
|
||||
componentsNavigationPanel.add(mainMenu);
|
||||
addSettingsMenuButton(settingsPanel, leaderboardPanel);
|
||||
addSettingsMenuButton(settingsPanel, raceMap);
|
||||
addSettingsMenuButton(settingsPanel, windChart);
|
||||
addSettingsMenuButton(settingsPanel, competitorChart);
|
||||
|
||||
addComponentAsToogleButtonToNavigationMenu(leaderboardAndMapViewer, leaderboardPanel);
|
||||
//addComponentAsToogleButtonToNavigationMenu(leaderboardAndMapViewer, raceMap);
|
||||
@@ -205,6 +221,7 @@ public class RaceBoardPanel extends FormPanel implements EventDisplayer, RaceSel
|
||||
|
||||
}
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
private <SettingsType> void addSettingsMenuItem(MenuBar settingsMenu, final Component<SettingsType> component) {
|
||||
if(component.hasSettings()) {
|
||||
settingsMenu.addItem(component.getLocalizedShortName(), new Command() {
|
||||
@@ -215,6 +232,23 @@ public class RaceBoardPanel extends FormPanel implements EventDisplayer, RaceSel
|
||||
}
|
||||
}
|
||||
|
||||
private <SettingsType> void addSettingsMenuButton(FlowPanel settingsPanel, final Component<SettingsType> component) {
|
||||
if(component.hasSettings()) {
|
||||
Button settingsButton = new Button(component.getLocalizedShortName());
|
||||
settingsButton.addClickHandler(new ClickHandler() {
|
||||
@Override
|
||||
public void onClick(ClickEvent event) {
|
||||
new SettingsDialog<SettingsType>(component, stringMessages).show();
|
||||
}
|
||||
});
|
||||
settingsButton.addStyleName("raceBoardNavigation-settingsButton");
|
||||
settingsButton.getElement().getStyle().setFloat(Style.Float.LEFT);
|
||||
settingsButton.getElement().getStyle().setPadding(3, Style.Unit.PX);
|
||||
|
||||
settingsPanel.add(settingsButton);
|
||||
}
|
||||
}
|
||||
|
||||
private void createCascadingView(String leaderboardName, String leaderboardGroupName, FlowPanel mainPanel) {
|
||||
boolean showLeaderboard = true;
|
||||
boolean showMap = true;
|
||||
@@ -384,6 +418,10 @@ public class RaceBoardPanel extends FormPanel implements EventDisplayer, RaceSel
|
||||
public Widget getNavigationWidget() {
|
||||
return componentsNavigationPanel;
|
||||
}
|
||||
|
||||
public Widget getSettingsWidget() {
|
||||
return settingsPanel;
|
||||
}
|
||||
|
||||
public Widget getTimeWidget() {
|
||||
return timePanel;
|
||||
|
||||
Reference in New Issue
Block a user