Alona Kaplan has uploaded a new change for review.

Change subject: webadmin: Add filters to NetworkVm sub tab- running, not 
running.
......................................................................

webadmin: Add filters to NetworkVm sub tab- running, not running.

In this patch a radio button group is added to filter the vms.
- running- all the running vm's the network is attached to one of their
           vnics.
- not running- all the not running vm's the networks is attached to one of
               their vnics.

Change-Id: Icb728293bfa1b6d8b50933ffc971de30ce2a5af9
Signed-off-by: Alona Kaplan <[email protected]>
---
A 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/networks/NetworkVmFilter.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/networks/NetworkVmListModel.java
M 
frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/Constants.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/network/SubTabNetworkVmView.java
4 files changed, 182 insertions(+), 77 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/67/10367/1

diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/networks/NetworkVmFilter.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/networks/NetworkVmFilter.java
new file mode 100644
index 0000000..5740767
--- /dev/null
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/networks/NetworkVmFilter.java
@@ -0,0 +1,25 @@
+package org.ovirt.engine.ui.uicommonweb.models.networks;
+
+import org.ovirt.engine.ui.uicommonweb.ViewFilter;
+import org.ovirt.engine.ui.uicompat.ConstantsManager;
+
+public enum NetworkVmFilter implements ViewFilter<NetworkVmFilter> {
+    running(ConstantsManager.getInstance().getConstants().runningVm()),
+    notRunning(ConstantsManager.getInstance().getConstants().notRunningVm());
+
+    private String text;
+
+    NetworkVmFilter(String text) {
+        this.text = text;
+    }
+
+    @Override
+    public String getText() {
+        return text;
+    }
+
+    @Override
+    public NetworkVmFilter getValue() {
+        return this;
+    }
+}
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/networks/NetworkVmListModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/networks/NetworkVmListModel.java
index 4428b79..f714165 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/networks/NetworkVmListModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/networks/NetworkVmListModel.java
@@ -29,6 +29,7 @@
 public class NetworkVmListModel extends SearchableListModel
 {
     private UICommand removeCommand;
+    private NetworkVmFilter viewFilterType;
 
     public NetworkVmListModel() {
         
setTitle(ConstantsManager.getInstance().getConstants().virtualMachinesTitle());
@@ -37,6 +38,15 @@
         setRemoveCommand(new UICommand("Remove", this)); //$NON-NLS-1$
 
         updateActionAvailability();
+    }
+
+    public NetworkVmFilter getViewFilterType() {
+        return viewFilterType;
+    }
+
+    public void setViewFilterType(NetworkVmFilter viewFilterType) {
+        this.viewFilterType = viewFilterType;
+        Search();
     }
 
     @Override
@@ -93,20 +103,24 @@
         }
 
         AsyncQuery asyncQuery = new AsyncQuery();
-        asyncQuery.setModel(this);
+        asyncQuery.setModel(getViewFilterType());
         asyncQuery.asyncCallback = new INewAsyncCallback() {
             @Override
             public void OnSuccess(Object model, Object ReturnValue)
             {
-                
NetworkVmListModel.this.setItems((List<PairQueryable<VmNetworkInterface, VM>>) 
((VdcQueryReturnValue) ReturnValue).getReturnValue());
+                if (model.equals(getViewFilterType())) {
+                    
NetworkVmListModel.this.setItems((List<PairQueryable<VmNetworkInterface, VM>>) 
((VdcQueryReturnValue) ReturnValue).getReturnValue());
+                }
             }
         };
 
         GetVmsAndNetworkInterfacesByNetworkIdParameters params =
-                new 
GetVmsAndNetworkInterfacesByNetworkIdParameters(getEntity().getId());
+                new 
GetVmsAndNetworkInterfacesByNetworkIdParameters(getEntity().getId(),
+                        NetworkVmFilter.running.equals(getViewFilterType()));
         params.setRefresh(getIsQueryFirstTime());
-
-        Frontend.RunQuery(VdcQueryType.GetVmsAndNetworkInterfacesByNetworkId, 
params, asyncQuery);
+        Frontend.RunQuery(VdcQueryType.GetVmsAndNetworkInterfacesByNetworkId,
+                params,
+                asyncQuery);
     }
 
     @Override
diff --git 
a/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/Constants.java
 
b/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/Constants.java
index 5e7c106..9004289 100644
--- 
a/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/Constants.java
+++ 
b/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/Constants.java
@@ -1630,6 +1630,13 @@
     @DefaultStringValue("Unattached")
     String unattachedHost();
 
+    // Network - Vm
+    @DefaultStringValue("Running")
+    String runningVm();
+
+    @DefaultStringValue("Not running")
+    String notRunningVm();
+
     // Network
     @DefaultStringValue("VM")
     String vmNetworkRole();
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/network/SubTabNetworkVmView.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/network/SubTabNetworkVmView.java
index 57e42e9..a1af8da 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/network/SubTabNetworkVmView.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/network/SubTabNetworkVmView.java
@@ -1,5 +1,7 @@
 package org.ovirt.engine.ui.webadmin.section.main.view.tab.network;
 
+import java.util.Arrays;
+
 import javax.inject.Inject;
 
 import org.ovirt.engine.core.common.businessentities.NetworkView;
@@ -8,11 +10,13 @@
 import org.ovirt.engine.core.common.utils.PairQueryable;
 import org.ovirt.engine.ui.common.idhandler.ElementIdHandler;
 import org.ovirt.engine.ui.common.uicommon.model.SearchableDetailModelProvider;
+import org.ovirt.engine.ui.common.view.ViewRadioGroup;
 import org.ovirt.engine.ui.common.widget.table.column.NicActivateStatusColumn;
 import org.ovirt.engine.ui.common.widget.table.column.RxTxRateColumn;
 import org.ovirt.engine.ui.common.widget.table.column.TextColumnWithTooltip;
 import org.ovirt.engine.ui.uicommonweb.UICommand;
 import org.ovirt.engine.ui.uicommonweb.models.networks.NetworkListModel;
+import org.ovirt.engine.ui.uicommonweb.models.networks.NetworkVmFilter;
 import org.ovirt.engine.ui.uicommonweb.models.networks.NetworkVmListModel;
 import org.ovirt.engine.ui.webadmin.ApplicationConstants;
 import org.ovirt.engine.ui.webadmin.ApplicationTemplates;
@@ -22,6 +26,9 @@
 import org.ovirt.engine.ui.webadmin.widget.table.column.VmStatusColumn;
 
 import com.google.gwt.core.client.GWT;
+import com.google.gwt.event.dom.client.ClickEvent;
+import com.google.gwt.event.dom.client.ClickHandler;
+import com.google.gwt.user.client.ui.RadioButton;
 
 public class SubTabNetworkVmView extends AbstractSubTabTableView<NetworkView, 
PairQueryable<VmNetworkInterface, VM>, NetworkListModel, NetworkVmListModel>
         implements SubTabNetworkVmPresenter.ViewDef {
@@ -30,92 +37,144 @@
         ViewIdHandler idHandler = GWT.create(ViewIdHandler.class);
     }
 
+    private final ApplicationConstants constants;
+    private final ApplicationTemplates templates;
+    private final ViewRadioGroup<NetworkVmFilter> viewRadioGroup;
+
     @Inject
     public 
SubTabNetworkVmView(SearchableDetailModelProvider<PairQueryable<VmNetworkInterface,
 VM>, NetworkListModel, NetworkVmListModel> modelProvider, ApplicationConstants 
constants, ApplicationTemplates templates) {
         super(modelProvider);
         ViewIdHandler.idHandler.generateAndSetIds(this);
-        initTable(constants, templates);
+        this.constants = constants;
+        this.templates = templates;
+        viewRadioGroup = new 
ViewRadioGroup<NetworkVmFilter>(Arrays.asList(NetworkVmFilter.values()));
+        viewRadioGroup.setSelectedValue(NetworkVmFilter.running);
+        initTable();
         initWidget(getTable());
     }
 
-    void initTable(final ApplicationConstants constants, final 
ApplicationTemplates templates) {
-        getTable().addColumn(new 
VmStatusColumn<PairQueryable<VmNetworkInterface, VM>>(), constants.empty(), 
"30px"); //$NON-NLS-1$
-
-        TextColumnWithTooltip<PairQueryable<VmNetworkInterface, VM>> 
nameColumn = new TextColumnWithTooltip<PairQueryable<VmNetworkInterface, VM>>() 
{
+    private void initTableOverhead() {
+        viewRadioGroup.addClickHandler(new ClickHandler() {
             @Override
-            public String getValue(PairQueryable<VmNetworkInterface, VM> 
object) {
-                return object.getSecond().getVmName();
-            }
-        };
-        getTable().addColumn(nameColumn, constants.nameVm(), "120px"); 
//$NON-NLS-1$
-
-        TextColumnWithTooltip<PairQueryable<VmNetworkInterface, VM>> 
clusterColumn = new TextColumnWithTooltip<PairQueryable<VmNetworkInterface, 
VM>>() {
-            @Override
-            public String getValue(PairQueryable<VmNetworkInterface, VM> 
object) {
-                return object.getSecond().getVdsGroupName();
-            }
-        };
-        getTable().addColumn(clusterColumn, constants.clusterVm(), "120px"); 
//$NON-NLS-1$
-
-        TextColumnWithTooltip<PairQueryable<VmNetworkInterface, VM>> ipColumn 
= new TextColumnWithTooltip<PairQueryable<VmNetworkInterface, VM>>() {
-            @Override
-            public String getValue(PairQueryable<VmNetworkInterface, VM> 
object) {
-                return object.getSecond().getVmIp();
-            }
-        };
-        getTable().addColumn(ipColumn, constants.ipVm());
-
-        getTable().addColumn(new 
NicActivateStatusColumn<PairQueryable<VmNetworkInterface, VM>>(), 
constants.vnicStatusNetworkVM(), "70px"); //$NON-NLS-1$
-
-        TextColumnWithTooltip<PairQueryable<VmNetworkInterface, VM>> 
vnicNameColumn = new TextColumnWithTooltip<PairQueryable<VmNetworkInterface, 
VM>>() {
-            @Override
-            public String getValue(PairQueryable<VmNetworkInterface, VM> 
object) {
-                return object.getFirst().getName();
-            }
-        };
-        getTable().addColumn(vnicNameColumn, constants.vnicNetworkVM());
-
-        TextColumnWithTooltip<PairQueryable<VmNetworkInterface, VM>> rxColumn 
= new RxTxRateColumn<PairQueryable<VmNetworkInterface, VM>>() {
-            @Override
-            protected Double getRate(PairQueryable<VmNetworkInterface, VM> 
object) {
-                return object.getFirst().getStatistics().getReceiveRate();
-            }
-
-            @Override
-            protected Double getSpeed(PairQueryable<VmNetworkInterface, VM> 
object) {
-                if (object.getFirst().getSpeed() != null) {
-                    return object.getFirst().getSpeed().doubleValue();
-                } else {
-                    return null;
+            public void onClick(ClickEvent event) {
+                if (((RadioButton) event.getSource()).getValue()) {
+                    handleRadioButtonClick(event);
                 }
             }
-        };
-        getTable().addColumnWithHtmlHeader(rxColumn, 
templates.sub(constants.rxNetworkVM(), constants.mbps()).asString());
+        });
 
-        TextColumnWithTooltip<PairQueryable<VmNetworkInterface, VM>> txColumn 
= new RxTxRateColumn<PairQueryable<VmNetworkInterface, VM>>() {
-            @Override
-            protected Double getRate(PairQueryable<VmNetworkInterface, VM> 
object) {
-                return object.getFirst().getStatistics().getTransmitRate();
-            }
+        getTable().setTableOverhead(viewRadioGroup);
+        getTable().setTableTopMargin(20);
+    }
 
-            @Override
-            protected Double getSpeed(PairQueryable<VmNetworkInterface, VM> 
object) {
-                if (object.getFirst().getSpeed() != null) {
-                    return object.getFirst().getSpeed().doubleValue();
-                } else {
-                    return null;
+    private void handleRadioButtonClick(ClickEvent event) {
+        
getDetailModel().setViewFilterType((viewRadioGroup.getSelectedValue()));
+
+        boolean running = viewRadioGroup.getSelectedValue() == 
NetworkVmFilter.running;
+
+        getTable().ensureColumnPresent(vmStatusColumn, constants.empty(), 
true, "30px"); //$NON-NLS-1$
+
+        getTable().ensureColumnPresent(nameColumn, constants.nameVm(), true, 
"120px"); //$NON-NLS-1$
+
+        getTable().ensureColumnPresent(clusterColumn, constants.clusterVm(), 
true, "120px"); //$NON-NLS-1$
+
+        getTable().ensureColumnPresent(ipColumn, constants.ipVm(), true);
+
+        getTable().ensureColumnPresent(nicActivateStatusColumn, 
constants.vnicStatusNetworkVM(), true, "70px"); //$NON-NLS-1$
+
+        getTable().ensureColumnPresent(vnicNameColumn, 
constants.vnicNetworkVM(), true);
+
+        getTable().ensureColumnPresent(rxColumn,
+                templates.sub(constants.rxNetworkVM(), 
constants.mbps()).asString(),
+                running);
+
+        getTable().ensureColumnPresent(txColumn,
+                templates.sub(constants.txNetworkVM(), 
constants.mbps()).asString(),
+                running);
+
+        getTable().ensureColumnPresent(descriptionColumn, 
constants.descriptionVm(), true);
+    }
+
+    private final VmStatusColumn<PairQueryable<VmNetworkInterface, VM>> 
vmStatusColumn =
+            new VmStatusColumn<PairQueryable<VmNetworkInterface, VM>>();
+    private final TextColumnWithTooltip<PairQueryable<VmNetworkInterface, VM>> 
nameColumn =
+            new TextColumnWithTooltip<PairQueryable<VmNetworkInterface, VM>>() 
{
+                @Override
+                public String getValue(PairQueryable<VmNetworkInterface, VM> 
object) {
+                    return object.getSecond().getVmName();
                 }
-            }
-        };
-        getTable().addColumnWithHtmlHeader(txColumn, 
templates.sub(constants.txNetworkVM(), constants.mbps()).asString());
+            };
+    private final TextColumnWithTooltip<PairQueryable<VmNetworkInterface, VM>> 
clusterColumn =
+            new TextColumnWithTooltip<PairQueryable<VmNetworkInterface, VM>>() 
{
+                @Override
+                public String getValue(PairQueryable<VmNetworkInterface, VM> 
object) {
+                    return object.getSecond().getVdsGroupName();
+                }
+            };
+    private final TextColumnWithTooltip<PairQueryable<VmNetworkInterface, VM>> 
ipColumn =
+            new TextColumnWithTooltip<PairQueryable<VmNetworkInterface, VM>>() 
{
+                @Override
+                public String getValue(PairQueryable<VmNetworkInterface, VM> 
object) {
+                    return object.getSecond().getVmIp();
+                }
+            };
 
-        TextColumnWithTooltip<PairQueryable<VmNetworkInterface, VM>> 
descriptionColumn = new TextColumnWithTooltip<PairQueryable<VmNetworkInterface, 
VM>>() {
-            @Override
-            public String getValue(PairQueryable<VmNetworkInterface, VM> 
object) {
-                return object.getSecond().getDescription();
-            }
-        };
-        getTable().addColumn(descriptionColumn, constants.descriptionVm());
+    private final NicActivateStatusColumn<PairQueryable<VmNetworkInterface, 
VM>> nicActivateStatusColumn =
+            new NicActivateStatusColumn<PairQueryable<VmNetworkInterface, 
VM>>();
+
+    private final TextColumnWithTooltip<PairQueryable<VmNetworkInterface, VM>> 
vnicNameColumn =
+            new TextColumnWithTooltip<PairQueryable<VmNetworkInterface, VM>>() 
{
+                @Override
+                public String getValue(PairQueryable<VmNetworkInterface, VM> 
object) {
+                    return object.getFirst().getName();
+                }
+            };
+
+    private final TextColumnWithTooltip<PairQueryable<VmNetworkInterface, VM>> 
rxColumn =
+            new RxTxRateColumn<PairQueryable<VmNetworkInterface, VM>>() {
+                @Override
+                protected Double getRate(PairQueryable<VmNetworkInterface, VM> 
object) {
+                    return object.getFirst().getStatistics().getReceiveRate();
+                }
+
+                @Override
+                protected Double getSpeed(PairQueryable<VmNetworkInterface, 
VM> object) {
+                    if (object.getFirst().getSpeed() != null) {
+                        return object.getFirst().getSpeed().doubleValue();
+                    } else {
+                        return null;
+                    }
+                }
+            };
+
+    private final TextColumnWithTooltip<PairQueryable<VmNetworkInterface, VM>> 
txColumn =
+            new RxTxRateColumn<PairQueryable<VmNetworkInterface, VM>>() {
+                @Override
+                protected Double getRate(PairQueryable<VmNetworkInterface, VM> 
object) {
+                    return object.getFirst().getStatistics().getTransmitRate();
+                }
+
+                @Override
+                protected Double getSpeed(PairQueryable<VmNetworkInterface, 
VM> object) {
+                    if (object.getFirst().getSpeed() != null) {
+                        return object.getFirst().getSpeed().doubleValue();
+                    } else {
+                        return null;
+                    }
+                }
+            };
+
+    private final TextColumnWithTooltip<PairQueryable<VmNetworkInterface, VM>> 
descriptionColumn =
+            new TextColumnWithTooltip<PairQueryable<VmNetworkInterface, VM>>() 
{
+                @Override
+                public String getValue(PairQueryable<VmNetworkInterface, VM> 
object) {
+                    return object.getSecond().getDescription();
+                }
+            };
+
+    private void initTable() {
+        initTableOverhead();
+        handleRadioButtonClick(null);
 
         getTable().addActionButton(new 
WebAdminButtonDefinition<PairQueryable<VmNetworkInterface, 
VM>>(constants.removeInterface()) {
             @Override


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

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

Reply via email to