Ignore:
Timestamp:
13.02.2010 17:05:37 (2 years ago)
Author:
jttt
Message:

Fix #4519 JOSM doesn't show nor find token (negative) IDs

File:
1 edited

Legend:

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

    r2962 r2973  
    122122    private static class Id extends Match { 
    123123        private long id; 
    124         public Id(long id) {this.id = id;} 
    125         @Override public boolean match(OsmPrimitive osm) { 
    126             return osm.getId() == id; 
     124        public Id(long id) { 
     125            this.id = id; 
     126        } 
     127        @Override public boolean match(OsmPrimitive osm) { 
     128            return osm.getUniqueId() == id; 
    127129        } 
    128130        @Override public String toString() {return "id="+id;} 
     
    663665                return new ExactKeyValue(regexSearch, key, tokenizer.readText()); 
    664666            else if (tokenizer.readIfEqual(Token.COLON)) 
    665                 return parseKV(key, tokenizer.readText()); 
     667                if ("id".equals(key)) 
     668                    return new Id(tokenizer.readNumber(tr("Primitive id expected"))); 
     669                else 
     670                    return parseKV(key, tokenizer.readText()); 
    666671            else if (tokenizer.readIfEqual(Token.QUESTION_MARK)) 
    667672                return new BooleanMatch(key, false); 
     
    725730            } 
    726731 
    727         } else if (key.equals("id")) { 
    728             try { 
    729                 return new Id(Long.parseLong(value)); 
    730             } catch (NumberFormatException x) { 
    731                 throw new ParseError(tr("Incorrect value of id operator: {0}. Number is expected.", value)); 
    732             } 
    733732        } else if (key.equals("changeset")) { 
    734733            try { 
Note: See TracChangeset for help on using the changeset viewer.