Index: trunk/src/org/openstreetmap/josm/gui/preferences/map/TaggingPresetPreference.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/preferences/map/TaggingPresetPreference.java	(revision 14632)
+++ trunk/src/org/openstreetmap/josm/gui/preferences/map/TaggingPresetPreference.java	(revision 14634)
@@ -182,9 +182,9 @@
     }
 
-    static class TaggingPresetSourceEditor extends SourceEditor {
+    public static class TaggingPresetSourceEditor extends SourceEditor {
 
         private static final String ICONPREF = "taggingpreset.icon.sources";
 
-        TaggingPresetSourceEditor() {
+        public TaggingPresetSourceEditor() {
             super(SourceType.TAGGING_PRESET, Config.getUrls().getJOSMWebsite()+"/presets", presetSourceProviders, true);
         }
Index: trunk/src/org/openstreetmap/josm/gui/tagging/presets/items/KeyedItem.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/tagging/presets/items/KeyedItem.java	(revision 14632)
+++ trunk/src/org/openstreetmap/josm/gui/tagging/presets/items/KeyedItem.java	(revision 14634)
@@ -163,4 +163,13 @@
         }
         return returnValue;
+    }
+
+    /**
+     * Determines whether key or key+value are required.
+     * @return whether key or key+value are required
+     */
+    public boolean isKeyRequired() {
+        final MatchType type = MatchType.ofString(match);
+        return MatchType.KEY_REQUIRED.equals(type) || MatchType.KEY_VALUE_REQUIRED.equals(type);
     }
 
