On Wed, 9 Mar 2022 16:11:02 GMT, Anton Litvinov <alitvi...@openjdk.org> wrote:

>> Hello,
>> 
>> Could you please review the following fix for the bug. The bug consists in 
>> the fact that When an assistive technology software by means of Java Access 
>> Bridge API executes "AccessibleAction" "click" on "AccessibleContext" which 
>> corresponds to "javax.swing.JTable" cell containing "javax.swing.JCheckBox", 
>> then the cell's value and cell's view represented by "JCheckBox" stay 
>> unchanged. The issue is a bug in JDK and should be fixed in JDK, because JDK 
>> informs the assistive technology software through Java Access Bridge API in 
>> particular through the function
>> 
>> "BOOL getAccessibleActions(long vmID, AccessibleContext accessibleContext, 
>> AccessibleActions *actions)"
>> 
>> that "AccessibleContext" of the table cell with "JCheckBox" supports one 
>> action "click", while real execution of this action on this accessible 
>> context does not lead to any result.
>> 
>> THE ROOT CAUSE OF THE BUG:
>> 
>> The reason of the issue is the fact that when the assistive technology 
>> software tries to do "AccessibleAction" on "AccessibleContext" associated 
>> with a cell with boolean data type in "JTable" component through Java Access 
>> Bridge (JAB), the JDK executes this "AccessibleAction" on 
>> "AccessibleContext" of a renderer, which is an instance of the class 
>> "javax.swing.JTable.BooleanRenderer" which is a derivative of "JCheckBox" 
>> class, and the instance of this renderer is single and common for all cells 
>> of boolean data type. Therefore execution of "click" "AccessibleAction" on 
>> this renderer component which is not permanently bound to any particular 
>> cell in the table does not lead to update of the table cell value.
>> 
>> THE FIX:
>> 
>> The fix implements an approach which guarantees setting of new values to the 
>> table's cells with boolean data type on each execution of "AccessibleAction" 
>> of "javax.swing.JTable.BooleanRenderer" instance, when execution of this 
>> action changes the "selected" state of this "BooleanRenderer" JCheckBox 
>> component.
>> 
>> Please take into account that the created automatic regression test 
>> simulates the issue only with Java Accessibility API what is not fully equal 
>> to the original test scenario which requires the assistive technology 
>> software and usage of Java Access Bridge API and which can be tested using 
>> the manual test case attached to the issue in JBS. However the regression 
>> test still allows to reproduce the issue and verify that the fix resolves it.
>> 
>> Thank you,
>> Anton
>
> Anton Litvinov has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   The third version of the fix for JDK-8277922

The last version looks fine to me.

-------------

Marked as reviewed by serb (Reviewer).

PR: https://git.openjdk.java.net/jdk/pull/7416

Reply via email to