Mike Kolesnik has uploaded a new change for review. Change subject: webadmin: Add subnet left tab to new network dialog ......................................................................
webadmin: Add subnet left tab to new network dialog With this left tab it would be possible to add a subnet directly while adding a network to an external provider. Change-Id: I5054c208f692a321d60532046ffa576770c4ec6b Signed-off-by: Mike Kolesnik <mkole...@redhat.com> --- M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/NetworkModel.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/NewNetworkModel.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/popup/AbstractNetworkPopupPresenterWidget.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/AbstractNetworkPopupView.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/AbstractNetworkPopupView.ui.xml M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/datacenter/EditNetworkPopupView.java 7 files changed, 121 insertions(+), 2 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/90/22690/1 diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/NetworkModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/NetworkModel.java index 14a987e..8a1d5e6 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/NetworkModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/NetworkModel.java @@ -9,8 +9,10 @@ import org.ovirt.engine.core.common.action.VnicProfileParameters; import org.ovirt.engine.core.common.businessentities.Provider; import org.ovirt.engine.core.common.businessentities.StoragePool; +import org.ovirt.engine.core.common.businessentities.network.ExternalSubnet; import org.ovirt.engine.core.common.businessentities.network.Network; import org.ovirt.engine.core.common.businessentities.network.VnicProfile; +import org.ovirt.engine.core.common.businessentities.network.ExternalSubnet.IpVersion; import org.ovirt.engine.core.common.queries.ConfigurationValues; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.compat.StringHelper; @@ -25,6 +27,7 @@ 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 org.ovirt.engine.ui.uicommonweb.validation.AsciiNameValidation; import org.ovirt.engine.ui.uicommonweb.validation.IValidation; import org.ovirt.engine.ui.uicommonweb.validation.IntegerValidation; import org.ovirt.engine.ui.uicommonweb.validation.LengthValidation; @@ -60,6 +63,10 @@ private NetworkProfilesModel profiles; private final Network network; private final ListModel sourceListModel; + private EntityModel<String> subnetName; + private EntityModel<String> subnetCidr; + private ListModel<IpVersion> subnetIpVersion; + private ExternalSubnet subnet; public NetworkModel(ListModel sourceListModel) { @@ -139,6 +146,12 @@ profiles.add(defaultProfile); getProfiles().setDefaultProfile(defaultProfile); getProfiles().setItems(profiles); + + setSubnetName(new EntityModel<String>()); + setSubnetCidr(new EntityModel<String>()); + setSubnetIpVersion(new ListModel<IpVersion>()); + getSubnetIpVersion().setItems(AsyncDataProvider.getExternalSubnetIpVerionList()); + // Update changeability according to initial values onExportChanged(); @@ -371,6 +384,30 @@ return sourceListModel; } + public EntityModel<String> getSubnetName() { + return subnetName; + } + + private void setSubnetName(EntityModel<String> subnetName) { + this.subnetName = subnetName; + } + + public EntityModel<String> getSubnetCidr() { + return subnetCidr; + } + + private void setSubnetCidr(EntityModel<String> subnetCidr) { + this.subnetCidr = subnetCidr; + } + + public ListModel<IpVersion> getSubnetIpVersion() { + return subnetIpVersion; + } + + private void setSubnetIpVersion(ListModel<IpVersion> subnetIpVersion) { + this.subnetIpVersion = subnetIpVersion; + } + public boolean validate() { RegexValidation tempVar = new RegexValidation(); @@ -408,6 +445,15 @@ getExternalProviders().validateSelectedItem(new IValidation[] { new NotEmptyValidation() }); + getSubnetName().validateEntity(new IValidation[] { new AsciiNameValidation() }); + getSubnetCidr().setIsValid(true); + getSubnetIpVersion().setIsValid(true); + if (getSubnetName().getEntity() != null && !getSubnetName().getEntity().isEmpty()) { + getSubnetCidr().validateEntity(new IValidation[] { new NotEmptyValidation() }); + getSubnetIpVersion().validateSelectedItem(new IValidation[] { new NotEmptyValidation() }); + } + + boolean profilesValid = true; Iterable<VnicProfileModel> profiles = getProfiles().getItems(); for (VnicProfileModel profileModel : profiles) { @@ -418,6 +464,7 @@ return getName().getIsValid() && getVLanTag().getIsValid() && getDescription().getIsValid() && getMtu().getIsValid() && getExternalProviders().getIsValid() && getComment().getIsValid() + && getSubnetName().getIsValid() && getSubnetCidr().getIsValid() && getSubnetIpVersion().getIsValid() && profilesValid; } diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/NewNetworkModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/NewNetworkModel.java index e5254c0..1c53cf4 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/NewNetworkModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/NewNetworkModel.java @@ -3,6 +3,7 @@ import java.util.ArrayList; import java.util.List; +import org.ovirt.engine.core.common.action.AddExternalSubnetParameters; import org.ovirt.engine.core.common.action.AddNetworkStoragePoolParameters; import org.ovirt.engine.core.common.action.AttachNetworkToVdsGroupParameter; import org.ovirt.engine.core.common.action.VdcActionParametersBase; @@ -10,6 +11,7 @@ import org.ovirt.engine.core.common.action.VdcReturnValueBase; import org.ovirt.engine.core.common.businessentities.Provider; import org.ovirt.engine.core.common.businessentities.VDSGroup; +import org.ovirt.engine.core.common.businessentities.network.ExternalSubnet; import org.ovirt.engine.core.common.businessentities.network.Network; import org.ovirt.engine.core.common.businessentities.network.NetworkCluster; import org.ovirt.engine.core.common.businessentities.network.ProviderNetwork; @@ -180,6 +182,17 @@ } Frontend.getInstance().runMultipleAction(VdcActionType.AttachNetworkToVdsGroup, actionParameters1); + + if ((Boolean) getExport().getEntity() && !getSubnetName().getEntity().isEmpty()) { + ExternalSubnet subnet = new ExternalSubnet(); + subnet.setName(getSubnetName().getEntity()); + subnet.setCidr(getSubnetCidr().getEntity()); + subnet.setIpVersion(getSubnetIpVersion().getSelectedItem()); + + actionParameters1 = new ArrayList<VdcActionParametersBase>(); + actionParameters1.add(new AddExternalSubnetParameters(subnet, networkId)); + Frontend.getInstance().runMultipleAction(VdcActionType.AddSubnetToProvider, actionParameters1); + } } public ArrayList<NetworkClusterModel> getClustersToAttach() diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java index 6126f69..32c93aa 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java @@ -1083,6 +1083,9 @@ @DefaultStringValue("Profiles") String profilesTabNetworkPopup(); + @DefaultStringValue("Subnet") + String subnetTabNetworkPopup(); + @DefaultStringValue("General") String networkGeneralSubTabLabel(); diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/popup/AbstractNetworkPopupPresenterWidget.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/popup/AbstractNetworkPopupPresenterWidget.java index 05948d4..c169822 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/popup/AbstractNetworkPopupPresenterWidget.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/popup/AbstractNetworkPopupPresenterWidget.java @@ -18,6 +18,8 @@ void updateVisibility(); + void toggleSubnetVisibility(boolean visible); + void toggleProfilesVisibility(boolean visible); } @@ -43,6 +45,14 @@ } }); + getView().toggleSubnetVisibility((Boolean) model.getExport().getEntity()); + model.getExport().getEntityChangedEvent().addListener(new IEventListener() { + @Override + public void eventRaised(Event ev, Object sender, EventArgs args) { + getView().toggleSubnetVisibility((Boolean) model.getExport().getEntity()); + } + }); + getView().toggleProfilesVisibility(model.getProfiles().getIsAvailable()); model.getProfiles().getPropertyChangedEvent().addListener(new IEventListener() { @Override diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/AbstractNetworkPopupView.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/AbstractNetworkPopupView.java index 9cf6068..dea76aa 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/AbstractNetworkPopupView.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/AbstractNetworkPopupView.java @@ -4,6 +4,7 @@ import org.ovirt.engine.core.common.businessentities.Provider; import org.ovirt.engine.core.common.businessentities.StoragePool; +import org.ovirt.engine.core.common.businessentities.network.ExternalSubnet.IpVersion; import org.ovirt.engine.ui.common.idhandler.WithElementId; import org.ovirt.engine.ui.common.view.popup.AbstractModelBoundPopupView; import org.ovirt.engine.ui.common.widget.Align; @@ -11,10 +12,12 @@ import org.ovirt.engine.ui.common.widget.dialog.tab.DialogTab; import org.ovirt.engine.ui.common.widget.editor.EntityModelCellTable; import org.ovirt.engine.ui.common.widget.editor.EntityModelCellTable.SelectionMode; +import org.ovirt.engine.ui.common.widget.editor.generic.StringEntityModelTextBoxEditor; import org.ovirt.engine.ui.common.widget.editor.EntityModelCheckBoxEditor; import org.ovirt.engine.ui.common.widget.editor.EntityModelTextBoxEditor; import org.ovirt.engine.ui.common.widget.editor.EntityModelTextBoxOnlyEditor; import org.ovirt.engine.ui.common.widget.editor.ListModelListBoxEditor; +import org.ovirt.engine.ui.common.widget.renderer.EnumRenderer; import org.ovirt.engine.ui.common.widget.renderer.NullSafeRenderer; import org.ovirt.engine.ui.common.widget.table.column.CheckboxColumn; import org.ovirt.engine.ui.common.widget.table.column.TextColumnWithTooltip; @@ -32,6 +35,7 @@ import com.google.gwt.cell.client.Cell.Context; import com.google.gwt.cell.client.FieldUpdater; import com.google.gwt.core.client.GWT; +import com.google.gwt.editor.client.Editor.Path; import com.google.gwt.event.logical.shared.ValueChangeEvent; import com.google.gwt.event.logical.shared.ValueChangeHandler; import com.google.gwt.event.shared.EventBus; @@ -131,6 +135,18 @@ public EntityModelTextBoxEditor networkLabel; @UiField + @Path("subnetName.entity") + public StringEntityModelTextBoxEditor subnetNameEditor; + + @UiField + @Path("subnetCidr.entity") + public StringEntityModelTextBoxEditor subnetCidrEditor; + + @UiField(provided = true) + @Path("subnetIpVersion.selectedItem") + public ListModelListBoxEditor<IpVersion> subnetIpVersionEditor; + + @UiField @Ignore public VnicProfilesEditor profilesEditor; @@ -145,6 +161,10 @@ @UiField @Ignore public DialogTab profilesTab; + + @UiField + @Ignore + public DialogTab subnetTab; @UiField @Ignore @@ -178,6 +198,7 @@ } } }); + subnetIpVersionEditor = new ListModelListBoxEditor<IpVersion>(new EnumRenderer<IpVersion>()); isVmNetworkEditor = new EntityModelCheckBoxEditor(Align.RIGHT); vlanTagging = new EntityModelCheckBoxEditor(Align.RIGHT); hasMtuEditor = new EntityModelCheckBoxEditor(Align.RIGHT); @@ -192,6 +213,7 @@ generalTab.setLabel(constants.generalTabNetworkPopup()); clusterTab.setLabel(constants.clusterTabNetworkPopup()); profilesTab.setLabel(constants.profilesTabNetworkPopup()); + subnetTab.setLabel(constants.subnetTabNetworkPopup()); dataCenterEditor.setLabel(constants.networkPopupDataCenterLabel()); assignLabel.setText(constants.networkPopupAssignLabel()); @@ -205,6 +227,10 @@ isVmNetworkEditor.setLabel(constants.vmNetworkLabel()); vlanTagging.setLabel(constants.enableVlanTagLabel()); hasMtuEditor.setLabel(constants.overrideMtuLabel()); + + subnetNameEditor.setLabel(constants.nameExternalSubnet()); + subnetCidrEditor.setLabel(constants.cidrExternalSubnet()); + subnetIpVersionEditor.setLabel(constants.ipVersionExternalSubnet()); profilesLabel.setText(constants.profilesLabel()); } @@ -373,6 +399,11 @@ } @Override + public void toggleSubnetVisibility(boolean visible) { + subnetTab.setVisible(visible); + } + + @Override public void updateVisibility() { messageLabel.setVisible(false); } diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/AbstractNetworkPopupView.ui.xml b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/AbstractNetworkPopupView.ui.xml index c62dfd1..44dc4f7 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/AbstractNetworkPopupView.ui.xml +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/AbstractNetworkPopupView.ui.xml @@ -1,8 +1,11 @@ <?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" xmlns:d="urn:import:org.ovirt.engine.ui.common.widget.dialog" - xmlns:e="urn:import:org.ovirt.engine.ui.common.widget.editor" xmlns:we="urn:import:org.ovirt.engine.ui.webadmin.widget.editor" + xmlns:g="urn:import:com.google.gwt.user.client.ui" + xmlns:ge="urn:import:org.ovirt.engine.ui.common.widget.editor.generic" + xmlns:d="urn:import:org.ovirt.engine.ui.common.widget.dialog" + xmlns:e="urn:import:org.ovirt.engine.ui.common.widget.editor" + xmlns:we="urn:import:org.ovirt.engine.ui.webadmin.widget.editor" xmlns:v="urn:import:org.ovirt.engine.ui.webadmin.widget.vnicProfile" xmlns:t="urn:import:org.ovirt.engine.ui.common.widget.dialog.tab"> @@ -106,6 +109,17 @@ </t:DialogTab> </t:tab> <t:tab> + <t:DialogTab ui:field="subnetTab"> + <t:content> + <g:FlowPanel> + <ge:StringEntityModelTextBoxEditor ui:field="subnetNameEditor" /> + <ge:StringEntityModelTextBoxEditor ui:field="subnetCidrEditor" /> + <e:ListModelListBoxEditor ui:field="subnetIpVersionEditor"/> + </g:FlowPanel> + </t:content> + </t:DialogTab> + </t:tab> + <t:tab> <t:DialogTab ui:field="profilesTab"> <t:content> <g:FlowPanel> diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/datacenter/EditNetworkPopupView.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/datacenter/EditNetworkPopupView.java index 3e7974d..9df1aaf 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/datacenter/EditNetworkPopupView.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/datacenter/EditNetworkPopupView.java @@ -46,6 +46,7 @@ super.updateVisibility(); attachPanel.setVisible(false); clusterTab.setVisible(false); + toggleSubnetVisibility(false); } @Override -- To view, visit http://gerrit.ovirt.org/22690 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I5054c208f692a321d60532046ffa576770c4ec6b Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Mike Kolesnik <mkole...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches