package org.ovirt.engine.ui.webadmin.widget.vnicProfile; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.ui.common.widget.AddRemoveRowWidget; import org.ovirt.engine.ui.uicommonweb.models.profiles.NetworkProfilesModel; import org.ovirt.engine.ui.uicommonweb.models.profiles.NewVnicProfileModel; import org.ovirt.engine.ui.uicommonweb.models.profiles.VnicProfileModel; import com.google.gwt.core.client.GWT; import com.google.gwt.uibinder.client.UiBinder; import com.google.gwt.user.client.ui.Widget; public class VnicProfilesEditor extends AddRemoveRowWidget<NetworkProfilesModel, VnicProfileModel, VnicProfileWidget> { interface WidgetUiBinder extends UiBinder<Widget, VnicProfilesEditor> { WidgetUiBinder uiBinder = GWT.create(WidgetUiBinder.class); } private Guid dcId; private boolean usePatternFly = false; public VnicProfilesEditor() { initWidget(WidgetUiBinder.uiBinder.createAndBindUi(this)); } @Override public void edit(final NetworkProfilesModel model) { super.edit(model); model.getDcId().getEntityChangedEvent().addListener((ev, sender, args) -> dcId = model.getDcId().getEntity()); } @Override protected VnicProfileWidget createWidget(VnicProfileModel value) { VnicProfileWidget vnicProfileWidget = new VnicProfileWidget(); vnicProfileWidget.setUsePatternFly(usePatternFly); vnicProfileWidget.edit(value); return vnicProfileWidget; } @Override protected VnicProfileModel createGhostValue() { VnicProfileModel profile = new NewVnicProfileModel(); profile.initNetworkQoSList(dcId); return profile; } @Override protected boolean isGhost(VnicProfileModel value) { String name = value.getName().getEntity(); return name == null || name.isEmpty(); } @Override protected void toggleGhost(VnicProfileModel value, VnicProfileWidget widget, boolean becomingGhost) { super.toggleGhost(value, widget, becomingGhost); widget.publicUseEditor.setEnabled(!becomingGhost && value.getPublicUse().getIsChangable()); widget.networkQoSEditor.setEnabled(!becomingGhost && value.getNetworkQoS().getIsChangable()); } @Override public void setUsePatternFly(boolean use) { super.setUsePatternFly(use); this.usePatternFly = use; } }