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;
}
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());
}
}
}
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);
}
}
}
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);
}
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();
}
Aggregations