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

Reply via email to