package org.ovirt.engine.ui.common.widget.uicommon.popup.pool;
import static org.ovirt.engine.ui.common.widget.uicommon.popup.vm.PopupWidgetConfig.hiddenField;
import static org.ovirt.engine.ui.common.widget.uicommon.popup.vm.PopupWidgetConfig.simpleField;
import org.ovirt.engine.ui.common.idhandler.ElementIdHandler;
import org.ovirt.engine.ui.common.widget.editor.generic.EntityModelTextBoxEditor;
import org.ovirt.engine.ui.common.widget.editor.generic.IntegerEntityModelTextBoxEditor;
import org.ovirt.engine.ui.common.widget.editor.generic.ToStringEntityModelRenderer;
import org.ovirt.engine.ui.common.widget.uicommon.popup.vm.PopupWidgetConfigMap;
import org.ovirt.engine.ui.uicommonweb.models.vms.UnitVmModel;
import com.google.gwt.core.client.GWT;
public class PoolEditPopupWidget extends PoolNewPopupWidget {
interface ViewIdHandler extends ElementIdHandler<PoolEditPopupWidget> {
ViewIdHandler idHandler = GWT.create(ViewIdHandler.class);
}
@Override
protected void generateIds() {
ViewIdHandler.idHandler.generateAndSetIds(this);
}
@Override
public void edit(final UnitVmModel object) {
super.edit(object);
object.getPropertyChangedEvent().addListener((ev, sender, args) -> {
if (object.getProgress() == null) {
disableAllTabs();
enableEditPoolFields(object);
}
});
}
@Override
protected void createNumOfDesktopEditors() {
increaseNumOfVmsEditor = new IntegerEntityModelTextBoxEditor();
numOfVmsEditor = new EntityModelTextBoxEditor<>(new ToStringEntityModelRenderer<Integer>(), text -> {
// forwards to the currently active editor
return increaseNumOfVmsEditor.asEditor().getValue();
});
}
@Override
public void focusInput() {
descriptionEditor.setFocus(true);
}
private void enableEditPoolFields(UnitVmModel model) {
descriptionEditor.setEnabled(true);
commentEditor.setEnabled(true);
prestartedVmsEditor.setEnabled(true);
editPrestartedVmsEditor.setEnabled(true);
increaseNumOfVmsEditor.setEnabled(true);
editMaxAssignedVmsPerUserEditor.setEnabled(true);
spiceProxyEditor.setEnabled(model.getSpiceProxyEnabled().getEntity());
templateWithVersionEditor.setEnabled(true);
}
@Override
protected PopupWidgetConfigMap createWidgetConfiguration() {
return super.createWidgetConfiguration().
update(spiceProxyEditor, simpleField().visibleInAdvancedModeOnly()).
update(spiceProxyEnabledCheckboxWithInfoIcon, simpleField().visibleInAdvancedModeOnly()).
update(spiceProxyOverrideEnabledEditor, simpleField().visibleInAdvancedModeOnly()).
update(numOfVmsEditor, hiddenField()).
update(newPoolEditVmsRow, hiddenField()).
update(newPoolEditMaxAssignedVmsPerUserRow, hiddenField()).
update(editPoolEditVmsRow, simpleField()).
update(editPoolIncreaseNumOfVmsRow, simpleField()).
update(foremanTab, hiddenField()).
update(editPoolEditMaxAssignedVmsPerUserRow, simpleField()).
update(templateVersionNameEditor, hiddenField());
}
}