/* import-globals-from ../common.js */ /* import-globals-from ../events.js */ /* import-globals-from ../states.js */ /** * Focus hyperlink invoker. * * @param aID [in] hyperlink identifier * @param aSelectedAfter [in] specifies if hyperlink is selected/focused after * the focus */ function focusLink(aID, aSelectedAfter) { this.node = getNode(aID); this.accessible = getAccessible(this.node); this.eventSeq = []; this.unexpectedEventSeq = []; var checker = new invokerChecker(EVENT_FOCUS, this.accessible); if (aSelectedAfter) { this.eventSeq.push(checker); } else { this.unexpectedEventSeq.push(checker); } this.invoke = function focusLink_invoke() { var expectedStates = aSelectedAfter ? STATE_FOCUSABLE : 0; var unexpectedStates = (!aSelectedAfter ? STATE_FOCUSABLE : 0) | STATE_FOCUSED; testStates(aID, expectedStates, 0, unexpectedStates, 0); this.node.focus(); }; this.finalCheck = function focusLink_finalCheck() { var expectedStates = aSelectedAfter ? STATE_FOCUSABLE | STATE_FOCUSED : 0; var unexpectedStates = !aSelectedAfter ? STATE_FOCUSABLE | STATE_FOCUSED : 0; testStates(aID, expectedStates, 0, unexpectedStates, 0); }; this.getID = function focusLink_getID() { return "focus hyperlink " + prettyName(aID); }; }