package gueei.binding;
import gueei.binding.utility.WeakList;
import android.view.View;
public abstract class Command extends Observable<Command> {
public Command() {
super(Command.class);
}
@Override
public Command get() {
return this;
}
public void InvokeCommand(View view, Object... args){
for(Object l: listeners.toArray()){
((CommandListener)l).onBeforeInvoke();
}
Invoke(view, args);
for(Object l: listeners.toArray()){
((CommandListener)l).onAfterInvoke();
}
}
public abstract void Invoke(View view, Object... args);
WeakList<CommandListener> listeners = new WeakList<CommandListener>();
public void addCommandListener(CommandListener l){
listeners.add(l);
}
public void removeCommandListener(CommandListener l){
listeners.remove(l);
}
public interface CommandListener{
public void onBeforeInvoke();
public void onAfterInvoke();
}
}