< prev index next >

src/java.desktop/share/classes/java/awt/DefaultKeyboardFocusManager.java

Print this page




 163                     }
 164                     return true;
 165                 }
 166             } else if (doRestoreFocus(toFocus, vetoedComponent, false)) {
 167                 return true;
 168             }
 169         }
 170         if (clearOnFailure) {
 171             clearGlobalFocusOwnerPriv();
 172             return true;
 173         } else {
 174             return false;
 175         }
 176     }
 177     private boolean restoreFocus(Component toFocus, boolean clearOnFailure) {
 178         return doRestoreFocus(toFocus, null, clearOnFailure);
 179     }
 180     private boolean doRestoreFocus(Component toFocus, Component vetoedComponent,
 181                                    boolean clearOnFailure)
 182     {

 183         if (toFocus != vetoedComponent && toFocus.isShowing() && toFocus.canBeFocusOwner() &&
 184             toFocus.requestFocus(false, FocusEvent.Cause.ROLLBACK))
 185         {
 186             return true;
 187         } else {




 188             Component nextFocus = toFocus.getNextFocusCandidate();
 189             if (nextFocus != null && nextFocus != vetoedComponent &&
 190                 nextFocus.requestFocusInWindow(FocusEvent.Cause.ROLLBACK))
 191             {
 192                 return true;
 193             } else if (clearOnFailure) {
 194                 clearGlobalFocusOwnerPriv();
 195                 return true;
 196             } else {
 197                 return false;
 198             }
 199         }
 200     }
 201 
 202     /**
 203      * A special type of SentEvent which updates a counter in the target
 204      * KeyboardFocusManager if it is an instance of
 205      * DefaultKeyboardFocusManager.
 206      */
 207     private static class DefaultKeyboardFocusManagerSentEvent




 163                     }
 164                     return true;
 165                 }
 166             } else if (doRestoreFocus(toFocus, vetoedComponent, false)) {
 167                 return true;
 168             }
 169         }
 170         if (clearOnFailure) {
 171             clearGlobalFocusOwnerPriv();
 172             return true;
 173         } else {
 174             return false;
 175         }
 176     }
 177     private boolean restoreFocus(Component toFocus, boolean clearOnFailure) {
 178         return doRestoreFocus(toFocus, null, clearOnFailure);
 179     }
 180     private boolean doRestoreFocus(Component toFocus, Component vetoedComponent,
 181                                    boolean clearOnFailure)
 182     {
 183         boolean success = true;
 184         if (toFocus != vetoedComponent && toFocus.isShowing() && toFocus.canBeFocusOwner() &&
 185             (success = toFocus.requestFocus(false, FocusEvent.Cause.ROLLBACK)))
 186         {
 187             return true;
 188         } else {
 189             if (!success && getGlobalFocusedWindow() != SunToolkit.getContainingWindow(toFocus)) {
 190                 restoreFocusTo = toFocus;
 191                 return true;
 192             }
 193             Component nextFocus = toFocus.getNextFocusCandidate();
 194             if (nextFocus != null && nextFocus != vetoedComponent &&
 195                 nextFocus.requestFocusInWindow(FocusEvent.Cause.ROLLBACK))
 196             {
 197                 return true;
 198             } else if (clearOnFailure) {
 199                 clearGlobalFocusOwnerPriv();
 200                 return true;
 201             } else {
 202                 return false;
 203             }
 204         }
 205     }
 206 
 207     /**
 208      * A special type of SentEvent which updates a counter in the target
 209      * KeyboardFocusManager if it is an instance of
 210      * DefaultKeyboardFocusManager.
 211      */
 212     private static class DefaultKeyboardFocusManagerSentEvent


< prev index next >