package org.dodgybits.shuffle.web.client.command;
import org.dodgybits.shuffle.web.client.model.TaskValue;
import org.dodgybits.shuffle.web.client.service.TaskServiceAsync;
import com.google.gwt.user.client.Command;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.inject.Inject;
public class SaveTaskCommand implements Command {
private TaskServiceAsync mService;
private AsyncCallback<TaskValue> mCallback;
private TaskValue mTaskValue;
public SaveTaskCommand(
TaskValue taskValue,
TaskServiceAsync service,
AsyncCallback<TaskValue> callback) {
mTaskValue = taskValue;
mService = service;
mCallback = callback;
}
@Override
public void execute() {
mService.saveTask(mTaskValue, mCallback);
}
public static class Factory {
private TaskServiceAsync service;
@Inject
public Factory(TaskServiceAsync service) {
this.service = service;
}
public SaveTaskCommand create(TaskValue taskValue, AsyncCallback<TaskValue> callback) {
return new SaveTaskCommand(taskValue, service, callback);
}
}
}