0

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?

Stevko
  • 4,345
  • 6
  • 39
  • 66

1 Answers1

0

I think the only way to handle this (with the current generated Java code from Vaadin's polymer elements) 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"

Christopher Boyd
  • 335
  • 4
  • 10