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

Reply via email to