Example usage for com.google.gwt.user.client DOM sinkEvents

List of usage examples for com.google.gwt.user.client DOM sinkEvents

Introduction

In this page you can find the example usage for com.google.gwt.user.client DOM sinkEvents.

Prototype

public static void sinkEvents(Element elem, int eventBits) 

Source Link

Document

Sets the current set of events sunk by a given element.

Usage

From source file:asquare.gwt.tk.client.ui.behavior.ControllerSupportDelegate.java

License:Apache License

public void unsinkEvents(int eventBits) {
    m_bitsForOnBrowserEvent &= ~eventBits;
    if (isOrWasAttached()) {
        DOM.sinkEvents(m_widget.getElement(), m_bitsForOnBrowserEvent | m_bitsForControllers);
    }/*  w  w  w . j  a  va2s .  co  m*/
}

From source file:asquare.gwt.tk.client.ui.behavior.ControllerSupportDelegate.java

License:Apache License

/**
 * @throws IllegalArgumentException if <code>controller</code> is null
 *///from  w  w  w .ja  v a2s .c  o m
public Widget addController(Controller controller) {
    if (controller == null)
        throw new IllegalArgumentException();

    if (m_controllers == null) {
        m_controllers = new ArrayList<Controller>();
    }
    m_controllers.add(controller);
    if (isOrWasAttached()) {
        int eventBits = controller.getEventBits();
        m_bitsForControllers |= eventBits;
        DOM.sinkEvents(m_widget.getElement(), m_bitsForOnBrowserEvent | m_bitsForControllers);
    }
    if (m_widget.isAttached()) {
        controller.plugIn(m_widget);
    }
    return m_widget;
}

From source file:asquare.gwt.tk.client.ui.behavior.ControllerSupportDelegate.java

License:Apache License

/**
 * @throws IllegalArgumentException if <code>controller</code> is <code>null</code>
 * @throws IllegalArgumentException if <code>controller</code> is not present
 *//* w  w w  .j a va 2  s . c om*/
public Widget removeController(Controller controller) {
    if (controller == null)
        throw new IllegalArgumentException();

    int index = -1;
    if (m_controllers != null) {
        index = m_controllers.indexOf(controller);
    }

    if (index == -1)
        throw new IllegalArgumentException();

    m_controllers.remove(index);
    if (m_widget.isAttached()) {
        controller.unplug(m_widget);
    }
    if (isOrWasAttached()) {
        m_bitsForControllers = calculateControllerBits();
        DOM.sinkEvents(m_widget.getElement(), m_bitsForOnBrowserEvent | m_bitsForControllers);
    }
    return m_widget;
}

From source file:asquare.gwt.tk.client.ui.behavior.ControllerSupportDelegate.java

License:Apache License

public void setControllers(List<? extends Controller> controllers) {
    if (m_widget.isAttached()) {
        unplugControllers();//  w ww  .java  2s .co m
    }
    m_controllers = null;
    if (controllers != null) {
        m_controllers = new ArrayList<Controller>();
        for (int i = 0, size = controllers.size(); i < size; i++) {
            Controller controller = controllers.get(i);
            m_controllers.add(controller);
        }
    }
    if (isOrWasAttached()) {
        m_bitsForControllers = calculateControllerBits();
        DOM.sinkEvents(m_widget.getElement(), m_bitsForOnBrowserEvent | m_bitsForControllers);
    }
    if (m_widget.isAttached()) {
        plugInControllers();
    }
}

From source file:asquare.gwt.tk.client.ui.behavior.ControllerSupportDelegate.java

License:Apache License

/**
 * Widget.onAttach() must be called before this. 
 */// ww  w  .  ja va2 s  . co m
public void onAttach() {
    assert m_widget.isAttached();
    if (!isOrWasAttached()) {
        m_isOrWasAttached = true;
        /**
        * The widget may have sunk events internally, so read from the DOM to
        * ensure we get all bits. This is why widget must first be attached. 
        */
        m_bitsForOnBrowserEvent |= DOM.getEventsSunk(m_widget.getElement());
        m_bitsForControllers = calculateControllerBits();
        DOM.sinkEvents(m_widget.getElement(), m_bitsForOnBrowserEvent | m_bitsForControllers);
    }
    plugInControllers();
}

From source file:bz.davide.dmweb.shared.view.AbstractHtmlElementView.java

License:Open Source License

protected void addSinkEvents(int addEventBits) {
    this.eventBits |= addEventBits;
    if (!this.isEventAttachHandlerAlreadyRegistered()) {
        this.addAttachHandler(new DMWidgetEventAttachHandler(this));
    } else if (this.isAttacchedToDOM()) {
        DOM.sinkEvents(this.getElement(), this.eventBits);
    }/*from  ww w . j av  a  2s  .  c  om*/
}

From source file:bz.davide.dmweb.shared.view.DMWidgetEventAttachHandler.java

License:Open Source License

@Override
public void onAttachOrDetach(AttachEvent event) {
    if (event.isAttached()) {
        DOM.sinkEvents(this.widget.getElement(), this.widget.eventBits);
        DOM.setEventListener(this.widget.getElement(), new EventListener() {
            @Override//from  w w  w  . j  a v a 2s  . c  o m
            public void onBrowserEvent(Event event) {
                DMWidgetEventAttachHandler.this.widget.onBrowserEvent(event);
            }
        });
    } else {
        DOM.setEventListener(this.widget.getElement(), null);
    }
}

From source file:cc.alcina.framework.gwt.client.widget.DivStackPanel.java

License:Apache License

/**
 * Creates an empty stack panel.
 */
public DivStackPanel() {
    body = DOM.createDiv();
    setElement(body);
    DOM.sinkEvents(body, Event.ONCLICK);
    setStyleName(DEFAULT_STYLENAME);
}

From source file:client.net.sf.saxon.ce.Xslt20ProcessorImpl.java

License:Mozilla Public License

private void registerEventHandlers(Controller controller) throws XPathException {
    // add an event listener to capture registered event modes
    if (registeredEventModes != null) {
        return;/* w w  w. j a  v  a2  s.c o m*/
    }
    Element docElement = (com.google.gwt.user.client.Element) (Object) Document.get();
    registeredEventModes = controller.getRuleManager().getModesInNamespace(NamespaceConstant.IXSL);
    // Restriction: only one event listener per element
    if (registeredEventModes.size() > 0 && !registeredForEvents) {
        registeredForEvents = true;
        registerNonDOMevents(controller);
        if (DOM.getEventListener((com.google.gwt.user.client.Element) docElement) == null) {
            principleEventListener = true;
            DOM.setEventListener((com.google.gwt.user.client.Element) docElement, new EventListener() {
                public void onBrowserEvent(Event event) {

                    EventTarget eTarget = event.getEventTarget();
                    Node eventNode;
                    if (Node.is(eTarget)) {
                        eventNode = Node.as(eTarget);
                    } else {
                        eventNode = Node.as(getCorrespondingSVGElement(eTarget));
                        if (eventNode == null) {
                            return;
                        }
                    }
                    bubbleApplyTemplates(eventNode, event);
                }
            });
        } else {
            // can't register for event so register for relayEvent
            Controller.addEventProcessor(this);
        }
    }
    // Events for all processor instances may register 1 or more event types
    for (Mode eventMode : registeredEventModes) {
        String eventName = eventMode.getModeName().getLocalName();
        if (!eventName.startsWith("on")) {
            logger.warning("Event name: '" + eventName + "' is invalid - names should begin with 'on'");
        } else {
            eventName = eventName.substring(2);
        }
        int eventNo = Event.getTypeInt(eventName);
        DOM.sinkEvents((com.google.gwt.user.client.Element) docElement,
                eventNo | DOM.getEventsSunk((com.google.gwt.user.client.Element) docElement));

    }

}

From source file:com.cgxlib.xq.client.plugins.events.EventsListener.java

License:Apache License

private void sink(int eventbits, String eventName) {
    // ensure that the gwtQuery's event listener is set as event listener of the element
    DOM.setEventListener((com.google.gwt.user.client.Element) element, this);

    if (eventbits != BITLESS) {
        eventBits |= eventbits;//  w ww  .j  a  va 2s. co  m

        if ((eventBits | Event.FOCUSEVENTS) == Event.FOCUSEVENTS && JsUtils.isElement(element)
                && element.getAttribute("tabIndex").length() == 0) {
            element.setAttribute("tabIndex", "0");
        }
        DOM.sinkEvents((com.google.gwt.user.client.Element) element,
                eventBits | DOM.getEventsSunk((com.google.gwt.user.client.Element) element));
    } else {
        sinkBitlessEvent(element, eventName);
    }
}