Alexander Wels has uploaded a new change for review. Change subject: webadmin: combine datacenter/cluster in host popup ......................................................................
webadmin: combine datacenter/cluster in host popup - Combine datacenter and cluster into a single drop down. - Removed population of partial cluster that would cause equals of two logical equivalents to fail causing issues for the drop dwon. Change-Id: If42ada78c0b5e72509f0a5a6a5d8cfcefc3ed7d5 Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=865810 Signed-off-by: Alexander Wels <[email protected]> --- M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/ListModel.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostModel.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationMessages.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/HostPopupView.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/HostPopupView.ui.xml A frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/editor/DataCenterClusterListModelListBox.java A frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/editor/DataCenterClusterListModelListBox.ui.xml A frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/editor/DataCenterClusterListModelListBoxEditor.java 8 files changed, 314 insertions(+), 71 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/40/41240/1 diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/ListModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/ListModel.java index 43298b5..745fbb2 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/ListModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/ListModel.java @@ -83,10 +83,12 @@ return selectedItem; } - public void setSelectedItem(T value) - { - if (selectedItem != value) - { + public void setSelectedItem(T value) { + setSelectedItem(value, true); + } + + public void setSelectedItem(T value, boolean fireEvent) { + if (selectedItem != value && fireEvent) { onSelectedItemChanging(value, selectedItem); selectedItem = value; onSelectedItemChanged(); diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostModel.java index d633c9a..04df2fc 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostModel.java @@ -1304,53 +1304,43 @@ ArrayList<VDSGroup> clusters = (ArrayList<VDSGroup>) result; StoragePool selectedDataCenter = getDataCenter().getSelectedItem(); - // Update selected cluster only if the returned cluster list is indeed the selected datacenter's - // clusters - if (clusters.isEmpty() - || clusters.size() > 0 - && clusters.get(0) - .getStoragePoolId() - .equals(selectedDataCenter.getId())) - { + if (hostModel.getIsNew()) { + updateClusterList(hostModel, clusters); + } else { + AsyncQuery architectureQuery = new AsyncQuery(); - if (hostModel.getIsNew()) { - updateClusterList(hostModel, clusters); - } else { - AsyncQuery architectureQuery = new AsyncQuery(); + architectureQuery.setModel(new Object[] { hostModel, clusters }); + architectureQuery.asyncCallback = new INewAsyncCallback() { + @Override + public void onSuccess(Object model, Object returnValue) { + Object[] objArray = (Object[]) model; + HostModel hostModel = (HostModel) objArray[0]; + ArrayList<VDSGroup> clusters = (ArrayList<VDSGroup>) objArray[1]; - architectureQuery.setModel(new Object[] { hostModel, clusters }); - architectureQuery.asyncCallback = new INewAsyncCallback() { - @Override - public void onSuccess(Object model, Object returnValue) { - Object[] objArray = (Object[]) model; - HostModel hostModel = (HostModel) objArray[0]; - ArrayList<VDSGroup> clusters = (ArrayList<VDSGroup>) objArray[1]; + ArchitectureType architecture = (ArchitectureType) returnValue; - ArchitectureType architecture = (ArchitectureType) returnValue; + ArrayList<VDSGroup> filteredClusters = new ArrayList<VDSGroup>(); - ArrayList<VDSGroup> filteredClusters = new ArrayList<VDSGroup>(); - - for (VDSGroup cluster : clusters) { - if (architecture == ArchitectureType.undefined - || cluster.getArchitecture() == ArchitectureType.undefined - || cluster.getArchitecture() == architecture) { - filteredClusters.add(cluster); - } + for (VDSGroup cluster : clusters) { + if (architecture == ArchitectureType.undefined + || cluster.getArchitecture() == ArchitectureType.undefined + || cluster.getArchitecture() == architecture) { + filteredClusters.add(cluster); } - - updateClusterList(hostModel, filteredClusters); } - }; - AsyncDataProvider.getInstance().getHostArchitecture(architectureQuery, hostModel.getHostId()); + updateClusterList(hostModel, filteredClusters); + } + }; - } + AsyncDataProvider.getInstance().getHostArchitecture(architectureQuery, hostModel.getHostId()); + } } }; - AsyncDataProvider.getInstance().getClusterList(_asyncQuery, dataCenter.getId()); + AsyncDataProvider.getInstance().getClusterList(_asyncQuery); } } @@ -1390,6 +1380,13 @@ updatePmTypeList(pmTypes, getPmSecondaryType()); } }), cluster.getCompatibilityVersion()); + //Match the appropriate selected data center to the selected cluster, don't fire update events. + for (StoragePool datacenter : getDataCenter().getItems()) { + if (datacenter.getId().equals(cluster.getStoragePoolId())) { + getDataCenter().setSelectedItem(datacenter, false); + break; + } + } } } @@ -1862,23 +1859,6 @@ getIsPm().setEntity(vds.isPmEnabled()); } updateModelDataCenterFromVds(dataCenters, vds); - - ArrayList<VDSGroup> clusters; - if (getCluster().getItems() == null) - { - VDSGroup tempVar = new VDSGroup(); - tempVar.setName(vds.getVdsGroupName()); - tempVar.setId(vds.getVdsGroupId()); - tempVar.setCompatibilityVersion(vds.getVdsGroupCompatibilityVersion()); - getCluster() - .setItems(new ArrayList<VDSGroup>(Arrays.asList(new VDSGroup[] { tempVar }))); - } - clusters = (ArrayList<VDSGroup>) getCluster().getItems(); - updateModelClusterFromVds(clusters, vds); - if (getCluster().getSelectedItem() == null) - { - getCluster().setSelectedItem(Linq.firstOrDefault(clusters)); - } if (vds.getStatus() != VDSStatus.Maintenance && vds.getStatus() != VDSStatus.PendingApproval && diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationMessages.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationMessages.java index 7444885..d8f64e4 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationMessages.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationMessages.java @@ -124,4 +124,7 @@ @DefaultMessage("{0} ({1})") String nameId(String name, String id); + + @DefaultMessage("Data Center: {0}") + String hostDataCenter(String storagePoolName); } diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/HostPopupView.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/HostPopupView.java index b5185e3..c3d00b5 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/HostPopupView.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/HostPopupView.java @@ -8,7 +8,6 @@ import org.ovirt.engine.core.common.businessentities.ExternalEntityBase; import org.ovirt.engine.core.common.businessentities.ExternalHostGroup; import org.ovirt.engine.core.common.businessentities.Provider; -import org.ovirt.engine.core.common.businessentities.StoragePool; import org.ovirt.engine.core.common.businessentities.VDS; import org.ovirt.engine.core.common.businessentities.VDSGroup; import org.ovirt.engine.core.common.mode.ApplicationMode; @@ -51,6 +50,7 @@ import org.ovirt.engine.ui.webadmin.ApplicationTemplates; import org.ovirt.engine.ui.webadmin.gin.AssetProvider; import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.host.HostPopupPresenterWidget; +import org.ovirt.engine.ui.webadmin.widget.editor.DataCenterClusterListModelListBoxEditor; import org.ovirt.engine.ui.webadmin.widget.provider.HostNetworkProviderWidget; import com.google.gwt.core.client.GWT; @@ -113,14 +113,9 @@ DialogTab powerManagementTab; @UiField(provided = true) - @Path(value = "dataCenter.selectedItem") - @WithElementId("dataCenter") - ListModelListBoxEditor<StoragePool> dataCenterEditor; - - @UiField(provided = true) @Path(value = "cluster.selectedItem") @WithElementId("cluster") - ListModelListBoxEditor<VDSGroup> clusterEditor; + DataCenterClusterListModelListBoxEditor clusterEditor; @UiField @Path(value = "name.entity") @@ -541,9 +536,7 @@ publicKeyEditor = new StringEntityModelTextAreaLabelEditor(); // List boxes - dataCenterEditor = new ListModelListBoxEditor<>(new NameRenderer<StoragePool>()); - - clusterEditor = new ListModelListBoxEditor<>(new NameRenderer<VDSGroup>()); + clusterEditor = new DataCenterClusterListModelListBoxEditor(new NameRenderer<VDSGroup>()); externalHostNameEditor = new ListModelListBoxEditor<>(new NameRenderer<VDS>()); @@ -599,7 +592,6 @@ void localize() { // General tab generalTab.setLabel(constants.hostPopupGeneralTabLabel()); - dataCenterEditor.setLabel(constants.hostPopupDataCenterLabel()); clusterEditor.setLabel(constants.hostPopupClusterLabel()); nameEditor.setLabel(constants.hostPopupNameLabel()); userNameEditor.setLabel(constants.hostPopupUsernameLabel()); @@ -1125,7 +1117,6 @@ @Override public int setTabIndexes(int nextTabIndex) { // ==General Tab== - dataCenterEditor.setTabIndex(nextTabIndex++); clusterEditor.setTabIndex(nextTabIndex++); externalHostProviderEnabledEditor.setTabIndex(nextTabIndex++); providersEditor.setTabIndex(nextTabIndex++); diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/HostPopupView.ui.xml b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/HostPopupView.ui.xml index 87e8eb5..8b5f575 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/HostPopupView.ui.xml +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/HostPopupView.ui.xml @@ -8,6 +8,7 @@ xmlns:ge="urn:import:org.ovirt.engine.ui.common.widget.editor.generic" xmlns:w="urn:import:org.ovirt.engine.ui.common.widget" xmlns:p="urn:import:org.ovirt.engine.ui.webadmin.widget.provider" + xmlns:we="urn:import:org.ovirt.engine.ui.webadmin.widget.editor" xmlns:b="urn:import:org.gwtbootstrap3.client.ui"> <ui:with field='constants' type='org.ovirt.engine.ui.common.CommonApplicationConstants'/> @@ -258,10 +259,7 @@ <t:content> <b:Container addStyleNames="{style.container}"> <b:Row addStyleNames="{style.generalTabTopDecorator} {style.topElement}"> - <e:ListModelListBoxEditor ui:field="dataCenterEditor" usePatternFly="true" labelColSize="LG_5" widgetColSize="LG_7"/> - </b:Row> - <b:Row addStyleNames="{style.generalTabTopDecorator}"> - <e:ListModelListBoxEditor ui:field="clusterEditor" usePatternFly="true" labelColSize="LG_5" widgetColSize="LG_7"/> + <we:DataCenterClusterListModelListBoxEditor ui:field="clusterEditor" usePatternFly="true" labelColSize="LG_5" widgetColSize="LG_7"/> </b:Row> <b:Row addStyleNames="{style.generalTabTopDecorator}"> <b:Column size="LG_5"> diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/editor/DataCenterClusterListModelListBox.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/editor/DataCenterClusterListModelListBox.java new file mode 100644 index 0000000..efef892 --- /dev/null +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/editor/DataCenterClusterListModelListBox.java @@ -0,0 +1,177 @@ +package org.ovirt.engine.ui.webadmin.widget.editor; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.Comparator; +import java.util.List; + +import org.gwtbootstrap3.client.ui.constants.Styles; +import org.ovirt.engine.core.common.businessentities.VDSGroup; +import org.ovirt.engine.ui.common.widget.editor.ListModelListBox; +import org.ovirt.engine.ui.webadmin.ApplicationMessages; +import org.ovirt.engine.ui.webadmin.gin.AssetProvider; + +import com.google.gwt.core.client.GWT; +import com.google.gwt.dom.client.Document; +import com.google.gwt.dom.client.OptGroupElement; +import com.google.gwt.dom.client.OptionElement; +import com.google.gwt.dom.client.SelectElement; +import com.google.gwt.event.dom.client.ChangeEvent; +import com.google.gwt.event.dom.client.ChangeHandler; +import com.google.gwt.resources.client.CssResource; +import com.google.gwt.text.shared.Renderer; +import com.google.gwt.uibinder.client.UiBinder; +import com.google.gwt.uibinder.client.UiField; +import com.google.gwt.user.client.ui.FlowPanel; +import com.google.gwt.user.client.ui.Label; +import com.google.gwt.user.client.ui.ListBox; +import com.google.gwt.user.client.ui.Widget; + +public class DataCenterClusterListModelListBox extends ListModelListBox<VDSGroup> { + interface Style extends CssResource { + String container(); + String listBox(); + String labelContainer(); + } + + interface DataCenterClusterListUiBinder extends UiBinder<FlowPanel, DataCenterClusterListModelListBox> { + DataCenterClusterListUiBinder uiBinder = GWT.create(DataCenterClusterListUiBinder.class); + } + + @UiField + FlowPanel container; + + @UiField + FlowPanel dataCenterLabelContainer; + + @UiField + Label dataCenterLabel; + + @UiField + public Style style; + + List<VDSGroup> clusters = new ArrayList<VDSGroup>(); + ApplicationMessages messages = AssetProvider.getMessages(); + + public DataCenterClusterListModelListBox(Renderer<VDSGroup> renderer) { + super(renderer); + } + + /** + * Set the value, do nothing if the value is null. + */ + public void setValue(VDSGroup value) { + if (value != null) { + super.setValue(value); + } + } + + @Override + protected void initWidget(Widget widget) { + container = DataCenterClusterListUiBinder.uiBinder.createAndBindUi(this); + super.initWidget(container); + container.insert(widget, 0); + getListBox().addChangeHandler(new ChangeHandler() { + @Override + public void onChange(ChangeEvent event) { + updateDataCenterLabel(); + } + }); + } + + @Override + protected Widget getWidget() { + return container.getWidget(0); + } + + /** + * Set the acceptable values as well as generating the appropriate OptionGroups based on the data center + * names. + */ + @Override + public void setAcceptableValues(Collection<VDSGroup> newValues) { + if (newValues instanceof List) { + List<VDSGroup> sortedValues = (List<VDSGroup>) newValues; + Collections.sort(sortedValues, new DataCenterClusterComparator()); + //Get the internal state of the ValueListBox correct. + super.setAcceptableValues(sortedValues); + //Store the current selected index. + int index = getListBox().getSelectedIndex(); + + ListBox listBox = asListBox(); + SelectElement selectElement = listBox.getElement().cast(); + //Wipe out the existing options and group option elements. + selectElement.removeAllChildren(); + clusters.clear(); + //Build the group options with the associated option elements, the list is sorted so we can get away + //with simply checking for a change in the data center to determine if we need to add a new group + //element. + String currentDataCenter = null; + OptGroupElement groupElement = null; + for (VDSGroup nextValue : sortedValues) { + if (nextValue.getStoragePoolName() != null + && !nextValue.getStoragePoolName().equals(currentDataCenter)) { + groupElement = Document.get().createOptGroupElement(); + groupElement.setLabel(nextValue.getStoragePoolName()); + selectElement.appendChild(groupElement); + currentDataCenter = nextValue.getStoragePoolName(); + } + if (groupElement != null && nextValue.getStoragePoolName() != null) { + OptionElement optionElement = Document.get().createOptionElement(); + optionElement.setText(nextValue.getName()); + groupElement.appendChild(optionElement); + clusters.add(nextValue); + } + } + //Since the group elements don't count for index purposes, we can restore the index on the list box + //to be what it was before wiping out the original option elements. + getListBox().setSelectedIndex(index); + updateDataCenterLabel(); + } + } + + /** + * Get the {@code ListBox} widget. + * @return The widget. + */ + public ListBox getListBox() { + return (ListBox) getWidget(); + } + + /** + * Comparator that sorts on data center name first, and then cluster name. Ignoring case. + */ + private static final class DataCenterClusterComparator implements Comparator<VDSGroup> { + + @Override + public int compare(VDSGroup cluster1, VDSGroup cluster2) { + if (cluster1.getStoragePoolName() != null && cluster2.getStoragePoolName() == null) { + return -1; + } else if (cluster2.getStoragePoolName() != null && cluster1.getStoragePoolName() == null) { + return 1; + } else if (cluster1.getStoragePoolName() == null && cluster2.getStoragePoolName() == null) { + return 0; + } + if (cluster1.getStoragePoolName().equals(cluster2.getStoragePoolName())) { + return cluster1.getName().compareToIgnoreCase(cluster2.getName()); + } else { + return cluster1.getStoragePoolName().compareToIgnoreCase(cluster2.getStoragePoolName()); + } + } + } + + public void setUsePatternFly(boolean usePatternFly) { + if (usePatternFly) { + container.addStyleName(Styles.FORM_CONTROL); + container.addStyleName(style.container()); + getWidget().addStyleName(style.listBox()); + dataCenterLabelContainer.addStyleName(style.labelContainer()); + } + } + + private void updateDataCenterLabel() { + dataCenterLabel.setText(messages.hostDataCenter( + clusters.get(getListBox().getSelectedIndex()).getStoragePoolName())); + } +} diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/editor/DataCenterClusterListModelListBox.ui.xml b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/editor/DataCenterClusterListModelListBox.ui.xml new file mode 100644 index 0000000..93daa0d --- /dev/null +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/editor/DataCenterClusterListModelListBox.ui.xml @@ -0,0 +1,37 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent"> +<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder" + xmlns:g="urn:import:com.google.gwt.user.client.ui"> + + <ui:style type="org.ovirt.engine.ui.webadmin.widget.editor.DataCenterClusterListModelListBox.Style"> + .container { + height: 100%; + border: solid 1px gray; + padding: 0px; + } + + .labelContainer_legacy { + text-align: left; + } + + .labelContainer { + border: none; + border-top: solid 1px gray; + font-style: italic; + } + + .listBox { + height: 21px; + width: 100%; + border: none; + } + </ui:style> + + <g:FlowPanel ui:field="container"> + <g:FlowPanel ui:field="dataCenterLabelContainer" addStyleNames="input-group-addon {style.labelContainer_legacy}"> + <g:Label ui:field="dataCenterLabel"/> + </g:FlowPanel> + </g:FlowPanel> + +</ui:UiBinder> + diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/editor/DataCenterClusterListModelListBoxEditor.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/editor/DataCenterClusterListModelListBoxEditor.java new file mode 100644 index 0000000..9cd665c --- /dev/null +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/editor/DataCenterClusterListModelListBoxEditor.java @@ -0,0 +1,55 @@ +package org.ovirt.engine.ui.webadmin.widget.editor; + +import org.ovirt.engine.core.common.businessentities.VDSGroup; +import org.ovirt.engine.ui.common.widget.AbstractValidatedWidgetWithLabel; +import org.ovirt.engine.ui.common.widget.VisibilityRenderer; +import org.ovirt.engine.ui.common.widget.editor.WidgetWithLabelEditor; +import org.ovirt.engine.ui.common.widget.renderer.StringRenderer; + +import com.google.gwt.editor.client.IsEditor; +import com.google.gwt.text.shared.Renderer; +import com.google.gwt.user.client.ui.ListBox; + +public class DataCenterClusterListModelListBoxEditor + extends AbstractValidatedWidgetWithLabel<VDSGroup, DataCenterClusterListModelListBox> + implements IsEditor<WidgetWithLabelEditor<VDSGroup, DataCenterClusterListModelListBoxEditor>>{ + + private final WidgetWithLabelEditor<VDSGroup, DataCenterClusterListModelListBoxEditor> editor; + + public DataCenterClusterListModelListBoxEditor() { + this(new StringRenderer<VDSGroup>()); + } + + public DataCenterClusterListModelListBoxEditor(VisibilityRenderer visibilityRenderer) { + this(new StringRenderer<VDSGroup>(), visibilityRenderer); + } + + public DataCenterClusterListModelListBoxEditor(Renderer<VDSGroup> renderer, VisibilityRenderer visibilityRenderer) { + super(new DataCenterClusterListModelListBox(renderer), visibilityRenderer); + this.editor = WidgetWithLabelEditor.of(getContentWidget().asEditor(), this); + } + + public DataCenterClusterListModelListBoxEditor(Renderer<VDSGroup> renderer) { + this(renderer, new VisibilityRenderer.SimpleVisibilityRenderer()); + } + + public DataCenterClusterListModelListBoxEditor(DataCenterClusterListModelListBox contentWidget) { + super(contentWidget); + this.editor = WidgetWithLabelEditor.of(getContentWidget().asEditor(), this); + } + + public ListBox asListBox() { + return getContentWidget().asListBox(); + } + + @Override + public WidgetWithLabelEditor<VDSGroup, DataCenterClusterListModelListBoxEditor> asEditor() { + return editor; + } + + @Override + public void setUsePatternFly(boolean usePatternFly) { + super.setUsePatternFly(usePatternFly); + getContentWidget().setUsePatternFly(usePatternFly); + } +} -- To view, visit https://gerrit.ovirt.org/41240 To unsubscribe, visit https://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: If42ada78c0b5e72509f0a5a6a5d8cfcefc3ed7d5 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Alexander Wels <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
