Index: /trunk/src/org/openstreetmap/josm/actions/search/SearchAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/search/SearchAction.java	(revision 5440)
+++ /trunk/src/org/openstreetmap/josm/actions/search/SearchAction.java	(revision 5441)
@@ -47,4 +47,5 @@
 import org.openstreetmap.josm.gui.widgets.HistoryComboBox;
 import org.openstreetmap.josm.tools.GBC;
+import org.openstreetmap.josm.tools.Predicate;
 import org.openstreetmap.josm.tools.Property;
 import org.openstreetmap.josm.tools.Shortcut;
@@ -474,9 +475,5 @@
     }
 
-    public interface Function{
-        public Boolean isSomething(OsmPrimitive o);
-    }
-
-    public static int getSelection(SearchSetting s, Collection<OsmPrimitive> sel, Function f) {
+    public static int getSelection(SearchSetting s, Collection<OsmPrimitive> sel, Predicate<OsmPrimitive> p) {
         int foundMatches = 0;
         try {
@@ -500,11 +497,11 @@
                         ++foundMatches;
                     }
-                } else if (s.mode == SearchMode.add && !f.isSomething(osm) && matcher.match(osm)) {
+                } else if (s.mode == SearchMode.add && !p.evaluate(osm) && matcher.match(osm)) {
                     sel.add(osm);
                     ++foundMatches;
-                } else if (s.mode == SearchMode.remove && f.isSomething(osm) && matcher.match(osm)) {
+                } else if (s.mode == SearchMode.remove && p.evaluate(osm) && matcher.match(osm)) {
                     sel.remove(osm);
                     ++foundMatches;
-                } else if (s.mode == SearchMode.in_selection &&  f.isSomething(osm)&& !matcher.match(osm)) {
+                } else if (s.mode == SearchMode.in_selection &&  p.evaluate(osm) && !matcher.match(osm)) {
                     sel.remove(osm);
                     ++foundMatches;
@@ -570,21 +567,10 @@
 
     public static void search(SearchSetting s) {
-        // FIXME: This is confusing. The GUI says nothing about loading primitives from an URL. We'd like to *search*
-        // for URLs in the current data set.
-        // Disabling until a better solution is in place
-        //
-        //        if (search.startsWith("http://") || search.startsWith("ftp://") || search.startsWith("https://")
-        //                || search.startsWith("file:/")) {
-        //            SelectionWebsiteLoader loader = new SelectionWebsiteLoader(search, mode);
-        //            if (loader.url != null && loader.url.getHost() != null) {
-        //                Main.worker.execute(loader);
-        //                return;
-        //            }
-        //        }
 
         final DataSet ds = Main.main.getCurrentDataSet();
         Collection<OsmPrimitive> sel = new HashSet<OsmPrimitive>(ds.getAllSelected());
-        int foundMatches = getSelection(s, sel, new Function(){
-            public Boolean isSomething(OsmPrimitive o){
+        int foundMatches = getSelection(s, sel, new Predicate<OsmPrimitive>(){
+            @Override
+            public boolean evaluate(OsmPrimitive o){
                 return ds.isSelected(o);
             }
