Java Solaris Communities Sun Store Join SDN My Profile Why Join?
 
Bug Database
Bug Detail
Quick Lists
Top 25 Bugs
Top 25 RFE's
Recently Closed Bugs
Printable Page Printable Page


Bug Database
Bug ID: 4032726
Votes 8
Synopsis Native TAB navigation is very limited.
Category java:classes_awt
Reported Against 1.1 , 1.1.4 , 1.1beta3
Release Fixed
State 11-Closed, duplicate of 4290675, request for enhancement
Priority: 4-Low
Related Bugs 4049988 , 4089320 , 4290675
Submit Date 17-FEB-1997
Description




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.
======================================================================
Work Around




Implement tab management non-natively, consume all tab
and shift-tab keystrokes on all components.
======================================================================
Evaluation
Currently planning to implement this functionality, or equivalent
functionality, in the merlin focus enhancements.
  xxxxx@xxxxx   1999-12-14
Comments
  
  Include a link with my name & email   


PLEASE NOTE: JDK6 is formerly known as Project Mustang