Ticket #3407: osb_npe_and_warnings.2.patch
| File osb_npe_and_warnings.2.patch, 5.4 KB (added by , 17 years ago) |
|---|
-
src/org/openstreetmap/josm/plugins/osb/api/DownloadAction.java
84 84 double lat = Double.parseDouble(m.group(3)); 85 85 double lon = Double.parseDouble(m.group(2)); 86 86 LatLon latlon = new LatLon(lat, lon); 87 Node osmNode = new Node(latlon); 88 osmNode.id = Long.parseLong(m.group(1)); 87 Node osmNode = new Node(Long.parseLong(m.group(1))); 88 osmNode.setCoor(latlon); 89 osmNode.incomplete = false; 89 90 osmNode.put("id", m.group(1)); 90 91 osmNode.put("note", m.group(4)); 91 92 osmNode.put("openstreetbug", "FIXME"); -
src/org/openstreetmap/josm/plugins/osb/gui/OsbDialog.java
78 78 import org.openstreetmap.josm.tools.Shortcut; 79 79 80 80 public class OsbDialog extends ToggleDialog implements OsbObserver, ListSelectionListener, LayerChangeListener, 81 DataChangeListener, MouseListener, OsbActionObserver {81 DataChangeListener, MouseListener, OsbActionObserver { 82 82 83 83 private static final long serialVersionUID = 1L; 84 84 private DefaultListModel model; … … 187 187 Collections.sort(sortedList, new BugComparator()); 188 188 189 189 for (Node node : sortedList) { 190 if (!node. deleted) {190 if (!node.isDeleted()) { 191 191 model.addElement(new OsbListItem(node)); 192 192 } 193 193 } … … 217 217 } 218 218 219 219 OsbAction.setSelectedNode(node); 220 221 220 scrollToSelected(node); 221 } 222 222 223 if (fireSelectionChanged) { 224 Main.main.getCurrentDataSet().setSelected(selected); 225 } 223 // CurrentDataSet may be null if there is no normal, edible map 224 // If so, a temporary DataSet is created because it's the simplest way 225 // to fire all necessary events so OSB updates its popups. 226 DataSet ds = Main.main.getCurrentDataSet(); 227 if (fireSelectionChanged) { 228 if(ds == null) 229 ds = new DataSet(); 230 ds.setSelected(selected); 226 231 } 227 232 } 228 233 229 234 private void scrollToSelected(Node node) { 230 235 for (int i = 0; i < model.getSize(); i++) { 231 236 Node current = ((OsbListItem) model.get(i)).getNode(); 232 if (current. id == node.id) {237 if (current.getId()== node.getId()) { 233 238 list.scrollRectToVisible(list.getCellBounds(i, i)); 234 239 list.setSelectedIndex(i); 235 240 return; … … 319 324 } 320 325 }); 321 326 } 322 323 @Override324 public void showDialog() {325 if (!downloaded) {326 initialDownload();327 downloaded = true;328 }329 super.showDialog();330 }327 328 @Override 329 public void showDialog() { 330 if (!downloaded) { 331 initialDownload(); 332 downloaded = true; 333 } 334 super.showDialog(); 335 } 331 336 } -
src/org/openstreetmap/josm/plugins/osb/gui/OsbListItem.java
62 62 if(obj instanceof OsbListItem) { 63 63 OsbListItem other = (OsbListItem)obj; 64 64 if(getNode() != null && other.getNode() != null) { 65 return getNode(). id == other.getNode().id;65 return getNode().getId() == other.getNode().getId(); 66 66 } 67 67 } 68 68 -
src/org/openstreetmap/josm/plugins/osb/OsbLayer.java
124 124 Node node = (Node) nodes[i]; 125 125 126 126 // don't paint deleted nodes 127 if(node. deleted)127 if(node.isDeleted()) 128 128 continue; 129 129 130 130 Point p = mv.getPoint(node); … … 148 148 for (int i = 0; i < nodes.length; i++) { 149 149 Node node = (Node) nodes[i]; 150 150 151 if(node. deleted|| !selection.contains(node))151 if(node.isDeleted() || !selection.contains(node)) 152 152 continue; 153 153 154 154 // draw selection border … … 159 159 int height = icon.getIconHeight(); 160 160 161 161 g.setColor(ColorHelper.html2color(Main.pref.get("color.selected"))); 162 g.drawRect(p.x - (width / 2), p.y - (height / 2), 16, 16);162 g.drawRect(p.x-(width/2), p.y-(height/2), width-1, height-1); 163 163 164 164 // draw description 165 165 String desc = node.get("note"); … … 209 209 double minDistanceSq = Double.MAX_VALUE; 210 210 Node minPrimitive = null; 211 211 for (Node n : data.nodes) { 212 if ( n.deleted || n.incomplete)212 if (!n.isUsable()) 213 213 continue; 214 214 Point sp = Main.map.mapView.getPoint(n); 215 215 double dist = p.distanceSq(sp);
