/**
  * Constructs a new {@code RecentRelationsPopupMenu}.
  *
  * @param recentRelations list of recent relations
  * @param keystroke key stroke for the first menu item
  */
 public RecentRelationsPopupMenu(List<Relation> recentRelations, KeyStroke keystroke) {
   boolean first = true;
   for (Relation relation : recentRelations) {
     if (!isRelationListable(relation)) continue;
     JMenuItem menuItem = new RecentRelationsMenuItem(relation);
     if (first) {
       menuItem.setAccelerator(keystroke);
       first = false;
     }
     menuItem.setIcon(
         ImageProvider.getPadded(relation, ImageProvider.ImageSizes.MENU.getImageDimension()));
     add(menuItem);
   }
 }
 /**
  * Internal method that stuffs information into the rendering component provided that it's a kind
  * of JLabel.
  *
  * @param def the rendering component
  * @param value the OsmPrimitive to render
  * @param fast whether the icons should be loaded fast since many items are being displayed
  * @return the modified rendering component
  */
 private Component renderer(Component def, OsmPrimitive value, boolean fast) {
   if (value != null && def instanceof JLabel) {
     ((JLabel) def).setText(getComponentText(value));
     final ImageIcon icon =
         fast
             ? ImageProvider.get(value.getType())
             : ImageProvider.getPadded(
                 value,
                 // Height of component no yet known, assume the default 16px.
                 ImageProvider.ImageSizes.SMALLICON.getImageDimension());
     if (icon != null) {
       ((JLabel) def).setIcon(icon);
     } else {
       Main.warn("Null icon for " + value.getDisplayType());
     }
     ((JLabel) def).setToolTipText(getComponentToolTipText(value));
   }
   return def;
 }