package org.ovirt.engine.ui.common.view.popup; import org.ovirt.engine.ui.common.widget.dialog.SimpleDialogPanel; import org.ovirt.engine.ui.common.widget.uicommon.popup.AbstractModelBoundPopupWidget; import org.ovirt.engine.ui.uicommonweb.models.Model; import com.google.gwt.event.shared.EventBus; /** * Base class for popup views that use {@linkplain AbstractModelBoundPopupWidget model-bound widgets} to represent their * content. * * @param <T> * Window model type. */ public abstract class AbstractModelBoundWidgetPopupView<T extends Model> extends AbstractModelBoundPopupView<T> { private final SimpleDialogPanel dialogPanel = new SimpleDialogPanel(); private final AbstractModelBoundPopupWidget<T> popupWidget; public AbstractModelBoundWidgetPopupView(EventBus eventBus, AbstractModelBoundPopupWidget<T> popupWidget, String dialogWidth, String dialogHeight) { super(eventBus); this.popupWidget = popupWidget; initDialogPanel(dialogWidth, dialogHeight); initWidget(dialogPanel); } void initDialogPanel(String dialogWidth, String dialogHeight) { dialogPanel.setWidth(dialogWidth); dialogPanel.setHeight(dialogHeight); dialogPanel.setContent(popupWidget); } @Override public void edit(T object) { popupWidget.edit(object); } @Override public T flush() { return popupWidget.flush(); } @Override public void cleanup() { popupWidget.cleanup(); } @Override public void focusInput() { popupWidget.focusInput(); } @Override public int setTabIndexes(int nextTabIndex) { nextTabIndex = popupWidget.setTabIndexes(nextTabIndex); return nextTabIndex; } protected AbstractModelBoundPopupWidget<T> getContentWidget() { return popupWidget; } protected void setNoScroll(boolean value) { dialogPanel.setNoScroll(value); } }