package org.ovirt.engine.ui.webadmin.section.main.presenter.popup.gluster;
import org.ovirt.engine.ui.common.presenter.AbstractModelBoundPopupPresenterWidget;
import org.ovirt.engine.ui.common.presenter.popup.DefaultConfirmationPopupPresenterWidget;
import org.ovirt.engine.ui.uicommonweb.models.ListModel;
import org.ovirt.engine.ui.uicommonweb.models.gluster.GlusterVolumeSnapshotModel;
import com.google.gwt.event.shared.EventBus;
import com.google.inject.Inject;
import com.google.inject.Provider;
public class GlusterVolumeSnapshotCreatePopupPresenterWidget extends AbstractModelBoundPopupPresenterWidget<GlusterVolumeSnapshotModel, GlusterVolumeSnapshotCreatePopupPresenterWidget.ViewDef> {
@Inject
public GlusterVolumeSnapshotCreatePopupPresenterWidget(EventBus eventBus,
ViewDef view,
Provider<GlusterVolumeSnapshotCreatePopupPresenterWidget> snapshotPopupProvider,
Provider<DefaultConfirmationPopupPresenterWidget> defaultConfirmPopupPrivder) {
super(eventBus, view);
}
@Override
public void init(final GlusterVolumeSnapshotModel model) {
super.init(model);
model.getInterval().getSelectedItemChangedEvent().addListener((ev, sender, args) -> getView().setCriticalIntervalLabelVisibility(model,
Integer.parseInt(((ListModel<String>) sender).getSelectedItem())));
model.getRecurrence().getSelectedItemChangedEvent().addListener((ev, sender, args) -> {
getView().updateVisibilities(model);
getView().setCriticalIntervalLabelVisibility(model,
Integer.parseInt(model.getInterval().getSelectedItem()));
getView().setMessage(null);
});
model.getEndByOptions().getSelectedItemChangedEvent().addListener((ev, sender, args) -> getView().setEndDateVisibility(model));
model.getPropertyChangedEvent().addListener((ev, sender, args) -> {
if(args.propertyName.equalsIgnoreCase("validateAndSwitchAppropriateTab")) {//$NON-NLS-1$
getView().handleValidationErrors(model);
getView().switchTabBasedOnEditorInvalidity();
} else if(args.propertyName.equalsIgnoreCase("modelPropertiesChanged")) {//$NON-NLS-1$
getView().handleValidationErrors(model);
}
});
}
public interface ViewDef extends AbstractModelBoundPopupPresenterWidget.ViewDef<GlusterVolumeSnapshotModel> {
public void updateVisibilities(GlusterVolumeSnapshotModel object);
public void setEndDateVisibility(GlusterVolumeSnapshotModel object);
public void setCriticalIntervalLabelVisibility(GlusterVolumeSnapshotModel object, int value);
public void handleValidationErrors(GlusterVolumeSnapshotModel object);
public void switchTabBasedOnEditorInvalidity();
}
}