- Timestamp:
- 2006-09-08T20:38:05+02:00 (18 years ago)
- Location:
- src/org/openstreetmap/josm
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
src/org/openstreetmap/josm/actions/DownloadIncompleteAction.java
r113 r137 44 44 45 45 private DownloadTask(Collection<OsmPrimitive> toDownload) { 46 super(trn("Downloading {0} segment s", "Downloading {0} segment", toDownload.size(), toDownload.size()));46 super(trn("Downloading {0} segment", "Downloading {0} segments", toDownload.size(), toDownload.size())); 47 47 reader = new ObjectListDownloader(toDownload); 48 48 reader.setProgressInformation(currentAction, progress); -
src/org/openstreetmap/josm/actions/mapmode/AddNodeAction.java
r104 r137 133 133 } 134 134 Main.main.editLayer().add(c); 135 Main.ds.setSelected(n); 135 136 Main.map.mapView.repaint(); 136 137 } -
src/org/openstreetmap/josm/actions/mapmode/DeleteAction.java
r113 r137 11 11 import java.util.Collections; 12 12 import java.util.HashSet; 13 import java.util.LinkedList; 13 14 import java.util.Map.Entry; 14 15 … … 134 135 * If deleting a node which is part of exactly two segments, and both segments 135 136 * have no conflicting keys, join them and remove the node. 137 * If the two segments are part of the same way, remove the deleted segment 138 * from the way. 136 139 * 137 140 * @param selection The objects to delete. … … 181 184 seg2 = s; 182 185 } 183 for (Way w : Main.ds.ways)184 if (!w.deleted && (w.segments.contains(seg1) || w.segments.contains(seg2)))185 return tr("Used in a way.");186 186 if (seg1.from == seg2.from || seg1.to == seg2.to) 187 187 return tr("Wrong direction of segments."); … … 189 189 if (seg2.keySet().contains(e.getKey()) && !seg2.get(e.getKey()).equals(e.getValue())) 190 190 return tr("Conflicting keys"); 191 ArrayList<Way> ways = new ArrayList<Way>(2); 192 for (Way w : Main.ds.ways) { 193 if (w.deleted) 194 continue; 195 if ((w.segments.contains(seg1) && !w.segments.contains(seg2)) || (w.segments.contains(seg2) && !w.segments.contains(seg1))) 196 return tr("Segments are part of different ways."); 197 if (w.segments.contains(seg1) && w.segments.contains(seg2)) 198 ways.add(w); 199 } 191 200 Segment s = new Segment(seg1); 192 201 s.to = seg2.to; … … 195 204 else if (seg2.keys != null) 196 205 s.keys.putAll(seg2.keys); 197 Command[] cmds = new Command[]{ 198 new ChangeCommand(seg1, s), 199 new DeleteCommand(Arrays.asList(new OsmPrimitive[]{n, seg2}))}; 200 Main.main.editLayer().add(new SequenceCommand(tr("Delete Node"), Arrays.asList(cmds))); 206 Collection<Command> cmds = new LinkedList<Command>(); 207 for (Way w : ways) { 208 Way copy = new Way(w); 209 copy.segments.remove(seg2); 210 cmds.add(new ChangeCommand(w, copy)); 211 } 212 cmds.add(new ChangeCommand(seg1, s)); 213 cmds.add(new DeleteCommand(Arrays.asList(new OsmPrimitive[]{n, seg2}))); 214 Main.main.editLayer().add(new SequenceCommand(tr("Delete Node"), cmds)); 201 215 return null; 202 216 } -
src/org/openstreetmap/josm/data/Preferences.java
r118 r137 47 47 } 48 48 49 synchronized final public boolean hasKey(final String key) { 50 return properties.containsKey(key); 51 } 49 52 synchronized final public String get(final String key) { 50 53 if (!properties.containsKey(key)) -
src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java
r129 r137 24 24 import java.util.ArrayList; 25 25 import java.util.Collection; 26 import java.util.Collections; 26 27 import java.util.Date; 27 28 import java.util.LinkedList; … … 67 68 public class GeoImageLayer extends Layer { 68 69 69 private static final class ImageEntry {70 private static final class ImageEntry implements Comparable<ImageEntry> { 70 71 File image; 71 72 Date time; … … 73 74 EastNorth pos; 74 75 Icon icon; 76 public int compareTo(ImageEntry image) { 77 return time.compareTo(image.time); 78 } 75 79 } 76 80 … … 89 93 LinkedList<TimedPoint> gps = new LinkedList<TimedPoint>(); 90 94 91 // check the gps layer for time loops (and process it on the way) 92 Date last = null; 95 // Extract dates and locations from GPS input 93 96 for (Collection<GpsPoint> c : gpsLayer.data) { 94 97 for (GpsPoint p : c) { … … 102 105 } 103 106 gps.add(new TimedPoint(d, p.eastNorth)); 104 if (last != null && last.after(d))105 throw new IOException(tr("Time loop in gps data."));106 last = d;107 107 } 108 108 } … … 168 168 } 169 169 170 private static final class TimedPoint {170 private static final class TimedPoint implements Comparable<TimedPoint> { 171 171 Date time; 172 172 EastNorth pos; … … 175 175 this.pos = pos; 176 176 } 177 public int compareTo(TimedPoint point) { 178 return time.compareTo(point.time); 179 } 177 180 } 178 181 … … 185 188 private GeoImageLayer(final ArrayList<ImageEntry> data, LinkedList<TimedPoint> gps) { 186 189 super(tr("Geotagged Images")); 190 Collections.sort(data); 191 Collections.sort(gps); 187 192 this.data = data; 188 193 this.gps = gps; -
src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java
r115 r137 15 15 16 16 import javax.swing.AbstractAction; 17 import javax.swing.Box; 18 import javax.swing.ButtonGroup; 17 19 import javax.swing.Icon; 18 20 import javax.swing.JColorChooser; … … 20 22 import javax.swing.JMenuItem; 21 23 import javax.swing.JOptionPane; 24 import javax.swing.JRadioButton; 22 25 import javax.swing.JSeparator; 23 26 import javax.swing.filechooser.FileFilter; … … 115 118 boolean force = Main.pref.getBoolean("draw.rawgps.lines.force"); 116 119 boolean lines = Main.pref.getBoolean("draw.rawgps.lines"); 120 String linesKey = "draw.rawgps.lines.layer "+name; 121 if (Main.pref.hasKey(linesKey)) 122 lines = Main.pref.getBoolean(linesKey); 117 123 boolean large = Main.pref.getBoolean("draw.rawgps.large"); 118 124 for (Collection<GpsPoint> c : data) { … … 167 173 168 174 @Override public Component[] getMenuEntries() { 175 JMenuItem line = new JMenuItem(tr("Customize line drawing"), ImageProvider.get("mapmode/addsegment")); 176 line.addActionListener(new ActionListener(){ 177 public void actionPerformed(ActionEvent e) { 178 JRadioButton[] r = new JRadioButton[3]; 179 r[0] = new JRadioButton(tr("Use global settings.")); 180 r[1] = new JRadioButton(tr("Draw lines between points for this layer.")); 181 r[2] = new JRadioButton(tr("Do not draw lines between points for this layer.")); 182 ButtonGroup group = new ButtonGroup(); 183 Box panel = Box.createVerticalBox(); 184 for (JRadioButton b : r) { 185 group.add(b); 186 panel.add(b); 187 } 188 String propName = "draw.rawgps.lines.layer "+name; 189 if (Main.pref.hasKey(propName)) 190 group.setSelected(r[Main.pref.getBoolean(propName) ? 1:2].getModel(), true); 191 else 192 group.setSelected(r[0].getModel(), true); 193 int answer = JOptionPane.showConfirmDialog(Main.parent, panel, tr("Select line drawing options"), JOptionPane.OK_CANCEL_OPTION); 194 if (answer == JOptionPane.CANCEL_OPTION) 195 return; 196 if (group.getSelection() == r[0].getModel()) 197 Main.pref.put(propName, null); 198 else 199 Main.pref.put(propName, group.getSelection() == r[1].getModel()); 200 Main.map.repaint(); 201 } 202 }); 203 169 204 JMenuItem color = new JMenuItem(tr("Customize Color"), ImageProvider.get("colorchooser")); 170 205 color.addActionListener(new ActionListener(){ … … 228 263 new JMenuItem(new GpxExportAction(this)), 229 264 color, 265 line, 230 266 tagimage, 231 267 new JMenuItem(new ConvertToDataLayerAction()),
Note:
See TracChangeset
for help on using the changeset viewer.