package gueei.binding.viewAttributes.adapterView.listView;
/**
* User: =ra=
* Date: Dec 12, 2011
* Time: 6:14:19 PM
*/
import gueei.binding.Binder;
import gueei.binding.listeners.OnItemClickListenerMulticast;
import gueei.binding.listeners.OnItemLongClickListenerMulticast;
import java.lang.ref.WeakReference;
import android.view.View;
import android.widget.AdapterView;
public class ItemViewEventMark implements View.OnClickListener, View.OnLongClickListener {
public ItemViewEventMark(View targetView, int targetListItemPosition, long targetListItemId) {
super();
mTargetListItemPosition = targetListItemPosition;
mTargetListItemId = targetListItemId;
mWRTargetView = new WeakReference<View>(targetView);
}
@Override
public boolean onLongClick(View v) {
OnItemLongClickListenerMulticast listener = getOnItemLongClickListenerMulticast();
if (null != listener) {
listener.onItemLongClick((AdapterView<?>) getView(), v, mTargetListItemPosition, mTargetListItemId);
}
return false;
}
@Override
public void onClick(View v) {
OnItemClickListenerMulticast listener = getOnItemClickListenerMulticast();
if (null != listener) {
listener.onItemClick((AdapterView<?>) getView(), v, mTargetListItemPosition, mTargetListItemId);
}
}
@Override
public boolean equals(Object other) {
boolean result = false;
if (null != other && other instanceof ItemViewEventMark) {
ItemViewEventMark that = (ItemViewEventMark) other;
result = (this.mTargetListItemPosition == that.mTargetListItemPosition) && (this.mTargetListItemId == that.mTargetListItemId)
&& (this.getView() == that.getView());
}
return result;
}
private View getView() {
return mWRTargetView.get();
}
private OnItemLongClickListenerMulticast getOnItemLongClickListenerMulticast() {
View view = getView();
if (null != view) {
return Binder.getMulticastListenerForView(view, OnItemLongClickListenerMulticast.class);
}
return null;
}
private OnItemClickListenerMulticast getOnItemClickListenerMulticast() {
View view = getView();
if (null != view) {
return Binder.getMulticastListenerForView(view, OnItemClickListenerMulticast.class);
}
return null;
}
public void setIdAndPosition(int newPosition, long newId) {
mTargetListItemPosition = newPosition;
mTargetListItemId = newId;
}
private int mTargetListItemPosition;
private long mTargetListItemId;
private final WeakReference<View> mWRTargetView;
}