package org.ovirt.engine.ui.common.view.popup;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import org.ovirt.engine.ui.common.widget.HasUiCommandClickHandlers;
import org.ovirt.engine.ui.common.widget.HasValidation;
import org.ovirt.engine.ui.common.widget.LeftAlignedUiCommandButton;
import org.ovirt.engine.ui.common.widget.UiCommandButton;
import org.ovirt.engine.ui.common.widget.dialog.tab.DialogTabPanel;
import org.ovirt.engine.ui.common.widget.dialog.tab.OvirtTabListItem;
import org.ovirt.engine.ui.common.widget.popup.AbstractVmBasedPopupPresenterWidget;
import org.ovirt.engine.ui.common.widget.uicommon.popup.AbstractVmPopupWidget;
import org.ovirt.engine.ui.uicommonweb.models.TabName;
import org.ovirt.engine.ui.uicommonweb.models.vms.UnitVmModel;
import org.ovirt.engine.ui.uicommonweb.models.vms.VmBasedWidgetSwitchModeCommand;
import com.google.gwt.event.shared.EventBus;
import com.google.inject.Inject;
public abstract class AbstractVmPopupView extends AbstractModelBoundWidgetPopupView<UnitVmModel> implements AbstractVmBasedPopupPresenterWidget.ViewDef {
private VmPopupStyle style;
@Inject
public AbstractVmPopupView(EventBus eventBus, AbstractVmPopupWidget popupWidget, VmPopupResources resources) {
this(eventBus, popupWidget, "960px", "712px", resources); //$NON-NLS-1$ //$NON-NLS-2$
}
public AbstractVmPopupView(EventBus eventBus,
AbstractVmPopupWidget popupWidget,
String width,
String height,
VmPopupResources resources) {
super(eventBus, popupWidget, width, height);
style = resources.createStyle();
style.ensureInjected();
}
@Override
public void switchAttachToInstanceType(boolean isAttached) {
if (getContentWidget() instanceof AbstractVmPopupWidget) {
((AbstractVmPopupWidget) getContentWidget()).switchAttachToInstanceType(isAttached);
}
}
@Override
public void switchMode(boolean isAdvanced) {
if (getContentWidget() instanceof AbstractVmPopupWidget) {
((AbstractVmPopupWidget) getContentWidget()).switchMode(isAdvanced);
}
}
@Override
public void initToCreateInstanceMode() {
if (getContentWidget() instanceof AbstractVmPopupWidget) {
((AbstractVmPopupWidget) getContentWidget()).initCreateInstanceMode();
}
}
@Override
public void setSpiceProxyOverrideExplanation(String explanation) {
if (getContentWidget() instanceof AbstractVmPopupWidget) {
((AbstractVmPopupWidget) getContentWidget()).setSpiceProxyOverrideExplanation(explanation);
}
}
@Override
protected UiCommandButton createCommandButton(String label, String uniqueId) {
if (VmBasedWidgetSwitchModeCommand.NAME.equals(uniqueId)) {
LeftAlignedUiCommandButton leftAlignedUiCommandButton = new LeftAlignedUiCommandButton(label);
return leftAlignedUiCommandButton;
}
return super.createCommandButton(label, uniqueId);
}
@Override
public List<HasValidation> getInvalidWidgets() {
if (getContentWidget() instanceof AbstractVmPopupWidget) {
return ((AbstractVmPopupWidget) getContentWidget()).getInvalidWidgets();
}
return Collections.emptyList();
}
@Override
public DialogTabPanel getTabPanel() {
return ((AbstractVmPopupWidget) getContentWidget()).getTabPanel();
}
@Override
public Map<TabName, OvirtTabListItem> getTabNameMapping() {
return ((AbstractVmPopupWidget) getContentWidget()).getTabNameMapping();
}
@Override
public HasUiCommandClickHandlers getNumaSupportButton() {
return ((AbstractVmPopupWidget) getContentWidget()).getNumaSupportButton();
}
}