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