Mercurial > hg > openjdk > jdk8u > jdk
changeset 14420:cb3a5b83571c
8249278: Revert JDK-8226253 which breaks the spec of AccessibleState.SHOWING for JList
Reviewed-by: prr, serb
author | arapte |
---|---|
date | Thu, 16 Jul 2020 06:35:01 +0530 |
parents | 4424a1214fee |
children | 1bb0d5a206fe |
files | src/share/classes/javax/swing/JList.java src/windows/classes/com/sun/java/accessibility/AccessBridge.java |
diffstat | 2 files changed, 12 insertions(+), 84 deletions(-) [+] |
line wrap: on
line diff
--- a/src/share/classes/javax/swing/JList.java Wed Apr 22 15:00:50 2015 +0400 +++ b/src/share/classes/javax/swing/JList.java Thu Jul 16 06:35:01 2020 +0530 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -3308,7 +3308,6 @@ } s.add(AccessibleState.SELECTABLE); - s.add(AccessibleState.VISIBLE); if (parent.isFocusOwner() && (indexInParent == parent.getLeadSelectionIndex())) { s.add(AccessibleState.ACTIVE); @@ -3321,6 +3320,11 @@ } else if (s.contains(AccessibleState.SHOWING)) { s.remove(AccessibleState.SHOWING); } + if (this.isVisible()) { + s.add(AccessibleState.VISIBLE); + } else if (s.contains(AccessibleState.VISIBLE)) { + s.remove(AccessibleState.VISIBLE); + } s.add(AccessibleState.TRANSIENT); // cell-rendered return s; }
--- a/src/windows/classes/com/sun/java/accessibility/AccessBridge.java Wed Apr 22 15:00:50 2015 +0400 +++ b/src/windows/classes/com/sun/java/accessibility/AccessBridge.java Thu Jul 16 06:35:01 2020 +0530 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2018, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -1550,38 +1550,6 @@ return null; } - private int getNonVisibleChildrenCountTillIndex(AccessibleContext parentAC, int index) { - if (parentAC != null && index >= 0 && index < parentAC.getAccessibleChildrenCount()) { - int nonVisibleChildrenCount = 0; - for (int i = 0; i <= index; i++) { - if (!parentAC.getAccessibleChild(i).getAccessibleContext().getAccessibleStateSet().contains(AccessibleState.VISIBLE)) { - nonVisibleChildrenCount++; - } - } - return nonVisibleChildrenCount; - } - return 0; - } - - private Accessible getVisibleChildAtIndex(AccessibleContext parentAC, int index) { - if (parentAC != null && index >= 0 && index < parentAC.getAccessibleChildrenCount()) { - int visibleIndex = -1; - int childrenCount = parentAC.getAccessibleChildrenCount(); - for (int i = 0; i <= childrenCount; i++) { - Accessible child = parentAC.getAccessibleChild(i); - if (child != null) { - AccessibleContext ac = child.getAccessibleContext(); - if (ac != null && ac.getAccessibleStateSet().contains(AccessibleState.VISIBLE)) { - visibleIndex++; - } - if (visibleIndex == index) { - return child; - } - } - } - } - return null; - } /** * returns the AccessibleParent from an AccessibleContext */ @@ -1612,12 +1580,7 @@ return InvocationUtils.invokeAndWait(new Callable<Integer>() { @Override public Integer call() throws Exception { - int indexInParent = ac.getAccessibleIndexInParent(); - Accessible parent = ac.getAccessibleParent(); - if (parent != null) { - indexInParent -= getNonVisibleChildrenCountTillIndex(parent.getAccessibleContext(), indexInParent); - } - return indexInParent; + return ac.getAccessibleIndexInParent(); } }, ac); } @@ -1631,8 +1594,7 @@ return InvocationUtils.invokeAndWait(new Callable<Integer>() { @Override public Integer call() throws Exception { - int childrenCount = ac.getAccessibleChildrenCount(); - return childrenCount - getNonVisibleChildrenCountTillIndex(ac, childrenCount - 1); + return ac.getAccessibleChildrenCount(); } }, ac); } @@ -1668,7 +1630,7 @@ return InvocationUtils.invokeAndWait(new Callable<AccessibleContext>() { @Override public AccessibleContext call() throws Exception { - Accessible a = getVisibleChildAtIndex(ac, index); + Accessible a = ac.getAccessibleChild(index); if (a != null) { return a.getAccessibleContext(); } @@ -3653,11 +3615,7 @@ AccessibleRelation[] relations = ars.toArray(); if (relations != null && i >= 0 && i < relations.length) { Object[] targets = relations[i].getTarget(); - if (targets != null) { - int targetCount = targets.length - - getNonVisibleTargetCountTillIndex(targets, targets.length - 1); - return targetCount; - } + return targets.length; } } } @@ -3683,7 +3641,7 @@ if (relations != null && i >= 0 && i < relations.length) { Object[] targets = relations[i].getTarget(); if (targets != null && j >= 0 & j < targets.length) { - Object o = getVisibleTargetAtIndex(targets, j); + Object o = targets[j]; if (o instanceof Accessible) { return ((Accessible) o).getAccessibleContext(); } @@ -3696,40 +3654,6 @@ }, ac); } - private Object getVisibleTargetAtIndex(Object[] targets, int index) { - if (index >= 0 && index < targets.length) { - int visibleTargetIndex = -1; - for (int i = 0; i < targets.length; i++) { - if (targets[i] instanceof Accessible) { - AccessibleContext ac = ((Accessible) targets[i]).getAccessibleContext(); - if (ac != null && ac.getAccessibleStateSet().contains(AccessibleState.VISIBLE)) { - visibleTargetIndex++; - } - if (visibleTargetIndex == index) { - return targets[i]; - } - } - } - } - return null; - } - - private int getNonVisibleTargetCountTillIndex(Object[] targets, int index) { - if (index >= 0 && index < targets.length) { - int nonVisibleTargetsCount = 0; - for (int i = 0; i <= index; i++) { - if (targets[i] instanceof Accessible) { - AccessibleContext ac = ((Accessible) targets[i]).getAccessibleContext(); - if (ac != null && !ac.getAccessibleStateSet().contains(AccessibleState.VISIBLE)) { - nonVisibleTargetsCount++; - } - } - } - return nonVisibleTargetsCount; - } - return 0; - } - // ========= AccessibleHypertext ========= private Map<AccessibleHypertext, AccessibleContext> hyperTextContextMap = new WeakHashMap<>();