/* * Sun Public License Notice * * The contents of this file are subject to the Sun Public License * Version 1.0 (the "License"). You may not use this file except in * compliance with the License. A copy of the License is available at * http://www.sun.com/ * * The Original Code is NetBeans. The Initial Developer of the Original * Code is Sun Microsystems, Inc. Portions Copyright 1997-2003 Sun * Microsystems, Inc. All Rights Reserved. */ package org.openide.windows; import javax.swing.Action; import javax.swing.ActionMap; import javax.swing.JComponent; // This is almost copy of org.openide.util.UtilitiesCompositeActionMap. /** ActionMap that delegates to current action map of provided component. * Used in <code>TopComopnent</code> lookup. * <p><b>Note: This action map is 'passive', i.e putting new mappings * into it makes no effect. Could be changed later.</b> * * @author Peter Zavadsky */ final class DelegateActionMap extends ActionMap { private JComponent component; public DelegateActionMap(JComponent c) { this.component = c; } public int size() { return keys ().length; } public Action get(Object key) { javax.swing.ActionMap m = component.getActionMap (); if (m != null) { Action a = m.get (key); if (a != null) { return a; } } return null; } public Object[] allKeys() { return keys (true); } public Object[] keys() { return keys (false); } private Object[] keys(boolean all) { java.util.Set keys = new java.util.HashSet (); javax.swing.ActionMap m = component.getActionMap (); if (m != null) { java.util.List l; if (all) { l = java.util.Arrays.asList (m.allKeys ()); } else { l = java.util.Arrays.asList (m.keys ()); } keys.addAll (l); } return keys.toArray (); } // // Not implemented // public void remove(Object key) { } public void setParent(ActionMap map) { } public void clear() { } public void put(Object key, Action action) { } public ActionMap getParent() { return null; } }