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
+35
-16
No files matched your search
+23
-8
@@ -181,7 +181,7 @@ public class AutoPlayController implements RaceTimesInfoProviderListener {
|
||||
} else {
|
||||
try {
|
||||
Double zoom = Double.valueOf(leaderboardZoom);
|
||||
scaleContentWidget(SAP_HEADER_HEIGHT, currentContentWidget, zoom);
|
||||
zoomContentWidget(SAP_HEADER_HEIGHT, currentContentWidget, zoom);
|
||||
} catch (NumberFormatException e) {
|
||||
// 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) {
|
||||
Scheduler.get().scheduleFixedPeriod(new RepeatingCommand() {
|
||||
public boolean execute () {
|
||||
boolean invokeAgain = true;
|
||||
if(currentContentWidget.getOffsetHeight() > 100) {
|
||||
scaleContentWidget(SAP_HEADER_HEIGHT, contentWidget);
|
||||
if(currentContentWidget.getOffsetHeight() > 50) {
|
||||
scaleContentWidget(headerHeight, contentWidget, scaleFactor);
|
||||
invokeAgain = false;
|
||||
}
|
||||
return invokeAgain;
|
||||
@@ -211,10 +211,18 @@ public class AutoPlayController implements RaceTimesInfoProviderListener {
|
||||
}
|
||||
}
|
||||
|
||||
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 autoZoomContentWidget(final int headerHeight, final Widget contentWidget) {
|
||||
if(contentWidget != null) {
|
||||
Scheduler.get().scheduleFixedPeriod(new RepeatingCommand() {
|
||||
public boolean execute () {
|
||||
boolean invokeAgain = true;
|
||||
if(currentContentWidget.getOffsetHeight() > 50) {
|
||||
scaleContentWidget(headerHeight, contentWidget);
|
||||
invokeAgain = false;
|
||||
}
|
||||
return invokeAgain;
|
||||
}
|
||||
}, 1000);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -246,6 +254,13 @@ public class AutoPlayController implements RaceTimesInfoProviderListener {
|
||||
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() {
|
||||
if (activeTvView != AutoPlayModes.Raceboard) {
|
||||
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.Widget;
|
||||
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.ui.shared.EventDTO;
|
||||
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> {
|
||||
}
|
||||
|
||||
@UiField(provided=true) SAPHeader sapHeader;
|
||||
@UiField(provided=true) ListBox eventSelectionBox;
|
||||
@UiField(provided=true) ListBox leaderboardSelectionBox;
|
||||
@UiField CheckBox leaderboardAutoZoomBox;
|
||||
@@ -47,6 +49,7 @@ public class DesktopStartView extends Composite implements StartView {
|
||||
this.navigator = navigator;
|
||||
this.events = new ArrayList<EventDTO>();
|
||||
|
||||
sapHeader = new SAPHeader("Auto player configuration");
|
||||
eventSelectionBox = new ListBox(false);
|
||||
leaderboardSelectionBox = new ListBox(false);
|
||||
|
||||
@@ -56,6 +59,9 @@ public class DesktopStartView extends Composite implements StartView {
|
||||
leaderboardZoomBox.setEnabled(false);
|
||||
|
||||
leaderboardSelectionDiv.getStyle().setVisibility(Visibility.HIDDEN);
|
||||
leaderboardZoomDiv.getStyle().setVisibility(Visibility.HIDDEN);
|
||||
leaderboardAutoZoomDiv.getStyle().setVisibility(Visibility.HIDDEN);
|
||||
|
||||
startAutoPlayButton.setEnabled(false);
|
||||
startAutoPlayButton.addStyleName(SharedResources.INSTANCE.mainCss().buttoninactive());
|
||||
}
|
||||
@@ -96,6 +102,8 @@ public class DesktopStartView extends Composite implements StartView {
|
||||
startAutoPlayButton.setEnabled(false);
|
||||
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")
|
||||
|
||||
+4
-8
@@ -1,16 +1,12 @@
|
||||
<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
|
||||
<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">
|
||||
<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:style>
|
||||
.mainPanel {
|
||||
margin:10px;
|
||||
padding-top: 1em;
|
||||
}
|
||||
</ui:style>
|
||||
<g:HTMLPanel styleName="{style.mainPanel}">
|
||||
<g:HTMLPanel>
|
||||
<s:header.SAPHeader ui:field="sapHeader" />
|
||||
<div style="height:1em;" />
|
||||
<div class="{res.mainCss.grid}" style="padding-bottom:1em;">
|
||||
<div class="{res.mediaCss.small2} {res.mediaCss.columns}">
|
||||
<ui:text from='{i18n.events}'/>
|
||||
|
||||
Reference in new issue
Block a user