mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-05 11:53:53 +00:00
some resize magic :-)
This commit is contained in:
1 parent
c8adb0880e
commit
02e2f10854
7 files changed
+79
-27
No files matched your search
+4
-4
@@ -19,8 +19,7 @@ import com.google.gwt.user.client.ui.Label;
|
|||||||
import com.google.gwt.user.client.ui.RootPanel;
|
import com.google.gwt.user.client.ui.RootPanel;
|
||||||
import com.google.gwt.user.client.ui.VerticalPanel;
|
import com.google.gwt.user.client.ui.VerticalPanel;
|
||||||
|
|
||||||
public abstract class AbstractEntryPoint implements EntryPoint, ErrorReporter {
|
public abstract class AbstractEntryPoint implements EntryPoint, ErrorReporter, WindowSizeDetector {
|
||||||
|
|
||||||
private DialogBox errorDialogBox;
|
private DialogBox errorDialogBox;
|
||||||
private HTML serverResponseLabel;
|
private HTML serverResponseLabel;
|
||||||
private Button dialogCloseButton;
|
private Button dialogCloseButton;
|
||||||
@@ -76,13 +75,14 @@ public abstract class AbstractEntryPoint implements EntryPoint, ErrorReporter {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected boolean isSmallWidth() {
|
@Override
|
||||||
|
public boolean isSmallWidth() {
|
||||||
int width = Window.getClientWidth();
|
int width = Window.getClientWidth();
|
||||||
return width <= 720;
|
return width <= 720;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void createErrorPage(String message) {
|
public void createErrorPage(String message) {
|
||||||
LogoAndTitlePanel logoAndTitlePanel = new LogoAndTitlePanel(stringMessages, isSmallWidth());
|
LogoAndTitlePanel logoAndTitlePanel = new LogoAndTitlePanel(stringMessages, this);
|
||||||
logoAndTitlePanel.addStyleName("LogoAndTitlePanel");
|
logoAndTitlePanel.addStyleName("LogoAndTitlePanel");
|
||||||
RootPanel.get().add(logoAndTitlePanel);
|
RootPanel.get().add(logoAndTitlePanel);
|
||||||
RootPanel.get().add(new Label(message));
|
RootPanel.get().add(new Label(message));
|
||||||
|
|||||||
+45
-15
@@ -4,34 +4,55 @@ import com.google.gwt.safehtml.shared.SafeHtmlBuilder;
|
|||||||
import com.google.gwt.user.client.ui.Anchor;
|
import com.google.gwt.user.client.ui.Anchor;
|
||||||
import com.google.gwt.user.client.ui.FlowPanel;
|
import com.google.gwt.user.client.ui.FlowPanel;
|
||||||
import com.google.gwt.user.client.ui.Label;
|
import com.google.gwt.user.client.ui.Label;
|
||||||
|
import com.google.gwt.user.client.ui.RequiresResize;
|
||||||
|
|
||||||
public class LogoAndTitlePanel extends FlowPanel {
|
public class LogoAndTitlePanel extends FlowPanel implements RequiresResize {
|
||||||
protected Label titleLabel;
|
private final String title;
|
||||||
protected Label subTitleLabel;
|
private final String subtitle;
|
||||||
|
private Label titleLabel;
|
||||||
|
private Label subTitleLabel;
|
||||||
|
private final Anchor sapLogo;
|
||||||
|
private boolean lastIsSmallWidth;
|
||||||
|
private final WindowSizeDetector windowSizeDetector;
|
||||||
|
private final StringMessages stringMessages;
|
||||||
|
|
||||||
public LogoAndTitlePanel(StringMessages stringConstants, boolean isSmallWidth) {
|
public LogoAndTitlePanel(StringMessages stringConstants, WindowSizeDetector windowSizeDetector) {
|
||||||
this(null, null, stringConstants, isSmallWidth);
|
this(null, null, stringConstants, windowSizeDetector);
|
||||||
}
|
}
|
||||||
|
|
||||||
public LogoAndTitlePanel(String title, StringMessages stringConstants, boolean isSmallWidth) {
|
public LogoAndTitlePanel(String title, StringMessages stringConstants, WindowSizeDetector windowSizeDetector) {
|
||||||
this(title, null, stringConstants, isSmallWidth);
|
this(title, null, stringConstants, windowSizeDetector);
|
||||||
}
|
}
|
||||||
|
|
||||||
public LogoAndTitlePanel(String title, String subTitle, StringMessages stringConstants, boolean isSmallWidth) {
|
public LogoAndTitlePanel(String title, String subtitle, StringMessages stringMessages, WindowSizeDetector windowSizeDetector) {
|
||||||
Anchor sapLogo = new Anchor(new SafeHtmlBuilder().appendHtmlConstant(
|
this.title = title;
|
||||||
|
this.subtitle = subtitle;
|
||||||
|
this.stringMessages = stringMessages;
|
||||||
|
this.windowSizeDetector = windowSizeDetector;
|
||||||
|
lastIsSmallWidth = windowSizeDetector.isSmallWidth();
|
||||||
|
sapLogo = new Anchor(new SafeHtmlBuilder().appendHtmlConstant(
|
||||||
"<img class=\"linkNoBorder\" src=\"/gwt/images/sap_66_transparent.png\"/>").toSafeHtml());
|
"<img class=\"linkNoBorder\" src=\"/gwt/images/sap_66_transparent.png\"/>").toSafeHtml());
|
||||||
sapLogo.setHref("http://www.sap.com");
|
sapLogo.setHref("http://www.sap.com");
|
||||||
sapLogo.addStyleName("sapLogo");
|
sapLogo.addStyleName("sapLogo");
|
||||||
this.add(sapLogo);
|
this.add(sapLogo);
|
||||||
if (!isSmallWidth) {
|
renderUI();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void renderUI() {
|
||||||
|
for (int i=getWidgetCount()-1; i>=0; i--) {
|
||||||
|
if (getWidget(i) != sapLogo) {
|
||||||
|
remove(i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!lastIsSmallWidth) {
|
||||||
FlowPanel sailingAnalyticsLabelPanel = new FlowPanel();
|
FlowPanel sailingAnalyticsLabelPanel = new FlowPanel();
|
||||||
Label sailingAnalyticsLabel = new Label(stringConstants.sapSailingAnalytics());
|
Label sailingAnalyticsLabel = new Label(stringMessages.sapSailingAnalytics());
|
||||||
sailingAnalyticsLabelPanel.add(sailingAnalyticsLabel);
|
sailingAnalyticsLabelPanel.add(sailingAnalyticsLabel);
|
||||||
sailingAnalyticsLabelPanel.addStyleName("sailingAnalyticsLabelPanel");
|
sailingAnalyticsLabelPanel.addStyleName("sailingAnalyticsLabelPanel");
|
||||||
sailingAnalyticsLabel.addStyleName("sailingAnalyticsLabel boldLabel");
|
sailingAnalyticsLabel.addStyleName("sailingAnalyticsLabel boldLabel");
|
||||||
this.add(sailingAnalyticsLabelPanel);
|
this.add(sailingAnalyticsLabelPanel);
|
||||||
}
|
}
|
||||||
if (!isSmallWidth && title != null) {
|
if (!lastIsSmallWidth && title != null) {
|
||||||
FlowPanel titleLabelWrapper = new FlowPanel();
|
FlowPanel titleLabelWrapper = new FlowPanel();
|
||||||
titleLabelWrapper.addStyleName("titleLabelWrapper");
|
titleLabelWrapper.addStyleName("titleLabelWrapper");
|
||||||
titleLabel = new Label(title);
|
titleLabel = new Label(title);
|
||||||
@@ -39,10 +60,10 @@ public class LogoAndTitlePanel extends FlowPanel {
|
|||||||
titleLabelWrapper.add(titleLabel);
|
titleLabelWrapper.add(titleLabel);
|
||||||
this.add(titleLabelWrapper);
|
this.add(titleLabelWrapper);
|
||||||
}
|
}
|
||||||
if (subTitle != null) {
|
if (subtitle != null) {
|
||||||
subTitleLabel = new Label(subTitle);
|
subTitleLabel = new Label(subtitle);
|
||||||
FlowPanel subTitleLabelWrapper = new FlowPanel();
|
FlowPanel subTitleLabelWrapper = new FlowPanel();
|
||||||
if (isSmallWidth) {
|
if (lastIsSmallWidth) {
|
||||||
subTitleLabelWrapper.addStyleName("titleLabelWrapper");
|
subTitleLabelWrapper.addStyleName("titleLabelWrapper");
|
||||||
subTitleLabel.addStyleName("titleLabelRight");
|
subTitleLabel.addStyleName("titleLabelRight");
|
||||||
} else {
|
} else {
|
||||||
@@ -72,5 +93,14 @@ public class LogoAndTitlePanel extends FlowPanel {
|
|||||||
if(subTitleLabel != null) {
|
if(subTitleLabel != null) {
|
||||||
subTitleLabel.setText(subTitle);
|
subTitleLabel.setText(subTitle);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onResize() {
|
||||||
|
if (windowSizeDetector.isSmallWidth() != lastIsSmallWidth) {
|
||||||
|
lastIsSmallWidth = windowSizeDetector.isSmallWidth();
|
||||||
|
renderUI();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+13
-3
@@ -10,7 +10,6 @@ import com.google.gwt.dom.client.Style.Unit;
|
|||||||
import com.google.gwt.user.client.Window;
|
import com.google.gwt.user.client.Window;
|
||||||
import com.google.gwt.user.client.rpc.AsyncCallback;
|
import com.google.gwt.user.client.rpc.AsyncCallback;
|
||||||
import com.google.gwt.user.client.ui.DockLayoutPanel;
|
import com.google.gwt.user.client.ui.DockLayoutPanel;
|
||||||
import com.google.gwt.user.client.ui.FlowPanel;
|
|
||||||
import com.google.gwt.user.client.ui.Label;
|
import com.google.gwt.user.client.ui.Label;
|
||||||
import com.google.gwt.user.client.ui.RootLayoutPanel;
|
import com.google.gwt.user.client.ui.RootLayoutPanel;
|
||||||
import com.google.gwt.user.client.ui.RootPanel;
|
import com.google.gwt.user.client.ui.RootPanel;
|
||||||
@@ -56,6 +55,7 @@ public class LeaderboardEntryPoint extends AbstractEntryPoint {
|
|||||||
private static final String PARAM_NAME_LAST_N = "lastN";
|
private static final String PARAM_NAME_LAST_N = "lastN";
|
||||||
private String leaderboardName;
|
private String leaderboardName;
|
||||||
private String leaderboardGroupName;
|
private String leaderboardGroupName;
|
||||||
|
private GlobalNavigationPanel globalNavigationPanel;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onModuleLoad() {
|
public void onModuleLoad() {
|
||||||
@@ -95,10 +95,20 @@ public class LeaderboardEntryPoint extends AbstractEntryPoint {
|
|||||||
if (leaderboardDisplayName == null || leaderboardDisplayName.isEmpty()) {
|
if (leaderboardDisplayName == null || leaderboardDisplayName.isEmpty()) {
|
||||||
leaderboardDisplayName = leaderboardName;
|
leaderboardDisplayName = leaderboardName;
|
||||||
}
|
}
|
||||||
logoAndTitlePanel = new LogoAndTitlePanel(leaderboardGroupName, leaderboardDisplayName, stringMessages, isSmallWidth());
|
globalNavigationPanel = new GlobalNavigationPanel(stringMessages, true, null, leaderboardGroupName);
|
||||||
|
logoAndTitlePanel = new LogoAndTitlePanel(leaderboardGroupName, leaderboardDisplayName, stringMessages, this) {
|
||||||
|
@Override
|
||||||
|
public void onResize() {
|
||||||
|
super.onResize();
|
||||||
|
if (isSmallWidth()) {
|
||||||
|
remove(globalNavigationPanel);
|
||||||
|
} else {
|
||||||
|
add(globalNavigationPanel);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
logoAndTitlePanel.addStyleName("LogoAndTitlePanel");
|
logoAndTitlePanel.addStyleName("LogoAndTitlePanel");
|
||||||
if (!isSmallWidth()) {
|
if (!isSmallWidth()) {
|
||||||
FlowPanel globalNavigationPanel = new GlobalNavigationPanel(stringMessages, true, null, leaderboardGroupName);
|
|
||||||
logoAndTitlePanel.add(globalNavigationPanel);
|
logoAndTitlePanel.add(globalNavigationPanel);
|
||||||
}
|
}
|
||||||
mainPanel.addNorth(logoAndTitlePanel, 68);
|
mainPanel.addNorth(logoAndTitlePanel, 68);
|
||||||
|
|||||||
+1
-1
@@ -19,7 +19,7 @@ public class LeaderboardEditPage extends AbstractEntryPoint {
|
|||||||
public void onSuccess(List<String> leaderboardNames) {
|
public void onSuccess(List<String> leaderboardNames) {
|
||||||
String leaderboardName = Window.Location.getParameter("name");
|
String leaderboardName = Window.Location.getParameter("name");
|
||||||
if (leaderboardNames.contains(leaderboardName)) {
|
if (leaderboardNames.contains(leaderboardName)) {
|
||||||
LogoAndTitlePanel logoAndTitlePanel = new LogoAndTitlePanel(stringMessages.editScores(), stringMessages, isSmallWidth());
|
LogoAndTitlePanel logoAndTitlePanel = new LogoAndTitlePanel(stringMessages.editScores(), stringMessages, LeaderboardEditPage.this);
|
||||||
logoAndTitlePanel.addStyleName("LogoAndTitlePanel");
|
logoAndTitlePanel.addStyleName("LogoAndTitlePanel");
|
||||||
EditableLeaderboardPanel leaderboardPanel = new EditableLeaderboardPanel(sailingService, new AsyncActionsExecutor(), leaderboardName, null,
|
EditableLeaderboardPanel leaderboardPanel = new EditableLeaderboardPanel(sailingService, new AsyncActionsExecutor(), leaderboardName, null,
|
||||||
LeaderboardEditPage.this, stringMessages, userAgent);
|
LeaderboardEditPage.this, stringMessages, userAgent);
|
||||||
|
|||||||
+14
-2
@@ -36,6 +36,8 @@ public class RaceBoardEntryPoint extends AbstractEntryPoint {
|
|||||||
private String leaderboardGroupName;
|
private String leaderboardGroupName;
|
||||||
private RaceBoardViewModes viewMode;
|
private RaceBoardViewModes viewMode;
|
||||||
|
|
||||||
|
private GlobalNavigationPanel globalNavigationPanel;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onModuleLoad() {
|
public void onModuleLoad() {
|
||||||
super.onModuleLoad();
|
super.onModuleLoad();
|
||||||
@@ -172,10 +174,20 @@ public class RaceBoardEntryPoint extends AbstractEntryPoint {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private FlowPanel createLogoAndTitlePanel(RaceBoardPanel raceBoardPanel) {
|
private FlowPanel createLogoAndTitlePanel(RaceBoardPanel raceBoardPanel) {
|
||||||
LogoAndTitlePanel logoAndTitlePanel = new LogoAndTitlePanel(regattaName, selectedRace.name, stringMessages, isSmallWidth());
|
globalNavigationPanel = new GlobalNavigationPanel(stringMessages, true, leaderboardName, leaderboardGroupName);
|
||||||
|
LogoAndTitlePanel logoAndTitlePanel = new LogoAndTitlePanel(regattaName, selectedRace.name, stringMessages, this) {
|
||||||
|
@Override
|
||||||
|
public void onResize() {
|
||||||
|
super.onResize();
|
||||||
|
if (isSmallWidth()) {
|
||||||
|
remove(globalNavigationPanel);
|
||||||
|
} else {
|
||||||
|
add(globalNavigationPanel);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
logoAndTitlePanel.addStyleName("LogoAndTitlePanel");
|
logoAndTitlePanel.addStyleName("LogoAndTitlePanel");
|
||||||
if (!isSmallWidth()) {
|
if (!isSmallWidth()) {
|
||||||
FlowPanel globalNavigationPanel = new GlobalNavigationPanel(stringMessages, true, leaderboardName, leaderboardGroupName);
|
|
||||||
logoAndTitlePanel.add(globalNavigationPanel);
|
logoAndTitlePanel.add(globalNavigationPanel);
|
||||||
}
|
}
|
||||||
return logoAndTitlePanel;
|
return logoAndTitlePanel;
|
||||||
|
|||||||
+1
-1
@@ -56,7 +56,7 @@ public class SpectatorEntryPoint extends AbstractEntryPoint implements RegattaRe
|
|||||||
&& Window.Location.getParameter("embedded").equalsIgnoreCase("true");
|
&& Window.Location.getParameter("embedded").equalsIgnoreCase("true");
|
||||||
if (!embedded) {
|
if (!embedded) {
|
||||||
String title = groupName != null ? groupName : stringMessages.overview();
|
String title = groupName != null ? groupName : stringMessages.overview();
|
||||||
LogoAndTitlePanel logoAndTitlePanel = new LogoAndTitlePanel(title, stringMessages, isSmallWidth());
|
LogoAndTitlePanel logoAndTitlePanel = new LogoAndTitlePanel(title, stringMessages, this);
|
||||||
logoAndTitlePanel.addStyleName("LogoAndTitlePanel");
|
logoAndTitlePanel.addStyleName("LogoAndTitlePanel");
|
||||||
FlowPanel globalNavigationPanel = new GlobalNavigationPanel(stringMessages, true, null, null);
|
FlowPanel globalNavigationPanel = new GlobalNavigationPanel(stringMessages, true, null, null);
|
||||||
logoAndTitlePanel.add(globalNavigationPanel);
|
logoAndTitlePanel.add(globalNavigationPanel);
|
||||||
|
|||||||
+1
-1
@@ -58,7 +58,7 @@ public class TVEntryPoint extends AbstractEntryPoint {
|
|||||||
if(leaderboardDisplayName == null || leaderboardDisplayName.isEmpty()) {
|
if(leaderboardDisplayName == null || leaderboardDisplayName.isEmpty()) {
|
||||||
leaderboardDisplayName = leaderboardName;
|
leaderboardDisplayName = leaderboardName;
|
||||||
}
|
}
|
||||||
logoAndTitlePanel = new LogoAndTitlePanel(leaderboardGroupName, leaderboardDisplayName, stringMessages, isSmallWidth());
|
logoAndTitlePanel = new LogoAndTitlePanel(leaderboardGroupName, leaderboardDisplayName, stringMessages, this);
|
||||||
logoAndTitlePanel.addStyleName("LogoAndTitlePanel");
|
logoAndTitlePanel.addStyleName("LogoAndTitlePanel");
|
||||||
mainPanel.addNorth(logoAndTitlePanel, 68);
|
mainPanel.addNorth(logoAndTitlePanel, 68);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in new issue
Block a user