package org.geogebra.web.web.cas.view;
import com.google.gwt.dom.client.Element;
import com.google.gwt.event.dom.client.ScrollEvent;
import com.google.gwt.event.dom.client.ScrollHandler;
import com.google.gwt.user.client.Event;
import com.google.gwt.user.client.Event.NativePreviewEvent;
import com.google.gwt.user.client.Event.NativePreviewHandler;
import com.google.gwt.user.client.ui.ScrollPanel;
/**
* Widget representing the CAS View
*
*/
public class CASComponentW extends ScrollPanel implements ScrollHandler,
NativePreviewHandler {
private boolean scrollHappened;
/**
* New CAS component
*/
public CASComponentW() {
this.getElement().setClassName("casView");
addScrollHandler(this);
Event.addNativePreviewHandler(this);
}
@Override
public void onScroll(ScrollEvent event) {
scrollHappened = true;
}
@Override
public void onPreviewNativeEvent(NativePreviewEvent event) {
Element element = Element.as(event.getNativeEvent().getEventTarget());
if (this.getElement().isOrHasChild(element)) {
if (event.getTypeInt() == Event.ONTOUCHEND) {
if (scrollHappened) {
event.cancel();
scrollHappened = false;
}
}
}
}
}