mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-04 03:13:49 +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.VerticalPanel;
|
||||
|
||||
public abstract class AbstractEntryPoint implements EntryPoint, ErrorReporter {
|
||||
|
||||
public abstract class AbstractEntryPoint implements EntryPoint, ErrorReporter, WindowSizeDetector {
|
||||
private DialogBox errorDialogBox;
|
||||
private HTML serverResponseLabel;
|
||||
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();
|
||||
return width <= 720;
|
||||
}
|
||||
|
||||
public void createErrorPage(String message) {
|
||||
LogoAndTitlePanel logoAndTitlePanel = new LogoAndTitlePanel(stringMessages, isSmallWidth());
|
||||
LogoAndTitlePanel logoAndTitlePanel = new LogoAndTitlePanel(stringMessages, this);
|
||||
logoAndTitlePanel.addStyleName("LogoAndTitlePanel");
|
||||
RootPanel.get().add(logoAndTitlePanel);
|
||||
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.FlowPanel;
|
||||
import com.google.gwt.user.client.ui.Label;
|
||||
import com.google.gwt.user.client.ui.RequiresResize;
|
||||
|
||||
public class LogoAndTitlePanel extends FlowPanel {
|
||||
protected Label titleLabel;
|
||||
protected Label subTitleLabel;
|
||||
public class LogoAndTitlePanel extends FlowPanel implements RequiresResize {
|
||||
private final String title;
|
||||
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) {
|
||||
this(null, null, stringConstants, isSmallWidth);
|
||||
public LogoAndTitlePanel(StringMessages stringConstants, WindowSizeDetector windowSizeDetector) {
|
||||
this(null, null, stringConstants, windowSizeDetector);
|
||||
}
|
||||
|
||||
public LogoAndTitlePanel(String title, StringMessages stringConstants, boolean isSmallWidth) {
|
||||
this(title, null, stringConstants, isSmallWidth);
|
||||
public LogoAndTitlePanel(String title, StringMessages stringConstants, WindowSizeDetector windowSizeDetector) {
|
||||
this(title, null, stringConstants, windowSizeDetector);
|
||||
}
|
||||
|
||||
public LogoAndTitlePanel(String title, String subTitle, StringMessages stringConstants, boolean isSmallWidth) {
|
||||
Anchor sapLogo = new Anchor(new SafeHtmlBuilder().appendHtmlConstant(
|
||||
public LogoAndTitlePanel(String title, String subtitle, StringMessages stringMessages, WindowSizeDetector windowSizeDetector) {
|
||||
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());
|
||||
sapLogo.setHref("http://www.sap.com");
|
||||
sapLogo.addStyleName("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();
|
||||
Label sailingAnalyticsLabel = new Label(stringConstants.sapSailingAnalytics());
|
||||
Label sailingAnalyticsLabel = new Label(stringMessages.sapSailingAnalytics());
|
||||
sailingAnalyticsLabelPanel.add(sailingAnalyticsLabel);
|
||||
sailingAnalyticsLabelPanel.addStyleName("sailingAnalyticsLabelPanel");
|
||||
sailingAnalyticsLabel.addStyleName("sailingAnalyticsLabel boldLabel");
|
||||
this.add(sailingAnalyticsLabelPanel);
|
||||
}
|
||||
if (!isSmallWidth && title != null) {
|
||||
if (!lastIsSmallWidth && title != null) {
|
||||
FlowPanel titleLabelWrapper = new FlowPanel();
|
||||
titleLabelWrapper.addStyleName("titleLabelWrapper");
|
||||
titleLabel = new Label(title);
|
||||
@@ -39,10 +60,10 @@ public class LogoAndTitlePanel extends FlowPanel {
|
||||
titleLabelWrapper.add(titleLabel);
|
||||
this.add(titleLabelWrapper);
|
||||
}
|
||||
if (subTitle != null) {
|
||||
subTitleLabel = new Label(subTitle);
|
||||
if (subtitle != null) {
|
||||
subTitleLabel = new Label(subtitle);
|
||||
FlowPanel subTitleLabelWrapper = new FlowPanel();
|
||||
if (isSmallWidth) {
|
||||
if (lastIsSmallWidth) {
|
||||
subTitleLabelWrapper.addStyleName("titleLabelWrapper");
|
||||
subTitleLabel.addStyleName("titleLabelRight");
|
||||
} else {
|
||||
@@ -72,5 +93,14 @@ public class LogoAndTitlePanel extends FlowPanel {
|
||||
if(subTitleLabel != null) {
|
||||
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.rpc.AsyncCallback;
|
||||
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.RootLayoutPanel;
|
||||
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 String leaderboardName;
|
||||
private String leaderboardGroupName;
|
||||
private GlobalNavigationPanel globalNavigationPanel;
|
||||
|
||||
@Override
|
||||
public void onModuleLoad() {
|
||||
@@ -95,10 +95,20 @@ public class LeaderboardEntryPoint extends AbstractEntryPoint {
|
||||
if (leaderboardDisplayName == null || leaderboardDisplayName.isEmpty()) {
|
||||
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");
|
||||
if (!isSmallWidth()) {
|
||||
FlowPanel globalNavigationPanel = new GlobalNavigationPanel(stringMessages, true, null, leaderboardGroupName);
|
||||
logoAndTitlePanel.add(globalNavigationPanel);
|
||||
}
|
||||
mainPanel.addNorth(logoAndTitlePanel, 68);
|
||||
|
||||
+1
-1
@@ -19,7 +19,7 @@ public class LeaderboardEditPage extends AbstractEntryPoint {
|
||||
public void onSuccess(List<String> leaderboardNames) {
|
||||
String leaderboardName = Window.Location.getParameter("name");
|
||||
if (leaderboardNames.contains(leaderboardName)) {
|
||||
LogoAndTitlePanel logoAndTitlePanel = new LogoAndTitlePanel(stringMessages.editScores(), stringMessages, isSmallWidth());
|
||||
LogoAndTitlePanel logoAndTitlePanel = new LogoAndTitlePanel(stringMessages.editScores(), stringMessages, LeaderboardEditPage.this);
|
||||
logoAndTitlePanel.addStyleName("LogoAndTitlePanel");
|
||||
EditableLeaderboardPanel leaderboardPanel = new EditableLeaderboardPanel(sailingService, new AsyncActionsExecutor(), leaderboardName, null,
|
||||
LeaderboardEditPage.this, stringMessages, userAgent);
|
||||
|
||||
+14
-2
@@ -36,6 +36,8 @@ public class RaceBoardEntryPoint extends AbstractEntryPoint {
|
||||
private String leaderboardGroupName;
|
||||
private RaceBoardViewModes viewMode;
|
||||
|
||||
private GlobalNavigationPanel globalNavigationPanel;
|
||||
|
||||
@Override
|
||||
public void onModuleLoad() {
|
||||
super.onModuleLoad();
|
||||
@@ -172,10 +174,20 @@ public class RaceBoardEntryPoint extends AbstractEntryPoint {
|
||||
}
|
||||
|
||||
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");
|
||||
if (!isSmallWidth()) {
|
||||
FlowPanel globalNavigationPanel = new GlobalNavigationPanel(stringMessages, true, leaderboardName, leaderboardGroupName);
|
||||
logoAndTitlePanel.add(globalNavigationPanel);
|
||||
}
|
||||
return logoAndTitlePanel;
|
||||
|
||||
+1
-1
@@ -56,7 +56,7 @@ public class SpectatorEntryPoint extends AbstractEntryPoint implements RegattaRe
|
||||
&& Window.Location.getParameter("embedded").equalsIgnoreCase("true");
|
||||
if (!embedded) {
|
||||
String title = groupName != null ? groupName : stringMessages.overview();
|
||||
LogoAndTitlePanel logoAndTitlePanel = new LogoAndTitlePanel(title, stringMessages, isSmallWidth());
|
||||
LogoAndTitlePanel logoAndTitlePanel = new LogoAndTitlePanel(title, stringMessages, this);
|
||||
logoAndTitlePanel.addStyleName("LogoAndTitlePanel");
|
||||
FlowPanel globalNavigationPanel = new GlobalNavigationPanel(stringMessages, true, null, null);
|
||||
logoAndTitlePanel.add(globalNavigationPanel);
|
||||
|
||||
+1
-1
@@ -58,7 +58,7 @@ public class TVEntryPoint extends AbstractEntryPoint {
|
||||
if(leaderboardDisplayName == null || leaderboardDisplayName.isEmpty()) {
|
||||
leaderboardDisplayName = leaderboardName;
|
||||
}
|
||||
logoAndTitlePanel = new LogoAndTitlePanel(leaderboardGroupName, leaderboardDisplayName, stringMessages, isSmallWidth());
|
||||
logoAndTitlePanel = new LogoAndTitlePanel(leaderboardGroupName, leaderboardDisplayName, stringMessages, this);
|
||||
logoAndTitlePanel.addStyleName("LogoAndTitlePanel");
|
||||
mainPanel.addNorth(logoAndTitlePanel, 68);
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user