Ignore:
Timestamp:
2010-06-08T15:42:33+02:00 (14 years ago)
Author:
stoecker
Message:

allow to search incomplete elements again

Location:
trunk/src/org/openstreetmap/josm/actions/search
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/actions/search/SearchAction.java

    r3305 r3317  
    158158
    159159        JCheckBox caseSensitive = new JCheckBox(tr("case sensitive"), initialValues.caseSensitive);
     160        JCheckBox allElements = new JCheckBox(tr("all objects"), initialValues.allElements);
     161        allElements.setToolTipText(tr("Also include incomplete and deleted objects in search."));
    160162        JCheckBox regexSearch   = new JCheckBox(tr("regular expression"), initialValues.regexSearch);
    161163
     
    168170        left.add(in_selection, GBC.eop());
    169171        left.add(caseSensitive, GBC.eol());
     172        left.add(allElements, GBC.eol());
    170173        left.add(regexSearch, GBC.eol());
    171174
     
    231234        initialValues.mode = mode;
    232235        initialValues.caseSensitive = caseSensitive.isSelected();
     236        initialValues.allElements = allElements.isSelected();
    233237        initialValues.regexSearch = regexSearch.isSelected();
    234238        return initialValues;
     
    277281            }
    278282
    279             for (OsmPrimitive osm : Main.main.getCurrentDataSet().allNonDeletedCompletePrimitives()) {
     283            Collection<OsmPrimitive> all;
     284            if(s.allElements)
     285                all = Main.main.getCurrentDataSet().allPrimitives();
     286            else
     287                all = Main.main.getCurrentDataSet().allNonDeletedCompletePrimitives();
     288            for (OsmPrimitive osm : all) {
    280289                if (s.mode == SearchMode.replace) {
    281290                    if (matcher.match(osm)) {
     
    348357    }
    349358
    350     public static void search(String search, SearchMode mode, boolean caseSensitive, boolean regexSearch) {
    351         search(new SearchSetting(search, mode, caseSensitive, regexSearch));
     359    public static void search(String search, SearchMode mode) {
     360        search(new SearchSetting(search, mode, false, false, false));
    352361    }
    353362
     
    402411        public boolean caseSensitive;
    403412        public boolean regexSearch;
     413        public boolean allElements;
    404414
    405415        public SearchSetting() {
    406             this("", SearchMode.replace, false /* case insensitive */, false /* no regexp */);
    407         }
    408 
    409         public SearchSetting(String text, SearchMode mode, boolean caseSensitive, boolean regexSearch) {
     416            this("", SearchMode.replace, false /* case insensitive */,
     417            false /* no regexp */, false /* only useful primitives */);
     418        }
     419
     420        public SearchSetting(String text, SearchMode mode, boolean caseSensitive,
     421        boolean regexSearch, boolean allElements) {
    410422            this.caseSensitive = caseSensitive;
    411423            this.regexSearch = regexSearch;
     424            this.allElements = allElements;
    412425            this.mode = mode;
    413426            this.text = text;
     
    415428
    416429        public SearchSetting(SearchSetting original) {
    417             this(original.text, original.mode, original.caseSensitive, original.regexSearch);
     430            this(original.text, original.mode, original.caseSensitive,
     431            original.regexSearch, original.allElements);
    418432        }
    419433
     
    422436            String cs = caseSensitive ?
    423437                    /*case sensitive*/  trc("search", "CS") :
    424                         /*case insensitive*/  trc("search", "CI");
    425                     /*regex search*/
    426                     String rx = regexSearch ? (", " + trc("search", "RX")) : "";
    427                     return "\"" + text + "\" (" + cs + rx + ", " + mode + ")";
     438                    /*case insensitive*/  trc("search", "CI");
     439            String rx = regexSearch ? (", " +
     440                    /*regex search*/ trc("search", "RX")) : "";
     441            String all = allElements ? (", " +
     442                    /*all elements*/ trc("search", "A")) : "";
     443            return "\"" + text + "\" (" + cs + rx + all + ", " + mode + ")";
    428444        }
    429445
     
    435451            return (o.caseSensitive == this.caseSensitive
    436452                    && o.regexSearch == this.regexSearch
     453                    && o.allElements == this.allElements
    437454                    && o.mode.equals(this.mode)
    438455                    && o.text.equals(this.text));
     
    463480                } else if (s.charAt(index) == 'R') {
    464481                    result.regexSearch = true;
     482                } else if (s.charAt(index) == 'A') {
     483                    result.allElements = true;
    465484                } else if (s.charAt(index) == ' ') {
    466485                    break;
     
    493512                result.append('R');
    494513            }
     514            if (allElements) {
     515                result.append('A');
     516            }
    495517            result.append(' ');
    496518            result.append(text);
  • trunk/src/org/openstreetmap/josm/actions/search/SearchCompiler.java

    r3305 r3317  
    583583    private static class Untagged extends Match {
    584584        @Override public boolean match(OsmPrimitive osm) {
    585             return !osm.isTagged();
     585            return !osm.isTagged() && !osm.isIncomplete();
    586586        }
    587587        @Override public String toString() {return "untagged";}
Note: See TracChangeset for help on using the changeset viewer.