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