// Path: gwtbootstrap3/src/main/java/org/gwtbootstrap3/client/shared/event/HiddenEvent.java
// public class HiddenEvent extends GwtEvent<HiddenHandler> {
//     private static final Type<HiddenHandler> TYPE = new Type<HiddenHandler>();
//     private final NativeEvent nativeEvent;
// 
//     public static Type<HiddenHandler> getType() {
//         return TYPE;
//     }
// 
//     public HiddenEvent() {
//         this(null);
//     }
// 
//     public HiddenEvent(final NativeEvent nativeEvent) {
//         this.nativeEvent = nativeEvent;
//     }
// 
//     @Override
//     public final Type<HiddenHandler> getAssociatedType() {
//         return TYPE;
//     }
// 
//     @Override
//     protected void dispatch(final HiddenHandler handler) {
//         handler.onHidden(this);
//     }
// 
//     public final void preventDefault() {
//         if (nativeEvent == null) return;
//         nativeEvent.preventDefault();
//     }
// 
//     public final void stopPropagation() {
//         if (nativeEvent == null) return;
//         nativeEvent.stopPropagation();
//     }
// }
// 
// Path: gwtbootstrap3/src/main/java/org/gwtbootstrap3/client/shared/event/HiddenHandler.java
// public interface HiddenHandler extends EventHandler {
//     void onHidden(HiddenEvent event);
// }
// 
// Path: gwtbootstrap3/src/main/java/org/gwtbootstrap3/client/shared/event/InsertedEvent.java
// public class InsertedEvent extends GwtEvent<InsertedHandler> {
//     private static final Type<InsertedHandler> TYPE = new Type<InsertedHandler>();
//     private final NativeEvent nativeEvent;
// 
//     public static Type<InsertedHandler> getType() {
//         return TYPE;
//     }
// 
//     public InsertedEvent() {
//         this(null);
//     }
// 
//     public InsertedEvent(final NativeEvent nativeEvent) {
//         this.nativeEvent = nativeEvent;
//     }
// 
//     @Override
//     public final Type<InsertedHandler> getAssociatedType() {
//         return TYPE;
//     }
// 
//     @Override
//     protected void dispatch(final InsertedHandler handler) {
//         handler.onInserted(this);
//     }
// 
//     public final void preventDefault() {
//         if (nativeEvent == null) return;
//         nativeEvent.preventDefault();
//     }
// 
//     public final void stopPropagation() {
//         if (nativeEvent == null) return;
//         nativeEvent.stopPropagation();
//     }
// }
// 
// Path: gwtbootstrap3/src/main/java/org/gwtbootstrap3/client/shared/event/ShowHandler.java
// public interface ShowHandler extends EventHandler {
//     void onShow(ShowEvent showEvent);
// }


import java.util.Iterator;
import java.util.NoSuchElementException;
import org.gwtbootstrap3.client.shared.event.HiddenEvent;
import org.gwtbootstrap3.client.shared.event.HiddenHandler;
import org.gwtbootstrap3.client.shared.event.HideEvent;
import org.gwtbootstrap3.client.shared.event.HideHandler;
import org.gwtbootstrap3.client.shared.event.InsertedEvent;
import org.gwtbootstrap3.client.shared.event.ShowEvent;
import org.gwtbootstrap3.client.shared.event.ShowHandler;
import org.gwtbootstrap3.client.shared.event.ShownEvent;
import org.gwtbootstrap3.client.shared.event.ShownHandler;
import org.gwtbootstrap3.client.shared.js.JQuery;
import org.gwtbootstrap3.client.ui.constants.Placement;
import org.gwtbootstrap3.client.ui.constants.Trigger;
import com.google.gwt.dom.client.Element;
import com.google.gwt.event.logical.shared.AttachEvent;
import com.google.gwt.safehtml.shared.SafeHtml;
import com.google.gwt.user.client.Event;
import com.google.gwt.user.client.Timer;
import com.google.gwt.user.client.ui.HasOneWidget;
import com.google.gwt.user.client.ui.HasWidgets;
import com.google.gwt.user.client.ui.IsWidget;
import com.google.gwt.user.client.ui.Widget;
import com.google.web.bindery.event.shared.HandlerRegistration;
import jsinterop.annotations.JsMethod;
     *
     * @param tooltipInnerClassNames the tooltip inner div class names
     */
    public void setTooltipInnerClassNames(String tooltipInnerClassNames) {
        this.tooltipInnerClassNames = tooltipInnerClassNames;
    }

    /** {@inheritDoc} */
    @Override
    public void setTrigger(final Trigger trigger) {
        this.trigger = trigger;
        if (initialized) {
            updateString(widget.getElement(), "trigger",
                    trigger == null ? Trigger.HOVER.getCssName() : trigger.getCssName());
        }
    }

    /**
     * @param viewportPadding the viewportPadding to set
     */
    public void setViewportPadding(int viewportPadding) {
        this.viewportPadding = viewportPadding;
        if (initialized) {
            updateViewport(getWidget().getElement(), this.viewportSelector, this.viewportPadding);
        }
    }

    /**
     * @param viewportSelector the viewportSelector to set
     */
// Path: gwtbootstrap3/src/main/java/org/gwtbootstrap3/client/shared/event/HiddenEvent.java
// public class HiddenEvent extends GwtEvent<HiddenHandler> {
//     private static final Type<HiddenHandler> TYPE = new Type<HiddenHandler>();
//     private final NativeEvent nativeEvent;
// 
//     public static Type<HiddenHandler> getType() {
//         return TYPE;
//     }
// 
//     public HiddenEvent() {
//         this(null);
//     }
// 
//     public HiddenEvent(final NativeEvent nativeEvent) {
//         this.nativeEvent = nativeEvent;
//     }
// 
//     @Override
//     public final Type<HiddenHandler> getAssociatedType() {
//         return TYPE;
//     }
// 
//     @Override
//     protected void dispatch(final HiddenHandler handler) {
//         handler.onHidden(this);
//     }
// 
//     public final void preventDefault() {
//         if (nativeEvent == null) return;
//         nativeEvent.preventDefault();
//     }
// 
//     public final void stopPropagation() {
//         if (nativeEvent == null) return;
//         nativeEvent.stopPropagation();
//     }
// }
// 
// Path: gwtbootstrap3/src/main/java/org/gwtbootstrap3/client/shared/event/HiddenHandler.java
// public interface HiddenHandler extends EventHandler {
//     void onHidden(HiddenEvent event);
// }
// 
// Path: gwtbootstrap3/src/main/java/org/gwtbootstrap3/client/shared/event/InsertedEvent.java
// public class InsertedEvent extends GwtEvent<InsertedHandler> {
//     private static final Type<InsertedHandler> TYPE = new Type<InsertedHandler>();
//     private final NativeEvent nativeEvent;
// 
//     public static Type<InsertedHandler> getType() {
//         return TYPE;
//     }
// 
//     public InsertedEvent() {
//         this(null);
//     }
// 
//     public InsertedEvent(final NativeEvent nativeEvent) {
//         this.nativeEvent = nativeEvent;
//     }
// 
//     @Override
//     public final Type<InsertedHandler> getAssociatedType() {
//         return TYPE;
//     }
// 
//     @Override
//     protected void dispatch(final InsertedHandler handler) {
//         handler.onInserted(this);
//     }
// 
//     public final void preventDefault() {
//         if (nativeEvent == null) return;
//         nativeEvent.preventDefault();
//     }
// 
//     public final void stopPropagation() {
//         if (nativeEvent == null) return;
//         nativeEvent.stopPropagation();
//     }
// }
// 
// Path: gwtbootstrap3/src/main/java/org/gwtbootstrap3/client/shared/event/ShowHandler.java
// public interface ShowHandler extends EventHandler {
//     void onShow(ShowEvent showEvent);
// }


// Path: gwtbootstrap3/src/main/java/org/gwtbootstrap3/client/ui/base/AbstractTooltip.java
import java.util.Iterator;
import java.util.NoSuchElementException;
import org.gwtbootstrap3.client.shared.event.HiddenEvent;
import org.gwtbootstrap3.client.shared.event.HiddenHandler;
import org.gwtbootstrap3.client.shared.event.HideEvent;
import org.gwtbootstrap3.client.shared.event.HideHandler;
import org.gwtbootstrap3.client.shared.event.InsertedEvent;
import org.gwtbootstrap3.client.shared.event.ShowEvent;
import org.gwtbootstrap3.client.shared.event.ShowHandler;
import org.gwtbootstrap3.client.shared.event.ShownEvent;
import org.gwtbootstrap3.client.shared.event.ShownHandler;
import org.gwtbootstrap3.client.shared.js.JQuery;
import org.gwtbootstrap3.client.ui.constants.Placement;
import org.gwtbootstrap3.client.ui.constants.Trigger;
import com.google.gwt.dom.client.Element;
import com.google.gwt.event.logical.shared.AttachEvent;
import com.google.gwt.safehtml.shared.SafeHtml;
import com.google.gwt.user.client.Event;
import com.google.gwt.user.client.Timer;
import com.google.gwt.user.client.ui.HasOneWidget;
import com.google.gwt.user.client.ui.HasWidgets;
import com.google.gwt.user.client.ui.IsWidget;
import com.google.gwt.user.client.ui.Widget;
import com.google.web.bindery.event.shared.HandlerRegistration;
import jsinterop.annotations.JsMethod;

     *
     * @param tooltipInnerClassNames the tooltip inner div class names
     */
    public void setTooltipInnerClassNames(String tooltipInnerClassNames) {
        this.tooltipInnerClassNames = tooltipInnerClassNames;
    }

    /** {@inheritDoc} */
    @Override
    public void setTrigger(final Trigger trigger) {
        this.trigger = trigger;
        if (initialized) {
            updateString(widget.getElement(), "trigger",
                    trigger == null ? Trigger.HOVER.getCssName() : trigger.getCssName());
        }
    }

    /**
     * @param viewportPadding the viewportPadding to set
     */
    public void setViewportPadding(int viewportPadding) {
        this.viewportPadding = viewportPadding;
        if (initialized) {
            updateViewport(getWidget().getElement(), this.viewportSelector, this.viewportPadding);
        }
    }

    /**
     * @param viewportSelector the viewportSelector to set
     */
    public void setViewportSelector(String viewportSelector) {