Changeset 2973 in josm for trunk/src/org
- Timestamp:
- 2010-02-13T17:05:37+01:00 (14 years ago)
- Location:
- trunk/src/org/openstreetmap/josm
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/actions/search/PushbackTokenizer.java
r2863 r2973 15 15 private Token currentToken; 16 16 private String currentText; 17 private long currentNumber; 17 18 private int c; 18 19 … … 25 26 NOT(marktr("<not>")), OR(marktr("<or>")), LEFT_PARENT(marktr("<left parent>")), 26 27 RIGHT_PARENT(marktr("<right parent>")), COLON(marktr("<colon>")), EQUALS(marktr("<equals>")), 27 KEY(marktr("<key>")), QUESTION_MARK(marktr("<question mark>")), EOF(marktr("<end-of-file>")); 28 KEY(marktr("<key>")), QUESTION_MARK(marktr("<question mark>")), NUMBER(marktr("<number>")), 29 EOF(marktr("<end-of-file>")); 28 30 29 31 private Token(String name) { … … 46 48 throw new RuntimeException(e.getMessage(), e); 47 49 } 50 } 51 52 private long getNumber() { 53 long result = 0; 54 while (Character.isDigit(c)) { 55 result = result * 10 + (c - '0'); 56 getChar(); 57 } 58 return result; 48 59 } 49 60 … … 78 89 case '-': 79 90 getChar(); 80 return Token.NOT; 91 if (Character.isDigit(c)) { 92 currentNumber = -1 * getNumber(); 93 return Token.NUMBER; 94 } else 95 return Token.NOT; 81 96 case '(': 82 97 getChar(); … … 111 126 default: 112 127 { 128 if (Character.isDigit(c)) { 129 currentNumber = getNumber(); 130 return Token.NUMBER; 131 } 132 113 133 StringBuilder s = new StringBuilder(); 114 134 while (!(c == -1 || Character.isWhitespace(c) || c == '"'|| c == ':' || c == '(' || c == ')' || c == '|' || c == '=' || c == '?')) { … … 149 169 } 150 170 171 public long readNumber(String errorMessage) throws ParseError { 172 if (nextToken() == Token.NUMBER) 173 return currentNumber; 174 else 175 throw new ParseError(errorMessage); 176 } 177 151 178 public String getText() { 152 179 return currentText; -
trunk/src/org/openstreetmap/josm/actions/search/SearchCompiler.java
r2962 r2973 122 122 private static class Id extends Match { 123 123 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; 127 129 } 128 130 @Override public String toString() {return "id="+id;} … … 663 665 return new ExactKeyValue(regexSearch, key, tokenizer.readText()); 664 666 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()); 666 671 else if (tokenizer.readIfEqual(Token.QUESTION_MARK)) 667 672 return new BooleanMatch(key, false); … … 725 730 } 726 731 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 }733 732 } else if (key.equals("changeset")) { 734 733 try { -
trunk/src/org/openstreetmap/josm/gui/DefaultNameFormatter.java
r2893 r2973 73 73 /** 74 74 * Decorates the name of primitive with its id, if the preference 75 * <tt>osm-primitives.showid</tt> is set. 75 * <tt>osm-primitives.showid</tt> is set. Shows unique id if osm-primitives.showid.new-primitives is set 76 76 * 77 77 * @param name the name without the id … … 81 81 protected String decorateNameWithId(String name, OsmPrimitive primitive) { 82 82 if (Main.pref.getBoolean("osm-primitives.showid")) 83 return name + tr(" [id: {0}]", primitive.getId()); 83 if (Main.pref.getBoolean("osm-primitives.showid.new-primitives")) 84 return name + tr(" [id: {0}]", primitive.getUniqueId()); 85 else 86 return name + tr(" [id: {0}]", primitive.getId()); 84 87 else 85 88 return name;
Note:
See TracChangeset
for help on using the changeset viewer.