JDK-4032726 : Native TAB navigation is very limited.
  • Type: Enhancement
  • Component: client-libs
  • Sub-Component: java.awt
  • Affected Version: 1.1,1.1.4
  • Priority: P4
  • Status: Closed
  • Resolution: Duplicate
  • OS: solaris_2.5,windows_95,windows_nt
  • CPU: x86,sparc
  • Submitted: 1997-02-17
  • Updated: 2000-10-04
  • Resolved: 2000-10-04
Related Reports
Duplicate :  
Duplicate :  
Duplicate :  
Description

Name: mc57594			Date: 02/17/97


There are several deficiencies in native tab navigation in
Java 1.1
- Need a "previousFocus()" method to programmatically set the
focus            
  to the prior tabbable
component.                                             
- Would like to be able to override isFocusTraversable() on each
type          
  of component to enable or disable tab navigation to that
component.          
- Would like to be able to programmatically determine which
component          
  will be next and previous on the tab
sequence.                               
- Would like to be able to override whether the tab sequence loops
back        
  to the beginning or
end.                                                     
- Would like to be able to override the default behavior to specify
the        
  next and previous tabbable component in a given
window.                      
-                                                                              
- The current implementation of tabbing cannot be overridden
because           
the user has no access to the TabManager, and because the
transferFocus()      
request is delivered up the containment hierarchy and therefore
requires       
a complete set of cooperating
components.                                      
A suggestion for the design of tab management is as
follows                   
Component                                                                     
  setNextTab(Component c), setPreviousTab(Component
c).                        
  If neither of these are set the component walks up the
containment           
  hierarchy to find the next/previous tabbable
component.                      
  getNextTab(), getPreviousTab() gets the component that will
take             
  next tab focus, either from the local settings or from the
tab               
 
manager.                                                                     
  nextTab(), previousTab() move the
focus.                                     
  firstTab(), lastTab() find the first and last tabbable
components            
  on the tabbing
list.                                                         
  enableFocusTraversal(boolean enabled)  Enable or disable the
ability         
  to traverse this component using tabs.  Disabling would
override             
  the native behavior of the Component which enabling would just
allow         
  the native behavior to show through.  For
example                            
 
isFocusTraversable()                                                         
 
{                                                                            
    return(super.isFocusTraversable() &&
isTraversalEnabled);                  
 
}                                                                            
TabManager                                                                    
  Implement tab manager as an interface.  Windows have set and
get             
  TabManager methods.  Provide a default tab manager that
functions            
  pretty much like the current tab manager works.  Allow user
to               
  disable or enable wrapping end-beginning on the default tab
manager.
======================================================================

Comments
WORK AROUND Name: mc57594 Date: 02/17/97 Implement tab management non-natively, consume all tab and shift-tab keystrokes on all components. ======================================================================
11-06-2004

EVALUATION Currently planning to implement this functionality, or equivalent functionality, in the merlin focus enhancements. david.mendenhall@eng 1999-12-14
14-12-1999