mirror of git://gcc.gnu.org/git/gcc.git
				
				
				
			
		
			
				
	
	
		
			525 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			Java
		
	
	
	
			
		
		
	
	
			525 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			Java
		
	
	
	
/* FocusManager.java --
 | 
						|
   Copyright (C) 2002, 2004  Free Software Foundation, Inc.
 | 
						|
 | 
						|
This file is part of GNU Classpath.
 | 
						|
 | 
						|
GNU Classpath is free software; you can redistribute it and/or modify
 | 
						|
it under the terms of the GNU General Public License as published by
 | 
						|
the Free Software Foundation; either version 2, or (at your option)
 | 
						|
any later version.
 | 
						|
 | 
						|
GNU Classpath is distributed in the hope that it will be useful, but
 | 
						|
WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
						|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | 
						|
General Public License for more details.
 | 
						|
 | 
						|
You should have received a copy of the GNU General Public License
 | 
						|
along with GNU Classpath; see the file COPYING.  If not, write to the
 | 
						|
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 | 
						|
02110-1301 USA.
 | 
						|
 | 
						|
Linking this library statically or dynamically with other modules is
 | 
						|
making a combined work based on this library.  Thus, the terms and
 | 
						|
conditions of the GNU General Public License cover the whole
 | 
						|
combination.
 | 
						|
 | 
						|
As a special exception, the copyright holders of this library give you
 | 
						|
permission to link this library with independent modules to produce an
 | 
						|
executable, regardless of the license terms of these independent
 | 
						|
modules, and to copy and distribute the resulting executable under
 | 
						|
terms of your choice, provided that you also meet, for each linked
 | 
						|
independent module, the terms and conditions of the license of that
 | 
						|
module.  An independent module is a module which is not derived from
 | 
						|
or based on this library.  If you modify this library, you may extend
 | 
						|
this exception to your version of the library, but you are not
 | 
						|
obligated to do so.  If you do not wish to do so, delete this
 | 
						|
exception statement from your version. */
 | 
						|
 | 
						|
 | 
						|
package javax.swing;
 | 
						|
 | 
						|
import java.awt.AWTEvent;
 | 
						|
import java.awt.Component;
 | 
						|
import java.awt.Container;
 | 
						|
import java.awt.DefaultKeyboardFocusManager;
 | 
						|
import java.awt.FocusTraversalPolicy;
 | 
						|
import java.awt.KeyEventDispatcher;
 | 
						|
import java.awt.KeyEventPostProcessor;
 | 
						|
import java.awt.KeyboardFocusManager;
 | 
						|
import java.awt.Window;
 | 
						|
import java.awt.event.KeyEvent;
 | 
						|
import java.beans.PropertyChangeListener;
 | 
						|
import java.beans.VetoableChangeListener;
 | 
						|
import java.util.Set;
 | 
						|
 | 
						|
/**
 | 
						|
 * This class has been obsoleted by the new
 | 
						|
 * {@link java.awt.KeyboardFocusManager} and
 | 
						|
 * {@link java.awt.DefaultKeyboardFocusManager} API.
 | 
						|
 *
 | 
						|
 * @author Andrew Selkirk
 | 
						|
 */
 | 
						|
public abstract class FocusManager
 | 
						|
  extends DefaultKeyboardFocusManager
 | 
						|
{
 | 
						|
  /**
 | 
						|
   * A FocusManager that wraps an AWT KeyboardFocusManager and forwards all
 | 
						|
   * method calls to it. This is used for compatibility with the new focus
 | 
						|
   * system.
 | 
						|
   *
 | 
						|
   * @author Roman Kennke (kennke@aicas.com)
 | 
						|
   */
 | 
						|
  private static class WrappingFocusManager
 | 
						|
    extends FocusManager
 | 
						|
  {
 | 
						|
    /**
 | 
						|
     * The wrapped KeyboardFocusManager.
 | 
						|
     */
 | 
						|
    private KeyboardFocusManager wrapped;
 | 
						|
 | 
						|
    /**
 | 
						|
     * Creates a new instance of WrappedFocusManager.
 | 
						|
     *
 | 
						|
     * @param fm the focus manager to wrap
 | 
						|
     */
 | 
						|
    WrappingFocusManager(KeyboardFocusManager fm)
 | 
						|
    {
 | 
						|
      wrapped = fm;
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * Wraps {@link DefaultKeyboardFocusManager#dispatchEvent(AWTEvent)}.
 | 
						|
     *
 | 
						|
     * @param ev the event to dispatch
 | 
						|
     *
 | 
						|
     * @return <code>true</code> if the event has been dispatched,
 | 
						|
     *         <code>false</code> otherwise
 | 
						|
     */
 | 
						|
    public boolean dispatchEvent(AWTEvent ev)
 | 
						|
    {
 | 
						|
      return wrapped.dispatchEvent(ev);
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * Wraps {@link DefaultKeyboardFocusManager#dispatchKeyEvent(KeyEvent)}.
 | 
						|
     *
 | 
						|
     * @param ev the event to dispatch
 | 
						|
     *
 | 
						|
     * @return <code>true</code> if the event has been dispatched,
 | 
						|
     *         <code>false</code> otherwise
 | 
						|
     */
 | 
						|
    public boolean dispatchKeyEvent(KeyEvent ev)
 | 
						|
    {
 | 
						|
      return wrapped.dispatchKeyEvent(ev);
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * Wraps {@link DefaultKeyboardFocusManager#downFocusCycle(Container)}.
 | 
						|
     *
 | 
						|
     * @param c the container
 | 
						|
     */
 | 
						|
    public void downFocusCycle(Container c)
 | 
						|
    {
 | 
						|
      wrapped.downFocusCycle(c);
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * Wraps {@link DefaultKeyboardFocusManager#upFocusCycle(Container)}.
 | 
						|
     *
 | 
						|
     * @param c the container
 | 
						|
     */
 | 
						|
    public void upFocusCycle(Container c)
 | 
						|
    {
 | 
						|
      wrapped.upFocusCycle(c);
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * Wraps {@link DefaultKeyboardFocusManager#focusNextComponent(Component)}.
 | 
						|
     *
 | 
						|
     * @param c the component
 | 
						|
     */
 | 
						|
    public void focusNextComponent(Component c)
 | 
						|
    {
 | 
						|
      wrapped.focusNextComponent(c);
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * Wraps
 | 
						|
     * {@link DefaultKeyboardFocusManager#focusPreviousComponent(Component)}.
 | 
						|
     *
 | 
						|
     * @param c the component
 | 
						|
     */
 | 
						|
    public void focusPreviousComponent(Component c)
 | 
						|
    {
 | 
						|
      wrapped.focusPreviousComponent(c);
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * Wraps {@link DefaultKeyboardFocusManager#postProcessKeyEvent(KeyEvent)}.
 | 
						|
     *
 | 
						|
     * @param e the key event
 | 
						|
     *
 | 
						|
     * @return a boolead
 | 
						|
     */
 | 
						|
    public boolean postProcessKeyEvent(KeyEvent e)
 | 
						|
    {
 | 
						|
      return wrapped.postProcessKeyEvent(e);
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * Wraps
 | 
						|
     * {@link DefaultKeyboardFocusManager#processKeyEvent(Component, KeyEvent)}.
 | 
						|
     *
 | 
						|
     * @param c the component
 | 
						|
     * @param e the key event
 | 
						|
     */
 | 
						|
    public void processKeyEvent(Component c, KeyEvent e)
 | 
						|
    {
 | 
						|
      wrapped.processKeyEvent(c, e);
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * Wraps
 | 
						|
     * {@link KeyboardFocusManager#addKeyEventDispatcher(KeyEventDispatcher)}.
 | 
						|
     *
 | 
						|
     * @param d the dispatcher
 | 
						|
     */
 | 
						|
    public void addKeyEventDispatcher(KeyEventDispatcher d)
 | 
						|
    {
 | 
						|
      wrapped.addKeyEventDispatcher(d);
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * Wraps
 | 
						|
     * {@link KeyboardFocusManager#addKeyEventPostProcessor(KeyEventPostProcessor)}.
 | 
						|
     *
 | 
						|
     * @param p the post processor
 | 
						|
     */
 | 
						|
    public void addKeyEventPostProcessor(KeyEventPostProcessor p)
 | 
						|
    {
 | 
						|
      wrapped.addKeyEventPostProcessor(p);
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * Wraps {@link KeyboardFocusManager#addPropertyChangeListener(PropertyChangeListener)}.
 | 
						|
     *
 | 
						|
     * @param l the property change listener
 | 
						|
     */
 | 
						|
    public void addPropertyChangeListener(PropertyChangeListener l)
 | 
						|
    {
 | 
						|
      wrapped.addPropertyChangeListener(l);
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * Wraps {@link KeyboardFocusManager#addPropertyChangeListener(String, PropertyChangeListener)}.
 | 
						|
     *
 | 
						|
     * @param p the property name
 | 
						|
     * @param l the property change listener
 | 
						|
     */
 | 
						|
    public void addPropertyChangeListener(String p, PropertyChangeListener l)
 | 
						|
    {
 | 
						|
      wrapped.addPropertyChangeListener(p, l);
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * Wraps {@link KeyboardFocusManager#addVetoableChangeListener(String, VetoableChangeListener)}.
 | 
						|
     *
 | 
						|
     * @param p the property name
 | 
						|
     * @param l the vetoable change listener
 | 
						|
     */
 | 
						|
    public void addVetoableChangeListener(String p, VetoableChangeListener l)
 | 
						|
    {
 | 
						|
      wrapped.addVetoableChangeListener(p, l);
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * Wraps {@link KeyboardFocusManager#addVetoableChangeListener(VetoableChangeListener)}.
 | 
						|
     *
 | 
						|
     * @param l the vetoable change listener
 | 
						|
     */
 | 
						|
    public void addVetoableChangeListener(VetoableChangeListener l)
 | 
						|
    {
 | 
						|
      wrapped.addVetoableChangeListener(l);
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * Wraps {@link KeyboardFocusManager#clearGlobalFocusOwner()}.
 | 
						|
     */
 | 
						|
    public void clearGlobalFocusOwner()
 | 
						|
    {
 | 
						|
      wrapped.clearGlobalFocusOwner();
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * Wraps {@link KeyboardFocusManager#getActiveWindow()}.
 | 
						|
     *
 | 
						|
     * @return the active window
 | 
						|
     */
 | 
						|
    public Window getActiveWindow()
 | 
						|
    {
 | 
						|
      return wrapped.getActiveWindow();
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * Wraps {@link KeyboardFocusManager#getCurrentFocusCycleRoot()}.
 | 
						|
     *
 | 
						|
     * @return the focus cycle root
 | 
						|
     */
 | 
						|
    public Container getCurrentFocusCycleRoot()
 | 
						|
    {
 | 
						|
      return wrapped.getCurrentFocusCycleRoot();
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * Wraps {@link KeyboardFocusManager#getDefaultFocusTraversalKeys(int)}.
 | 
						|
     *
 | 
						|
     * @param i the ID
 | 
						|
     *
 | 
						|
     * @return the focus traversal keys
 | 
						|
     */
 | 
						|
    public Set getDefaultFocusTraversalKeys(int i)
 | 
						|
    {
 | 
						|
      return wrapped.getDefaultFocusTraversalKeys(i);
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * Wraps {@link KeyboardFocusManager#getDefaultFocusTraversalPolicy()}.
 | 
						|
     *
 | 
						|
     * @return the focus traversal policy
 | 
						|
     */
 | 
						|
    public FocusTraversalPolicy getDefaultFocusTraversalPolicy()
 | 
						|
    {
 | 
						|
      return wrapped.getDefaultFocusTraversalPolicy();
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * Wraps {@link KeyboardFocusManager#getFocusedWindow()}.
 | 
						|
     *
 | 
						|
     * @return the focused window
 | 
						|
     */
 | 
						|
    public Window getFocusedWindow()
 | 
						|
    {
 | 
						|
      return wrapped.getFocusedWindow();
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * Wraps {@link KeyboardFocusManager#getFocusOwner()}.
 | 
						|
     *
 | 
						|
     * @return the focus owner
 | 
						|
     */
 | 
						|
    public Component getFocusOwner()
 | 
						|
    {
 | 
						|
      return wrapped.getFocusOwner();
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * Wraps {@link KeyboardFocusManager#getPermanentFocusOwner()}.
 | 
						|
     *
 | 
						|
     * @return the focus owner
 | 
						|
     */
 | 
						|
    public Component getPermanentFocusOwner()
 | 
						|
    {
 | 
						|
      return wrapped.getPermanentFocusOwner();
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * Wraps {@link KeyboardFocusManager#getPropertyChangeListeners()}.
 | 
						|
     *
 | 
						|
     * @return the property change listeners
 | 
						|
     */
 | 
						|
    public PropertyChangeListener[] getPropertyChangeListeners()
 | 
						|
    {
 | 
						|
      return wrapped.getPropertyChangeListeners();
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * Wraps {@link KeyboardFocusManager#getPropertyChangeListeners(String)}.
 | 
						|
     *
 | 
						|
     * @param n the property name
 | 
						|
     *
 | 
						|
     * @return the property change listeners
 | 
						|
     */
 | 
						|
    public PropertyChangeListener[] getPropertyChangeListeners(String n)
 | 
						|
    {
 | 
						|
      return wrapped.getPropertyChangeListeners(n);
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * Wraps {@link KeyboardFocusManager#getVetoableChangeListeners()}.
 | 
						|
     *
 | 
						|
     * @return the vetoable change listeners
 | 
						|
     */
 | 
						|
    public VetoableChangeListener[] getVetoableChangeListeners()
 | 
						|
    {
 | 
						|
      return wrapped.getVetoableChangeListeners();
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * Wraps {@link KeyboardFocusManager#getVetoableChangeListeners(String)}.
 | 
						|
     *
 | 
						|
     * @param n the property name
 | 
						|
     *
 | 
						|
     * @return the vetoable change listeners
 | 
						|
     */
 | 
						|
    public VetoableChangeListener[] getVetoableChangeListeners(String n)
 | 
						|
    {
 | 
						|
      return wrapped.getVetoableChangeListeners(n);
 | 
						|
    }
 | 
						|
 | 
						|
 | 
						|
    /**
 | 
						|
     * Wraps
 | 
						|
     * {@link KeyboardFocusManager#removeKeyEventDispatcher(KeyEventDispatcher)}.
 | 
						|
     *
 | 
						|
     * @param d the key event dispatcher to remove
 | 
						|
     */
 | 
						|
    public void removeKeyEventDispatcher(KeyEventDispatcher d)
 | 
						|
    {
 | 
						|
      wrapped.removeKeyEventDispatcher(d);
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * Wraps
 | 
						|
     * {@link KeyboardFocusManager#removeKeyEventPostProcessor(KeyEventPostProcessor)}.
 | 
						|
     *
 | 
						|
     * @param p the post processor
 | 
						|
     */
 | 
						|
    public void removeKeyEventPostProcessor(KeyEventPostProcessor p)
 | 
						|
    {
 | 
						|
      wrapped.removeKeyEventPostProcessor(p);
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * Wraps
 | 
						|
     * {@link KeyboardFocusManager#removePropertyChangeListener(PropertyChangeListener)}.
 | 
						|
     *
 | 
						|
     * @param l the listener
 | 
						|
     */
 | 
						|
    public void removePropertyChangeListener(PropertyChangeListener l)
 | 
						|
    {
 | 
						|
      wrapped.removePropertyChangeListener(l);
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * Wraps
 | 
						|
     * {@link KeyboardFocusManager#removePropertyChangeListener(String, PropertyChangeListener)}.
 | 
						|
     *
 | 
						|
     * @param n the property name
 | 
						|
     * @param l the listener
 | 
						|
     */
 | 
						|
    public void removePropertyChangeListener(String n, PropertyChangeListener l)
 | 
						|
    {
 | 
						|
      wrapped.removePropertyChangeListener(n, l);
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * Wraps
 | 
						|
     * {@link KeyboardFocusManager#removeVetoableChangeListener(VetoableChangeListener)}.
 | 
						|
     *
 | 
						|
     * @param l the listener
 | 
						|
     */
 | 
						|
    public void removeVetoableChangeListener(VetoableChangeListener l)
 | 
						|
    {
 | 
						|
      wrapped.removeVetoableChangeListener(l);
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * Wraps
 | 
						|
     * {@link KeyboardFocusManager#removeVetoableChangeListener(String, VetoableChangeListener)}.
 | 
						|
     *
 | 
						|
     * @param n the property name
 | 
						|
     * @param l the listener
 | 
						|
     */
 | 
						|
    public void removeVetoableChangeListener(String n, VetoableChangeListener l)
 | 
						|
    {
 | 
						|
      wrapped.removeVetoableChangeListener(n, l);
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * Wraps
 | 
						|
     * {@link KeyboardFocusManager#setDefaultFocusTraversalKeys(int, Set)}.
 | 
						|
     *
 | 
						|
     * @param id the ID
 | 
						|
     * @param k the keystrokes
 | 
						|
     */
 | 
						|
    public void setDefaultFocusTraversalKeys(int id, Set k)
 | 
						|
    {
 | 
						|
      wrapped.setDefaultFocusTraversalKeys(id, k);
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * Wraps {@link KeyboardFocusManager#setDefaultFocusTraversalPolicy(FocusTraversalPolicy)}.
 | 
						|
     *
 | 
						|
     * @param p the focus traversal policy
 | 
						|
     */
 | 
						|
    public void setDefaultFocusTraversalPolicy(FocusTraversalPolicy p)
 | 
						|
    {
 | 
						|
      wrapped.setDefaultFocusTraversalPolicy(p);
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * Wraps
 | 
						|
     * {@link KeyboardFocusManager#setGlobalCurrentFocusCycleRoot(Container)}.
 | 
						|
     *
 | 
						|
     * @param r the focus cycle root
 | 
						|
     */
 | 
						|
    public void setGlobalCurrentFocusCycleRoot(Container r)
 | 
						|
    {
 | 
						|
      wrapped.setGlobalCurrentFocusCycleRoot(r);
 | 
						|
    }
 | 
						|
  }
 | 
						|
 | 
						|
  /**
 | 
						|
   * FOCUS_MANAGER_CLASS_PROPERTY
 | 
						|
   */
 | 
						|
  public static final String FOCUS_MANAGER_CLASS_PROPERTY =
 | 
						|
    "FocusManagerClassName";
 | 
						|
 | 
						|
  /**
 | 
						|
   * Constructor FocusManager
 | 
						|
   */
 | 
						|
  public FocusManager()
 | 
						|
  {
 | 
						|
    super();
 | 
						|
  }
 | 
						|
 | 
						|
  /**
 | 
						|
   * getCurrentManager
 | 
						|
   * @return FocusManager
 | 
						|
   */
 | 
						|
  public static FocusManager getCurrentManager()
 | 
						|
  {
 | 
						|
    KeyboardFocusManager m =
 | 
						|
      KeyboardFocusManager.getCurrentKeyboardFocusManager();
 | 
						|
    return new WrappingFocusManager(m);
 | 
						|
  }
 | 
						|
 | 
						|
  /**
 | 
						|
   * setCurrentManager
 | 
						|
   * @param manager TODO
 | 
						|
   */
 | 
						|
  public static void setCurrentManager(FocusManager manager)
 | 
						|
  {
 | 
						|
    KeyboardFocusManager.setCurrentKeyboardFocusManager(manager);
 | 
						|
  }
 | 
						|
 | 
						|
  /**
 | 
						|
   * disableSwingFocusManager
 | 
						|
   * @deprecated 1.4
 | 
						|
   */
 | 
						|
  public static void disableSwingFocusManager()
 | 
						|
  {
 | 
						|
    // TODO
 | 
						|
  }
 | 
						|
 | 
						|
  /**
 | 
						|
   * isFocusManagerEnabled
 | 
						|
   * @return boolean
 | 
						|
   * @deprecated 1.4
 | 
						|
   */
 | 
						|
  public static boolean isFocusManagerEnabled()
 | 
						|
  {
 | 
						|
    return false; // TODO
 | 
						|
  }
 | 
						|
}
 |