Search in sources :

Example 11 with EventListener

use of elemental.events.EventListener in project che by eclipse.

the class ContentAssistWidget method createProposalPopupItem.

/**
     * Creates a new proposal item.
     *
     * @param index
     *         of proposal
     */
private Element createProposalPopupItem(int index) {
    final CompletionProposal proposal = proposals.get(index);
    final Element element = Elements.createLiElement(popupResources.popupStyle().item());
    element.setId(Integer.toString(index));
    final Element icon = Elements.createDivElement(popupResources.popupStyle().icon());
    if (proposal.getIcon() != null && proposal.getIcon().getSVGImage() != null) {
        icon.appendChild((Node) proposal.getIcon().getSVGImage().getElement());
    } else if (proposal.getIcon() != null && proposal.getIcon().getImage() != null) {
        icon.appendChild((Node) proposal.getIcon().getImage().getElement());
    }
    element.appendChild(icon);
    final SpanElement label = Elements.createSpanElement(popupResources.popupStyle().label());
    label.setInnerHTML(proposal.getDisplayString());
    element.appendChild(label);
    element.setTabIndex(1);
    final EventListener validateListener = evt -> applyProposal(proposal);
    element.addEventListener(Event.DBLCLICK, validateListener, false);
    element.addEventListener(CUSTOM_EVT_TYPE_VALIDATE, validateListener, false);
    element.addEventListener(Event.CLICK, event -> select(element), false);
    element.addEventListener(Event.FOCUS, this, false);
    element.addEventListener(DOCUMENTATION, new EventListener() {

        @Override
        public void handleEvent(Event event) {
            proposal.getAdditionalProposalInfo(new AsyncCallback<Widget>() {

                @Override
                public void onSuccess(Widget info) {
                    if (info != null) {
                        docPopup.clear();
                        docPopup.add(info);
                        docPopup.getElement().getStyle().setOpacity(1);
                        if (!docPopup.isAttached()) {
                            final int x = popupElement.getOffsetLeft() + popupElement.getOffsetWidth() + 3;
                            final int y = popupElement.getOffsetTop();
                            RootPanel.get().add(docPopup);
                            updateMenuPosition(docPopup, x, y);
                        }
                    } else {
                        docPopup.getElement().getStyle().setOpacity(0);
                    }
                }

                @Override
                public void onFailure(Throwable e) {
                    Log.error(getClass(), e);
                    docPopup.getElement().getStyle().setOpacity(0);
                }
            });
        }
    }, false);
    return element;
}
Also used : SpanElement(elemental.html.SpanElement) OrionKeyModeOverlay(org.eclipse.che.ide.editor.orion.client.jso.OrionKeyModeOverlay) CustomEvent(elemental.events.CustomEvent) HTMLCollection(elemental.html.HTMLCollection) Elements(org.eclipse.che.ide.util.dom.Elements) LinearRange(org.eclipse.che.ide.api.editor.text.LinearRange) OrionTextViewOverlay(org.eclipse.che.ide.editor.orion.client.jso.OrionTextViewOverlay) Assisted(com.google.inject.assistedinject.Assisted) AsyncCallback(com.google.gwt.user.client.rpc.AsyncCallback) Style(com.google.gwt.dom.client.Style) Node(elemental.dom.Node) Element(elemental.dom.Element) AssistedInject(com.google.inject.assistedinject.AssistedInject) EventListener(elemental.events.EventListener) Window(elemental.html.Window) PopupResources(org.eclipse.che.ide.ui.popup.PopupResources) Event(elemental.events.Event) PX(elemental.css.CSSStyleDeclaration.Unit.PX) KeyboardEvent(elemental.events.KeyboardEvent) Completion(org.eclipse.che.ide.api.editor.codeassist.Completion) CompletionRequestEvent(org.eclipse.che.ide.api.editor.events.CompletionRequestEvent) CompletionProposal(org.eclipse.che.ide.api.editor.codeassist.CompletionProposal) RootPanel(com.google.gwt.user.client.ui.RootPanel) Log(org.eclipse.che.ide.util.loging.Log) HandlesUndoRedo(org.eclipse.che.ide.api.editor.texteditor.HandlesUndoRedo) Scheduler(com.google.gwt.core.client.Scheduler) Widget(com.google.gwt.user.client.ui.Widget) CompletionProposalExtension(org.eclipse.che.ide.api.editor.codeassist.CompletionProposalExtension) List(java.util.List) FlowPanel(com.google.gwt.user.client.ui.FlowPanel) UndoableEditor(org.eclipse.che.ide.api.editor.texteditor.UndoableEditor) OrionPixelPositionOverlay(org.eclipse.che.ide.editor.orion.client.jso.OrionPixelPositionOverlay) KeyCodes(com.google.gwt.event.dom.client.KeyCodes) SpanElement(elemental.html.SpanElement) OrionModelChangedEventOverlay(org.eclipse.che.ide.editor.orion.client.jso.OrionModelChangedEventOverlay) Timer(com.google.gwt.user.client.Timer) EventTarget(elemental.events.EventTarget) MouseEvent(elemental.events.MouseEvent) CompletionProposal(org.eclipse.che.ide.api.editor.codeassist.CompletionProposal) Element(elemental.dom.Element) SpanElement(elemental.html.SpanElement) Node(elemental.dom.Node) AsyncCallback(com.google.gwt.user.client.rpc.AsyncCallback) Widget(com.google.gwt.user.client.ui.Widget) CustomEvent(elemental.events.CustomEvent) Event(elemental.events.Event) KeyboardEvent(elemental.events.KeyboardEvent) CompletionRequestEvent(org.eclipse.che.ide.api.editor.events.CompletionRequestEvent) MouseEvent(elemental.events.MouseEvent) EventListener(elemental.events.EventListener)

Aggregations

Event (elemental.events.Event)11 EventListener (elemental.events.EventListener)11 Element (elemental.dom.Element)8 SpanElement (elemental.html.SpanElement)7 Node (elemental.dom.Node)3 CustomEvent (elemental.events.CustomEvent)3 SVGImage (org.vectomatic.dom.svg.ui.SVGImage)3 EventTarget (elemental.events.EventTarget)2 MouseEvent (elemental.events.MouseEvent)2 DivElement (elemental.html.DivElement)2 Completion (org.eclipse.che.ide.api.editor.codeassist.Completion)2 CompletionProposal (org.eclipse.che.ide.api.editor.codeassist.CompletionProposal)2 LinearRange (org.eclipse.che.ide.api.editor.text.LinearRange)2 HandlesUndoRedo (org.eclipse.che.ide.api.editor.texteditor.HandlesUndoRedo)2 UndoableEditor (org.eclipse.che.ide.api.editor.texteditor.UndoableEditor)2 Scheduler (com.google.gwt.core.client.Scheduler)1 DivElement (com.google.gwt.dom.client.DivElement)1 Style (com.google.gwt.dom.client.Style)1 KeyCodes (com.google.gwt.event.dom.client.KeyCodes)1 Timer (com.google.gwt.user.client.Timer)1