private ActionMap createDefaultActions() {
    ActionMapUIResource am = new ActionMapUIResource();
    Action action = new ToolBarAction();

    am.put("navigateLeft", action);
    am.put("navigateRight", action);
    am.put("navigateUp", action);
    am.put("navigateDown", action);

    return am;
  }
  /*
   * Create a new instance of ActionMap.
   */
  private ActionMap createActionMap(final JRootPane root) {
    ActionMapUIResource actionMap = new ActionMapUIResource();

    actionMap.put("press", new DefaultButtonAction(root, true));
    actionMap.put("release", new DefaultButtonAction(root, false));
    actionMap.put(
        "postPopup",
        new AbstractAction() {
          public void actionPerformed(final ActionEvent e) {
            JComponent focusOwner = getFocusOwner();
            JPopupMenu menu = focusOwner.getComponentPopupMenu();
            if (menu == null) {
              return;
            }
            Point location = focusOwner.getPopupLocation(null);
            if (location == null) {
              location = Utilities.getMousePointerScreenLocation();
              SwingUtilities.convertPointFromScreen(location, focusOwner);
            }

            menu.show(focusOwner, location.x, location.y);
          }

          public boolean isEnabled() {
            JComponent focusOwner = getFocusOwner();
            return focusOwner != null && focusOwner.getComponentPopupMenu() != null;
          }

          private JComponent getFocusOwner() {
            Component focusOwner =
                KeyboardFocusManager.getCurrentKeyboardFocusManager().getFocusOwner();
            return focusOwner instanceof JComponent ? (JComponent) focusOwner : null;
          }
        });

    return actionMap;
  }
 @Override
 public void clear() {
   loadIfNecessary();
   super.clear();
 }
 @Override
 public void remove(Object key) {
   loadIfNecessary();
   super.remove(key);
 }
 @Override
 public void put(Object key, Action action) {
   loadIfNecessary();
   super.put(key, action);
 }
 @Override
 public void setParent(ActionMap map) {
   loadIfNecessary();
   super.setParent(map);
 }