All Downloads are FREE. Search and download functionalities are using the official Maven repository.

de.swm.commons.mobile.client.widgets.scroll.AdaptiveScrollPanel Maven / Gradle / Ivy

The newest version!
package de.swm.commons.mobile.client.widgets.scroll;

import com.google.gwt.dom.client.Style;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.Panel;
import com.google.gwt.user.client.ui.Widget;
import de.swm.commons.mobile.client.SWMMobile;
import de.swm.commons.mobile.client.base.PanelBase;
import de.swm.commons.mobile.client.widgets.toolbar.ToolbarPanel;

import java.util.Iterator;

/**
 * This Scrollpanel detects which OS it is running on and shows the SimpleScrollPanelWithScrollbar for iOS
 * and the SimpleScrollPanel for all Other OSes.
 *
 * @author karsunke.franziskus
 *         
* copyright (C) 10.11.2014, Stadtwerke München GmbH */ public class AdaptiveScrollPanel extends PanelBase implements IScrollPanel { private IScrollPanel realPanel; private void createScrollPanelIfNeeded() { if (this.realPanel == null) { if (SWMMobile.getOsDetection().isIOs()) { ScrollPanelWithScrollbar scrollPanelWithScrollbar = new ScrollPanelWithScrollbar(); this.getElement().getStyle().setProperty("display", "-webkit-box"); this.getElement().getStyle().setOverflowX(Style.Overflow.HIDDEN); this.realPanel = scrollPanelWithScrollbar; } else { SimpleScrollPanel scrollPanel = new SimpleScrollPanel(); scrollPanel.getElement().getStyle().setOverflow(Style.Overflow.HIDDEN); this.getElement().getStyle().setOverflowY(Style.Overflow.SCROLL); this.getElement().getStyle().setOverflowX(Style.Overflow.HIDDEN); this.realPanel = scrollPanel; } super.add((PanelBase) realPanel); this.getElement().getStyle().setProperty("WebkitBoxFlex", "1"); this.setHeight("100%"); } } @Override public void onLoad() { super.onLoad(); this.createScrollPanelIfNeeded(); } @Override public void setScrollMonitor(IScrollMonitor scrollMonitor) { createScrollPanelIfNeeded(); this.realPanel.setScrollMonitor(scrollMonitor); } @Override public void setPostionToTop() { createScrollPanelIfNeeded(); this.realPanel.setPostionToTop(); } @Override public void setPositionToBottom() { createScrollPanelIfNeeded(); this.realPanel.setPositionToBottom(); } @Override public void setScrollPosition(int pos) { createScrollPanelIfNeeded(); this.realPanel.setScrollPosition(pos); } @Override public int getScrollPosition() { createScrollPanelIfNeeded(); return this.realPanel.getScrollPosition(); } @Override public int getScrollToPosition() { createScrollPanelIfNeeded(); return this.realPanel.getScrollToPosition(); } @Override public void setOffsetHeight(int offsetHeight) { createScrollPanelIfNeeded(); this.realPanel.setOffsetHeight(offsetHeight); } @Override public void add(Widget w) { createScrollPanelIfNeeded(); ((PanelBase) realPanel).add(w); } @Override public void clear() { createScrollPanelIfNeeded(); ((PanelBase) realPanel).clear(); } @Override public Iterator iterator() { createScrollPanelIfNeeded(); return ((PanelBase) realPanel).iterator(); } @Override public boolean remove(Widget widget) { createScrollPanelIfNeeded(); return ((PanelBase) realPanel).remove(widget); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy