diff options
author | Beat Schwarzentrub | 2019-12-03 12:58:09 +0000 |
---|---|---|
committer | Beat Schwarzentrub | 2019-12-03 16:57:37 +0000 |
commit | ada5bf02ea4b8512e78622389dd4b20149466164 (patch) | |
tree | 1890c989dbac963976bfbf05370cb894d5fffb76 | |
parent | 8c6f4d095d7bdc5c0ea0f180b25728a4f1db7759 (diff) | |
download | org.eclipse.scout.rt-features/bschwarzent/focusmanager_100.tar.gz org.eclipse.scout.rt-features/bschwarzent/focusmanager_100.tar.xz org.eclipse.scout.rt-features/bschwarzent/focusmanager_100.zip |
FocusManager: fix computation of focusable element for rule 'prepare'features/bschwarzent/focusmanager_100
-rw-r--r-- | eclipse-scout-core/src/focus/FocusManager.js | 2 | ||||
-rw-r--r-- | eclipse-scout-core/test/focus/FocusManagerSpec.js | 16 |
2 files changed, 16 insertions, 2 deletions
diff --git a/eclipse-scout-core/src/focus/FocusManager.js b/eclipse-scout-core/src/focus/FocusManager.js index a6dd528f52..3986bf02bc 100644 --- a/eclipse-scout-core/src/focus/FocusManager.js +++ b/eclipse-scout-core/src/focus/FocusManager.js @@ -162,7 +162,7 @@ export default class FocusManager { */ evaluateFocusRule($container, focusRuleOrElement) { var elementToFocus; - if (!focusRuleOrElement || focusRuleOrElement === FocusRule.AUTO) { + if (!focusRuleOrElement || scout.isOneOf(focusRuleOrElement, FocusRule.AUTO, FocusRule.PREPARE)) { elementToFocus = this.findFirstFocusableElement($container); } else if (focusRuleOrElement === FocusRule.NONE) { elementToFocus = null; diff --git a/eclipse-scout-core/test/focus/FocusManagerSpec.js b/eclipse-scout-core/test/focus/FocusManagerSpec.js index 93e8f4d17c..4aec8962b2 100644 --- a/eclipse-scout-core/test/focus/FocusManagerSpec.js +++ b/eclipse-scout-core/test/focus/FocusManagerSpec.js @@ -9,7 +9,7 @@ * BSI Business Systems Integration AG - initial API and implementation */ import {FocusManagerSpecHelper, FormSpecHelper, TableSpecHelper, TreeSpecHelper} from '@eclipse-scout/testing'; -import {Device, focusUtils, scout} from '../../src/index'; +import {Device, FocusRule, focusUtils, scout} from '../../src/index'; /* global FocusManagerSpecHelper */ jasmine.DEFAULT_TIMEOUT_INTERVAL = 10000; @@ -307,4 +307,18 @@ describe('scout.FocusManager', function() { focusManager.uninstallFocusContext($container1); }); }); + + describe('evaluateFocusRule', function() { + it('should find first focusable element', function() { + var $container = createDivWithTwoInputs().appendTo(session.$entryPoint); + focusManager.installFocusContext($container); + + expect(focusManager.evaluateFocusRule($container, FocusRule.NONE)).toBe(null); + expect(focusManager.evaluateFocusRule($container, FocusRule.AUTO)).toBe($container.children('.input1')[0]); + expect(focusManager.evaluateFocusRule($container, FocusRule.PREPARE)).toBe($container.children('.input1')[0]); + expect(focusManager.evaluateFocusRule($container, null)).toBe($container.children('.input1')[0]); + expect(focusManager.evaluateFocusRule($container, 'invalid-rule')).toBe('invalid-rule'); + expect(focusManager.evaluateFocusRule($container, $container.children('.input2')[0])).toBe($container.children('.input2')[0]); + }); + }); }); |