fixed positioning of scaled leaderboard in case of a preconfigured zoom

This commit is contained in:
fmittag committed 2014-10-09 14:25:25 +02:00
1 parent 7b7cded36e
commit 197d322cb8
3 files changed
+35 -16

No files matched your search

@@ -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();
@@ -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")
@@ -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}'/>