001// License: GPL. For details, see LICENSE file.
002package org.openstreetmap.josm.actions.search;
003
004import java.util.Collection;
005import java.util.Collections;
006
007import org.openstreetmap.josm.data.Bounds;
008import org.openstreetmap.josm.data.osm.OsmPrimitive;
009import org.openstreetmap.josm.data.osm.search.SearchCompiler.InArea;
010import org.openstreetmap.josm.gui.MainApplication;
011
012/**
013 * Matches objects within current map view.
014 * @since 12662 (extracted from {@code SearchCompiler})
015 */
016class InView extends InArea {
017
018    InView(boolean all) {
019        super(all);
020    }
021
022    @Override
023    protected Collection<Bounds> getBounds(OsmPrimitive primitive) {
024        if (!MainApplication.isDisplayingMapView()) {
025            return null;
026        }
027        return Collections.singleton(MainApplication.getMap().mapView.getRealBounds());
028    }
029
030    @Override
031    public String toString() {
032        return all ? "allinview" : "inview";
033    }
034}