diff --git a/src/org/openstreetmap/josm/data/osm/DataSet.java b/src/org/openstreetmap/josm/data/osm/DataSet.java
index fe3febc..25b6a7b 100644
--- a/src/org/openstreetmap/josm/data/osm/DataSet.java
+++ b/src/org/openstreetmap/josm/data/osm/DataSet.java
@@ -312,7 +312,13 @@ public final class DataSet implements Data, Cloneable, ProjectionChangeListener
      */
     private final QuadBuckets<Node> nodes = new QuadBuckets<>();
 
-    private <T extends OsmPrimitive> Collection<T> getPrimitives(Predicate<? super OsmPrimitive> predicate) {
+    /**
+     * Gets a filtered collection of primitives matching the given predicate.
+     * @param <T> The primitive type.
+     * @param predicate The predicate to match
+     * @return The list of primtives.
+     */
+    public <T extends OsmPrimitive> Collection<T> getPrimitives(java.util.function.Predicate<? super OsmPrimitive> predicate) {
         return new SubclassFilteredCollection<>(allPrimitives, predicate);
     }
 
diff --git a/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPreset.java b/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPreset.java
index 9db8693..27703af 100644
--- a/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPreset.java
+++ b/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPreset.java
@@ -85,10 +85,25 @@ public class TaggingPreset extends AbstractAction implements ActiveLayerChangeLi
     /** Prefix of preset icon loading failure error message */
     public static final String PRESET_ICON_ERROR_MSG_PREFIX = "Could not get presets icon ";
 
+    /**
+     * The preset group this preset belongs to.
+     */
     public TaggingPresetMenu group;
+
+    /**
+     * The name of the tagging preset.
+     * @see #getRawName()
+     */
     public String name;
+    /**
+     * The icon name that was used for this preset.
+     */
     public String iconName;
     public String name_context;
+    /**
+     * A cache for the local name. Should never be accessed directly.
+     * @see #getLocaleName()
+     */
     public String locale_name;
     public boolean preset_name_label;
 
@@ -127,6 +142,10 @@ public class TaggingPreset extends AbstractAction implements ActiveLayerChangeLi
                     tr("Use preset ''{0}''", getLocaleName()));
     }
 
+    /**
+     * Gets the localized version of the name
+     * @return The name that should be displayed to the user.
+     */
     public String getLocaleName() {
         if (locale_name == null) {
             if (name_context != null) {
@@ -188,12 +207,7 @@ public class TaggingPreset extends AbstractAction implements ActiveLayerChangeLi
             @Override
             public void finished(final ImageResource result) {
                 if (result != null) {
-                    GuiHelper.runInEDT(new Runnable() {
-                        @Override
-                        public void run() {
-                            result.attachImageIcon(TaggingPreset.this);
-                        }
-                    });
+                    GuiHelper.runInEDT(() -> result.attachImageIcon(TaggingPreset.this));
                 } else {
                     Main.warn(TaggingPreset.this + ": " + PRESET_ICON_ERROR_MSG_PREFIX + iconName);
                 }
@@ -385,12 +399,7 @@ public class TaggingPreset extends AbstractAction implements ActiveLayerChangeLi
                 r.addMember(rm);
                 members.add(rm);
             }
-            SwingUtilities.invokeLater(new Runnable() {
-                @Override
-                public void run() {
-                    RelationEditor.getEditor(Main.getLayerManager().getEditLayer(), r, members).setVisible(true);
-                }
-            });
+            SwingUtilities.invokeLater(() -> RelationEditor.getEditor(Main.getLayerManager().getEditLayer(), r, members).setVisible(true));
         }
         ds.setSelected(ds.getSelected()); // force update
     }
diff --git a/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPresetHandler.java b/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPresetHandler.java
index a53f041..1d1fd20 100644
--- a/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPresetHandler.java
+++ b/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPresetHandler.java
@@ -7,8 +7,20 @@ import java.util.List;
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
 import org.openstreetmap.josm.data.osm.Tag;
 
+/**
+ * This interface needs to be implemented in order to display a tagging preset. It allows the preset dialog to query the primitives it should
+ * be displayed for and modify them.
+ */
 public interface TaggingPresetHandler {
+    /**
+     * Gets the selection the preset should be applied to.
+     * @return A collection of primitives.
+     */
     Collection<OsmPrimitive> getSelection();
 
+    /**
+     * Update the given tags on the selection.
+     * @param tags The tags to update.
+     */
     void updateTags(List<Tag> tags);
 }
diff --git a/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPresetListener.java b/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPresetListener.java
index c0d3005..7856dc6 100644
--- a/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPresetListener.java
+++ b/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPresetListener.java
@@ -4,7 +4,9 @@ package org.openstreetmap.josm.gui.tagging.presets;
 /**
  * Notification of tagging presets events.
  * @since 7100
+ * @see TaggingPresets#addListener(TaggingPresetListener)
  */
+@FunctionalInterface
 public interface TaggingPresetListener {
 
     /**
diff --git a/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPresetReader.java b/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPresetReader.java
index c5999e4..78a1efa 100644
--- a/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPresetReader.java
+++ b/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPresetReader.java
@@ -43,7 +43,6 @@ import org.openstreetmap.josm.gui.tagging.presets.items.Text;
 import org.openstreetmap.josm.io.CachedFile;
 import org.openstreetmap.josm.io.UTFInputStreamReader;
 import org.openstreetmap.josm.tools.Predicates;
-import org.openstreetmap.josm.tools.Utils;
 import org.openstreetmap.josm.tools.XmlObjectParser;
 import org.xml.sax.SAXException;
 
@@ -226,7 +225,7 @@ public final class TaggingPresetReader {
                     tp.group = lastmenu;
                     if (all.contains(tp)) {
                         lastmenuOriginal = tp;
-                        tp = (TaggingPresetMenu) Utils.filter(all, Predicates.<TaggingPreset>equalTo(tp)).iterator().next();
+                        tp = (TaggingPresetMenu) all.stream().filter(Predicates.equalTo(tp)).findFirst().get();
                         lastmenuOriginal.group = null;
                     } else {
                         tp.setDisplayName();
diff --git a/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPresetSearchDialog.java b/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPresetSearchDialog.java
index 50a6d6c..5655f9d 100644
--- a/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPresetSearchDialog.java
+++ b/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPresetSearchDialog.java
@@ -4,7 +4,6 @@ package org.openstreetmap.josm.gui.tagging.presets;
 import static org.openstreetmap.josm.tools.I18n.tr;
 
 import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
 
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.osm.DataSet;
@@ -36,12 +35,7 @@ public final class TaggingPresetSearchDialog extends ExtendedDialog {
         selector = new TaggingPresetSelector(true, true);
         setContent(selector, false);
         DataSet.addSelectionListener(selector);
-        selector.setDblClickListener(new ActionListener() {
-            @Override
-            public void actionPerformed(ActionEvent e) {
-                buttonAction(0, null);
-            }
-        });
+        selector.setDblClickListener(e -> buttonAction(0, null));
     }
 
     @Override
diff --git a/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPresetSearchPrimitiveDialog.java b/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPresetSearchPrimitiveDialog.java
index fb1d850..a65837d 100644
--- a/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPresetSearchPrimitiveDialog.java
+++ b/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPresetSearchPrimitiveDialog.java
@@ -4,7 +4,6 @@ package org.openstreetmap.josm.gui.tagging.presets;
 import static org.openstreetmap.josm.tools.I18n.tr;
 
 import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
 import java.awt.event.KeyEvent;
 import java.util.HashSet;
 import java.util.Set;
@@ -14,7 +13,6 @@ import org.openstreetmap.josm.actions.JosmAction;
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
 import org.openstreetmap.josm.gui.ExtendedDialog;
 import org.openstreetmap.josm.tools.Shortcut;
-import org.openstreetmap.josm.tools.Utils;
 
 /**
  * A dialog that allows to select a preset and then selects all matching OSM objects.
@@ -70,12 +68,7 @@ public final class TaggingPresetSearchPrimitiveDialog extends ExtendedDialog {
         super(Main.parent, tr("Presets"), new String[] {tr("Search"), tr("Cancel")});
         selector = new TaggingPresetSelector(false, false);
         setContent(selector, false);
-        selector.setDblClickListener(new ActionListener() {
-            @Override
-            public void actionPerformed(ActionEvent e) {
-                buttonAction(0, null);
-            }
-        });
+        selector.setDblClickListener(e -> buttonAction(0, null));
     }
 
     @Override
@@ -92,7 +85,8 @@ public final class TaggingPresetSearchPrimitiveDialog extends ExtendedDialog {
         if (buttonIndex == 0) {
             TaggingPreset preset = selector.getSelectedPresetAndUpdateClassification();
             if (preset != null) {
-                final Set<OsmPrimitive> matching = new HashSet<>(Utils.filter(Main.getLayerManager().getEditDataSet().allPrimitives(), preset));
+
+                final Set<OsmPrimitive> matching = new HashSet<>(Main.getLayerManager().getEditDataSet().getPrimitives(preset));
                 Main.getLayerManager().getEditDataSet().setSelected(matching);
             }
         }
diff --git a/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPresetSelector.java b/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPresetSelector.java
index 755d716..15c55df 100644
--- a/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPresetSelector.java
+++ b/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPresetSelector.java
@@ -7,8 +7,6 @@ import java.awt.BorderLayout;
 import java.awt.Component;
 import java.awt.Dimension;
 import java.awt.event.ActionEvent;
-import java.awt.event.ItemEvent;
-import java.awt.event.ItemListener;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
@@ -46,7 +44,6 @@ import org.openstreetmap.josm.gui.tagging.presets.items.Roles;
 import org.openstreetmap.josm.gui.tagging.presets.items.Roles.Role;
 import org.openstreetmap.josm.gui.widgets.PopupMenuLauncher;
 import org.openstreetmap.josm.gui.widgets.SearchTextResultListPanel;
-import org.openstreetmap.josm.tools.Predicate;
 import org.openstreetmap.josm.tools.Utils;
 
 /**
@@ -188,12 +185,7 @@ public class TaggingPresetSelector extends SearchTextResultListPanel<TaggingPres
             ckOnlyApplicable = new JCheckBox();
             ckOnlyApplicable.setText(tr("Show only applicable to selection"));
             pnChecks.add(ckOnlyApplicable);
-            ckOnlyApplicable.addItemListener(new ItemListener() {
-                @Override
-                public void itemStateChanged(ItemEvent e) {
-                    filterItems();
-                }
-            });
+            ckOnlyApplicable.addItemListener(e -> filterItems());
         } else {
             ckOnlyApplicable = null;
         }
@@ -202,12 +194,7 @@ public class TaggingPresetSelector extends SearchTextResultListPanel<TaggingPres
             ckSearchInTags = new JCheckBox();
             ckSearchInTags.setText(tr("Search in tags"));
             ckSearchInTags.setSelected(SEARCH_IN_TAGS.get());
-            ckSearchInTags.addItemListener(new ItemListener() {
-                @Override
-                public void itemStateChanged(ItemEvent e) {
-                    filterItems();
-                }
-            });
+            ckSearchInTags.addItemListener(e -> filterItems());
             pnChecks.add(ckSearchInTags);
         } else {
             ckSearchInTags = null;
@@ -246,12 +233,7 @@ public class TaggingPresetSelector extends SearchTextResultListPanel<TaggingPres
                 text, onlyApplicable, inTags, getTypesInSelection(), selected);
 
         final TaggingPreset oldPreset = getSelectedPreset();
-        lsResultModel.setItems(Utils.transform(result, new Utils.Function<PresetClassification, TaggingPreset>() {
-            @Override
-            public TaggingPreset apply(PresetClassification x) {
-                return x.preset;
-            }
-        }));
+        lsResultModel.setItems(Utils.transform(result, x -> x.preset));
         final TaggingPreset newPreset = getSelectedPreset();
         if (!Objects.equals(oldPreset, newPreset)) {
             int[] indices = lsResult.getSelectedIndices();
@@ -298,14 +280,8 @@ public class TaggingPresetSelector extends SearchTextResultListPanel<TaggingPres
 
                     if (!suitable && preset.types.contains(TaggingPresetType.RELATION)
                             && preset.roles != null && !preset.roles.roles.isEmpty()) {
-                        final Predicate<Role> memberExpressionMatchesOnePrimitive = new Predicate<Role>() {
-                            @Override
-                            public boolean evaluate(Role object) {
-                                return object.memberExpression != null
-                                        && Utils.exists(selectedPrimitives, object.memberExpression);
-                            }
-                        };
-                        suitable = Utils.exists(preset.roles.roles, memberExpressionMatchesOnePrimitive);
+                        suitable = preset.roles.roles.stream().anyMatch(
+                                object -> object.memberExpression != null && Utils.exists(selectedPrimitives, object.memberExpression));
                         // keep the preset to allow the creation of new relations
                     }
                     if (!suitable) {
diff --git a/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPresets.java b/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPresets.java
index fa84476..4927fdd 100644
--- a/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPresets.java
+++ b/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPresets.java
@@ -14,8 +14,7 @@ import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
 import org.openstreetmap.josm.gui.MenuScroller;
 import org.openstreetmap.josm.gui.tagging.ac.AutoCompletionManager;
-import org.openstreetmap.josm.tools.Predicate;
-import org.openstreetmap.josm.tools.Utils;
+import org.openstreetmap.josm.tools.SubclassFilteredCollection;
 
 /**
  * Class holding Tagging Presets and allowing to manage them.
@@ -107,12 +106,7 @@ public final class TaggingPresets {
      */
     public static Collection<TaggingPreset> getMatchingPresets(final Collection<TaggingPresetType> t,
                                                                final Map<String, String> tags, final boolean onlyShowable) {
-        return Utils.filter(getTaggingPresets(), new Predicate<TaggingPreset>() {
-            @Override
-            public boolean evaluate(TaggingPreset object) {
-                return object.matches(t, tags, onlyShowable);
-            }
-        });
+        return SubclassFilteredCollection.filter(getTaggingPresets(), preset -> preset.matches(t, tags, onlyShowable));
     }
 
     /**
@@ -124,12 +118,7 @@ public final class TaggingPresets {
      * @since 9265
      */
     public static Collection<TaggingPreset> getMatchingPresets(final OsmPrimitive primitive) {
-        return Utils.filter(getTaggingPresets(), new Predicate<TaggingPreset>() {
-            @Override
-            public boolean evaluate(TaggingPreset object) {
-                return object.evaluate(primitive);
-            }
-        });
+        return SubclassFilteredCollection.filter(getTaggingPresets(), preset -> preset.evaluate(primitive));
     }
 
     /**
diff --git a/src/org/openstreetmap/josm/gui/tagging/presets/items/ComboMultiSelect.java b/src/org/openstreetmap/josm/gui/tagging/presets/items/ComboMultiSelect.java
index 0243a8d..654c73f 100644
--- a/src/org/openstreetmap/josm/gui/tagging/presets/items/ComboMultiSelect.java
+++ b/src/org/openstreetmap/josm/gui/tagging/presets/items/ComboMultiSelect.java
@@ -20,6 +20,7 @@ import java.util.Map;
 import java.util.Map.Entry;
 import java.util.Set;
 import java.util.TreeSet;
+import java.util.stream.Collectors;
 
 import javax.swing.ImageIcon;
 import javax.swing.JComponent;
@@ -364,17 +365,11 @@ public abstract class ComboMultiSelect extends KeyedItem {
      */
     public Collection<String> getDisplayValues() {
         initListEntries();
-        return Utils.transform(lhm.values(), new Utils.Function<PresetListEntry, String>() {
-            @Override
-            public String apply(PresetListEntry x) {
-                return x.getDisplayValue(true);
-            }
-        });
+        return lhm.values().stream().map(x -> x.getDisplayValue(true)).collect(Collectors.toList());
     }
 
     @Override
     public boolean addToPanel(JPanel p, Collection<OsmPrimitive> sel, boolean presetInitiallyMatches) {
-
         initListEntries();
 
         // find out if our key is already used in the selection.
diff --git a/src/org/openstreetmap/josm/gui/tagging/presets/items/KeyedItem.java b/src/org/openstreetmap/josm/gui/tagging/presets/items/KeyedItem.java
index 56c91a5..e640d7c 100644
--- a/src/org/openstreetmap/josm/gui/tagging/presets/items/KeyedItem.java
+++ b/src/org/openstreetmap/josm/gui/tagging/presets/items/KeyedItem.java
@@ -7,6 +7,7 @@ import java.util.Collection;
 import java.util.EnumSet;
 import java.util.HashMap;
 import java.util.Map;
+import java.util.NoSuchElementException;
 import java.util.SortedSet;
 import java.util.TreeSet;
 
@@ -91,23 +92,46 @@ public abstract class KeyedItem extends TaggingPresetItem {
         }
     }
 
+    /**
+     * Usage information on a
+     */
     protected static class Usage {
-        public SortedSet<String> values; // NOSONAR
+        /**
+         * A set of values that were used for this key.
+         */
+        public final SortedSet<String> values = new TreeSet<>();; // NOSONAR
         private boolean hadKeys;
         private boolean hadEmpty;
 
+        /**
+         * Check if there is exactly one value for this key.
+         * @return <code>true</code> if there was exactly one value.
+         */
         public boolean hasUniqueValue() {
             return values.size() == 1 && !hadEmpty;
         }
 
+        /**
+         * Check if this key was not used in any primitive
+         * @return <code>true</code> if it was unused.
+         */
         public boolean unused() {
             return values.isEmpty();
         }
 
+        /**
+         * Get the first value available.
+         * @return The first value
+         * @throws NoSuchElementException if there is no such value.
+         */
         public String getFirst() {
             return values.first();
         }
 
+        /**
+         * Check if we encountered any primitive that had any keys
+         * @return <code>true</code> if any of the primtives had any tags.
+         */
         public boolean hadKeys() {
             return hadKeys;
         }
@@ -115,7 +139,6 @@ public abstract class KeyedItem extends TaggingPresetItem {
 
     protected static Usage determineTextUsage(Collection<OsmPrimitive> sel, String key) {
         Usage returnValue = new Usage();
-        returnValue.values = new TreeSet<>();
         for (OsmPrimitive s : sel) {
             String v = s.get(key);
             if (v != null) {
@@ -131,9 +154,7 @@ public abstract class KeyedItem extends TaggingPresetItem {
     }
 
     protected static Usage determineBooleanUsage(Collection<OsmPrimitive> sel, String key) {
-
         Usage returnValue = new Usage();
-        returnValue.values = new TreeSet<>();
         for (OsmPrimitive s : sel) {
             String booleanValue = OsmUtils.getNamedOsmBoolean(s.get(key));
             if (booleanValue != null) {
diff --git a/src/org/openstreetmap/josm/gui/tagging/presets/items/PresetLink.java b/src/org/openstreetmap/josm/gui/tagging/presets/items/PresetLink.java
index 05587f1..0f2d9e2 100644
--- a/src/org/openstreetmap/josm/gui/tagging/presets/items/PresetLink.java
+++ b/src/org/openstreetmap/josm/gui/tagging/presets/items/PresetLink.java
@@ -5,6 +5,7 @@ import java.awt.event.MouseAdapter;
 import java.awt.event.MouseEvent;
 import java.util.Collection;
 import java.util.List;
+import java.util.Optional;
 
 import javax.swing.JLabel;
 import javax.swing.JPanel;
@@ -16,8 +17,6 @@ import org.openstreetmap.josm.gui.tagging.presets.TaggingPresetItem;
 import org.openstreetmap.josm.gui.tagging.presets.TaggingPresetLabel;
 import org.openstreetmap.josm.gui.tagging.presets.TaggingPresets;
 import org.openstreetmap.josm.tools.GBC;
-import org.openstreetmap.josm.tools.Predicate;
-import org.openstreetmap.josm.tools.Utils;
 
 /**
  * Adds a link to an other preset.
@@ -31,14 +30,10 @@ public class PresetLink extends TaggingPresetItem {
     @Override
     public boolean addToPanel(JPanel p, Collection<OsmPrimitive> sel, boolean presetInitiallyMatches) {
         final String presetName = preset_name;
-        final TaggingPreset t = Utils.filter(TaggingPresets.getTaggingPresets(), new Predicate<TaggingPreset>() {
-            @Override
-            public boolean evaluate(TaggingPreset object) {
-                return presetName.equals(object.name);
-            }
-        }).iterator().next();
-        if (t == null)
+        Optional<TaggingPreset> found = TaggingPresets.getTaggingPresets().stream().filter(preset -> presetName.equals(preset.name)).findFirst();
+        if (!found.isPresent())
             return false;
+        TaggingPreset t = found.get();
         JLabel lbl = new TaggingPresetLabel(t);
         lbl.addMouseListener(new MouseAdapter() {
             @Override
diff --git a/src/org/openstreetmap/josm/gui/tagging/presets/items/Text.java b/src/org/openstreetmap/josm/gui/tagging/presets/items/Text.java
index c368865..2f92f89 100644
--- a/src/org/openstreetmap/josm/gui/tagging/presets/items/Text.java
+++ b/src/org/openstreetmap/josm/gui/tagging/presets/items/Text.java
@@ -6,8 +6,6 @@ import static org.openstreetmap.josm.tools.I18n.tr;
 import java.awt.Component;
 import java.awt.GridBagLayout;
 import java.awt.Insets;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
 import java.text.NumberFormat;
 import java.text.ParseException;
 import java.util.Collection;
@@ -142,12 +140,7 @@ public class Text extends KeyedItem {
                     // TODO there must be a better way to parse a number like "+3" than this.
                     final int buttonvalue = (NumberFormat.getIntegerInstance().parse(ai.replace("+", ""))).intValue();
                     if (auto_increment_selected == buttonvalue) aibutton.setSelected(true);
-                    aibutton.addActionListener(new ActionListener() {
-                        @Override
-                        public void actionPerformed(ActionEvent e) {
-                            auto_increment_selected = buttonvalue;
-                        }
-                    });
+                    aibutton.addActionListener(e -> auto_increment_selected = buttonvalue);
                     pnl.add(aibutton, GBC.std());
                 } catch (ParseException x) {
                     Main.error("Cannot parse auto-increment value of '" + ai + "' into an integer");
@@ -166,12 +159,9 @@ public class Text extends KeyedItem {
             releasebutton.setToolTipText(tr("Cancel auto-increment for this field"));
             releasebutton.setMargin(new Insets(0, 0, 0, 0));
             releasebutton.setFocusable(false);
-            releasebutton.addActionListener(new ActionListener() {
-                @Override
-                public void actionPerformed(ActionEvent e) {
-                    auto_increment_selected = 0;
-                    clearbutton.setSelected(true);
-                }
+            releasebutton.addActionListener(e -> {
+                auto_increment_selected = 0;
+                clearbutton.setSelected(true);
             });
             saveHorizontalSpace(releasebutton);
             pnl.add(releasebutton, GBC.eol());
