package org.ovirt.engine.ui.webadmin.section.main.presenter.popup.host;
import org.ovirt.engine.ui.common.presenter.AbstractModelBoundPopupPresenterWidget;
import org.ovirt.engine.ui.common.widget.HasUiCommandClickHandlers;
import org.ovirt.engine.ui.uicommonweb.DynamicMessages;
import org.ovirt.engine.ui.uicommonweb.models.hosts.FenceAgentModel;
import org.ovirt.engine.ui.webadmin.uicommon.model.FenceAgentModelProvider;
import com.google.gwt.event.dom.client.HasClickHandlers;
import com.google.gwt.event.shared.EventBus;
import com.google.gwt.user.client.Window;
import com.google.inject.Inject;
public class HostFenceAgentPopupPresenterWidget extends AbstractModelBoundPopupPresenterWidget<FenceAgentModel, HostFenceAgentPopupPresenterWidget.ViewDef> {
public interface ViewDef extends AbstractModelBoundPopupPresenterWidget.ViewDef<FenceAgentModel> {
HasUiCommandClickHandlers getTestButton();
HasClickHandlers getFencingOptionsAnchor();
void updatePmSlotLabelText(boolean ciscoUcsSelected);
}
final FenceAgentModelProvider provider;
private final DynamicMessages dynamicMessages;
@Inject
public HostFenceAgentPopupPresenterWidget(EventBus eventBus,
ViewDef view,
FenceAgentModelProvider provider,
DynamicMessages dynamicMessages) {
super(eventBus, view);
this.provider = provider;
this.dynamicMessages = dynamicMessages;
}
@Override
public void init(final FenceAgentModel model) {
super.init(model);
provider.initializeModel(model);
addTestButtonListener();
addCiscoUcsPmTypeListener(model);
registerHandler(getView().getFencingOptionsAnchor().addClickHandler(event -> {
Window.open(dynamicMessages.fencingOptionsUrl(), "_blank", null); //$NON-NLS-1$
}));
}
private void addTestButtonListener() {
registerHandler(getView().getTestButton().addClickHandler(event -> {
getView().flush();
getView().getTestButton().getCommand().execute();
}));
}
private void addCiscoUcsPmTypeListener(final FenceAgentModel model) {
model.getPropertyChangedEvent().addListener((ev, sender, args) -> {
String propName = args.propertyName;
if ("IsCiscoUcsPrimaryPmTypeSelected".equals(propName)) { //$NON-NLS-1$
getView().updatePmSlotLabelText(model.isCiscoUcsPrimaryPmTypeSelected());
}
});
}
}