Ticket #3407: osb_npe_and_warnings.patch
| File osb_npe_and_warnings.patch, 5.0 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
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 } … … 202 202 OsbAction.setSelectedNode(null); 203 203 return; 204 204 } 205 205 206 206 207 List<OsmPrimitive> selected = new ArrayList<OsmPrimitive>(); 207 208 for (Object listItem : list.getSelectedValues()) { 208 209 Node node = ((OsbListItem) listItem).getNode(); … … 217 218 } 218 219 219 220 OsbAction.setSelectedNode(node); 220 221 scrollToSelected(node); 222 223 if (fireSelectionChanged) { 224 Main.main.getCurrentDataSet().setSelected(selected); 225 } 221 scrollToSelected(node); 222 } 223 224 // CurrentDataSet may be null if there is no normal, edible map 225 // If so, a temporary DataSet is created because it's the simplest way 226 // to fire all necessary events so OSB updates its popups. 227 DataSet ds = Main.main.getCurrentDataSet(); 228 if (fireSelectionChanged) { 229 if(ds == null) 230 ds = new DataSet(); 231 ds.setSelected(selected); 226 232 } 227 233 } 228 234 229 235 private void scrollToSelected(Node node) { 230 236 for (int i = 0; i < model.getSize(); i++) { 231 237 Node current = ((OsbListItem) model.get(i)).getNode(); 232 if (current. id == node.id) {238 if (current.getId()== node.getId()) { 233 239 list.scrollRectToVisible(list.getCellBounds(i, i)); 234 240 list.setSelectedIndex(i); 235 241 return; -
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);
