package gueei.binding.viewAttributes.adapterView;
import gueei.binding.Binder;
import gueei.binding.ViewAttribute;
import gueei.binding.listeners.OnItemLongClickListenerMulticast;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemLongClickListener;
/**
* Long-Clicked Item in ListView
* Changes at ListView.OnItemLongClickListener.onItemLongClick()
*
* @name longClickedItem
* @widget AdapterView
* @type Object
* @accepts Object
* @category list
* @related
*
* @author andy
*/
public class LongClickedItemViewAttribute extends ViewAttribute<AdapterView<?>, Object>
implements OnItemLongClickListener{
private Object value;
public LongClickedItemViewAttribute(AdapterView<?> view, String attributeName) {
super(Object.class, view, attributeName);
this.setReadonly(true);
Binder.getMulticastListenerForView(view, OnItemLongClickListenerMulticast.class)
.registerWithHighPriority(this);
}
@Override
protected void doSetAttributeValue(Object newValue) {
// do nothing. this is a readonly attribute
}
@Override
public Object get() {
return value;
}
public boolean onItemLongClick(AdapterView<?> parent, View view, int position,
long id) {
if (!getView().equals(parent)) return false;
try{
this.value = getView().getItemAtPosition(position);
this.notifyChanged();
return true;
}catch(Exception e){
return false;
}
}
}