package gueei.binding.viewAttributes.adapterView;
import gueei.binding.Binder;
import gueei.binding.ViewAttribute;
import gueei.binding.listeners.OnItemClickListenerMulticast;
import gueei.binding.listeners.OnItemLongClickListenerMulticast;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
/**
* User: =ra=
* Date: Dec 14, 2011
* Time: 1:37:15 PM
*/
public class ClickActionPositionViewAttribute extends ViewAttribute<AdapterView<?>, Integer> implements OnItemClickListener,
AdapterView.OnItemLongClickListener {
public ClickActionPositionViewAttribute(AdapterView<?> view) {
super(Integer.class, view, "clickActionPosition");
Binder.getMulticastListenerForView(view, OnItemClickListenerMulticast.class).registerWithHighPriority(this);
Binder.getMulticastListenerForView(view, OnItemLongClickListenerMulticast.class).registerWithHighPriority(this);
}
private int mValue;
@Override
public Integer get() {
return mValue;
}
@Override
protected void doSetAttributeValue(Object newValue) {
if (!(newValue instanceof Integer))
return;
mValue = (Integer) newValue;
}
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
handleEvent(parent, position);
}
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
handleEvent(parent, position);
return false;
}
private void handleEvent(AdapterView<?> parent, int newValue) {
if (!getView().equals(parent))
return;
mValue = newValue;
this.notifyChanged();
}
}