package tv.dyndns.kishibe.qmaclone.client.setting;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import tv.dyndns.kishibe.qmaclone.client.ServiceAsync;
import tv.dyndns.kishibe.qmaclone.client.packet.PacketThemeModeEditLog;
import com.google.common.base.Preconditions;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.IsWidget;
public class PanelSettingThemeModeEditLog {
interface View extends IsWidget {
void setPresenter(PanelSettingThemeModeEditLog presenter);
void setNumberOfEntries(int numberOfEntries);
void setLog(int start, List<PacketThemeModeEditLog> log);
}
private static final Logger logger = Logger.getLogger(PanelSettingThemeModeEditLog.class
.getName());
private final View view;
private final ServiceAsync serviceAsync;
public PanelSettingThemeModeEditLog(View view, ServiceAsync serviceAsync) {
this.view = Preconditions.checkNotNull(view);
this.serviceAsync = Preconditions.checkNotNull(serviceAsync);
view.setPresenter(this);
serviceAsync.getNumberOfThemeModeEditLog(callbackGetNumberOfThemeModeEditLog);
}
private final AsyncCallback<Integer> callbackGetNumberOfThemeModeEditLog = new AsyncCallback<Integer>() {
@Override
public void onSuccess(Integer result) {
view.setNumberOfEntries(result);
}
@Override
public void onFailure(Throwable caught) {
logger.log(Level.WARNING, "テーマモード編集ログの数の取得に失敗しました", caught);
}
};
public IsWidget asWidget() {
return view;
}
public void onThemeModeEditLogRequest(final int start, int length) {
AsyncCallback<List<PacketThemeModeEditLog>> callbackGetThemeModeEditLog = new AsyncCallback<List<PacketThemeModeEditLog>>() {
@Override
public void onSuccess(List<PacketThemeModeEditLog> result) {
view.setLog(start, result);
}
@Override
public void onFailure(Throwable caught) {
logger.log(Level.WARNING, "テーマモード編集ログの取得に失敗しました", caught);
}
};
serviceAsync.getThemeModeEditLog(start, length, callbackGetThemeModeEditLog);
}
}