X-Git-Url: http://source.jalview.org/gitweb/?p=jalviewjs.git;a=blobdiff_plain;f=site%2Fj2s%2Fswingjs%2Fplaf%2FLazyActionMap.java;h=494d645af9361c4307e136911bcf02ee0f1d14a0;hp=3051d1eb8b7757ae62371ad930acd85b696acfc4;hb=7301a2415adab88038b291fc54caeeb3a5a47a44;hpb=6154cb57a6eac3bb1344b8342495f5bb701ee921 diff --git a/site/j2s/swingjs/plaf/LazyActionMap.java b/site/j2s/swingjs/plaf/LazyActionMap.java index 3051d1e..494d645 100644 --- a/site/j2s/swingjs/plaf/LazyActionMap.java +++ b/site/j2s/swingjs/plaf/LazyActionMap.java @@ -1,175 +1,175 @@ -/* - * Copyright (c) 2002, 2003, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Oracle designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ -package swingjs.plaf; - -import jsjavax.swing.Action; -import jsjavax.swing.ActionMap; -import jsjavax.swing.JComponent; -import jsjavax.swing.SwingUtilities; -import jsjavax.swing.UIManager; -import jsjavax.swing.plaf.ActionMapUIResource; - -/** - * An ActionMap that populates its contents as necessary. The - * contents are populated by invoking the loadActionMap - * method on the passed in Object. - * - * @author Scott Violet - */ -class LazyActionMap extends ActionMapUIResource { - /** - * Object to invoke loadActionMap on. This may be - * a Class object. - */ - private transient Object _loader; - - /** - * Installs an ActionMap that will be populated by invoking the - * loadActionMap method on the specified Class - * when necessary. - *

- * This should be used if the ActionMap can be shared. - * - * @param c JComponent to install the ActionMap on. - * @param loaderClass Class object that gets loadActionMap invoked - * on. - * @param defaultsKey Key to use to defaults table to check for - * existing map and what resulting Map will be registered on. - */ - static void installLazyActionMap(JComponent c, Class loaderClass, - String defaultsKey) { - ActionMap map = (ActionMap)UIManager.get(defaultsKey); - if (map == null) { - map = new LazyActionMap(loaderClass); -// UIManager.getLookAndFeelDefaults().put(defaultsKey, map); - } - SwingUtilities.replaceUIActionMap(c, map); - } - - /** - * Returns an ActionMap that will be populated by invoking the - * loadActionMap method on the specified Class - * when necessary. - *

- * This should be used if the ActionMap can be shared. - * - * @param c JComponent to install the ActionMap on. - * @param loaderClass Class object that gets loadActionMap invoked - * on. - * @param defaultsKey Key to use to defaults table to check for - * existing map and what resulting Map will be registered on. - */ - static ActionMap getActionMap(Class loaderClass, - String defaultsKey) { - ActionMap map = (ActionMap)UIManager.get(defaultsKey); - if (map == null) { - map = new LazyActionMap(loaderClass); -//SwingJS temp UIManager.getLookAndFeelDefaults().put(defaultsKey, map); - } - return map; - } - - - private LazyActionMap(Class loader) { - _loader = loader; - } - - public void put(Action action) { - put(action.getValue(Action.NAME), action); - } - - public void put(Object key, Action action) { - loadIfNecessary(); - super.put(key, action); - } - - public Action get(Object key) { - loadIfNecessary(); - return super.get(key); - } - - public void remove(Object key) { - loadIfNecessary(); - super.remove(key); - } - - public void clear() { - loadIfNecessary(); - super.clear(); - } - - public Object[] keys() { - loadIfNecessary(); - return super.keys(); - } - - public int size() { - loadIfNecessary(); - return super.size(); - } - - public Object[] allKeys() { - loadIfNecessary(); - return super.allKeys(); - } - - public void setParent(ActionMap map) { - loadIfNecessary(); - super.setParent(map); - } - - private void loadIfNecessary() { - if (_loader != null) { - /** - * @j2sNative - * - * this._loader.loadActionMap(this); - * this._loader = null; - */ - {} -// Object loader = _loader; -// -// _loader = null; -// Class klass = (Class)loader; -// try { -// Method method = klass.getDeclaredMethod("loadActionMap", -// new Class[] { LazyActionMap.class }); -// method.invoke(klass, new Object[] { this }); -// } catch (NoSuchMethodException nsme) { -// assert false : "LazyActionMap unable to load actions " + -// klass; -// } catch (IllegalAccessException iae) { -// assert false : "LazyActionMap unable to load actions " + -// iae; -// } catch (InvocationTargetException ite) { -// assert false : "LazyActionMap unable to load actions " + -// ite; -// } catch (IllegalArgumentException iae) { -// assert false : "LazyActionMap unable to load actions " + -// iae; -// } - } - } -} +/* + * Copyright (c) 2002, 2003, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package swingjs.plaf; + +import jsjavax.swing.Action; +import jsjavax.swing.ActionMap; +import jsjavax.swing.JComponent; +import jsjavax.swing.SwingUtilities; +import jsjavax.swing.UIManager; +import jsjavax.swing.plaf.ActionMapUIResource; + +/** + * An ActionMap that populates its contents as necessary. The + * contents are populated by invoking the loadActionMap + * method on the passed in Object. + * + * @author Scott Violet + */ +class LazyActionMap extends ActionMapUIResource { + /** + * Object to invoke loadActionMap on. This may be + * a Class object. + */ + private transient Object _loader; + + /** + * Installs an ActionMap that will be populated by invoking the + * loadActionMap method on the specified Class + * when necessary. + *

+ * This should be used if the ActionMap can be shared. + * + * @param c JComponent to install the ActionMap on. + * @param loaderClass Class object that gets loadActionMap invoked + * on. + * @param defaultsKey Key to use to defaults table to check for + * existing map and what resulting Map will be registered on. + */ + static void installLazyActionMap(JComponent c, Class loaderClass, + String defaultsKey) { + ActionMap map = (ActionMap)UIManager.get(defaultsKey); + if (map == null) { + map = new LazyActionMap(loaderClass); +// UIManager.getLookAndFeelDefaults().put(defaultsKey, map); + } + SwingUtilities.replaceUIActionMap(c, map); + } + + /** + * Returns an ActionMap that will be populated by invoking the + * loadActionMap method on the specified Class + * when necessary. + *

+ * This should be used if the ActionMap can be shared. + * + * @param c JComponent to install the ActionMap on. + * @param loaderClass Class object that gets loadActionMap invoked + * on. + * @param defaultsKey Key to use to defaults table to check for + * existing map and what resulting Map will be registered on. + */ + static ActionMap getActionMap(Class loaderClass, + String defaultsKey) { + ActionMap map = (ActionMap)UIManager.get(defaultsKey); + if (map == null) { + map = new LazyActionMap(loaderClass); +//SwingJS temp UIManager.getLookAndFeelDefaults().put(defaultsKey, map); + } + return map; + } + + + private LazyActionMap(Class loader) { + _loader = loader; + } + + public void put(Action action) { + put(action.getValue(Action.NAME), action); + } + + public void put(Object key, Action action) { + loadIfNecessary(); + super.put(key, action); + } + + public Action get(Object key) { + loadIfNecessary(); + return super.get(key); + } + + public void remove(Object key) { + loadIfNecessary(); + super.remove(key); + } + + public void clear() { + loadIfNecessary(); + super.clear(); + } + + public Object[] keys() { + loadIfNecessary(); + return super.keys(); + } + + public int size() { + loadIfNecessary(); + return super.size(); + } + + public Object[] allKeys() { + loadIfNecessary(); + return super.allKeys(); + } + + public void setParent(ActionMap map) { + loadIfNecessary(); + super.setParent(map); + } + + private void loadIfNecessary() { + if (_loader != null) { + /** + * @j2sNative + * + * this._loader.loadActionMap(this); + * this._loader = null; + */ + {} +// Object loader = _loader; +// +// _loader = null; +// Class klass = (Class)loader; +// try { +// Method method = klass.getDeclaredMethod("loadActionMap", +// new Class[] { LazyActionMap.class }); +// method.invoke(klass, new Object[] { this }); +// } catch (NoSuchMethodException nsme) { +// assert false : "LazyActionMap unable to load actions " + +// klass; +// } catch (IllegalAccessException iae) { +// assert false : "LazyActionMap unable to load actions " + +// iae; +// } catch (InvocationTargetException ite) { +// assert false : "LazyActionMap unable to load actions " + +// ite; +// } catch (IllegalArgumentException iae) { +// assert false : "LazyActionMap unable to load actions " + +// iae; +// } + } + } +}