Lior Vernia has uploaded a new change for review. Change subject: webadmin: Add QoS button in Add/Edit Network dialog ......................................................................
webadmin: Add QoS button in Add/Edit Network dialog Added the ability to add a new QoS entity through the Add/Edit Network dialog, in case no fitting QoS entity exists. Change-Id: Ia62cb0da531a06c782d9d753f46bb9f7c48a5b9a Signed-off-by: Lior Vernia <lver...@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/NetworkQoSModel.java M frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/UIConstants.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/uicommon/NetworkModule.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 7 files changed, 68 insertions(+), 9 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/83/22683/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 38797ae..d951f89 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 @@ -1,6 +1,7 @@ package org.ovirt.engine.ui.uicommonweb.models.datacenters; import java.util.ArrayList; +import java.util.Collection; import java.util.LinkedList; import java.util.List; @@ -63,6 +64,7 @@ private NetworkProfilesModel profiles; private final Network network; private final ListModel sourceListModel; + private UICommand addQosCommand; public NetworkModel(ListModel sourceListModel) { @@ -385,6 +387,10 @@ return sourceListModel; } + public UICommand getAddQosCommand() { + return addQosCommand; + } + public boolean validate() { RegexValidation tempVar = new RegexValidation(); @@ -480,6 +486,8 @@ tempVar3.setTitle(ConstantsManager.getInstance().getConstants().cancel()); tempVar3.setIsCancel(true); getCommands().add(tempVar3); + addQosCommand = new UICommand("AddQos", this); //$NON-NLS-1$ + addQosCommand.setTitle(ConstantsManager.getInstance().getConstants().newNetworkQosButton()); } public StoragePool getSelectedDc() { @@ -557,6 +565,21 @@ sourceListModel.setConfirmWindow(null); } + private void addQos() { + NewNetworkQoSModel qosModel = new NewNetworkQoSModel(this, getSelectedDc()) { + @Override + protected void cancel() { + List<NetworkQoS> qosItems = new ArrayList<NetworkQoS>((Collection<NetworkQoS>) getQos().getItems()); + qosItems.add(1, networkQoS); + getQos().setItems(qosItems); + getQos().setSelectedItem(networkQoS); + sourceListModel.setConfirmWindow(null); + } + }; + qosModel.getDataCenters().setIsChangable(false); + sourceListModel.setConfirmWindow(qosModel); + } + public void onSave() { if (!validate()) @@ -576,13 +599,12 @@ { super.executeCommand(command); - if (StringHelper.stringsEqual(command.getName(), "OnSave")) //$NON-NLS-1$ - { + if (StringHelper.stringsEqual(command.getName(), "OnSave")) { //$NON-NLS-1$ onSave(); - } - else if (StringHelper.stringsEqual(command.getName(), "Cancel")) //$NON-NLS-1$ - { + } else if (StringHelper.stringsEqual(command.getName(), "Cancel")) { //$NON-NLS-1$ cancel(); + } else if (command == getAddQosCommand()) { + addQos(); } } diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/NetworkQoSModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/NetworkQoSModel.java index a2e425d..f47860f 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/NetworkQoSModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/NetworkQoSModel.java @@ -138,7 +138,7 @@ protected abstract void executeSave(); - private void cancel() { + protected void cancel() { sourceModel.setWindow(null); sourceModel.setConfirmWindow(null); } diff --git a/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/UIConstants.java b/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/UIConstants.java index 21bcc58..987d9e1 100644 --- a/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/UIConstants.java +++ b/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/UIConstants.java @@ -196,6 +196,9 @@ @DefaultStringValue("New Logical Network") String newLogicalNetworkTitle(); + @DefaultStringValue("New") + String newNetworkQosButton(); + @DefaultStringValue("Attach/Detach Network to/from Clusters") String attachDetachNetworkToFromClustersTitle(); diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/uicommon/NetworkModule.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/uicommon/NetworkModule.java index 91d55b2..204dadf 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/uicommon/NetworkModule.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/uicommon/NetworkModule.java @@ -25,6 +25,7 @@ import org.ovirt.engine.ui.uicommonweb.models.ConfirmationModel; import org.ovirt.engine.ui.uicommonweb.models.Model; import org.ovirt.engine.ui.uicommonweb.models.configure.PermissionListModel; +import org.ovirt.engine.ui.uicommonweb.models.datacenters.NetworkQoSModel; import org.ovirt.engine.ui.uicommonweb.models.hosts.HostBondInterfaceModel; import org.ovirt.engine.ui.uicommonweb.models.hosts.HostInterfaceModel; import org.ovirt.engine.ui.uicommonweb.models.hosts.HostManagementNetworkModel; @@ -35,6 +36,7 @@ import org.ovirt.engine.ui.uicommonweb.models.networks.NetworkProfileListModel; import org.ovirt.engine.ui.uicommonweb.models.networks.NetworkTemplateListModel; import org.ovirt.engine.ui.uicommonweb.models.networks.NetworkVmListModel; +import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.NetworkQoSPopupPresenterWidget; import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.PermissionsPopupPresenterWidget; import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.cluster.ClusterManageNetworkPopupPresenterWidget; import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.datacenter.EditNetworkPopupPresenterWidget; @@ -63,12 +65,17 @@ final Provider<NewNetworkPopupPresenterWidget> newNetworkPopupProvider, final Provider<ImportNetworksPopupPresenterWidget> importNetworkPopupProvider, final Provider<EditNetworkPopupPresenterWidget> editNetworkPopupProvider, - final Provider<RemoveConfirmationPopupPresenterWidget> removeConfirmPopupProvider) { + final Provider<RemoveConfirmationPopupPresenterWidget> removeConfirmPopupProvider, + final Provider<NetworkQoSPopupPresenterWidget> addQosPopupProvider) { return new MainTabModelProvider<NetworkView, NetworkListModel>(eventBus, defaultConfirmPopupProvider, NetworkListModel.class) { @Override public AbstractModelBoundPopupPresenterWidget<? extends Model, ?> getModelPopup(NetworkListModel source, UICommand lastExecutedCommand, Model windowModel) { + if (windowModel instanceof NetworkQoSModel) { + return addQosPopupProvider.get(); + } + if (lastExecutedCommand == getModel().getNewCommand()) { return newNetworkPopupProvider.get(); } else if (lastExecutedCommand == getModel().getImportCommand()) { 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..dee10f5 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 @@ -1,12 +1,15 @@ package org.ovirt.engine.ui.webadmin.section.main.presenter.popup; import org.ovirt.engine.ui.common.presenter.AbstractModelBoundPopupPresenterWidget; +import org.ovirt.engine.ui.common.widget.UiCommandButton; import org.ovirt.engine.ui.uicommonweb.models.datacenters.NetworkModel; import org.ovirt.engine.ui.uicompat.Event; import org.ovirt.engine.ui.uicompat.EventArgs; import org.ovirt.engine.ui.uicompat.IEventListener; import org.ovirt.engine.ui.uicompat.PropertyChangedEventArgs; +import com.google.gwt.event.dom.client.ClickEvent; +import com.google.gwt.event.dom.client.ClickHandler; import com.google.gwt.event.shared.EventBus; public class AbstractNetworkPopupPresenterWidget<T extends NetworkModel, V extends AbstractNetworkPopupPresenterWidget.ViewDef<T>> @@ -19,6 +22,8 @@ void updateVisibility(); void toggleProfilesVisibility(boolean visible); + + UiCommandButton getQosButton(); } public AbstractNetworkPopupPresenterWidget(EventBus eventBus, V view) { @@ -52,6 +57,14 @@ } } }); + + getView().getQosButton().setCommand(model.getAddQosCommand()); + getView().getQosButton().addClickHandler(new ClickHandler() { + @Override + public void onClick(ClickEvent event) { + getView().getQosButton().getCommand().execute(); + } + }); } @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 7224913..a2a48cb 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 @@ -8,6 +8,7 @@ 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; +import org.ovirt.engine.ui.common.widget.UiCommandButton; import org.ovirt.engine.ui.common.widget.dialog.SimpleDialogPanel; import org.ovirt.engine.ui.common.widget.dialog.tab.DialogTab; import org.ovirt.engine.ui.common.widget.editor.EntityModelCellTable; @@ -116,6 +117,9 @@ @UiField(provided = true) @Path(value = "qos.selectedItem") public ListModelListBoxEditor<NetworkQoS> qosEditor; + + @UiField + UiCommandButton addQosButton; @UiField(provided = true) @Ignore @@ -397,6 +401,11 @@ profilesTab.setVisible(visible); } + @Override + public UiCommandButton getQosButton() { + return addQosButton; + } + interface WidgetStyle extends CssResource { String valueBox(); 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 fcff767..f251e50 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 @@ -4,7 +4,8 @@ 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:v="urn:import:org.ovirt.engine.ui.webadmin.widget.vnicProfile" - xmlns:t="urn:import:org.ovirt.engine.ui.common.widget.dialog.tab"> + xmlns:t="urn:import:org.ovirt.engine.ui.common.widget.dialog.tab" + xmlns:w="urn:import:org.ovirt.engine.ui.common.widget"> <ui:with field='constants' type='org.ovirt.engine.ui.webadmin.ApplicationConstants' /> @@ -53,6 +54,7 @@ .qosStyle { float: left; + margin-right: 20px; } .qosLabel { @@ -92,7 +94,10 @@ <e:EntityModelCheckBoxEditor ui:field="hasMtuEditor"/> <e:EntityModelTextBoxOnlyEditor ui:field="mtuEditor" /> </g:HorizontalPanel> - <e:ListModelListBoxEditor ui:field="qosEditor" addStyleNames="{style.dependentField} {style.qosStyle}" /> + <g:HorizontalPanel verticalAlignment="ALIGN_MIDDLE"> + <e:ListModelListBoxEditor ui:field="qosEditor" addStyleNames="{style.dependentField} {style.qosStyle}" /> + <w:UiCommandButton ui:field="addQosButton" /> + </g:HorizontalPanel> </g:FlowPanel> </g:FlowPanel> </t:content> -- To view, visit http://gerrit.ovirt.org/22683 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ia62cb0da531a06c782d9d753f46bb9f7c48a5b9a Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Lior Vernia <lver...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches