source: josm/trunk/src/org/openstreetmap/josm/io/NoteImporter.java@ 8882

Last change on this file since 8882 was 7870, checked in by Don-vip, 9 years ago

cleanup of NoteImporter

  • Property svn:eol-style set to native
File size: 2.1 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.io.InputStream;
9import java.util.List;
10
11import org.openstreetmap.josm.Main;
12import org.openstreetmap.josm.actions.ExtensionFileFilter;
13import org.openstreetmap.josm.data.notes.Note;
14import org.openstreetmap.josm.gui.layer.NoteLayer;
15import org.openstreetmap.josm.gui.progress.ProgressMonitor;
16import org.openstreetmap.josm.gui.util.GuiHelper;
17import org.xml.sax.SAXException;
18
19/**
20 * File importer that reads note dump files (*.osn and .osn.bz2)
21 * @since 7538
22 */
23public class NoteImporter extends FileImporter {
24
25 private static final ExtensionFileFilter FILE_FILTER = new ExtensionFileFilter(
26 "osn,osn.bz2", "osn", tr("Note Files") + " (*.osn *.osn.bz2)");
27
28 /** Create an importer for note dump files */
29 public NoteImporter() {
30 super(FILE_FILTER);
31 }
32
33 @Override
34 public void importData(final File file, ProgressMonitor progressMonitor) throws IOException {
35 if (Main.isDebugEnabled()) {
36 Main.debug("importing notes file " + file.getAbsolutePath());
37 }
38 try (InputStream is = Compression.getUncompressedFileInputStream(file)) {
39 final List<Note> fileNotes = new NoteReader(is).parse();
40
41 List<NoteLayer> noteLayers = null;
42 if (Main.map != null) {
43 noteLayers = Main.map.mapView.getLayersOfType(NoteLayer.class);
44 }
45 if (noteLayers != null && !noteLayers.isEmpty()) {
46 noteLayers.get(0).getNoteData().addNotes(fileNotes);
47 } else {
48 GuiHelper.runInEDT(new Runnable() {
49 @Override
50 public void run() {
51 Main.main.addLayer(new NoteLayer(fileNotes, file.getName()));
52 }
53 });
54 }
55 } catch (SAXException e) {
56 Main.error("error opening up notes file");
57 Main.error(e, true);
58 throw new IOException(e.getMessage(), e);
59 }
60 }
61}
Note: See TracBrowser for help on using the repository browser.