Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/actions/search/SearchAction.java
r13926 r13950 45 45 import org.openstreetmap.josm.actions.JosmAction; 46 46 import org.openstreetmap.josm.actions.ParameterizedAction; 47 import org.openstreetmap.josm.data.osm.DataSet;48 47 import org.openstreetmap.josm.data.osm.Filter; 49 import org.openstreetmap.josm.data.osm.OsmPrimitive; 48 import org.openstreetmap.josm.data.osm.IPrimitive; 49 import org.openstreetmap.josm.data.osm.OsmData; 50 50 import org.openstreetmap.josm.data.osm.search.PushbackTokenizer; 51 51 import org.openstreetmap.josm.data.osm.search.SearchCompiler; … … 626 626 * @return The result of the search. 627 627 * @since 10457 628 */ 629 public static Collection<OsmPrimitive> searchAndReturn(String search, SearchMode mode) { 628 * @since 13950 (signature) 629 */ 630 public static Collection<IPrimitive> searchAndReturn(String search, SearchMode mode) { 630 631 final SearchSetting searchSetting = new SearchSetting(); 631 632 searchSetting.text = search; … … 678 679 * @since 10457 679 680 * @since 10600 (functional interface) 681 * @since 13950 (signature) 680 682 */ 681 683 @FunctionalInterface … … 689 691 * @param parent parent component 690 692 */ 691 void receiveSearchResult(DataSet ds, Collection<OsmPrimitive> result, int foundMatches, SearchSetting setting, Component parent); 693 void receiveSearchResult(OsmData<?, ?, ?, ?> ds, Collection<IPrimitive> result, 694 int foundMatches, SearchSetting setting, Component parent); 692 695 } 693 696 … … 698 701 699 702 @Override 700 public void receiveSearchResult(DataSet ds, Collection<OsmPrimitive> result, int foundMatches, SearchSetting setting, Component parent) { 703 public void receiveSearchResult(OsmData<?, ?, ?, ?> ds, Collection<IPrimitive> result, 704 int foundMatches, SearchSetting setting, Component parent) { 701 705 ds.setSelected(result); 702 706 MapFrame map = MainApplication.getMap(); … … 732 736 */ 733 737 private static final class CapturingSearchReceiver implements SearchReceiver { 734 private Collection< OsmPrimitive> result;738 private Collection<IPrimitive> result; 735 739 736 740 @Override 737 public void receiveSearchResult( DataSetds, Collection<OsmPrimitive> result, int foundMatches,741 public void receiveSearchResult(OsmData<?, ?, ?, ?> ds, Collection<IPrimitive> result, int foundMatches, 738 742 SearchSetting setting, Component parent) { 739 743 this.result = result; … … 742 746 743 747 static final class SearchTask extends PleaseWaitRunnable { 744 private final DataSetds;748 private final OsmData<?, ?, ?, ?> ds; 745 749 private final SearchSetting setting; 746 private final Collection< OsmPrimitive> selection;747 private final Predicate< OsmPrimitive> predicate;750 private final Collection<IPrimitive> selection; 751 private final Predicate<IPrimitive> predicate; 748 752 private boolean canceled; 749 753 private int foundMatches; 750 754 private final SearchReceiver resultReceiver; 751 755 752 private SearchTask( DataSetds, SearchSetting setting, Collection<OsmPrimitive> selection, Predicate<OsmPrimitive> predicate,753 SearchReceiver resultReceiver) { 756 private SearchTask(OsmData<?, ?, ?, ?> ds, SearchSetting setting, Collection<IPrimitive> selection, 757 Predicate<IPrimitive> predicate, SearchReceiver resultReceiver) { 754 758 super(tr("Searching")); 755 759 this.ds = ds; … … 761 765 762 766 static SearchTask newSearchTask(SearchSetting setting, SearchReceiver resultReceiver) { 763 final DataSetds = MainApplication.getLayerManager().getActiveDataSet();767 final OsmData<?, ?, ?, ?> ds = MainApplication.getLayerManager().getActiveData(); 764 768 if (ds == null) { 765 769 throw new IllegalStateException("No active dataset"); … … 775 779 * @return A new search task. 776 780 */ 777 private static SearchTask newSearchTask(SearchSetting setting, final DataSetds, SearchReceiver resultReceiver) {778 final Collection< OsmPrimitive> selection = new HashSet<>(ds.getAllSelected());779 return new SearchTask(ds, setting, selection, ds::isSelected, resultReceiver);781 private static SearchTask newSearchTask(SearchSetting setting, final OsmData<?, ?, ?, ?> ds, SearchReceiver resultReceiver) { 782 final Collection<IPrimitive> selection = new HashSet<>(ds.getAllSelected()); 783 return new SearchTask(ds, setting, selection, IPrimitive::isSelected, resultReceiver); 780 784 } 781 785 … … 797 801 } 798 802 799 Collection< OsmPrimitive> all;803 Collection<? extends IPrimitive> all; 800 804 if (setting.allElements) { 801 805 all = ds.allPrimitives(); 802 806 } else { 803 all = ds.getPrimitives( OsmPrimitive::isSelectable);807 all = ds.getPrimitives(p -> p.isSelectable()); // Do not use method reference before Java 11! 804 808 } 805 809 final ProgressMonitor subMonitor = getProgressMonitor().createSubTaskMonitor(all.size(), false); 806 810 subMonitor.beginTask(trn("Searching in {0} object", "Searching in {0} objects", all.size(), all.size())); 807 811 808 for ( OsmPrimitive osm : all) {812 for (IPrimitive osm : all) { 809 813 if (canceled) { 810 814 return; -
trunk/test/unit/org/openstreetmap/josm/actions/JoinAreasActionTest.java
r12728 r13950 20 20 import org.openstreetmap.josm.actions.search.SearchAction; 21 21 import org.openstreetmap.josm.data.osm.DataSet; 22 import org.openstreetmap.josm.data.osm.IPrimitive; 22 23 import org.openstreetmap.josm.data.osm.Node; 23 24 import org.openstreetmap.josm.data.osm.OsmPrimitive; … … 85 86 for (String ref : new String[]{"A", "B", "C", "D", "E"}) { 86 87 System.out.print("Joining ways " + ref); 87 Collection< OsmPrimitive> found = SearchAction.searchAndReturn("type:way ref="+ref, SearchMode.replace);88 Collection<IPrimitive> found = SearchAction.searchAndReturn("type:way ref="+ref, SearchMode.replace); 88 89 assertEquals(2, found.size()); 89 90 90 91 MainApplication.getMenu().joinAreas.join(Utils.filteredCollection(found, Way.class)); 91 92 92 Collection< OsmPrimitive> found2 = SearchAction.searchAndReturn("type:way ref="+ref, SearchMode.replace);93 Collection<IPrimitive> found2 = SearchAction.searchAndReturn("type:way ref="+ref, SearchMode.replace); 93 94 assertEquals(1, found2.size()); 94 95 System.out.println(" ==> OK");
Note:
See TracChangeset
for help on using the changeset viewer.