Changeset 2334 in josm for trunk/src/org/openstreetmap/josm/data
- Timestamp:
- 2009-10-27T22:33:54+01:00 (17 years ago)
- Location:
- trunk/src/org/openstreetmap/josm/data
- Files:
-
- 2 edited
-
Preferences.java (modified) (4 diffs)
-
ServerSidePreferences.java (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/data/Preferences.java
r2327 r2334 60 60 */ 61 61 public static class Bookmark implements Comparable<Bookmark> { 62 p ublicString name;63 p ublic double[] latlon = new double[4]; // minlat, minlon, maxlat, maxlon62 private String name; 63 private Bounds area; 64 64 65 public Bookmark() { 65 public Bookmark() { 66 area = null; 67 name = null; 66 68 } 67 69 68 public Bookmark(Bounds b) { 69 if (b == null) { 70 latlon[0] = 0.0; 71 latlon[1] = 0.0; 72 latlon[2] = 0.0; 73 latlon[3] = 0.0; 74 } else { 75 latlon[0] = b.getMin().lat(); 76 latlon[1] = b.getMin().lon(); 77 latlon[2] = b.getMax().lat(); 78 latlon[3] = b.getMax().lon(); 79 } 70 public Bookmark(Bounds area) { 71 this.area = area; 80 72 } 81 73 … … 88 80 } 89 81 90 public Bounds asBounds() { 91 return new Bounds(latlon[0], latlon[1], latlon[2], latlon[3]); 82 public Bounds getArea() { 83 return area; 84 } 85 86 public String getName() { 87 return name; 88 } 89 90 public void setName(String name) { 91 this.name = name; 92 } 93 94 public void setArea(Bounds area) { 95 this.area = area; 92 96 } 93 97 } … … 488 492 // FIXME: legacy code using ',' sign, should be \u001e only 489 493 Matcher m = Pattern.compile("^(.+)[,\u001e](-?\\d+.\\d+)[,\u001e](-?\\d+.\\d+)[,\u001e](-?\\d+.\\d+)[,\u001e](-?\\d+.\\d+)$").matcher(line); 490 if(m.matches()) 491 { 492 Bookmark b = new Bookmark(); 493 b.name = m.group(1); 494 for (int i = 0; i < b.latlon.length; ++i) { 495 b.latlon[i] = Double.parseDouble(m.group(i+2)); 494 if (!m.matches() || m.groupCount() != 5) { 495 System.err.println(tr("Error: Unexpected line ''{0}'' in bookmark file ''{1}''",line, bookmarkFile.toString())); 496 continue; 497 } 498 Bookmark b = new Bookmark(); 499 b.setName(m.group(1)); 500 double[] values= new double[4]; 501 for (int i = 0; i < 4; ++i) { 502 try { 503 values[i] = Double.parseDouble(m.group(i+2)); 504 } catch(NumberFormatException e) { 505 System.err.println(tr("Error: Illegal double value ''{0}'' on line ''{1}'' in bookmark file ''{2}''",m.group(i+2),line, bookmarkFile.toString())); 506 continue; 496 507 } 497 bookmarks.add(b); 498 } 508 } 509 b.setArea(new Bounds(values)); 510 bookmarks.add(b); 499 511 } 500 512 in.close(); … … 511 523 new FileOutputStream(bookmarkFile), "utf-8")); 512 524 for (Bookmark b : bookmarks) { 513 out.print(b.name+"\u001e"); 514 for (int i = 0; i < b.latlon.length; ++i) { 515 out.print(b.latlon[i]+(i<b.latlon.length-1?"\u001e":"")); 516 } 525 out.print(b.getName()+ "\u001e"); 526 Bounds area = b.getArea(); 527 out.print(area.getMin().lat() +"\u001e"); 528 out.print(area.getMin().lon() +"\u001e"); 529 out.print(area.getMax().lat() +"\u001e"); 530 out.print(area.getMax().lon()); 517 531 out.println(); 518 532 } -
trunk/src/org/openstreetmap/josm/data/ServerSidePreferences.java
r2017 r2334 25 25 26 26 import org.openstreetmap.josm.Main; 27 import org.openstreetmap.josm.data.Preferences.Bookmark; 27 28 import org.openstreetmap.josm.io.OsmConnection; 28 29 import org.openstreetmap.josm.io.XmlWriter; … … 191 192 for (String line = in.readLine(); line != null; line = in.readLine()) { 192 193 StringTokenizer st = new StringTokenizer(line, ","); 193 if (st.countTokens() < 5) { 194 if (st.countTokens() != 5) { 195 System.err.println(tr("Error: Unexpected line ''{0}'' in bookmark list from server",line)); 194 196 continue; 195 197 } 196 198 Bookmark b = new Bookmark(); 197 b.name = st.nextToken(); 198 try { 199 for (int i = 0; i < b.latlon.length; ++i) { 200 b.latlon[i] = Double.parseDouble(st.nextToken()); 199 b.setName(st.nextToken()); 200 double[] values= new double[4]; 201 for (int i = 0; i < 4; ++i) { 202 String token = st.nextToken(); 203 try { 204 values[i] = Double.parseDouble(token); 205 } catch(NumberFormatException e) { 206 System.err.println(tr("Error: Illegal double value ''{0}'' on line ''{1}'' in bookmark list from server",token,line)); 207 continue; 201 208 } 202 bookmarks.add(b); 203 } catch (NumberFormatException x) { 204 // line not parsed 205 } 209 } 210 b.setArea(new Bounds(values)); 211 bookmarks.add(b); 206 212 } 207 213 in.close();
Note:
See TracChangeset
for help on using the changeset viewer.
