package org.ovirt.engine.ui.webadmin.section.main.presenter;
import org.ovirt.engine.core.common.queries.ConfigurationValues;
import org.ovirt.engine.core.common.queries.GetConfigurationValueParameters;
import org.ovirt.engine.core.common.queries.VdcQueryType;
import org.ovirt.engine.ui.frontend.AsyncQuery;
import org.ovirt.engine.ui.frontend.Frontend;
import org.ovirt.engine.ui.frontend.INewAsyncCallback;
import org.ovirt.engine.ui.uicommonweb.dataprovider.AsyncDataProvider;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.event.dom.client.HasClickHandlers;
import com.google.gwt.event.shared.EventBus;
import com.google.inject.Inject;
import com.gwtplatform.mvp.client.PopupView;
import com.gwtplatform.mvp.client.PresenterWidget;
/**
* About popup presenter.
*
* @author Asaf Shakarchi
*/
public class AboutPopupPresenterWidget extends PresenterWidget<AboutPopupPresenterWidget.ViewDef> {
public interface ViewDef extends PopupView {
void setVersion(String version);
HasClickHandlers getCloseButton();
}
@Inject
public AboutPopupPresenterWidget(EventBus eventBus, ViewDef view) {
super(eventBus, view);
}
@Override
protected void onBind() {
super.onBind();
registerHandler(getView().getCloseButton().addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
getView().hide();
}
}));
}
@Override
protected void onReveal() {
super.onReveal();
AsyncQuery aQuery = new AsyncQuery();
Frontend.RunPublicQuery(VdcQueryType.GetConfigurationValue,
new GetConfigurationValueParameters(ConfigurationValues.VdcVersion),
aQuery);
AsyncQuery _asyncQuery = new AsyncQuery();
_asyncQuery.setModel(this);
_asyncQuery.asyncCallback = new INewAsyncCallback() {
@Override
public void OnSuccess(Object model, Object result) {
String version = (String) result;
getView().setVersion(version);
}
};
AsyncDataProvider.GetRpmVersionViaPublic(_asyncQuery);
}
}