Lior Vernia has uploaded a new change for review.

Change subject: webadmin: Disable external networks in Setup Networks
......................................................................

webadmin: Disable external networks in Setup Networks

Changed the appearance of external networks in Setup Host Networks to
look disabled and not be draggable, as they truly shouldn't be
statically assigned to the host's interfaces.

Change-Id: I556ec7a330236dbdb204b82b2ff67f86ed4dbea8
Bug-Url: https://bugzilla.redhat.com/990612
Signed-off-by: Lior Vernia <[email protected]>
---
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/network/NetworkOperationFactory.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/view/popup/host/HostSetupNetworksPopupView.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/HostSetupNetworksPopupView.ui.xml
A 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/panels/ExternalNetworkPanel.java
A 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/panels/ExternalNetworksPanel.java
A 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/panels/InternalNetworkPanel.java
A 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/panels/InternalNetworksPanel.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/panels/NetworkGroup.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/panels/NetworkPanel.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/panels/NetworkPanelsStyle.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/panels/UnassignedNetworksPanel.java
12 files changed, 235 insertions(+), 88 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/95/19695/1

diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/network/NetworkOperationFactory.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/network/NetworkOperationFactory.java
index e4c7164..00f019f 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/network/NetworkOperationFactory.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/network/NetworkOperationFactory.java
@@ -41,7 +41,13 @@
      * @return
      */
     public static NetworkOperation operationFor(NetworkItemModel<?> op1, 
NetworkItemModel<?> op2, boolean isDrag) {
-        // !! always check bond before nic because of inheritance !!
+        // first of all, if the network is external then there's no valid 
operation for it
+        if (op1 instanceof LogicalNetworkModel) {
+            LogicalNetworkModel network = (LogicalNetworkModel) op1;
+            if (network.getEntity().isExternal()) {
+                return NetworkOperation.NULL_OPERATION;
+            }
+        }
 
         // unary operation dragging op1 to nowhere
         if (op2 == null) {
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 3695317..11a58e1 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
@@ -2574,6 +2574,9 @@
     @DefaultStringValue("No Valid Action")
     String noValidActionSetupNetwork();
 
+    @DefaultStringValue("External networks can't be attached statically; they 
will be attached dynamically as they are needed by VMs.")
+    String externalNetworksInfo();
+
     @DefaultStringValue("Check this checkbox to ensure you won't lose 
connectivity to the engine.")
     String checkConnectivityInfoPart1();
 
@@ -2626,6 +2629,9 @@
     @DefaultStringValue("Unassigned Logical Networks")
     String unassignedLogicalNetworks();
 
+    @DefaultStringValue("External Logical Networks")
+    String externalLogicalNetworks();
+
     // Brick
     @DefaultStringValue("Status")
     String statusBrick();
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/HostSetupNetworksPopupView.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/HostSetupNetworksPopupView.java
index 6290a26..8722dc6 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/HostSetupNetworksPopupView.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/HostSetupNetworksPopupView.java
@@ -23,10 +23,13 @@
 import org.ovirt.engine.ui.webadmin.ApplicationTemplates;
 import org.ovirt.engine.ui.webadmin.gin.ClientGinjectorProvider;
 import 
org.ovirt.engine.ui.webadmin.section.main.presenter.popup.host.HostSetupNetworksPopupPresenterWidget;
+import 
org.ovirt.engine.ui.webadmin.section.main.view.popup.host.panels.ExternalNetworkPanel;
+import 
org.ovirt.engine.ui.webadmin.section.main.view.popup.host.panels.ExternalNetworksPanel;
 import 
org.ovirt.engine.ui.webadmin.section.main.view.popup.host.panels.NetworkGroup;
 import 
org.ovirt.engine.ui.webadmin.section.main.view.popup.host.panels.NetworkPanel;
+import 
org.ovirt.engine.ui.webadmin.section.main.view.popup.host.panels.InternalNetworkPanel;
 import 
org.ovirt.engine.ui.webadmin.section.main.view.popup.host.panels.NetworkPanelsStyle;
-import 
org.ovirt.engine.ui.webadmin.section.main.view.popup.host.panels.UnassignedNetworksPanel;
+import 
org.ovirt.engine.ui.webadmin.section.main.view.popup.host.panels.InternalNetworksPanel;
 import org.ovirt.engine.ui.webadmin.widget.editor.AnimatedVerticalPanel;
 import org.ovirt.engine.ui.webadmin.widget.footer.StatusLabel;
 
@@ -50,8 +53,14 @@
     private static ApplicationConstants constants = 
ClientGinjectorProvider.getApplicationConstants();
     private static final String EMPTY_STATUS = 
constants.dragToMakeChangesSetupNetwork();
 
+    @UiField
+    InternalNetworksPanel internalNetworkList;
+
+    @UiField
+    ExternalNetworksPanel externalNetworkList;
+
     @UiField(provided = true)
-    UnassignedNetworksPanel networkList;
+    InfoIcon externalNetworksInfo;
 
     @UiField
     AnimatedVerticalPanel nicList;
@@ -90,7 +99,7 @@
         status = new StatusLabel(EMPTY_STATUS);
         checkConnectivity = new EntityModelCheckBoxEditor(Align.RIGHT);
         commitChanges = new EntityModelCheckBoxEditor(Align.RIGHT);
-        networkList = new UnassignedNetworksPanel();
+        externalNetworksInfo = new 
InfoIcon(templates.italicText(constants.externalNetworksInfo()), resources);
         checkConnInfo = new 
InfoIcon(templates.italicTwoLines(constants.checkConnectivityInfoPart1(), 
constants.checkConnectivityInfoPart2()), resources);
         commitChangesInfo = new 
InfoIcon(templates.italicTwoLines(constants.commitChangesInfoPart1(), 
constants.commitChangesInfoPart2()), resources);
         initWidget(ViewUiBinder.uiBinder.createAndBindUi(this));
@@ -103,8 +112,8 @@
     }
 
     private void initUnassignedNetworksPanel() {
-        networkList.setStyle(style);
-        networkList.setSpacing(10);
+        internalNetworkList.setStyle(style);
+        externalNetworkList.setStyle(style);
     }
 
     private void localize(){
@@ -155,7 +164,8 @@
             }
         });
 
-        networkList.setSetupModel(uicommonModel);
+        internalNetworkList.setSetupModel(uicommonModel);
+        externalNetworkList.setSetupModel(uicommonModel);
     }
 
     @Override
@@ -164,15 +174,20 @@
     }
 
     private void updateNetworks(List<LogicalNetworkModel> allNetworks) {
-        networkList.clear();
+        internalNetworkList.clear();
+        externalNetworkList.clear();
         Collections.sort(allNetworks);
-        List<NetworkPanel> panels = new ArrayList<NetworkPanel>();
+        List<NetworkPanel> staticNetworkPanels = new ArrayList<NetworkPanel>();
+        List<NetworkPanel> dynamicNetworkPanels = new 
ArrayList<NetworkPanel>();
         for (LogicalNetworkModel network : allNetworks) {
-            if (!network.isAttached()) {
-                panels.add(new NetworkPanel(network, style));
+            if (network.getEntity().isExternal()) {
+                dynamicNetworkPanels.add(new ExternalNetworkPanel(network, 
style));
+            } else if (!network.isAttached()) {
+                staticNetworkPanels.add(new InternalNetworkPanel(network, 
style));
             }
         }
-        networkList.addAll(panels, !rendered);
+        internalNetworkList.addAll(staticNetworkPanels, !rendered);
+        externalNetworkList.addAll(dynamicNetworkPanels, !rendered);
     }
 
     private void updateNics(List<NetworkInterfaceModel> nics) {
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/HostSetupNetworksPopupView.ui.xml
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/HostSetupNetworksPopupView.ui.xml
index 054aeab..e19fe0e 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/HostSetupNetworksPopupView.ui.xml
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/HostSetupNetworksPopupView.ui.xml
@@ -14,6 +14,22 @@
                        margin-bottom: 5px;
                }
 
+               .externaltitle {
+                       font-size: small;
+                       display: inline;
+               }
+
+               .externalNetworksPanel {
+                       text-align: center;
+                       margin-bottom: 5px;
+                       margin-top: 30px;
+               }
+
+               .externalNetworksInfo {
+                       display: inline;
+                       margin-left: 2px;
+               }
+
                .assignedtitle {
                        font-size: small;
                        text-align: center;
@@ -68,6 +84,12 @@
                .networkPanel:HOVER {
                        background-color: #F6F6F6;
                        box-shadow: 1px 1px 1px 1px rgba(33, 33, 33, 0.3);
+               }
+
+               .disabledNetworkPanel {
+                       background-color: #E3E3E3;
+                       border-color: #C5C5C5;
+                       height: 36px;
                }
 
                .mgmtNetwork {
@@ -209,12 +231,17 @@
                                                </g:HTMLPanel>
                                        </g:Cell>
                                        <g:Cell width="30%" height="100%">
-                                               <g:VerticalPanel width="100%" 
horizontalAlignment="ALIGN_LEFT">
-                                                       <g:Label 
text="{constants.unassignedLogicalNetworks}" 
styleName="{style.unassignedtitle}" />
-                                                       <g:ScrollPanel 
height="370px">
-                                                               
<p:UnassignedNetworksPanel ui:field="networkList"/>
-                                                       </g:ScrollPanel>
-                                               </g:VerticalPanel>
+                                               <g:ScrollPanel height="370px">
+                                                       <g:VerticalPanel 
width="100%" horizontalAlignment="ALIGN_LEFT">
+                                                               <g:Label 
text="{constants.unassignedLogicalNetworks}" 
styleName="{style.unassignedtitle}" />
+                                                               
<p:InternalNetworksPanel ui:field="internalNetworkList" />
+                                                               <g:FlowPanel 
styleName="{style.externalNetworksPanel}" >
+                                                                       
<g:Label text="{constants.externalLogicalNetworks}" 
styleName="{style.externaltitle}" />
+                                                                       
<d:InfoIcon ui:field="externalNetworksInfo" 
styleName="{style.externalNetworksInfo}" />
+                                                               </g:FlowPanel>
+                                                               
<p:ExternalNetworksPanel ui:field="externalNetworkList"/>
+                                                       </g:VerticalPanel>
+                                               </g:ScrollPanel>
                                        </g:Cell>
                                </g:HorizontalPanel>
                                <g:VerticalPanel 
styleName="{style.checkBoxesPanel}" >
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/panels/ExternalNetworkPanel.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/panels/ExternalNetworkPanel.java
new file mode 100644
index 0000000..c13b965
--- /dev/null
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/panels/ExternalNetworkPanel.java
@@ -0,0 +1,19 @@
+package org.ovirt.engine.ui.webadmin.section.main.view.popup.host.panels;
+
+import 
org.ovirt.engine.ui.uicommonweb.models.hosts.network.LogicalNetworkModel;
+
+import com.google.gwt.resources.client.ImageResource;
+
+public class ExternalNetworkPanel extends NetworkPanel {
+
+    public ExternalNetworkPanel(LogicalNetworkModel item, NetworkPanelsStyle 
style) {
+        super(item, style, false);
+        getElement().addClassName(style.disabledNetworkPanel());
+    }
+
+    @Override
+    protected ImageResource getStatusImage() {
+        return resources.openstackImage();
+    }
+
+}
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/panels/ExternalNetworksPanel.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/panels/ExternalNetworksPanel.java
new file mode 100644
index 0000000..a2d231f
--- /dev/null
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/panels/ExternalNetworksPanel.java
@@ -0,0 +1,32 @@
+package org.ovirt.engine.ui.webadmin.section.main.view.popup.host.panels;
+
+import java.util.Collections;
+import java.util.List;
+
+import com.google.gwt.user.client.ui.VerticalPanel;
+
+public class ExternalNetworksPanel extends UnassignedNetworksPanel {
+
+    private VerticalPanel externalNetworksPanel = new VerticalPanel();
+
+    @Override
+    public void setStyle(NetworkPanelsStyle style) {
+        super.setStyle(style);
+        stylePanel(externalNetworksPanel);
+    }
+
+    @Override
+    public void addAll(List<NetworkPanel> list, boolean fadeIn) {
+        for (NetworkPanel networkPanel : list) {
+            externalNetworksPanel.add(networkPanel);
+        }
+        animatedPanel.addAll(Collections.singletonList(externalNetworksPanel), 
fadeIn);
+    }
+
+    @Override
+    public void clear() {
+        super.clear();
+        externalNetworksPanel.clear();
+    }
+
+}
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/panels/InternalNetworkPanel.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/panels/InternalNetworkPanel.java
new file mode 100644
index 0000000..f4892a3
--- /dev/null
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/panels/InternalNetworkPanel.java
@@ -0,0 +1,27 @@
+package org.ovirt.engine.ui.webadmin.section.main.view.popup.host.panels;
+
+import org.ovirt.engine.core.common.businessentities.network.NetworkStatus;
+import 
org.ovirt.engine.ui.uicommonweb.models.hosts.network.LogicalNetworkModel;
+import com.google.gwt.resources.client.ImageResource;
+
+public class InternalNetworkPanel extends NetworkPanel {
+
+    public InternalNetworkPanel(LogicalNetworkModel item, NetworkPanelsStyle 
style) {
+        super(item, style, true);
+        getElement().addClassName(style.networkPanel());
+    }
+
+    @Override
+    protected ImageResource getStatusImage() {
+        NetworkStatus netStatus = ((LogicalNetworkModel) item).getStatus();
+
+        if (netStatus == NetworkStatus.OPERATIONAL) {
+            return resources.upImage();
+        } else if (netStatus == NetworkStatus.NON_OPERATIONAL) {
+            return resources.downImage();
+        } else {
+            return resources.questionMarkImage();
+        }
+    }
+
+}
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/panels/InternalNetworksPanel.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/panels/InternalNetworksPanel.java
new file mode 100644
index 0000000..17df96a
--- /dev/null
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/panels/InternalNetworksPanel.java
@@ -0,0 +1,66 @@
+package org.ovirt.engine.ui.webadmin.section.main.view.popup.host.panels;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import 
org.ovirt.engine.ui.uicommonweb.models.hosts.network.LogicalNetworkModel;
+
+import com.google.gwt.user.client.ui.Label;
+import com.google.gwt.user.client.ui.SimplePanel;
+import com.google.gwt.user.client.ui.VerticalPanel;
+
+public class InternalNetworksPanel extends UnassignedNetworksPanel {
+
+    private VerticalPanel requiredPanel = new VerticalPanel();
+    private VerticalPanel nonRequiredPanel = new VerticalPanel();
+    private final List<VerticalPanel> unassignNetworksList = new 
ArrayList<VerticalPanel>();
+
+    public InternalNetworksPanel() {
+        unassignNetworksList.add(requiredPanel);
+        unassignNetworksList.add(nonRequiredPanel);
+    }
+
+    @Override
+    public void setStyle(final NetworkPanelsStyle style) {
+        super.setStyle(style);
+        stylePanel(requiredPanel, constants.requiredNetwork());
+        stylePanel(nonRequiredPanel, constants.nonRequiredNetwork());
+    }
+
+    private void stylePanel(VerticalPanel panel, String title) {
+        Label label = new Label(title);
+        SimplePanel titlePanel = new SimplePanel(new Label(title));
+
+        titlePanel.setStyleName(style.requiredTitlePanel());
+        label.getElement().addClassName(style.requiredLabel());
+
+        panel.add(titlePanel);
+
+        super.stylePanel(panel);
+    }
+
+    @Override
+    public void addAll(List<NetworkPanel> list, boolean fadeIn) {
+        for (NetworkPanel networkPanel : list) {
+            LogicalNetworkModel networkModel = (LogicalNetworkModel) 
networkPanel.getItem();
+            boolean isRequired =
+                    networkModel.getEntity().getCluster() == null ? false : 
networkModel.getEntity()
+                            .getCluster()
+                            .isRequired();
+            if (isRequired) {
+                requiredPanel.add(networkPanel);
+            } else {
+                nonRequiredPanel.add(networkPanel);
+            }
+        }
+        animatedPanel.addAll(unassignNetworksList, fadeIn);
+    }
+
+    @Override
+    public void clear() {
+        super.clear();
+        requiredPanel.clear();
+        nonRequiredPanel.clear();
+    }
+
+}
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/panels/NetworkGroup.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/panels/NetworkGroup.java
index 28c32a0..083806e 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/panels/NetworkGroup.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/panels/NetworkGroup.java
@@ -77,7 +77,7 @@
             flexCellFormatter.setRowSpan(0, 0, networkSize);
             FlexTable networkTable = new FlexTable();
             for (int i = 0; i < networkSize; i++) {
-                networkTable.setWidget(i, 0, new NetworkPanel(networks.get(i), 
style));
+                networkTable.setWidget(i, 0, new 
InternalNetworkPanel(networks.get(i), style));
             }
             networkTable.setWidth("100%"); //$NON-NLS-1$
             table.setWidget(0, 2, networkTable);
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/panels/NetworkPanel.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/panels/NetworkPanel.java
index 2a61105..d49eb16 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/panels/NetworkPanel.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/panels/NetworkPanel.java
@@ -1,6 +1,5 @@
 package org.ovirt.engine.ui.webadmin.section.main.view.popup.host.panels;
 
-import org.ovirt.engine.core.common.businessentities.network.NetworkStatus;
 import 
org.ovirt.engine.ui.uicommonweb.models.hosts.network.LogicalNetworkModel;
 import org.ovirt.engine.ui.uicommonweb.models.hosts.network.NetworkCommand;
 import org.ovirt.engine.ui.uicommonweb.models.hosts.network.NetworkOperation;
@@ -8,17 +7,16 @@
 
 import com.google.gwt.resources.client.ImageResource;
 import com.google.gwt.user.client.ui.Grid;
-import com.google.gwt.user.client.ui.HTMLTable.ColumnFormatter;
 import com.google.gwt.user.client.ui.Image;
 import com.google.gwt.user.client.ui.Label;
 import com.google.gwt.user.client.ui.Widget;
+import com.google.gwt.user.client.ui.HTMLTable.ColumnFormatter;
 
-public class NetworkPanel extends NetworkItemPanel {
+public abstract class NetworkPanel extends NetworkItemPanel {
 
-    public NetworkPanel(LogicalNetworkModel item, NetworkPanelsStyle style) {
-        super(item, style, true);
+    public NetworkPanel(LogicalNetworkModel item, NetworkPanelsStyle style, 
Boolean draggable) {
+        super(item, style, draggable);
         actionButton.setStyleName(style.actionButtonNetwork());
-        getElement().addClassName(style.networkPanel());
         if (item.isManagement()) {
             getElement().addClassName(style.mgmtNetwork());
         }
@@ -103,17 +101,7 @@
         return rowPanel;
     }
 
-    protected ImageResource getStatusImage() {
-        NetworkStatus netStatus = ((LogicalNetworkModel) item).getStatus();
-
-        if (netStatus == NetworkStatus.OPERATIONAL) {
-            return resources.upImage();
-        } else if (netStatus == NetworkStatus.NON_OPERATIONAL) {
-            return resources.downImage();
-        } else {
-            return resources.questionMarkImage();
-        }
-    }
+    protected abstract ImageResource getStatusImage();
 
     private String getItemTitle() {
         LogicalNetworkModel networkModel = (LogicalNetworkModel) item;
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/panels/NetworkPanelsStyle.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/panels/NetworkPanelsStyle.java
index 244ac63..7c05c03 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/panels/NetworkPanelsStyle.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/panels/NetworkPanelsStyle.java
@@ -25,6 +25,8 @@
 
     String networkPanel();
 
+    String disabledNetworkPanel();
+
     String nicPanel();
 
     String statusPanel();
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/panels/UnassignedNetworksPanel.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/panels/UnassignedNetworksPanel.java
index d6e451f..55a7cb6 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/panels/UnassignedNetworksPanel.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/panels/UnassignedNetworksPanel.java
@@ -1,10 +1,8 @@
 package org.ovirt.engine.ui.webadmin.section.main.view.popup.host.panels;
 
-import java.util.ArrayList;
 import java.util.List;
 
 import org.ovirt.engine.ui.uicommonweb.models.hosts.HostSetupNetworksModel;
-import 
org.ovirt.engine.ui.uicommonweb.models.hosts.network.LogicalNetworkModel;
 import org.ovirt.engine.ui.webadmin.ApplicationConstants;
 import org.ovirt.engine.ui.webadmin.gin.ClientGinjectorProvider;
 import org.ovirt.engine.ui.webadmin.widget.editor.AnimatedVerticalPanel;
@@ -20,28 +18,17 @@
 import com.google.gwt.event.dom.client.DropEvent;
 import com.google.gwt.event.dom.client.DropHandler;
 import com.google.gwt.user.client.ui.FocusPanel;
-import com.google.gwt.user.client.ui.Label;
-import com.google.gwt.user.client.ui.SimplePanel;
 import com.google.gwt.user.client.ui.VerticalPanel;
 
-public class UnassignedNetworksPanel extends FocusPanel {
+public abstract class UnassignedNetworksPanel extends FocusPanel {
 
-    private final ApplicationConstants constants = 
ClientGinjectorProvider.getApplicationConstants();
-    private final AnimatedVerticalPanel animatedPanel = new 
AnimatedVerticalPanel();
+    protected final ApplicationConstants constants = 
ClientGinjectorProvider.getApplicationConstants();
+    protected final AnimatedVerticalPanel animatedPanel = new 
AnimatedVerticalPanel();
 
-    private final VerticalPanel requiredPanel = new VerticalPanel();
-    private final VerticalPanel nonRequiredPanel = new VerticalPanel();
-    private final List<VerticalPanel> unassignNetworksList = new 
ArrayList<VerticalPanel>();
-    private final Label requiredLabel = new Label(constants.requiredNetwork());
-    private final Label nonRequiredLabel = new 
Label(constants.nonRequiredNetwork());
-    private final SimplePanel requiredTitlePanel = new 
SimplePanel(requiredLabel);
-    private final SimplePanel nonRequiredTitlePanel = new 
SimplePanel(nonRequiredLabel);
-
-    private NetworkPanelsStyle style;
+    protected NetworkPanelsStyle style;
     private HostSetupNetworksModel setupModel;
 
     public UnassignedNetworksPanel() {
-        super();
         getElement().setDraggable(Element.DRAGGABLE_FALSE);
 
         // drag enter
@@ -81,54 +68,25 @@
             }
         }, DropEvent.getType());
 
-        unassignNetworksList.add(requiredPanel);
-        unassignNetworksList.add(nonRequiredPanel);
-
         setWidget(animatedPanel);
     }
 
     public void setStyle(final NetworkPanelsStyle style) {
         this.style = style;
+        setSpacing(10);
         
animatedPanel.getElement().addClassName(style.unassignedNetworksPanel());
-
-        // Style required/non-required titles
-        requiredTitlePanel.setStyleName(style.requiredTitlePanel());
-        nonRequiredTitlePanel.setStyleName(style.requiredTitlePanel());
-
-        requiredLabel.getElement().addClassName(style.requiredLabel());
-        nonRequiredLabel.getElement().addClassName(style.requiredLabel());
-
-        // Style required/non-required network list panels
-        requiredPanel.setSpacing(2);
-        requiredPanel.setWidth("100%"); //$NON-NLS-1$
-
-        nonRequiredPanel.setSpacing(2);
-        nonRequiredPanel.setWidth("100%"); //$NON-NLS-1$
     }
 
-    public void addAll(List<NetworkPanel> list, boolean fadeIn) {
-        requiredPanel.add(requiredTitlePanel);
-        nonRequiredPanel.add(nonRequiredTitlePanel);
-        for (NetworkPanel networkPanel : list) {
-            LogicalNetworkModel networkModel = (LogicalNetworkModel) 
networkPanel.getItem();
-            boolean isRequired =
-                    networkModel.getEntity().getCluster() == null ? false : 
networkModel.getEntity()
-                            .getCluster()
-                            .isRequired();
-            if (isRequired) {
-                requiredPanel.add(networkPanel);
-            } else {
-                nonRequiredPanel.add(networkPanel);
-            }
-        }
-        animatedPanel.addAll(unassignNetworksList, fadeIn);
+    protected void stylePanel(VerticalPanel panel) {
+        panel.setSpacing(2);
+        panel.setWidth("100%"); //$NON-NLS-1$
     }
+
+    public abstract void addAll(List<NetworkPanel> list, boolean fadeIn);
 
     @Override
     public void clear() {
         animatedPanel.clear();
-        requiredPanel.clear();
-        nonRequiredPanel.clear();
     }
 
     public void setSpacing(int spacing) {
@@ -151,4 +109,5 @@
     public void setSetupModel(HostSetupNetworksModel setupModel) {
         this.setupModel = setupModel;
     }
+
 }


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I556ec7a330236dbdb204b82b2ff67f86ed4dbea8
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Lior Vernia <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to