package org.ovirt.engine.ui.webadmin.widget.errata;
import org.ovirt.engine.core.common.businessentities.Erratum;
import org.ovirt.engine.core.common.businessentities.Erratum.ErrataSeverity;
import org.ovirt.engine.core.common.businessentities.Erratum.ErrataType;
import org.ovirt.engine.ui.common.editor.UiCommonEditorDriver;
import org.ovirt.engine.ui.common.widget.form.FormItem;
import org.ovirt.engine.ui.common.widget.label.EnumTextBoxLabel;
import org.ovirt.engine.ui.common.widget.label.StringValueLabel;
import org.ovirt.engine.ui.common.widget.uicommon.AbstractModelBoundFormWidget;
import org.ovirt.engine.ui.uicommonweb.models.EntityModel;
import org.ovirt.engine.ui.webadmin.ApplicationConstants;
import org.ovirt.engine.ui.webadmin.gin.AssetProvider;
import org.ovirt.engine.ui.webadmin.widget.label.FullDateTimeLabel;
import org.ovirt.engine.ui.webadmin.widget.label.ValueListLabel;
import com.google.gwt.core.client.GWT;
public class ErrataDetailModelForm extends AbstractModelBoundFormWidget<EntityModel<Erratum>> {
private static final ApplicationConstants constants = AssetProvider.getConstants();
interface Driver extends UiCommonEditorDriver<EntityModel<Erratum>, ErrataDetailModelForm> {
}
@Path("entity.id")
StringValueLabel id = new StringValueLabel();
@Path("entity.issued")
FullDateTimeLabel issued = new FullDateTimeLabel(false);
@Path("entity.type")
EnumTextBoxLabel<ErrataType> type = new EnumTextBoxLabel<>();
@Path("entity.severity")
EnumTextBoxLabel<ErrataSeverity> severity = new EnumTextBoxLabel<>();
@Path("entity.description")
StringValueLabel description = new StringValueLabel();
@Path("entity.solution")
StringValueLabel solution = new StringValueLabel();
@Path("entity.summary")
StringValueLabel summary = new StringValueLabel();
@Path("entity.packages")
ValueListLabel<String> packages = new ValueListLabel<>(", "); //$NON-NLS-1$
private final Driver driver = GWT.create(Driver.class);
private EntityModel<Erratum> currentModel;
public ErrataDetailModelForm() {
super(null, 1, 8); //1 column with 8 rows
}
public void initialize() {
driver.initialize(this);
formBuilder.addFormItem(new FormItem(constants.errataId(), id, 0, 0), 2, 10);
formBuilder.addFormItem(new FormItem(constants.errataDateIssued(), issued, 1, 0), 2, 10);
formBuilder.addFormItem(new FormItem(constants.errataType(), type, 2, 0), 2, 10);
formBuilder.addFormItem(new FormItem(constants.errataSeverity(), severity, 3, 0) {
@Override
public boolean getIsAvailable() {
EntityModel<Erratum> model = getModel();
return model != null && model.getEntity() != null && model.getEntity().getSeverity() != null;
}
}, 2, 10);
formBuilder.addFormItem(new FormItem(constants.description(), description, 4, 0), 2, 10);
formBuilder.addFormItem(new FormItem(constants.solution(), solution, 5, 0), 2, 10);
formBuilder.addFormItem(new FormItem(constants.summary(), summary, 6, 0), 2, 10);
formBuilder.addFormItem(new FormItem(constants.errataPackages(), packages, 7, 0), 2, 10);
}
@Override
protected void doEdit(EntityModel<Erratum> model) {
driver.edit(model);
}
@Override
public void cleanup() {
driver.cleanup();
}
@Override
protected EntityModel<Erratum> getModel() {
return currentModel;
}
public void setModel(EntityModel<Erratum> model) {
currentModel = model;
}
}