Changeset 75 in josm for src/org/openstreetmap/josm/data
- Timestamp:
- 2006-03-29T19:11:37+02:00 (18 years ago)
- Location:
- src/org/openstreetmap/josm/data
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
src/org/openstreetmap/josm/data/Preferences.java
r74 r75 1 1 package org.openstreetmap.josm.data; 2 2 3 import java.awt.Color; 4 import java.io.BufferedReader; 3 5 import java.io.FileReader; 4 6 import java.io.FileWriter; … … 6 8 import java.io.PrintWriter; 7 9 import java.util.ArrayList; 10 import java.util.Collection; 11 import java.util.LinkedList; 8 12 import java.util.SortedMap; 9 13 import java.util.TreeMap; 10 14 import java.util.Map.Entry; 11 15 12 import org.openstreetmap.josm.tools.XmlWriter; 13 import org.xml.sax.Attributes; 14 import org.xml.sax.SAXException; 15 16 import uk.co.wilson.xml.MinML2; 16 import org.openstreetmap.josm.data.osm.visitor.SimplePaintVisitor; 17 import org.openstreetmap.josm.tools.ColorHelper; 17 18 18 19 … … 59 60 return properties.get(key); 60 61 } 62 synchronized public String get(String key, String def) { 63 String prop = properties.get(key); 64 if (prop == null || prop.equals("")) 65 return def; 66 return prop; 67 } 68 synchronized public Collection<Entry<String, String>> getAllPrefix(String prefix) { 69 LinkedList<Entry<String,String>> all = new LinkedList<Entry<String,String>>(); 70 for (Entry<String,String> e : properties.entrySet()) 71 if (e.getKey().startsWith(prefix)) 72 all.add(e); 73 return all; 74 } 61 75 synchronized public boolean getBoolean(String key) { 62 76 return properties.containsKey(key) ? Boolean.parseBoolean(properties.get(key)) : false; 63 77 } 64 65 78 79 66 80 synchronized public void put(String key, String value) { 67 81 if (value == null) … … 83 97 public void save() throws IOException { 84 98 PrintWriter out = new PrintWriter(new FileWriter(getPreferencesDir()+"preferences")); 85 out.println(XmlWriter.header()); 86 out.println("<josm>"); 87 for (Entry<String, String> e : properties.entrySet()) { 88 out.print(" <"+e.getKey()); 99 for (Entry<String, String> e : properties.entrySet()) 89 100 if (!e.getValue().equals("")) 90 out.print(" value='"+XmlWriter.encode(e.getValue())+"'"); 91 out.println(" />"); 92 } 93 out.println("</josm>"); 101 out.println(e.getKey()+"="+e.getValue()); 94 102 out.close(); 95 103 } … … 97 105 98 106 public void load() throws IOException { 99 MinML2 reader = new MinML2(){ 100 @Override public void startElement(String ns, String name, String qName, Attributes attr) { 101 if (name.equals("josm-settings")) 102 throw new RuntimeException("old version"); 103 String v = attr.getValue("value"); 104 if (!name.equals("josm")) 105 properties.put(name, v == null ? "" : v); 106 } 107 }; 108 try { 109 reader.parse(new FileReader(getPreferencesDir()+"preferences")); 110 } catch (SAXException e) { 111 e.printStackTrace(); 112 throw new IOException("Error in preferences file"); 107 properties.clear(); 108 BufferedReader in = new BufferedReader(new FileReader(getPreferencesDir()+"preferences")); 109 int lineNumber = 0; 110 for (String line = in.readLine(); line != null; line = in.readLine(), lineNumber++) { 111 int i = line.indexOf('='); 112 if (i == -1 || i == 0) 113 throw new IOException("Malformed config file at line "+lineNumber); 114 properties.put(line.substring(0,i), line.substring(i+1)); 113 115 } 114 116 } … … 118 120 properties.put("laf", "javax.swing.plaf.metal.MetalLookAndFeel"); 119 121 properties.put("projection", "org.openstreetmap.josm.data.projection.Epsg4263"); 120 properties.put("osmDataServer", "http://www.openstreetmap.org/api"); 122 properties.put("osm-server.url", "http://www.openstreetmap.org/api"); 123 properties.put("color.node", ColorHelper.color2html(Color.red)); 124 properties.put("color.segment", ColorHelper.color2html(SimplePaintVisitor.darkgreen)); 125 properties.put("color.way", ColorHelper.color2html(SimplePaintVisitor.darkblue)); 126 properties.put("color.incomplete way", ColorHelper.color2html(SimplePaintVisitor.darkerblue)); 127 properties.put("color.selected", ColorHelper.color2html(Color.white)); 128 properties.put("color.gps point", ColorHelper.color2html(Color.gray)); 121 129 } 122 130 } -
src/org/openstreetmap/josm/data/osm/visitor/SimplePaintVisitor.java
r71 r75 5 5 import java.awt.Point; 6 6 7 import org.openstreetmap.josm.Main; 7 8 import org.openstreetmap.josm.data.osm.LineSegment; 8 9 import org.openstreetmap.josm.data.osm.Node; 9 10 import org.openstreetmap.josm.data.osm.Way; 10 11 import org.openstreetmap.josm.gui.NavigatableComponent; 12 import org.openstreetmap.josm.tools.ColorHelper; 11 13 12 14 /** … … 18 20 public class SimplePaintVisitor implements Visitor { 19 21 20 p rivatefinal static Color darkerblue = new Color(0,0,96);21 p rivatefinal static Color darkblue = new Color(0,0,128);22 p rivatefinal static Color darkgreen = new Color(0,128,0);22 public final static Color darkerblue = new Color(0,0,96); 23 public final static Color darkblue = new Color(0,0,128); 24 public final static Color darkgreen = new Color(0,128,0); 23 25 24 26 /** … … 48 50 */ 49 51 public void visit(Node n) { 50 drawNode(n, n.isSelected() ? Color.WHITE : Color.RED); 52 drawNode(n, n.isSelected() ? getPreferencesColor("selected", Color.WHITE) 53 : getPreferencesColor("node", Color.RED)); 51 54 } 52 55 … … 56 59 */ 57 60 public void visit(LineSegment ls) { 58 drawLineSegment(ls, darkgreen);61 drawLineSegment(ls, getPreferencesColor("segment", darkgreen)); 59 62 } 60 63 … … 65 68 public void visit(Way t) { 66 69 // only to overwrite with blue 67 Color wayColor = darkblue;70 Color wayColor = getPreferencesColor("way", darkblue); 68 71 for (LineSegment ls : t.segments) { 69 72 if (ls.incomplete) { 70 wayColor = darkerblue;73 wayColor = getPreferencesColor("incomplete way", darkerblue); 71 74 break; 72 75 } … … 74 77 for (LineSegment ls : t.segments) 75 78 if (!ls.isSelected()) // selected already in good color 76 drawLineSegment(ls, t.isSelected() ? Color.WHITE: wayColor);79 drawLineSegment(ls, t.isSelected() ? getPreferencesColor("selected", Color.WHITE) : wayColor); 77 80 } 78 81 … … 96 99 return; 97 100 if (ls.isSelected()) 98 col = Color.WHITE;101 col = getPreferencesColor("selected", Color.WHITE); 99 102 g.setColor(col); 100 103 Point p1 = nc.getPoint(ls.from.eastNorth); … … 102 105 g.drawLine(p1.x, p1.y, p2.x, p2.y); 103 106 } 107 108 private Color getPreferencesColor(String colName, Color def) { 109 String colStr = Main.pref.get("color."+colName); 110 if (colStr.equals("")) 111 return def; 112 return ColorHelper.html2color(colStr); 113 } 104 114 }
Note:
See TracChangeset
for help on using the changeset viewer.