public ShortcutsTableData() {
      allActionIds = new ArrayList<String>();
      Iterator<String> iterator = ActionManager.getActionIds();
      while (iterator.hasNext()) allActionIds.add(iterator.next());
      Collections.sort(allActionIds, ACTIONS_COMPARATOR);

      final int nbActions = allActionIds.size();
      db = new HashMap<String, HashMap<Integer, Object>>(nbActions);

      int nbRows = allActionIds.size();
      data = new Object[nbRows][NUM_OF_COLUMNS];

      for (String actionId : allActionIds) {
        ActionDescriptor actionDescriptor = ActionProperties.getActionDescriptor(actionId);

        HashMap<Integer, Object> actionProperties = new HashMap<Integer, Object>();

        ImageIcon actionIcon = actionDescriptor.getIcon();
        if (actionIcon == null) actionIcon = transparentIcon;
        String actionLabel = actionDescriptor.getLabel();

        /* 0 -> action's icon & name pair */
        actionProperties.put(
            description,
            new Pair<ImageIcon, String>(
                IconManager.getPaddedIcon(actionIcon, new Insets(0, 4, 0, 4)), actionLabel));
        /* 1 -> action's accelerator */
        actionProperties.put(accelerator, ActionKeymap.getAccelerator(actionId));
        /* 2 -> action's alternate accelerator */
        actionProperties.put(alt_accelerator, ActionKeymap.getAlternateAccelerator(actionId));
        /* 3 -> action's description */
        actionProperties.put(tooltips, actionDescriptor.getDescription());

        db.put(actionId, actionProperties);
      }
    }