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.Service;
import tv.dyndns.kishibe.qmaclone.client.packet.PacketProblem;
import tv.dyndns.kishibe.qmaclone.client.report.CellTableProblem;
import com.google.gwt.core.client.GWT;
import com.google.gwt.user.cellview.client.SimplePager;
import com.google.gwt.user.cellview.client.SimplePager.TextLocation;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.VerticalPanel;
public class PanelSettingIndicatedProblems extends VerticalPanel {
private static final Logger logger = Logger.getLogger(PanelSettingIndicatedProblems.class
.getName());
private static final int PAGE_SIZE = 100;
public PanelSettingIndicatedProblems() {
setHorizontalAlignment(ALIGN_CENTER);
}
private void update(List<PacketProblem> problems) {
clear();
CellTableProblem table = new CellTableProblem(problems, false, PAGE_SIZE);
SimplePager.Resources pagerResources = GWT.create(SimplePager.Resources.class);
SimplePager simplePager = new SimplePager(TextLocation.CENTER, pagerResources, false, 0,
true);
simplePager.setDisplay(table);
add(simplePager);
add(table);
}
@Override
protected void onLoad() {
super.onLoad();
Service.Util.getInstance().getIndicatedProblems(callbackGetIndicatedProblems);
}
private AsyncCallback<List<PacketProblem>> callbackGetIndicatedProblems = new AsyncCallback<List<PacketProblem>>() {
@Override
public void onSuccess(List<PacketProblem> result) {
update(result);
}
@Override
public void onFailure(Throwable caught) {
logger.log(Level.WARNING, "指摘された問題の取得に失敗しました", caught);
}
};
}