source: josm/trunk/src/org/openstreetmap/josm/io/JpgImporter.java@ 2702

Last change on this file since 2702 was 2702, checked in by bastiK, 14 years ago

fixed #4100 - unable to simply load already referenced images
Added 'jpg' to the list of available formats for 'File' > 'Open...'

File size: 1.7 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.io;
3
4import static org.openstreetmap.josm.tools.I18n.tr;
5
6import java.io.File;
7import java.io.IOException;
8import java.util.Arrays;
9import java.util.List;
10import java.util.LinkedList;
11
12import org.openstreetmap.josm.actions.ExtensionFileFilter;
13import org.openstreetmap.josm.gui.layer.GpxLayer;
14import org.openstreetmap.josm.gui.layer.geoimage.GeoImageLayer;
15
16public class JpgImporter extends FileImporter {
17 private GpxLayer gpx;
18
19 public JpgImporter() {
20 super(new ExtensionFileFilter("jpg", "jpg", tr("Image Files") + " (*.jpg, "+ tr("folder")+")"));
21 }
22
23 public JpgImporter(GpxLayer gpx) {
24 this();
25 this.gpx = gpx;
26 }
27
28 @Override
29 public boolean acceptFile(File pathname) {
30 return super.acceptFile(pathname) || pathname.isDirectory();
31 }
32
33 @Override
34 public void importData(List<File> sel) throws IOException, IllegalDataException {
35 if (sel == null || sel.size() == 0)
36 return;
37 LinkedList<File> files = new LinkedList<File>();
38 addRecursiveFiles(files, sel);
39 GeoImageLayer.create(files, gpx);
40 }
41
42 private void addRecursiveFiles(LinkedList<File> files, List<File> sel) {
43 for (File f : sel) {
44 if (f.isDirectory()) {
45 addRecursiveFiles(files, Arrays.asList(f.listFiles()));
46 } else if (f.getName().toLowerCase().endsWith(".jpg")) {
47 files.add(f);
48 }
49 }
50 }
51
52 @Override
53 public boolean isBatchImporter() {
54 return true;
55 }
56
57 /**
58 * Needs to be the last, to avoid problems.
59 */
60 @Override
61 public double getPriority() {
62 return -1000;
63 }
64}
Note: See TracBrowser for help on using the repository browser.