Ticket #18130: patch_select_image_after_remove.patch
File patch_select_image_after_remove.patch, 3.2 KB (added by , 5 years ago) |
---|
-
src/org/openstreetmap/josm/data/ImageData.java
246 246 * Remove the current selected image from the list 247 247 */ 248 248 public void removeSelectedImage() { 249 List<ImageEntry> selected = getSelectedImages();250 if (selected .size() > 1) {249 List<ImageEntry> selectedImages = getSelectedImages(); 250 if (selectedImages.size() > 1) { 251 251 throw new IllegalStateException(tr("Multiple images have been selected")); 252 252 } 253 if (selected.isEmpty()) { 254 return; 255 } 256 data.remove(getSelectedImages().get(0)); 257 if (selectedImagesIndex.get(0) == data.size()) { 258 setSelectedImageIndex(data.size() - 1); 259 } else { 260 setSelectedImageIndex(selectedImagesIndex.get(0), true); 261 } 253 removeImages(selectedImages); 262 254 } 263 255 264 256 /** … … 266 258 * @since 15348 267 259 */ 268 260 public void removeSelectedImages() { 269 List<ImageEntry> selected = getSelectedImages(); 270 if (selected.isEmpty()) { 261 List<ImageEntry> selectedImages = getSelectedImages(); 262 removeImages(selectedImages); 263 } 264 265 private void removeImages(List<ImageEntry> selectedImages) { 266 if (selectedImages.isEmpty()) { 271 267 return; 272 268 } 273 269 for (ImageEntry img: getSelectedImages()) { 274 270 data.remove(img); 275 271 } 276 setSelectedImageIndex(-1, true); 272 if (selectedImagesIndex.get(0) == data.size()) { 273 setSelectedImageIndex(data.size() - 1); 274 } else { 275 setSelectedImageIndex(selectedImagesIndex.get(0), true); 276 } 277 277 } 278 278 279 279 /** -
test/unit/org/openstreetmap/josm/data/ImageDataTest.java
195 195 } 196 196 197 197 @Test 198 public void testSelectImageAfterRemove() { 199 List<ImageEntry> list = getOneImage(); 200 list.add(new ImageEntry()); 201 202 ImageData data = new ImageData(list); 203 data.selectFirstImage(); 204 data.removeSelectedImages(); 205 assertEquals(1, data.getImages().size()); 206 assertEquals(1, data.getSelectedImages().size()); 207 assertEquals(list.get(0), data.getSelectedImages().get(0)); 208 } 209 210 @Test 211 public void testSelectImageAfterRemoveWhenTheLastIsSelected() { 212 List<ImageEntry> list = getOneImage(); 213 list.add(new ImageEntry()); 214 215 ImageData data = new ImageData(list); 216 data.selectLastImage(); 217 data.removeSelectedImages(); 218 assertEquals(1, data.getImages().size()); 219 assertEquals(1, data.getSelectedImages().size()); 220 assertEquals(list.get(0), data.getSelectedImages().get(0)); 221 } 222 223 @Test 198 224 public void testRemoveSelectedImageTriggerListener() { 199 225 List<ImageEntry> list = getOneImage(); 200 226 list.add(new ImageEntry());