Ignore:
Timestamp:
2012-01-15T21:28:46+01:00 (12 years ago)
Author:
simon04
Message:

fix #6425 - remotecontrol: make download objects available (e.g., /load_object?objects=n1,w2,r3[&new_layer=false&relation_members=true])

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/gui/widgets/OsmIdTextField.java

    r4081 r4796  
    9292       
    9393        public boolean readOsmIds() {
    94             String value  = getComponent().getText();
     94            String value = getComponent().getText();
    9595            char c;
    96             if (value == null || value.trim().length() == 0) return false;
    97             try {
    98                 ids.clear();
    99                 StringTokenizer st = new StringTokenizer(value,",.+/ \t\n");
    100                 String s;
    101                 while (st.hasMoreTokens()) {
    102                     s = st.nextToken();
    103                     // convert tokens to int skipping v-words (version v2 etc)
    104                     c = s.charAt(0);
    105                     if (c=='v') {
    106                         continue;
    107                     }
    108                     else if (c=='n') {
    109                         ids.add(new SimplePrimitiveId(Long.parseLong(s.substring(1)), OsmPrimitiveType.NODE));
    110                     } else if (c=='w') {
    111                         ids.add(new SimplePrimitiveId(Long.parseLong(s.substring(1)), OsmPrimitiveType.WAY));
    112                     } else if (c=='r') {
    113                         ids.add(new SimplePrimitiveId(Long.parseLong(s.substring(1)), OsmPrimitiveType.RELATION));
    114                     } else if (type==OsmPrimitiveType.NODE) {
    115                         ids.add(new SimplePrimitiveId(Long.parseLong(s), OsmPrimitiveType.NODE));
    116                     } else if (type==OsmPrimitiveType.WAY) {
    117                         ids.add(new SimplePrimitiveId(Long.parseLong(s), OsmPrimitiveType.WAY));
    118                     } else if (type==OsmPrimitiveType.RELATION) {
    119                         ids.add(new SimplePrimitiveId(Long.parseLong(s), OsmPrimitiveType.RELATION));
     96            if (value == null || value.trim().length() == 0) {
     97                return false;
     98            }
     99            ids.clear();
     100            StringTokenizer st = new StringTokenizer(value, ",.+/ \t\n");
     101            String s;
     102            while (st.hasMoreTokens()) {
     103                s = st.nextToken();
     104                // convert tokens to int skipping v-words (version v2 etc)
     105                c = s.charAt(0);
     106                if (c == 'v') {
     107                    continue;
     108                } else {
     109                    try {
     110                        ids.add(SimplePrimitiveId.fromString(s));
     111                    } catch (IllegalArgumentException ex) {
     112                        if (type == OsmPrimitiveType.NODE) {
     113                            ids.add(new SimplePrimitiveId(Long.parseLong(s), OsmPrimitiveType.NODE));
     114                        } else if (type == OsmPrimitiveType.WAY) {
     115                            ids.add(new SimplePrimitiveId(Long.parseLong(s), OsmPrimitiveType.WAY));
     116                        } else if (type == OsmPrimitiveType.RELATION) {
     117                            ids.add(new SimplePrimitiveId(Long.parseLong(s), OsmPrimitiveType.RELATION));
     118                        } else {
     119                            return false;
     120                        }
    120121                    }
    121122                }
    122                 return true;
    123             } catch(NumberFormatException e) {
    124                 return false;
    125123            }
     124            return true;
    126125        }
    127126    }
Note: See TracChangeset for help on using the changeset viewer.