/* * Copyright (C) 2016 Red Hat, Inc. and/or its affiliates. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.jboss.errai.ui.test.quickhandler.client.res; import java.util.ArrayList; import java.util.List; import java.util.Objects; import javax.inject.Inject; import org.jboss.errai.common.client.dom.Anchor; import org.jboss.errai.common.client.dom.Button; import org.jboss.errai.common.client.dom.Div; import org.jboss.errai.common.client.dom.Event; import org.jboss.errai.common.client.dom.MouseEvent; import org.jboss.errai.common.client.dom.TextInput; import org.jboss.errai.common.client.logging.util.StringFormat; import org.jboss.errai.ui.shared.api.annotations.DataField; import org.jboss.errai.ui.shared.api.annotations.EventHandler; import org.jboss.errai.ui.shared.api.annotations.ForEvent; import org.jboss.errai.ui.shared.api.annotations.Templated; import com.google.gwt.dom.client.ButtonElement; /** * * @author Max Barkley <mbarkley@redhat.com> */ @Templated public class InteropEventQuickHandlerTemplate { public static class ObservedEvent { public final String dataField; public final String eventType; public ObservedEvent(final String dataField, final String eventType) { this.dataField = dataField; this.eventType = eventType; } @Override public boolean equals(final Object obj) { if (obj instanceof ObservedEvent) { final ObservedEvent other = (ObservedEvent) obj; return Objects.equals(dataField, other.dataField) && Objects.equals(eventType, other.eventType); } else { return false; } } @Override public String toString() { return StringFormat.format("[data-field=%s, eventType=%s]", dataField, eventType); } } @Inject @DataField public Div root; @Inject @DataField public Anchor anchor; @Inject @DataField public Button button; @Inject @DataField public Button privateHandler; @Inject @DataField public TextInput input; @Inject @DataField public com.google.gwt.user.client.ui.Button buttonWidget; @Inject @DataField public ButtonElement buttonGwtElement; public List<ObservedEvent> observed = new ArrayList<>(); @EventHandler("anchor") public void onAnchorSingleOrDoubleClicked(final @ForEvent({"click", "dblclick"}) MouseEvent evt) { observed.add(new ObservedEvent("anchor", evt.getType())); } @EventHandler("button") public void onButtonSingle(final @ForEvent("click") MouseEvent evt) { observed.add(new ObservedEvent("button", evt.getType())); } @EventHandler("input") public void onInputChanged(final @ForEvent("change") Event evt) { observed.add(new ObservedEvent("input", evt.getType())); } @EventHandler("buttonWidget") public void onButtonWidgetSingle(final @ForEvent("click") MouseEvent evt) { observed.add(new ObservedEvent("buttonWidget", evt.getType())); } @EventHandler("buttonGwtElement") public void onButtonGwtElementSingle(final @ForEvent("click") MouseEvent evt) { observed.add(new ObservedEvent("buttonGwtElement", evt.getType())); } @EventHandler("noFieldButton") public void onNoFieldButtonSingle(final @ForEvent("click") MouseEvent evt) { observed.add(new ObservedEvent("noFieldButton", evt.getType())); } @EventHandler("privateHandler") private void onButtonDoubleClick(final @ForEvent("dblclick") MouseEvent evt) { observed.add(new ObservedEvent("privateHandler", evt.getType())); } }