Index: trunk/src/org/openstreetmap/josm/data/imagery/ImageryInfo.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/imagery/ImageryInfo.java	(revision 15048)
+++ trunk/src/org/openstreetmap/josm/data/imagery/ImageryInfo.java	(revision 15049)
@@ -10,4 +10,5 @@
 import java.util.Collection;
 import java.util.Collections;
+import java.util.EnumMap;
 import java.util.List;
 import java.util.Locale;
@@ -43,4 +44,5 @@
 import org.openstreetmap.josm.tools.CheckParameterUtil;
 import org.openstreetmap.josm.tools.ImageProvider;
+import org.openstreetmap.josm.tools.ImageProvider.ImageSizes;
 import org.openstreetmap.josm.tools.LanguageInfo;
 import org.openstreetmap.josm.tools.Logging;
@@ -123,4 +125,6 @@
         private final String category;
         private final String description;
+        private static final Map<ImageSizes, Map<ImageryCategory, ImageIcon>> iconCache =
+                Collections.synchronizedMap(new EnumMap<>(ImageSizes.class));
 
         ImageryCategory(String category, String description) {
@@ -143,4 +147,16 @@
         public final String getDescription() {
             return description;
+        }
+
+        /**
+         * Returns the category icon at the given size.
+         * @param size icon wanted size
+         * @return the category icon at the given size
+         * @since 15049
+         */
+        public final ImageIcon getIcon(ImageSizes size) {
+            return iconCache
+                    .computeIfAbsent(size, x -> Collections.synchronizedMap(new EnumMap<>(ImageryCategory.class)))
+                    .computeIfAbsent(this, x -> ImageProvider.get("data/imagery", x.category, size));
         }
 
Index: trunk/src/org/openstreetmap/josm/gui/preferences/imagery/ImageryPreference.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/preferences/imagery/ImageryPreference.java	(revision 15048)
+++ trunk/src/org/openstreetmap/josm/gui/preferences/imagery/ImageryPreference.java	(revision 15049)
@@ -25,4 +25,5 @@
 import java.util.Map;
 import java.util.Objects;
+import java.util.Optional;
 import java.util.Set;
 import java.util.stream.Collectors;
@@ -31,4 +32,5 @@
 import javax.swing.BorderFactory;
 import javax.swing.Box;
+import javax.swing.ImageIcon;
 import javax.swing.JButton;
 import javax.swing.JLabel;
@@ -56,4 +58,5 @@
 import org.openstreetmap.josm.data.imagery.ImageryInfo;
 import org.openstreetmap.josm.data.imagery.ImageryInfo.ImageryBounds;
+import org.openstreetmap.josm.data.imagery.ImageryInfo.ImageryCategory;
 import org.openstreetmap.josm.data.imagery.ImageryLayerInfo;
 import org.openstreetmap.josm.data.imagery.OffsetBookmark;
@@ -75,4 +78,5 @@
 import org.openstreetmap.josm.tools.GBC;
 import org.openstreetmap.josm.tools.ImageProvider;
+import org.openstreetmap.josm.tools.ImageProvider.ImageSizes;
 import org.openstreetmap.josm.tools.LanguageInfo;
 import org.openstreetmap.josm.tools.Logging;
@@ -335,8 +339,9 @@
 
             TableColumnModel mod = defaultTable.getColumnModel();
-            mod.getColumn(2).setPreferredWidth(800);
-            mod.getColumn(2).setCellRenderer(new ImageryURLTableCellRenderer(layerInfo.getLayers()));
-            mod.getColumn(1).setPreferredWidth(400);
-            mod.getColumn(1).setCellRenderer(new ImageryNameTableCellRenderer());
+            mod.getColumn(3).setPreferredWidth(775);
+            mod.getColumn(3).setCellRenderer(new ImageryURLTableCellRenderer(layerInfo.getLayers()));
+            mod.getColumn(2).setPreferredWidth(475);
+            mod.getColumn(2).setCellRenderer(new ImageryNameTableCellRenderer());
+            mod.getColumn(0).setPreferredWidth(50);
             mod.getColumn(0).setPreferredWidth(50);
 
@@ -757,5 +762,5 @@
              */
             public ImageryDefaultLayerTableModel() {
-                setColumnIdentifiers(new String[]{"", tr("Menu Name (Default)"), tr("Imagery URL (Default)")});
+                setColumnIdentifiers(new String[]{"", "", tr("Menu Name (Default)"), tr("Imagery URL (Default)")});
             }
 
@@ -775,12 +780,20 @@
 
             @Override
+            public Class<?> getColumnClass(int columnIndex) {
+                return columnIndex == 0 ? ImageIcon.class : super.getColumnClass(columnIndex);
+            }
+
+            @Override
             public Object getValueAt(int row, int column) {
                 ImageryInfo info = layerInfo.getAllDefaultLayers().get(row);
+                ImageryCategory cat = Optional.ofNullable(info.getImageryCategory()).orElse(ImageryCategory.OTHER);
                 switch (column) {
                 case 0:
+                    return cat.getIcon(ImageSizes.TABLE);
+                case 1:
                     return info.getCountryCode();
-                case 1:
+                case 2:
                     return info;
-                case 2:
+                case 3:
                     return info.getExtendedUrl();
                 }
Index: trunk/src/org/openstreetmap/josm/tools/ImageProvider.java
===================================================================
--- trunk/src/org/openstreetmap/josm/tools/ImageProvider.java	(revision 15048)
+++ trunk/src/org/openstreetmap/josm/tools/ImageProvider.java	(revision 15049)
@@ -150,4 +150,8 @@
          */
         LAYER(Config.getPref().getInt("iconsize.layer", 16)),
+        /** Table icon size
+         * @since 15049
+         */
+        TABLE(SMALLICON),
         /** Toolbar button icon size
          * @since 9253
