Search in sources :

Example 16 with Event

use of com.google.gwt.user.client.Event in project che by eclipse.

the class TargetsViewImpl method renderCategoryHeader.

private SpanElement renderCategoryHeader(final Category<Target> category) {
    SpanElement categoryHeaderElement = Document.get().createSpanElement();
    categoryHeaderElement.setClassName(commandResources.getCss().categoryHeader());
    categoryHeaderElement.appendChild(createMachineLabel(category.getTitle()));
    SpanElement textElement = Document.get().createSpanElement();
    categoryHeaderElement.appendChild(textElement);
    textElement.setInnerText(category.getTitle());
    if (machineLocale.targetsViewCategorySsh().equalsIgnoreCase(category.getTitle())) {
        // Add button to create a target
        SpanElement buttonElement = Document.get().createSpanElement();
        buttonElement.appendChild(commandResources.addCommandButton().getSvg().getElement());
        categoryHeaderElement.appendChild(buttonElement);
        Event.sinkEvents(buttonElement, Event.ONCLICK);
        Event.setEventListener(buttonElement, new EventListener() {

            @Override
            public void onBrowserEvent(Event event) {
                event.stopPropagation();
                event.preventDefault();
                delegate.onAddTarget(category.getTitle());
            }
        });
    } else {
        // Add empty span for properly aligning items
        categoryHeaderElement.appendChild(Document.get().createSpanElement());
    }
    return categoryHeaderElement;
}
Also used : SpanElement(com.google.gwt.dom.client.SpanElement) ClickEvent(com.google.gwt.event.dom.client.ClickEvent) Event(com.google.gwt.user.client.Event) KeyDownEvent(com.google.gwt.event.dom.client.KeyDownEvent) KeyboardEvent(elemental.events.KeyboardEvent) EventListener(com.google.gwt.user.client.EventListener)

Example 17 with Event

use of com.google.gwt.user.client.Event in project gwt-test-utils by gwt-test-utils.

the class Browser method fillText.

/**
     * <p>
     * Fill a widget which implements HasText interface.
     * </p>
     * <p>
     * <ul>
     * <li>For each character in the value to fill, {@link KeyDownEvent}, {@link KeyPressEvent} and
     * {@link KeyUpEvent} are triggered. They can be prevented with normal effect.</li>
     * </ul>
     * </p>
     * <p>
     * <p>
     * <strong>Do not use this method to remove text by calling it with an empty string. Use
     * {@link Browser#emptyText(HasText, boolean)} instead.</strong>
     * </p>
     *
     * @param check         Indicate if the method should check if the hasText Widget to fill is attached,
     *                      visible and enabled before applying any event.
     * @param value         The value to fill. Cannot be null or empty.
     * @param blur          Specify if a blur event must be triggered. If <strong>true</strong> and at least
     *                      one on the KeyDown or KeyPress events has not been prevented, a {@link ChangeEvent}
     *                      would be triggered too.
     * @param hasTextWidget The widget to fill. If this implementation actually isn't a
     *                      {@link Widget} instance, nothing would be done.
     * @throws IllegalArgumentException if the value to fill is null or empty.
     */
public static void fillText(String value, boolean check, boolean blur, HasText hasTextWidget) throws IllegalArgumentException {
    if (value == null || "".equals(value)) {
        throw new IllegalArgumentException("Cannot fill a null or empty text. If you intent to remove some text, use '" + Browser.class.getSimpleName() + ".emptyText(..)' instead");
    }
    if (!Widget.class.isInstance(hasTextWidget)) {
        return;
    }
    boolean changed = false;
    for (int i = 0; i < value.length(); i++) {
        int keyCode = value.charAt(i);
        // trigger keyDown and keyPress
        Event keyDownEvent = EventBuilder.create(Event.ONKEYDOWN).setKeyCode(keyCode).build();
        Event keyPressEvent = EventBuilder.create(Event.ONKEYPRESS).setKeyCode(keyCode).build();
        dispatchEventsInternal((IsWidget) hasTextWidget, check, keyDownEvent, keyPressEvent);
        // check if one on the events has been prevented
        boolean keyDownEventPreventDefault = JavaScriptObjects.getBoolean(keyDownEvent, JsoProperties.EVENT_PREVENTDEFAULT);
        boolean keyPressEventPreventDefault = JavaScriptObjects.getBoolean(keyPressEvent, JsoProperties.EVENT_PREVENTDEFAULT);
        if (!keyDownEventPreventDefault && !keyPressEventPreventDefault) {
            hasTextWidget.setText(value.substring(0, i + 1));
            changed = true;
            if (hasTextWidget instanceof ValueBoxBase) {
                JavaScriptObjects.setProperty(((Widget) hasTextWidget).getElement(), JsoProperties.SELECTION_START, i + 1);
                JavaScriptObjects.setProperty(((Widget) hasTextWidget).getElement(), JsoProperties.SELECTION_END, i + 1);
            }
        }
        // trigger keyUp
        Event keyUpEvent = EventBuilder.create(Event.ONKEYUP).setKeyCode(keyCode).build();
        dispatchEventsInternal((IsWidget) hasTextWidget, check, keyUpEvent);
    }
    if (blur) {
        // no need to check event anymore
        dispatchEventsInternal((IsWidget) hasTextWidget, false, EventBuilder.create(Event.ONBLUR).build());
        if (changed) {
            dispatchEventsInternal((IsWidget) hasTextWidget, false, EventBuilder.create(Event.ONCHANGE).build());
        }
    }
}
Also used : Event(com.google.gwt.user.client.Event) ColumnSortEvent(com.google.gwt.user.cellview.client.ColumnSortEvent)

Example 18 with Event

use of com.google.gwt.user.client.Event in project gwt-test-utils by gwt-test-utils.

the class Browser method dispatchEventsInternal.

private static void dispatchEventsInternal(IsWidget target, boolean check, Event... events) {
    if (events.length == 0) {
        return;
    }
    prepareEvents(target, events);
    boolean dipsatch = check ? canApplyEvent(target, events[0]) : true;
    if (dipsatch) {
        for (Event event : events) {
            dispatchEventInternal(target, event);
        }
    }
}
Also used : Event(com.google.gwt.user.client.Event) ColumnSortEvent(com.google.gwt.user.cellview.client.ColumnSortEvent)

Example 19 with Event

use of com.google.gwt.user.client.Event in project gwt-test-utils by gwt-test-utils.

the class Browser method clickInternal.

private static void clickInternal(IsWidget parent, UIObject target) {
    Event onMouseOver = EventBuilder.create(Event.ONMOUSEOVER).setTarget(target).build();
    Event onMouseDown = EventBuilder.create(Event.ONMOUSEDOWN).setTarget(target).setButton(Event.BUTTON_LEFT).build();
    Event onMouseUp = EventBuilder.create(Event.ONMOUSEUP).setTarget(target).setButton(Event.BUTTON_LEFT).build();
    Event onClick = EventBuilder.create(Event.ONCLICK).setTarget(target).build();
    dispatchEvent(parent, onMouseOver, onMouseDown, onMouseUp, onClick);
}
Also used : Event(com.google.gwt.user.client.Event) ColumnSortEvent(com.google.gwt.user.cellview.client.ColumnSortEvent)

Example 20 with Event

use of com.google.gwt.user.client.Event in project gwt-test-utils by gwt-test-utils.

the class BrowserTest method click_WithPosition.

@Test
public void click_WithPosition() {
    // Given
    b.addClickHandler(new ClickHandler() {

        public void onClick(ClickEvent event) {
            tested = !tested;
            // Then
            assertThat(event.getNativeEvent().getEventTarget()).isEqualTo(b.getElement());
            assertThat(event.getNativeEvent().getRelatedEventTarget()).isNull();
            // check positions
            assertThat(event.getX()).isEqualTo(1);
            assertThat(event.getY()).isEqualTo(2);
            assertThat(event.getClientX()).isEqualTo(1);
            assertThat(event.getClientY()).isEqualTo(2);
            assertThat(event.getScreenX()).isEqualTo(3);
            assertThat(event.getScreenY()).isEqualTo(4);
        }
    });
    Event clickEvent = EventBuilder.create(Event.ONCLICK).setMouseX(1).setMouseY(2).setMouseScreenX(3).setMouseScreenY(4).build();
    // When
    Browser.dispatchEvent(b, clickEvent);
    // Then
    assertThat(tested).as("onClick event was not triggered").isTrue();
}
Also used : ValueChangeEvent(com.google.gwt.event.logical.shared.ValueChangeEvent) Event(com.google.gwt.user.client.Event) SubmitCompleteEvent(com.google.gwt.user.client.ui.FormPanel.SubmitCompleteEvent) SubmitEvent(com.google.gwt.user.client.ui.FormPanel.SubmitEvent) NativePreviewEvent(com.google.gwt.user.client.Event.NativePreviewEvent) Test(org.junit.Test)

Aggregations

Event (com.google.gwt.user.client.Event)31 EventListener (com.google.gwt.user.client.EventListener)12 ClickEvent (com.google.gwt.event.dom.client.ClickEvent)10 ColumnSortEvent (com.google.gwt.user.cellview.client.ColumnSortEvent)7 SpanElement (com.google.gwt.dom.client.SpanElement)5 KeyDownEvent (com.google.gwt.event.dom.client.KeyDownEvent)5 KeyboardEvent (elemental.events.KeyboardEvent)5 BlurEvent (com.google.gwt.event.dom.client.BlurEvent)4 ClickHandler (com.google.gwt.event.dom.client.ClickHandler)4 KeyUpEvent (com.google.gwt.event.dom.client.KeyUpEvent)4 Test (org.junit.Test)4 ScheduledCommand (com.google.gwt.core.client.Scheduler.ScheduledCommand)3 KeyPressEvent (com.google.gwt.event.dom.client.KeyPressEvent)3 ValueChangeEvent (com.google.gwt.event.logical.shared.ValueChangeEvent)3 PositionCallback (com.google.gwt.user.client.ui.PopupPanel.PositionCallback)3 PatchMethod (com.googlecode.gwt.test.patchers.PatchMethod)3 ImageResource2x (org.rstudio.core.client.resources.ImageResource2x)3 ToolbarPopupMenu (org.rstudio.core.client.widget.ToolbarPopupMenu)3 OnEditEnabler (com.google.gerrit.client.ui.OnEditEnabler)2 Element (com.google.gwt.dom.client.Element)2