Arik Hadas has uploaded a new change for review. Change subject: userportal,webadmin: fix focus traversal in vm dialogs ......................................................................
userportal,webadmin: fix focus traversal in vm dialogs Fix focus traversal in the following dialogs: * Edit template * New/Edit desktop vm * New/Edit server vm * New/Edit pool The focus traversal in those dialogs is now set to the standard order (top to down, left to right) and includes all components that can gain focus Change-Id: I967e948fd4927264530f64ba6c246b23e5095188 Signed-off-by: Arik Hadas <[email protected]> --- M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/dialog/AdvancedParametersExpander.java M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/dialog/tab/DialogTab.java M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/dialog/tab/DialogTab.ui.xml M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/AbstractVmPopupWidget.java 4 files changed, 101 insertions(+), 6 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/34/9634/1 diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/dialog/AdvancedParametersExpander.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/dialog/AdvancedParametersExpander.java index d28d8c7..e732230 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/dialog/AdvancedParametersExpander.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/dialog/AdvancedParametersExpander.java @@ -3,6 +3,7 @@ import org.ovirt.engine.ui.common.CommonApplicationConstants; import org.ovirt.engine.ui.common.CommonApplicationResources; import org.ovirt.engine.ui.common.CommonApplicationTemplates; +import org.ovirt.engine.ui.common.view.popup.FocusableComponentsContainer; import com.google.gwt.core.client.GWT; import com.google.gwt.dom.client.Style; @@ -17,7 +18,7 @@ import com.google.gwt.user.client.ui.Composite; import com.google.gwt.user.client.ui.ToggleButton; -public class AdvancedParametersExpander extends Composite { +public class AdvancedParametersExpander extends Composite implements FocusableComponentsContainer { @UiField ToggleButton expander; @@ -69,4 +70,10 @@ } }); } + + @Override + public int setTabIndexes(int nextTabIndex) { + expander.setTabIndex(nextTabIndex++); + return nextTabIndex; + } } diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/dialog/tab/DialogTab.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/dialog/tab/DialogTab.java index c81c689..5523605 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/dialog/tab/DialogTab.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/dialog/tab/DialogTab.java @@ -1,6 +1,7 @@ package org.ovirt.engine.ui.common.widget.dialog.tab; import org.ovirt.engine.ui.common.idhandler.HasElementId; +import org.ovirt.engine.ui.common.view.popup.FocusableComponentsContainer; import org.ovirt.engine.ui.common.widget.AbstractValidatedWidget; import org.ovirt.engine.ui.common.widget.HasLabel; @@ -13,13 +14,13 @@ import com.google.gwt.uibinder.client.UiBinder; import com.google.gwt.uibinder.client.UiChild; import com.google.gwt.uibinder.client.UiField; +import com.google.gwt.user.client.ui.FocusPanel; import com.google.gwt.user.client.ui.HasEnabled; import com.google.gwt.user.client.ui.IndexedPanel; import com.google.gwt.user.client.ui.InlineLabel; -import com.google.gwt.user.client.ui.SimplePanel; import com.google.gwt.user.client.ui.Widget; -public class DialogTab extends AbstractValidatedWidget implements HasClickHandlers, HasLabel, HasElementId { +public class DialogTab extends AbstractValidatedWidget implements HasClickHandlers, HasLabel, HasElementId, FocusableComponentsContainer { interface WidgetUiBinder extends UiBinder<Widget, DialogTab> { WidgetUiBinder uiBinder = GWT.create(WidgetUiBinder.class); @@ -32,7 +33,7 @@ } @UiField - SimplePanel tabContainer; + FocusPanel tabContainer; @UiField InlineLabel tabLabel; @@ -121,4 +122,9 @@ } } + @Override + public int setTabIndexes(int nextTabIndex) { + tabContainer.setTabIndex(nextTabIndex++); + return nextTabIndex; + } } diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/dialog/tab/DialogTab.ui.xml b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/dialog/tab/DialogTab.ui.xml index a66340a..c4d4fd5 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/dialog/tab/DialogTab.ui.xml +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/dialog/tab/DialogTab.ui.xml @@ -27,8 +27,8 @@ } </ui:style> - <g:SimplePanel ui:field="tabContainer" addStyleNames="{style.tab} {style.inactive}"> + <g:FocusPanel ui:field="tabContainer" addStyleNames="{style.tab} {style.inactive}"> <g:InlineLabel ui:field="tabLabel"/> - </g:SimplePanel> + </g:FocusPanel> </ui:UiBinder> diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/AbstractVmPopupWidget.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/AbstractVmPopupWidget.java index 5b3e45d..80c1fc9 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/AbstractVmPopupWidget.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/AbstractVmPopupWidget.java @@ -978,4 +978,86 @@ TableStyle cellTableStyle(); } + @Override + public int setTabIndexes(int nextTabIndex) { + // ==General Tab== + nextTabIndex = generalTab.setTabIndexes(nextTabIndex); + dataCenterEditor.setTabIndex(nextTabIndex++); + clusterEditor.setTabIndex(nextTabIndex++); + quotaEditor.setTabIndex(nextTabIndex++); + nameEditor.setTabIndex(nextTabIndex++); + descriptionEditor.setTabIndex(nextTabIndex++); + + numOfVmsEditor.setTabIndex(nextTabIndex++); + prestartedVmsEditor.setTabIndex(nextTabIndex++); + editPrestartedVmsEditor.setTabIndex(nextTabIndex++); + incraseNumOfVmsEditor.setTabIndex(nextTabIndex++); + + templateEditor.setTabIndex(nextTabIndex++); + memSizeEditor.setTabIndex(nextTabIndex++); + totalvCPUsEditor.setTabIndex(nextTabIndex++); + + nextTabIndex = generalAdvancedParameterExpander.setTabIndexes(nextTabIndex); + corePerSocketEditor.setTabIndex(nextTabIndex++); + numOfSocketsEditor.setTabIndex(nextTabIndex++); + + oSTypeEditor.setTabIndex(nextTabIndex++); + isStatelessEditor.setTabIndex(nextTabIndex++); + + // == Pools == + nextTabIndex = poolTab.setTabIndexes(nextTabIndex); + poolTypeEditor.setTabIndex(nextTabIndex++); + + // ==Initial run Tab== + nextTabIndex = initialRunTab.setTabIndexes(nextTabIndex); + timeZoneEditor.setTabIndex(nextTabIndex++); + domainEditor.setTabIndex(nextTabIndex++); + + // ==Console Tab== + nextTabIndex = consoleTab.setTabIndexes(nextTabIndex); + displayProtocolEditor.setTabIndex(nextTabIndex++); + usbSupportEditor.setTabIndex(nextTabIndex++); + numOfMonitorsEditor.setTabIndex(nextTabIndex++); + isSmartcardEnabledEditor.setTabIndex(nextTabIndex++); + nextTabIndex = expander.setTabIndexes(nextTabIndex); + allowConsoleReconnectEditor.setTabIndex(nextTabIndex++); + + // ==Host Tab== + nextTabIndex = hostTab.setTabIndexes(nextTabIndex); + isAutoAssignEditor.setTabIndex(nextTabIndex++); + specificHost.setTabIndex(nextTabIndex++); + defaultHostEditor.setTabIndex(nextTabIndex++); + runVMOnSpecificHostEditor.setTabIndex(nextTabIndex++); + dontMigrateVMEditor.setTabIndex(nextTabIndex++); + cpuPinning.setTabIndex(nextTabIndex++); + + // ==High Availability Tab== + nextTabIndex = highAvailabilityTab.setTabIndexes(nextTabIndex); + isHighlyAvailableEditor.setTabIndex(nextTabIndex++); + priorityEditor.setTabIndex(nextTabIndex++); + + // ==Resource Allocation Tab== + nextTabIndex = resourceAllocationTab.setTabIndexes(nextTabIndex); + minAllocatedMemoryEditor.setTabIndex(nextTabIndex++); + provisioningEditor.setTabIndex(nextTabIndex++); + provisioningThinEditor.setTabIndex(nextTabIndex++); + provisioningCloneEditor.setTabIndex(nextTabIndex++); + nextTabIndex = disksAllocationView.setTabIndexes(nextTabIndex); + + // ==Boot Options Tab== + nextTabIndex = bootOptionsTab.setTabIndexes(nextTabIndex); + firstBootDeviceEditor.setTabIndex(nextTabIndex++); + secondBootDeviceEditor.setTabIndex(nextTabIndex++); + cdAttachedEditor.setTabIndex(nextTabIndex++); + cdImageEditor.setTabIndex(nextTabIndex++); + kernel_pathEditor.setTabIndex(nextTabIndex++); + initrd_pathEditor.setTabIndex(nextTabIndex++); + kernel_parametersEditor.setTabIndex(nextTabIndex++); + + // ==Custom Properties Tab== + nextTabIndex = customPropertiesTab.setTabIndexes(nextTabIndex); +// customPropertiesSheetEditor.setTabIndex(nextTabIndex++); + + return nextTabIndex; + } } -- To view, visit http://gerrit.ovirt.org/9634 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I967e948fd4927264530f64ba6c246b23e5095188 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Arik Hadas <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
