mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-06 04:13:51 +00:00
fixed positioning of scaled leaderboard in case of a preconfigured zoom
This commit is contained in:
1 parent
7b7cded36e
commit
197d322cb8
3 files changed
+36
-17
No files matched your search
+24
-9
@@ -181,7 +181,7 @@ public class AutoPlayController implements RaceTimesInfoProviderListener {
|
|||||||
} else {
|
} else {
|
||||||
try {
|
try {
|
||||||
Double zoom = Double.valueOf(leaderboardZoom);
|
Double zoom = Double.valueOf(leaderboardZoom);
|
||||||
scaleContentWidget(SAP_HEADER_HEIGHT, currentContentWidget, zoom);
|
zoomContentWidget(SAP_HEADER_HEIGHT, currentContentWidget, zoom);
|
||||||
} catch (NumberFormatException e) {
|
} catch (NumberFormatException e) {
|
||||||
// do nothing
|
// do nothing
|
||||||
}
|
}
|
||||||
@@ -196,13 +196,13 @@ public class AutoPlayController implements RaceTimesInfoProviderListener {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void autoZoomContentWidget(int headerHeight, final Widget contentWidget) {
|
private void zoomContentWidget(final int headerHeight, final Widget contentWidget, final double scaleFactor) {
|
||||||
if(contentWidget != null) {
|
if(contentWidget != null) {
|
||||||
Scheduler.get().scheduleFixedPeriod(new RepeatingCommand() {
|
Scheduler.get().scheduleFixedPeriod(new RepeatingCommand() {
|
||||||
public boolean execute () {
|
public boolean execute () {
|
||||||
boolean invokeAgain = true;
|
boolean invokeAgain = true;
|
||||||
if(currentContentWidget.getOffsetHeight() > 100) {
|
if(currentContentWidget.getOffsetHeight() > 50) {
|
||||||
scaleContentWidget(SAP_HEADER_HEIGHT, contentWidget);
|
scaleContentWidget(headerHeight, contentWidget, scaleFactor);
|
||||||
invokeAgain = false;
|
invokeAgain = false;
|
||||||
}
|
}
|
||||||
return invokeAgain;
|
return invokeAgain;
|
||||||
@@ -211,10 +211,18 @@ public class AutoPlayController implements RaceTimesInfoProviderListener {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void scaleContentWidget(int headerHeight, Widget contentWidget, double scaleFactor, double diffX) {
|
private void autoZoomContentWidget(final int headerHeight, final Widget contentWidget) {
|
||||||
if(scaleFactor > 0.0) {
|
if(contentWidget != null) {
|
||||||
CSS3Util.setProperty(contentWidget.getElement().getStyle(), "transform", "translateX(" + diffX / 2.0 + "px) scale(" + scaleFactor + ")");
|
Scheduler.get().scheduleFixedPeriod(new RepeatingCommand() {
|
||||||
CSS3Util.setProperty(contentWidget.getElement().getStyle(), "transformOrigin", "0 0");
|
public boolean execute () {
|
||||||
|
boolean invokeAgain = true;
|
||||||
|
if(currentContentWidget.getOffsetHeight() > 50) {
|
||||||
|
scaleContentWidget(headerHeight, contentWidget);
|
||||||
|
invokeAgain = false;
|
||||||
|
}
|
||||||
|
return invokeAgain;
|
||||||
|
}
|
||||||
|
}, 1000);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -245,7 +253,14 @@ public class AutoPlayController implements RaceTimesInfoProviderListener {
|
|||||||
|
|
||||||
scaleContentWidget(headerHeight, contentWidget, scaleFactor, diffX);
|
scaleContentWidget(headerHeight, contentWidget, scaleFactor, diffX);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void scaleContentWidget(int headerHeight, Widget contentWidget, double scaleFactor, double diffX) {
|
||||||
|
if(scaleFactor > 0.0) {
|
||||||
|
CSS3Util.setProperty(contentWidget.getElement().getStyle(), "transform", "translateX(" + diffX / 2.0 + "px) scale(" + scaleFactor + ")");
|
||||||
|
CSS3Util.setProperty(contentWidget.getElement().getStyle(), "transformOrigin", "0 0");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void showRaceBoard() {
|
private void showRaceBoard() {
|
||||||
if (activeTvView != AutoPlayModes.Raceboard) {
|
if (activeTvView != AutoPlayModes.Raceboard) {
|
||||||
playerView.clearDockPanel();
|
playerView.clearDockPanel();
|
||||||
|
|||||||
+8
@@ -19,6 +19,7 @@ import com.google.gwt.user.client.ui.ListBox;
|
|||||||
import com.google.gwt.user.client.ui.TextBox;
|
import com.google.gwt.user.client.ui.TextBox;
|
||||||
import com.google.gwt.user.client.ui.Widget;
|
import com.google.gwt.user.client.ui.Widget;
|
||||||
import com.sap.sailing.gwt.autoplay.client.app.PlaceNavigator;
|
import com.sap.sailing.gwt.autoplay.client.app.PlaceNavigator;
|
||||||
|
import com.sap.sailing.gwt.autoplay.client.shared.header.SAPHeader;
|
||||||
import com.sap.sailing.gwt.common.client.SharedResources;
|
import com.sap.sailing.gwt.common.client.SharedResources;
|
||||||
import com.sap.sailing.gwt.ui.shared.EventDTO;
|
import com.sap.sailing.gwt.ui.shared.EventDTO;
|
||||||
import com.sap.sailing.gwt.ui.shared.LeaderboardGroupDTO;
|
import com.sap.sailing.gwt.ui.shared.LeaderboardGroupDTO;
|
||||||
@@ -30,6 +31,7 @@ public class DesktopStartView extends Composite implements StartView {
|
|||||||
interface StartPageViewUiBinder extends UiBinder<Widget, DesktopStartView> {
|
interface StartPageViewUiBinder extends UiBinder<Widget, DesktopStartView> {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@UiField(provided=true) SAPHeader sapHeader;
|
||||||
@UiField(provided=true) ListBox eventSelectionBox;
|
@UiField(provided=true) ListBox eventSelectionBox;
|
||||||
@UiField(provided=true) ListBox leaderboardSelectionBox;
|
@UiField(provided=true) ListBox leaderboardSelectionBox;
|
||||||
@UiField CheckBox leaderboardAutoZoomBox;
|
@UiField CheckBox leaderboardAutoZoomBox;
|
||||||
@@ -47,6 +49,7 @@ public class DesktopStartView extends Composite implements StartView {
|
|||||||
this.navigator = navigator;
|
this.navigator = navigator;
|
||||||
this.events = new ArrayList<EventDTO>();
|
this.events = new ArrayList<EventDTO>();
|
||||||
|
|
||||||
|
sapHeader = new SAPHeader("Auto player configuration");
|
||||||
eventSelectionBox = new ListBox(false);
|
eventSelectionBox = new ListBox(false);
|
||||||
leaderboardSelectionBox = new ListBox(false);
|
leaderboardSelectionBox = new ListBox(false);
|
||||||
|
|
||||||
@@ -56,6 +59,9 @@ public class DesktopStartView extends Composite implements StartView {
|
|||||||
leaderboardZoomBox.setEnabled(false);
|
leaderboardZoomBox.setEnabled(false);
|
||||||
|
|
||||||
leaderboardSelectionDiv.getStyle().setVisibility(Visibility.HIDDEN);
|
leaderboardSelectionDiv.getStyle().setVisibility(Visibility.HIDDEN);
|
||||||
|
leaderboardZoomDiv.getStyle().setVisibility(Visibility.HIDDEN);
|
||||||
|
leaderboardAutoZoomDiv.getStyle().setVisibility(Visibility.HIDDEN);
|
||||||
|
|
||||||
startAutoPlayButton.setEnabled(false);
|
startAutoPlayButton.setEnabled(false);
|
||||||
startAutoPlayButton.addStyleName(SharedResources.INSTANCE.mainCss().buttoninactive());
|
startAutoPlayButton.addStyleName(SharedResources.INSTANCE.mainCss().buttoninactive());
|
||||||
}
|
}
|
||||||
@@ -96,6 +102,8 @@ public class DesktopStartView extends Composite implements StartView {
|
|||||||
startAutoPlayButton.setEnabled(false);
|
startAutoPlayButton.setEnabled(false);
|
||||||
startAutoPlayButton.addStyleName(SharedResources.INSTANCE.mainCss().buttoninactive());
|
startAutoPlayButton.addStyleName(SharedResources.INSTANCE.mainCss().buttoninactive());
|
||||||
}
|
}
|
||||||
|
leaderboardZoomDiv.getStyle().setVisibility(selectedLeaderboardName != null ? Visibility.VISIBLE : Visibility.HIDDEN);
|
||||||
|
leaderboardAutoZoomDiv.getStyle().setVisibility(selectedLeaderboardName != null ? Visibility.VISIBLE : Visibility.HIDDEN);
|
||||||
}
|
}
|
||||||
|
|
||||||
@UiHandler("startAutoPlayButton")
|
@UiHandler("startAutoPlayButton")
|
||||||
|
|||||||
+4
-8
@@ -1,16 +1,12 @@
|
|||||||
<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
|
<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
|
||||||
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
|
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
|
||||||
xmlns:s="urn:import:com.sap.sailing.gwt.autoplay.client.place"
|
xmlns:s="urn:import:com.sap.sailing.gwt.autoplay.client.shared"
|
||||||
xmlns:g="urn:import:com.google.gwt.user.client.ui">
|
xmlns:g="urn:import:com.google.gwt.user.client.ui">
|
||||||
<ui:with field="res" type="com.sap.sailing.gwt.common.client.SharedResources" />
|
<ui:with field="res" type="com.sap.sailing.gwt.common.client.SharedResources" />
|
||||||
<ui:with field="i18n" type="com.sap.sailing.gwt.common.client.i18n.TextMessages"/>
|
<ui:with field="i18n" type="com.sap.sailing.gwt.common.client.i18n.TextMessages"/>
|
||||||
<ui:style>
|
<g:HTMLPanel>
|
||||||
.mainPanel {
|
<s:header.SAPHeader ui:field="sapHeader" />
|
||||||
margin:10px;
|
<div style="height:1em;" />
|
||||||
padding-top: 1em;
|
|
||||||
}
|
|
||||||
</ui:style>
|
|
||||||
<g:HTMLPanel styleName="{style.mainPanel}">
|
|
||||||
<div class="{res.mainCss.grid}" style="padding-bottom:1em;">
|
<div class="{res.mainCss.grid}" style="padding-bottom:1em;">
|
||||||
<div class="{res.mediaCss.small2} {res.mediaCss.columns}">
|
<div class="{res.mediaCss.small2} {res.mediaCss.columns}">
|
||||||
<ui:text from='{i18n.events}'/>
|
<ui:text from='{i18n.events}'/>
|
||||||
|
|||||||
Reference in new issue
Block a user