JDK-8090501 : Promote setImpl_traversalEngine to public API
  • Type: Enhancement
  • Component: javafx
  • Sub-Component: scenegraph
  • Affected Version: 7u6
  • Priority: P4
  • Status: Closed
  • Resolution: Duplicate
  • Submitted: 2012-04-27
  • Updated: 2016-09-20
  • Resolved: 2016-04-20
Related Reports
Duplicate :  
Description
SB relies on the deprecated internal methods setImpl_traversalEngine defined in Parent class.
This method must be promoted to public API. 

If the method must not be public (treated as private), then be sure to not remove it (adding some comments directly in the code).
Comments
This is a duplicate of JDK-8091673
20-04-2016

@Kevin - being internal is _the_ point ;-) Or in other words: here's a piece of missing functionality - supporting custom focus traversal is elementary to any serious ui framework.
07-05-2015

Also I'd like to note that there is at the moment no API to traverse to the next/previous control, there is only impl_traverse(Direction).
02-04-2015

This API is occasionally useful for third party controls, and would agree that this would be beneficial API to make public at some point in the future. The API was improved by Martin in the ~8 / 8u20 time frame.
16-03-2015

Note that this isn't part of the API, but is internal implementation. Applications should not rely on implementation details such as this. That said, we might consider this for JDK 9, but customizing traversal is not currently high on the list of priorities.
16-03-2015

I'd like to point out that this is at the moment the only API (even though private) that can be utilized for (easily) customizing the focus order. At the moment (8u31/8u40) this function is marked as treatAsPrivate and deprecated with the note that it will be removed in the next version, which should be 9. Removal of this function without providing some sort of alternative would leave anyone who wants to customize the focus order (for whatever reason) without any option except to filter key events. So if this API is slated for removal in 9, I'd like to request that this bug is also rescheduled for 9.
16-03-2015

If we took the simple approach then this could be a simple rename of a method, but we would write new tests for the new public method. From a wider perspective, what use is a call to set the traversal engine unless we make TraversalEngine public? This is where the task mushrooms. We'd also need to make Algorithm and Direction public, but do we make the any of the implementations public? While none is a lot of engineering work, it does make a lot of private api public, so this should be left until there is a full review of the rest of the api. The jira suggests as an alternative that the code contain a comment pointing to the dependency, and this has already been done. The SB folks are happy to leave it as-is for the moment.
17-01-2013