> 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

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

Changes:
  - all: https://git.openjdk.java.net/jdk/pull/7416/files
  - new: https://git.openjdk.java.net/jdk/pull/7416/files/aa1c2491..58cec72e

Webrevs:
 - full: https://webrevs.openjdk.java.net/?repo=jdk&pr=7416&range=02
 - incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=7416&range=01-02

  Stats: 420 lines in 3 files changed: 192 ins; 226 del; 2 mod
  Patch: https://git.openjdk.java.net/jdk/pull/7416.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/7416/head:pull/7416

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

Reply via email to