package com.antonytrupe.client.ui;
import java.util.ArrayList;
import com.antonytrupe.client.Index;
import com.antonytrupe.client.PageServiceAsync;
import com.antonytrupe.client.place.DisplayPlace;
import com.antonytrupe.shared.Page;
import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.http.client.URL;
import com.google.gwt.safehtml.shared.SafeHtml;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.uibinder.client.UiHandler;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.HTMLPanel;
import com.google.gwt.user.client.ui.Widget;
public class HistoryViewImpl extends Composite implements HistoryView {
interface HistoryViewImplUiBinder extends UiBinder<Widget, HistoryViewImpl> {
}
private static HistoryViewImplUiBinder uiBinder = GWT
.create(HistoryViewImplUiBinder.class);
private String pageName;
@UiField
HTMLPanel container;
private Presenter listener;
private PageServiceAsync pageService;
public HistoryViewImpl() {
initWidget(uiBinder.createAndBindUi(this));
}
@UiHandler("backLink")
void onClickEdit(ClickEvent e) {
this.listener.goTo(new DisplayPlace(URL
.encodeQueryString(this.pageName)));
}
@Override
public void setContent(SafeHtml content) {
// noop
}
@Override
public void setHistory(ArrayList<Page> result) {
// process and render historic records
this.container.clear();
boolean first = true;
for (Page page : result) {
RevisionViewImpl version = new RevisionViewImpl(this.pageService);
version.setPresenter(this.listener);
version.setPageService(this.pageService);
version.setContent(page);
version.setOpen(first);
first = false;
this.container.add(version);
}
}
@Override
public void setPageName(String name) {
this.pageName = name;
Window.setTitle(Index.ANTONY_TRUPE + this.pageName + "(HISTORY)");
}
@Override
public void setPageService(PageServiceAsync pageService) {
this.pageService = pageService;
}
@Override
public void setPresenter(
com.antonytrupe.client.ui.DisplayView.Presenter listener) {
this.listener = (Presenter) listener;
}
@Override
public void setPresenter(Presenter listener) {
this.listener = listener;
}
}