this.addChangeListener(new ChangeListener() {
public void onChange(Widget sender) {
final String value = getValue();
if(actions.containsKey(value)) {
Action action = (Action)actions.get(value);
action.perform(new AsyncCallback<Void>() {
public void onSuccess(Void result) {
}
public void onFailure(Throwable caught) {
GWT.log("Action "+value+" failed: "+caught, caught);
}