package org.ovirt.engine.ui.common.presenter.popup;
import org.ovirt.engine.ui.common.presenter.AbstractModelBoundPopupPresenterWidget;
import org.ovirt.engine.ui.uicommonweb.models.HostMaintenanceConfirmationModel;
import com.google.gwt.event.shared.EventBus;
import com.google.inject.Inject;
/**
* Implements the host maintenance confirmation dialog bound to UiCommon {@link HostMaintenanceConfirmationModel}.
*/
public class HostMaintenanceConfirmationPopupPresenterWidget extends AbstractModelBoundPopupPresenterWidget<HostMaintenanceConfirmationModel, HostMaintenanceConfirmationPopupPresenterWidget.ViewDef> {
public interface ViewDef extends AbstractModelBoundPopupPresenterWidget.ViewDef<HostMaintenanceConfirmationModel> {
void updateReasonVisibility(HostMaintenanceConfirmationModel model);
}
@Inject
public HostMaintenanceConfirmationPopupPresenterWidget(EventBus eventBus, ViewDef view) {
super(eventBus, view);
}
@Override
public void init(final HostMaintenanceConfirmationModel model) {
updateReasonVisibility(model);
model.getPropertyChangedEvent().addListener((ev, sender, args) -> {
String propName = args.propertyName;
if ("ReasonVisible".equals(propName)) { //$NON-NLS-1$
updateReasonVisibility(model);
}
});
super.init(model);
}
protected void updateReasonVisibility(HostMaintenanceConfirmationModel model) {
getView().updateReasonVisibility(model);
}
@Override
protected void updateHashName(HostMaintenanceConfirmationModel model) {
super.updateHashName(model);
// The message depends on the hash name
updateMessage(model);
}
}