gwt-polymer-elements icon indicating copy to clipboard operation
gwt-polymer-elements copied to clipboard

how to capture swipe direction of IronSwipeableContainer event

Open astevko opened this issue 9 years ago • 1 comments

I posted this on Stackoverflow a couple of days ago but got little visibility and no response. Perhaps it'll do better here.

How do I capture the direction of the swipe event in a IronSwipeableContainer ?

    @UiField IronSwipeableContainer swipeable;
    ...
    swipeable.addIronSwipeHandler(new IronSwipeEventHandler() {

        @Override
        public void onIronSwipe(IronSwipeEvent event) {                
            log.info("onIronSwiped! ");
        }
    });

It is in the js object. I just cannot figure out how to access it from java. event_0_g$.nativeEvent_1_g$.detail.direction = "left" for extra credit - How do I prevent the swipe from dismissing (swipe away) the container?

astevko avatar Apr 08 '16 18:04 astevko

I think the only way to handle this (with the current generated Java code) would be to write a JSNI function and pass it event.getNativeElement()

http://www.gwtproject.org/doc/latest/DevGuideCodingBasicsJSNI.html

E.g.:

        public void onIronSwipe(IronSwipeEvent event) {                
            String direction = determineDirection(event.getNativeEvent());
        }
...
public static native String determineDirection(JavaScriptObject event) /*-{
  return event.detail.direction;
}-*/;

With regard to preventing dismissal, perhaps a better workflow would be to identify beforehand which containers shouldn't be dismissible and prevent swiping altogether by setting the element's class="disable-swipe

cpboyd avatar Jan 09 '17 15:01 cpboyd