package org.ovirt.engine.ui.webadmin.section.main.view.tab.host;
import org.ovirt.engine.core.common.businessentities.VDS;
import org.ovirt.engine.core.common.mode.ApplicationMode;
import org.ovirt.engine.ui.common.editor.UiCommonEditorDriver;
import org.ovirt.engine.ui.common.idhandler.ElementIdHandler;
import org.ovirt.engine.ui.common.idhandler.WithElementId;
import org.ovirt.engine.ui.common.uicommon.model.DetailModelProvider;
import org.ovirt.engine.ui.common.view.AbstractSubTabFormView;
import org.ovirt.engine.ui.common.widget.form.FormBuilder;
import org.ovirt.engine.ui.common.widget.form.FormItem;
import org.ovirt.engine.ui.common.widget.form.GeneralFormPanel;
import org.ovirt.engine.ui.common.widget.label.StringValueLabel;
import org.ovirt.engine.ui.uicommonweb.models.ApplicationModeHelper;
import org.ovirt.engine.ui.uicommonweb.models.hosts.HostGeneralModel;
import org.ovirt.engine.ui.uicommonweb.models.hosts.HostListModel;
import org.ovirt.engine.ui.webadmin.ApplicationConstants;
import org.ovirt.engine.ui.webadmin.gin.AssetProvider;
import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.host.SubTabHostGeneralSoftwarePresenter;
import org.ovirt.engine.ui.webadmin.widget.label.VersionValueLabel;
import com.google.gwt.core.client.GWT;
import com.google.gwt.editor.client.Editor;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.client.ui.Widget;
import com.google.inject.Inject;
public class SubTabHostGeneralSoftwareView extends AbstractSubTabFormView<VDS, HostListModel<Void>, HostGeneralModel>
implements SubTabHostGeneralSoftwarePresenter.ViewDef, Editor<HostGeneralModel> {
interface Driver extends UiCommonEditorDriver<HostGeneralModel, SubTabHostGeneralSoftwareView> {
}
interface ViewIdHandler extends ElementIdHandler<SubTabHostGeneralSoftwareView> {
ViewIdHandler idHandler = GWT.create(ViewIdHandler.class);
}
interface ViewUiBinder extends UiBinder<Widget, SubTabHostGeneralSoftwareView> {
ViewUiBinder uiBinder = GWT.create(ViewUiBinder.class);
}
private static final ApplicationConstants constants = AssetProvider.getConstants();
private final Driver driver = GWT.create(Driver.class);
FormBuilder formBuilder;
@Path("OS")
StringValueLabel oS = new StringValueLabel();
StringValueLabel osPrettyName = new StringValueLabel();
StringValueLabel kvmVersion = new StringValueLabel();
VersionValueLabel libvirtVersion = new VersionValueLabel();
StringValueLabel spiceVersion = new StringValueLabel();
StringValueLabel kernelVersion = new StringValueLabel();
VersionValueLabel glusterVersion = new VersionValueLabel();
VersionValueLabel vdsmVersion = new VersionValueLabel();
VersionValueLabel librbdVersion = new VersionValueLabel();
@UiField(provided = true)
@WithElementId
GeneralFormPanel formPanel;
@Inject
public SubTabHostGeneralSoftwareView(DetailModelProvider<HostListModel<Void>, HostGeneralModel> modelProvider) {
super(modelProvider);
// Init form panel:
formPanel = new GeneralFormPanel();
initWidget(ViewUiBinder.uiBinder.createAndBindUi(this));
driver.initialize(this);
buildForm();
}
private void buildForm() {
generateIds();
boolean virtSupported = ApplicationModeHelper.isModeSupported(ApplicationMode.VirtOnly);
boolean glusterSupported = ApplicationModeHelper.isModeSupported(ApplicationMode.GlusterOnly);
// Build a form using the FormBuilder
formBuilder = new FormBuilder(formPanel, 1, 9);
formBuilder.setRelativeColumnWidth(0, 12);
formBuilder.addFormItem(new FormItem(constants.osVersionHostGeneral(), oS, 0).withAutoPlacement(), 2, 10);
formBuilder.addFormItem(new FormItem(constants.osPrettyName(), osPrettyName, 0).withAutoPlacement(), 2, 10);
formBuilder.addFormItem(new FormItem(constants.kernelVersionHostGeneral(), kernelVersion,
0).withAutoPlacement(), 2, 10);
formBuilder.addFormItem(new FormItem(constants.kvmVersionHostGeneral(), kvmVersion, 0,
virtSupported).withAutoPlacement(), 2, 10);
formBuilder.addFormItem(new FormItem(constants.libvirtVersionHostGeneral(), libvirtVersion, 0,
virtSupported).withAutoPlacement(), 2, 10);
formBuilder.addFormItem(new FormItem(constants.vdsmVersionHostGeneral(), vdsmVersion,
0).withAutoPlacement(), 2, 10);
formBuilder.addFormItem(new FormItem(constants.spiceVersionHostGeneral(), spiceVersion, 0,
virtSupported).withAutoPlacement(), 2, 10);
formBuilder.addFormItem(new FormItem(constants.glusterVersionHostGeneral(), glusterVersion, 0,
glusterSupported).withAutoPlacement(), 2, 10);
formBuilder.addFormItem(new FormItem(constants.cephVersionHostGeneral(), librbdVersion, 0,
virtSupported).withAutoPlacement(), 2, 10);
}
@Override
public void setMainTabSelectedItem(VDS selectedItem) {
driver.edit(getDetailModel());
formBuilder.update(getDetailModel());
}
@Override
protected void generateIds() {
ViewIdHandler.idHandler.generateAndSetIds(this);
}
}