Yevgeny Zaspitsky has uploaded a new change for review. Change subject: webadmin: Add warning to Setup networks dialog ......................................................................
webadmin: Add warning to Setup networks dialog Add warning line to Setup networks dialog adn use it to display the warning on changing displiay network. Change-Id: I35f0e019b6f77ab90fec89f614b49db589602353 Bug-Url: https://bugzilla.redhat.com/1078836 Signed-off-by: Yevgeny Zaspitsky <[email protected]> --- M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/network/NetworkOperation.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 M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/panels/NetworkPanelsStyle.java 4 files changed, 180 insertions(+), 29 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/63/27463/1 diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/network/NetworkOperation.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/network/NetworkOperation.java index 7d510a3..65f08ea 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/network/NetworkOperation.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/network/NetworkOperation.java @@ -65,6 +65,13 @@ }; } + @Override + public boolean isDisplayNetworkToBeChanged(NetworkItemModel<?> op1, NetworkItemModel<?> op2) { + + final BondNetworkInterfaceModel bondNetworkInterfaceModel = (BondNetworkInterfaceModel) op1; + return isDisplayNetworkAttached(bondNetworkInterfaceModel.getItems()); + } + }, DETACH_NETWORK { @@ -92,6 +99,14 @@ detachNetwork(allNics, networkToDetach); } }; + } + + @SuppressWarnings("unchecked") + @Override + public boolean isDisplayNetworkToBeChanged(NetworkItemModel<?> op1, NetworkItemModel<?> op2) { + + final LogicalNetworkModel logicalNetworkModel = (LogicalNetworkModel) op1; + return isDisplayNetworkAttached(logicalNetworkModel.getItems()); } }, @@ -138,6 +153,12 @@ }; } + @Override + public boolean isDisplayNetworkToBeChanged(NetworkItemModel<?> op1, NetworkItemModel<?> op2) { + LogicalNetworkModel networkToBeAttached = (LogicalNetworkModel) op1; + return networkToBeAttached.getEntity().getCluster().isDisplay(); + } + }, BOND_WITH { @@ -175,6 +196,13 @@ nic2.getEntity().setBondName(bondName); } }; + } + + @SuppressWarnings("unchecked") + @Override + public boolean isDisplayNetworkToBeChanged(NetworkItemModel<?> op1, NetworkItemModel<?> op2) { + return isDisplayNetworkAttached(op1.getItems()) || + isDisplayNetworkAttached(op2.getItems()); } }, @@ -217,6 +245,15 @@ }; } + @Override + public boolean isDisplayNetworkToBeChanged(NetworkItemModel<?> op1, NetworkItemModel<?> op2) { + final BondNetworkInterfaceModel bondNetworkInterfaceModel1 = (BondNetworkInterfaceModel) op1; + final BondNetworkInterfaceModel bondNetworkInterfaceModel2 = (BondNetworkInterfaceModel) op2; + + return isDisplayNetworkAttached(bondNetworkInterfaceModel1.getItems()) || + isDisplayNetworkAttached(bondNetworkInterfaceModel2.getItems()); + } + }, ADD_TO_BOND { @@ -254,6 +291,15 @@ }; } + @Override + public boolean isDisplayNetworkToBeChanged(NetworkItemModel<?> op1, NetworkItemModel<?> op2) { + final NetworkInterfaceModel nicToBeAddedToBond = (NetworkInterfaceModel) op1; + final BondNetworkInterfaceModel bondNetworkInterfaceModel = (BondNetworkInterfaceModel) op2; + + return isDisplayNetworkAttached(nicToBeAddedToBond.getItems()) || + isDisplayNetworkAttached(bondNetworkInterfaceModel.getItems()); + } + }, EXTEND_BOND_WITH { @@ -269,9 +315,14 @@ protected void executeNetworkCommand(NetworkItemModel<?> op1, NetworkItemModel<?> op2, List<VdsNetworkInterface> allNics, Object... params) { - NetworkOperation.ADD_TO_BOND.getCommand(op2, op1, allNics).execute(); + ADD_TO_BOND.getCommand(op2, op1, allNics).execute(); } }; + } + + @Override + public boolean isDisplayNetworkToBeChanged(NetworkItemModel<?> op1, NetworkItemModel<?> op2) { + return ADD_TO_BOND.isDisplayNetworkToBeChanged(op2, op1); } }, @@ -305,6 +356,11 @@ } } }; + } + + @Override + public boolean isDisplayNetworkToBeChanged(NetworkItemModel<?> op1, NetworkItemModel<?> op2) { + return BREAK_BOND.isDisplayNetworkToBeChanged(op1, null); } }, @@ -603,4 +659,24 @@ public boolean isNullOperation(){ return false; } + + @SuppressWarnings("unused") + public boolean isDisplayNetworkToBeChanged(NetworkItemModel<?> op1, NetworkItemModel<?> op2) { + return false; + } + + public boolean isErroneousOperation() { + return isNullOperation() && this != NULL_OPERATION; + } + + private static boolean isDisplayNetworkAttached(final Iterable<LogicalNetworkModel> logicalNetworkInterfaces) { + for (LogicalNetworkModel logicalNetworkModel : logicalNetworkInterfaces) { + + if (logicalNetworkModel.getEntity().getCluster().isDisplay()) { + return true; + } + } + + return false; + } } 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 9a70cbd..932124a 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 @@ -21,15 +21,14 @@ import org.ovirt.engine.ui.webadmin.ApplicationConstants; import org.ovirt.engine.ui.webadmin.ApplicationResources; 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.InternalNetworkPanel; +import org.ovirt.engine.ui.webadmin.section.main.view.popup.host.panels.InternalNetworksPanel; 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.InternalNetworksPanel; import org.ovirt.engine.ui.webadmin.widget.editor.AnimatedVerticalPanel; import org.ovirt.engine.ui.webadmin.widget.footer.StatusLabel; @@ -43,15 +42,14 @@ public class HostSetupNetworksPopupView extends AbstractModelBoundPopupView<HostSetupNetworksModel> implements HostSetupNetworksPopupPresenterWidget.ViewDef { + private static final String EMPTY_WARNING = ""; + interface Driver extends SimpleBeanEditorDriver<HostSetupNetworksModel, HostSetupNetworksPopupView> { } interface ViewUiBinder extends UiBinder<SimpleDialogPanel, HostSetupNetworksPopupView> { ViewUiBinder uiBinder = GWT.create(ViewUiBinder.class); } - - private static ApplicationConstants constants = ClientGinjectorProvider.getApplicationConstants(); - private static final String EMPTY_STATUS = constants.dragToMakeChangesSetupNetwork(); @UiField InternalNetworksPanel internalNetworkList; @@ -68,9 +66,16 @@ @UiField SimplePanel statusPanel; + @UiField + SimplePanel warningPanel; + @UiField(provided = true) @Ignore StatusLabel status; + + @UiField(provided = true) + @Ignore + StatusLabel warning; @UiField NetworkPanelsStyle style; @@ -93,17 +98,31 @@ private boolean rendered = false; + private final ApplicationConstants constants; + private final String emptyStatus; + @Inject - public HostSetupNetworksPopupView(EventBus eventBus, ApplicationResources resources, ApplicationConstants constants, ApplicationTemplates templates) { + public HostSetupNetworksPopupView( + EventBus eventBus, + ApplicationResources resources, + ApplicationConstants constants, + ApplicationTemplates templates) { super(eventBus, resources); - status = new StatusLabel(EMPTY_STATUS); + + this.constants = constants; + + this.emptyStatus = constants.dragToMakeChangesSetupNetwork(); + + status = new StatusLabel(emptyStatus); + warning = new StatusLabel(EMPTY_WARNING); checkConnectivity = new EntityModelCheckBoxEditor(Align.RIGHT); commitChanges = new EntityModelCheckBoxEditor(Align.RIGHT); 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)); - setStatusStyle(true); + setValidStatusStyle(); + turnWarningOff(); checkConnectivity.setContentWidgetStyleName(style.checkCon()); commitChanges.setContentWidgetStyleName(style.commitChanges()); initUnassignedNetworksPanel(); @@ -117,18 +136,31 @@ } private void localize(){ - checkConnectivity.setLabel(constants.checkConHostPopup()); //$NON-NLS-1$ + checkConnectivity.setLabel(constants.checkConHostPopup()); commitChanges.setLabel(constants.saveNetConfigHostPopup()); } - private void setStatusStyle(boolean valid) { - if (valid) { - statusPanel.setStylePrimaryName(style.statusPanel()); - status.setStylePrimaryName(style.statusLabel()); - } else { - statusPanel.setStylePrimaryName(style.errorPanel()); - status.setStylePrimaryName(style.errorLabel()); - } + private void setErrorStatusStyle() { + statusPanel.setStylePrimaryName(style.errorPanel()); + status.setStylePrimaryName(style.errorLabel()); + turnWarningOff(); + } + + private void setValidStatusStyle() { + statusPanel.setStylePrimaryName(style.statusPanel()); + status.setStylePrimaryName(style.statusLabel()); + } + + private void turnWarningOn(String warningText) { + warningPanel.setStylePrimaryName(style.warningPanel()); + warning.setStylePrimaryName(style.warningLabel()); + warning.setFadeText(warningText); + } + + private void turnWarningOff() { + warningPanel.setStylePrimaryName(style.statusPanel()); + warning.setStylePrimaryName(style.statusLabel()); + warning.setFadeText(EMPTY_WARNING); } @Override @@ -141,7 +173,8 @@ HostSetupNetworksModel model = (HostSetupNetworksModel) sender; List<LogicalNetworkModel> networks = model.getNetworks(); List<NetworkInterfaceModel> nics = model.getNics(); - status.setFadeText(EMPTY_STATUS); + status.setFadeText(emptyStatus); + turnWarningOff(); updateNetworks(networks); updateNics(nics); // mark as rendered @@ -156,11 +189,30 @@ NetworkOperation candidate = evtArgs.getCandidate(); NetworkItemModel<?> op1 = evtArgs.getOp1(); NetworkItemModel<?> op2 = evtArgs.getOp2(); - boolean drop = evtArgs.isDrop(); - if (!drop) { - status.setFadeText(candidate != null ? candidate.getMessage(op1, op2) : constants.noValidActionSetupNetwork()); + + if (evtArgs.isDrop()) { + setValidStatusStyle(); + turnWarningOff(); + } else { + if (candidate == null) { + status.setFadeText(constants.noValidActionSetupNetwork()); + setErrorStatusStyle(); + } else { + status.setFadeText(candidate.getMessage(op1, op2)); + + if (candidate.isErroneousOperation()) { + setErrorStatusStyle(); + } else { + setValidStatusStyle(); + + if (candidate.isDisplayNetworkToBeChanged(op1, op2)) { + turnWarningOn(constants.changeDisplayNetworkWarning()); + } else { + turnWarningOff(); + } + } + } } - setStatusStyle(!drop || !candidate.isNullOperation() || candidate == NetworkOperation.NULL_OPERATION); } }); 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 a826332..72b0314 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 @@ -1,8 +1,12 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent"> -<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder" 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.webadmin.widget.editor" - xmlns:f="urn:import:org.ovirt.engine.ui.webadmin.widget.footer" xmlns:ge="urn:import:org.ovirt.engine.ui.common.widget.editor.generic" +<ui:UiBinder + xmlns:ui="urn:ui:com.google.gwt.uibinder" + 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.webadmin.widget.editor" + xmlns:f="urn:import:org.ovirt.engine.ui.webadmin.widget.footer" + xmlns:ge="urn:import:org.ovirt.engine.ui.common.widget.editor.generic" xmlns:p="urn:import:org.ovirt.engine.ui.webadmin.section.main.view.popup.host.panels"> <ui:with field='constants' type='org.ovirt.engine.ui.webadmin.ApplicationConstants' /> @@ -206,16 +210,31 @@ padding-top: 10px; } + .warningPanel { + background-color: yellow; + height: 30px; + border-bottom: 1px solid #C5C5C5; + } + .warningLabel { + font-size: 15px; + font-weight: bold; + color: #FF8C00; + padding-left: 20px; + padding-top: 5px; + } </ui:style> - <d:SimpleDialogPanel width="900px" height="600px"> + <d:SimpleDialogPanel width="900px" height="630px"> <d:content> <g:HTMLPanel> <g:SimplePanel ui:field="statusPanel"> <f:StatusLabel ui:field="status"/> </g:SimplePanel> - <g:HorizontalPanel spacing="10" width="100%" height="77%" verticalAlignment="ALIGN_TOP"> + <g:SimplePanel ui:field="warningPanel" > + <f:StatusLabel ui:field="warning"/> + </g:SimplePanel> + <g:HorizontalPanel spacing="10" width="100%" height="72%" verticalAlignment="ALIGN_TOP"> <g:Cell width="69%" height="100%"> <g:VerticalPanel width="100%" horizontalAlignment="ALIGN_LEFT"> <g:HorizontalPanel> 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 7c05c03..2f46332 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 @@ -37,6 +37,10 @@ String errorLabel(); + String warningPanel(); + + String warningLabel(); + String checkCon(); String commitChanges(); -- To view, visit http://gerrit.ovirt.org/27463 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I35f0e019b6f77ab90fec89f614b49db589602353 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Yevgeny Zaspitsky <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
