package org.itsnat.droid.impl.browser.serveritsnat.event; import android.view.View; import org.itsnat.droid.event.DroidEvent; import org.itsnat.droid.impl.browser.serveritsnat.evtlistener.DroidEventListener; import org.itsnat.droid.impl.util.NameValue; import java.util.List; /** * Created by jmarranz on 31/07/14. */ public abstract class DroidEventImpl extends NormalEventImpl implements DroidEvent { /** * The current event phase is the capturing phase. */ public static final short CAPTURING_PHASE = 1; /** * The event is currently being evaluated at the target * <code>EventTarget</code>. */ public static final short AT_TARGET = 2; /** * The current event phase is the bubbling phase. */ public static final short BUBBLING_PHASE = 3; protected int eventPhase; protected View viewTarget; public DroidEventImpl(DroidEventListener listener) { super(listener); this.eventPhase = AT_TARGET; } public DroidEventListener getDroidEventListener() { return (DroidEventListener)listener; } @Override public String getType() { return getDroidEventListener().getType(); } public int getEventPhase() { return eventPhase; } public void setEventPhase(int eventPhase) { this.eventPhase = eventPhase; } public View getTarget() { return viewTarget; } public void setTarget(View view) { this.viewTarget = view; } @Override public List<NameValue> genParamURL() { List<NameValue> params = super.genParamURL(); params.add(new NameValue("itsnat_evt_eventPhase",eventPhase)); View view = getDroidEventListener().getCurrentTarget(); String viewTargetStr = viewTarget != null && viewTarget != view? listener.getItsNatDocItsNatImpl().getStringPathFromView(viewTarget) : "null"; // Si viewTarget == currentTarget enviamos null para evitar tráfico, ya sabemos que es el currentTarget params.add(new NameValue("itsnat_evt_target",viewTargetStr)); return params; } }