Lior Vernia has uploaded a new change for review.

Change subject: webadmin: Added required column to cluster table in Add Network
......................................................................

webadmin: Added required column to cluster table in Add Network

Added said column, which enables the user to mark whether an internal
network should be required or not (an external network must not be
required).

Change-Id: Id6de5dc8583d15ab5ec82df6aac07d5954418056
Signed-off-by: Lior Vernia <lver...@redhat.com>
---
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/ClusterNewNetworkModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/NetworkClusterModel.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/section/main/view/popup/AbstractNetworkPopupView.java
4 files changed, 91 insertions(+), 18 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/98/17398/1

diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/ClusterNewNetworkModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/ClusterNewNetworkModel.java
index ad6ddc9..dce863c 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/ClusterNewNetworkModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/ClusterNewNetworkModel.java
@@ -16,6 +16,7 @@
         if ((cluster.getId().equals(this.cluster.getId()))) {
             NetworkClusterModel networkClusterModel = new 
NetworkClusterModel(cluster);
             networkClusterModel.setAttached(true);
+            networkClusterModel.setRequired(!(Boolean) 
getExport().getEntity());
             networkClusterModel.setIsChangable(false);
 
             return networkClusterModel;
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/NetworkClusterModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/NetworkClusterModel.java
index 36369c6..a72ae2b 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/NetworkClusterModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/NetworkClusterModel.java
@@ -6,6 +6,7 @@
 public class NetworkClusterModel extends EntityModel {
 
     private boolean attached;
+    private boolean required;
 
     public NetworkClusterModel(VDSGroup cluster) {
         setEntity(cluster);
@@ -27,4 +28,12 @@
     public void setAttached(boolean attached) {
         this.attached = attached;
     }
+
+    public boolean isRequired() {
+        return required;
+    }
+
+    public void setRequired(boolean required) {
+        this.required = required;
+    }
 }
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 fb42c6b..3a7b291 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
@@ -80,6 +80,7 @@
     protected NetworkClusterModel createNetworkClusterModel(VDSGroup cluster) {
         NetworkClusterModel networkClusterModel = new 
NetworkClusterModel(cluster);
         networkClusterModel.setAttached(true);
+        networkClusterModel.setRequired(!(Boolean) getExport().getEntity());
 
         return networkClusterModel;
     }
@@ -159,7 +160,7 @@
         ArrayList<VdcActionParametersBase> actionParameters1 =
                 new ArrayList<VdcActionParametersBase>();
 
-        for (VDSGroup attachNetworkToCluster : getClustersToAttach())
+        for (NetworkClusterModel networkClusterModel : getClustersToAttach())
         {
             Network tempVar = new Network();
             tempVar.setId(networkId);
@@ -167,25 +168,25 @@
 
             // Init default NetworkCluster values (required, display, status)
             NetworkCluster networkCluster = new NetworkCluster();
-            networkCluster.setRequired(!((Boolean) getExport().getEntity()));
+            networkCluster.setRequired(networkClusterModel.isRequired());
             tempVar.setCluster(networkCluster);
 
-            actionParameters1.add(new 
AttachNetworkToVdsGroupParameter(attachNetworkToCluster, tempVar));
+            actionParameters1.add(new 
AttachNetworkToVdsGroupParameter(networkClusterModel.getEntity(), tempVar));
         }
 
         Frontend.RunMultipleAction(VdcActionType.AttachNetworkToVdsGroup, 
actionParameters1);
     }
 
-    public ArrayList<VDSGroup> getClustersToAttach()
+    public ArrayList<NetworkClusterModel> getClustersToAttach()
     {
-        ArrayList<VDSGroup> clusterToAttach = new ArrayList<VDSGroup>();
+        ArrayList<NetworkClusterModel> clusterToAttach = new 
ArrayList<NetworkClusterModel>();
 
         for (Object item : getNetworkClusterList().getItems())
         {
             NetworkClusterModel networkClusterModel = (NetworkClusterModel) 
item;
             if (networkClusterModel.isAttached())
             {
-                clusterToAttach.add(networkClusterModel.getEntity());
+                clusterToAttach.add(networkClusterModel);
             }
         }
         return clusterToAttach;
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 f5b695b..5dd4d88 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
@@ -31,6 +31,8 @@
 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.event.logical.shared.ValueChangeEvent;
+import com.google.gwt.event.logical.shared.ValueChangeHandler;
 import com.google.gwt.event.shared.EventBus;
 import com.google.gwt.resources.client.CssResource;
 import com.google.gwt.safehtml.shared.SafeHtmlBuilder;
@@ -157,6 +159,16 @@
             }
         });
         exportEditor = new EntityModelCheckBoxEditor(Align.RIGHT);
+        exportEditor.asCheckBox().addValueChangeHandler(new 
ValueChangeHandler<Boolean>() {
+
+            @Override
+            public void onValueChange(ValueChangeEvent<Boolean> event) {
+                for (NetworkClusterModel networkClusterModel : 
getClustersTableItems()) {
+                    networkClusterModel.setRequired(!event.getValue());
+                    refreshClustersTable();
+                }
+            }
+        });
         isVmNetworkEditor = new EntityModelCheckBoxEditor(Align.RIGHT);
         vlanTagging = new EntityModelCheckBoxEditor(Align.RIGHT);
         hasMtuEditor = new EntityModelCheckBoxEditor(Align.RIGHT);
@@ -211,10 +223,10 @@
     }
 
     @SuppressWarnings("unchecked")
-    Iterable<EntityModel> getClustersTableItems() {
+    Iterable<NetworkClusterModel> getClustersTableItems() {
         ListModel tableModel = clustersTable.asEditor().flush();
         return tableModel != null && tableModel.getItems() != null ? 
tableModel.getItems()
-                : new ArrayList<EntityModel>();
+                : new ArrayList<NetworkClusterModel>();
     }
 
     void refreshClustersTable() {
@@ -225,8 +237,7 @@
         CheckboxHeader assignAllHeader = new 
CheckboxHeader(templates.textForCheckBoxHeader(constants.attachAll())) {
             @Override
             protected void selectionChanged(Boolean value) {
-                for (EntityModel model : getClustersTableItems()) {
-                    NetworkClusterModel networkClusterModel = 
(NetworkClusterModel) model;
+                for (NetworkClusterModel networkClusterModel : 
getClustersTableItems()) {
                     if (networkClusterModel.getIsChangable()) {
                         networkClusterModel.setAttached(value);
                     }
@@ -236,12 +247,9 @@
 
             @Override
             public Boolean getValue() {
-                for (EntityModel model : getClustersTableItems()) {
-                    NetworkClusterModel networkClusterModel = 
(NetworkClusterModel) model;
-                    if (networkClusterModel.getIsChangable()) {
-                        if (!networkClusterModel.isAttached()) {
-                            return false;
-                        }
+                for (NetworkClusterModel networkClusterModel : 
getClustersTableItems()) {
+                    if (networkClusterModel.getIsChangable() && 
!networkClusterModel.isAttached()) {
+                        return false;
                     }
                 }
                 return true;
@@ -249,13 +257,38 @@
 
             @Override
             public boolean isEnabled() {
-                for (EntityModel model : getClustersTableItems()) {
-                    NetworkClusterModel networkClusterModel = 
(NetworkClusterModel) model;
+                for (NetworkClusterModel networkClusterModel : 
getClustersTableItems()) {
                     if (networkClusterModel.getIsChangable()) {
                         return true;
                     }
                 }
                 return false;
+            }
+        };
+        CheckboxHeader requiredAllHeader = new 
CheckboxHeader(templates.textForCheckBoxHeader(constants.requiredAll())) {
+            @Override
+            protected void selectionChanged(Boolean value) {
+                for (NetworkClusterModel networkClusterModel : 
getClustersTableItems()) {
+                    if (networkClusterModel.getIsChangable()) {
+                        networkClusterModel.setRequired(value);
+                    }
+                }
+                refreshClustersTable();
+            }
+
+            @Override
+            public Boolean getValue() {
+                for (NetworkClusterModel networkClusterModel : 
getClustersTableItems()) {
+                    if (networkClusterModel.getIsChangable() && 
!networkClusterModel.isRequired()) {
+                        return false;
+                    }
+                }
+                return true;
+            }
+
+            @Override
+            public boolean isEnabled() {
+                return isRequiredChangeable();
             }
         };
 
@@ -291,6 +324,35 @@
             }
 
         }, assignAllHeader, "80px"); //$NON-NLS-1$
+        clustersTable.addColumn(new CheckboxColumn<EntityModel>(new 
FieldUpdater<EntityModel, Boolean>() {
+            @Override
+            public void update(int index, EntityModel model, Boolean value) {
+                NetworkClusterModel networkClusterModel = 
(NetworkClusterModel) model;
+                networkClusterModel.setRequired(value);
+                refreshClustersTable();
+            }
+        }) {
+            @Override
+            public Boolean getValue(EntityModel model) {
+                return ((NetworkClusterModel) model).isRequired();
+            }
+
+            @Override
+            protected boolean canEdit(EntityModel model) {
+                return isRequiredChangeable();
+            }
+
+            @Override
+            public void render(Context context, EntityModel object, 
SafeHtmlBuilder sb) {
+                super.render(context, object, sb);
+                sb.append(templates.textForCheckBox(constants.required()));
+            }
+
+        }, requiredAllHeader, "80px"); //$NON-NLS-1$
+    }
+
+    private boolean isRequiredChangeable() {
+        return !exportEditor.asCheckBox().getValue();
     }
 
     @Override


-- 
To view, visit http://gerrit.ovirt.org/17398
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Id6de5dc8583d15ab5ec82df6aac07d5954418056
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