package org.ovirt.engine.ui.common.widget.uicommon.template; import org.ovirt.engine.ui.common.CommonApplicationConstants; import org.ovirt.engine.ui.common.editor.UiCommonEditorDriver; import org.ovirt.engine.ui.common.gin.AssetProvider; import org.ovirt.engine.ui.common.uicommon.model.ModelProvider; import org.ovirt.engine.ui.common.widget.form.FormItem; import org.ovirt.engine.ui.common.widget.label.BooleanLabel; import org.ovirt.engine.ui.common.widget.label.StringValueLabel; import org.ovirt.engine.ui.common.widget.tooltip.WidgetTooltip; import org.ovirt.engine.ui.common.widget.uicommon.AbstractModelBoundFormWidget; import org.ovirt.engine.ui.uicommonweb.models.templates.TemplateGeneralModel; import com.google.gwt.core.client.GWT; import com.google.gwt.safehtml.shared.SafeHtmlUtils; public class TemplateGeneralModelForm extends AbstractModelBoundFormWidget<TemplateGeneralModel> { interface Driver extends UiCommonEditorDriver<TemplateGeneralModel, TemplateGeneralModelForm> { } StringValueLabel name = new StringValueLabel(); StringValueLabel description = new StringValueLabel(); StringValueLabel hostCluster = new StringValueLabel(); StringValueLabel definedMemory = new StringValueLabel(); @Path("OS") StringValueLabel oS = new StringValueLabel(); StringValueLabel cpuInfo = new StringValueLabel(); StringValueLabel graphicsType = new StringValueLabel(); StringValueLabel defaultDisplayType = new StringValueLabel(); StringValueLabel origin = new StringValueLabel(); StringValueLabel priority = new StringValueLabel(); StringValueLabel usbPolicy = new StringValueLabel(); StringValueLabel domain = new StringValueLabel(); StringValueLabel timeZone = new StringValueLabel(); StringValueLabel quotaName = new StringValueLabel(); StringValueLabel templateId = new StringValueLabel(); BooleanLabel isHighlyAvailable; @Ignore StringValueLabel monitorCount = new StringValueLabel(); @Ignore StringValueLabel isStateless = new StringValueLabel(); private static final CommonApplicationConstants constants = AssetProvider.getConstants(); private final Driver driver = GWT.create(Driver.class); public TemplateGeneralModelForm(ModelProvider<TemplateGeneralModel> modelProvider) { super(modelProvider, 3, 6); } /** * Initialize the form. Call this after ID has been set on the form, * so that form fields can use the ID as their prefix. */ public void initialize() { driver.initialize(this); isHighlyAvailable = new BooleanLabel(constants.yes(), constants.no()); // Build a form using the FormBuilder formBuilder.addFormItem(new FormItem(constants.nameTemplateGeneral(), name, 0, 0)); formBuilder.addFormItem(new FormItem(constants.descriptionTemplateGeneral(), description, 1, 0)); formBuilder.addFormItem(new FormItem(constants.hostClusterTemplateGeneral(), hostCluster, 2, 0)); formBuilder.addFormItem(new FormItem(constants.osTemplateGeneral(), oS, 3, 0)); formBuilder.addFormItem(new FormItem(constants.graphicsProtocol(), graphicsType, 4, 0)); formBuilder.addFormItem(new FormItem(constants.videoType(), defaultDisplayType, 5, 0)); formBuilder.addFormItem(new FormItem(constants.definedMemTemplateGeneral(), definedMemory, 0, 1)); WidgetTooltip cpuInfoWithTooltip = new WidgetTooltip(cpuInfo); cpuInfoWithTooltip.setHtml(SafeHtmlUtils.fromString(constants.numOfCpuCoresTooltip())); formBuilder.addFormItem(new FormItem(constants.numOfCpuCoresTemplateGeneral(), cpuInfoWithTooltip, 1, 1)); formBuilder.addFormItem(new FormItem(constants.numOfMonitorsTemplateGeneral(), monitorCount, 2, 1)); formBuilder.addFormItem(new FormItem(constants.highlyAvailTemplateGeneral(), isHighlyAvailable, 3, 1)); formBuilder.addFormItem(new FormItem(constants.priorityTemplateGeneral(), priority, 4, 1)); formBuilder.addFormItem(new FormItem(constants.usbPolicyTemplateGeneral(), usbPolicy, 5, 1) { @Override public boolean getIsAvailable() { return getModel().getHasUsbPolicy(); } }); formBuilder.addFormItem(new FormItem(constants.originTemplateGeneral(), origin, 0, 2)); formBuilder.addFormItem(new FormItem(constants.isStatelessTemplateGeneral(), isStateless, 1, 2)); formBuilder.addFormItem(new FormItem(constants.templateId(), templateId, 2, 2)); formBuilder.addFormItem(new FormItem(constants.domainTemplateGeneral(), domain, 3, 2) { @Override public boolean getIsAvailable() { return getModel().getHasDomain(); } }); formBuilder.addFormItem(new FormItem(constants.tzTemplateGeneral(), timeZone, 4, 2) { @Override public boolean getIsAvailable() { return getModel().getHasTimeZone(); } }); formBuilder.addFormItem(new FormItem(constants.quotaTemplateGeneral(), quotaName, 5, 2) { @Override public boolean getIsAvailable() { return getModel().isQuotaAvailable(); } }.withDefaultValue(constants.notConfigured(), () -> { String quotaName = getModel().getQuotaName(); return quotaName == null || "".equals(quotaName); })); } @Override protected void doEdit(TemplateGeneralModel model) { driver.edit(model); // Required because of type conversion monitorCount.setValue(Integer.toString(getModel().getMonitorCount())); isStateless.setValue(Boolean.toString(getModel().getIsStateless())); } @Override public void cleanup() { driver.cleanup(); } }