Changeset 14101 in josm for trunk/src/org/openstreetmap/josm/gui
- Timestamp:
- 2018-08-07T00:24:36+02:00 (6 years ago)
- Location:
- trunk/src/org/openstreetmap/josm/gui
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/gui/io/importexport/OsmChangeImporter.java
r12671 r14101 14 14 import org.openstreetmap.josm.actions.ExtensionFileFilter; 15 15 import org.openstreetmap.josm.data.osm.DataSet; 16 import org.openstreetmap.josm.data.osm.NoteData; 16 17 import org.openstreetmap.josm.gui.MainApplication; 18 import org.openstreetmap.josm.gui.layer.Layer; 19 import org.openstreetmap.josm.gui.layer.NoteLayer; 17 20 import org.openstreetmap.josm.gui.layer.OsmDataLayer; 18 21 import org.openstreetmap.josm.gui.progress.ProgressMonitor; … … 22 25 import org.openstreetmap.josm.io.OsmChangeReader; 23 26 import org.openstreetmap.josm.tools.Logging; 27 import org.openstreetmap.josm.tools.Pair; 24 28 25 29 /** … … 29 33 public class OsmChangeImporter extends FileImporter { 30 34 35 /** 36 * File filter for OsmChange files. 37 */ 31 38 public static final ExtensionFileFilter FILE_FILTER = ExtensionFileFilter.newFilterWithArchiveExtensions( 32 39 "osc", "osc", tr("OsmChange File"), true); 33 40 34 41 /** 35 * Constructs a new {@code OsmChangeImporter} .42 * Constructs a new {@code OsmChangeImporter} with default file filter. 36 43 */ 37 44 public OsmChangeImporter() { … … 39 46 } 40 47 48 /** 49 * Constructs a new {@code OsmChangeImporter} with custom file filter. 50 * @param filter file filter 51 */ 41 52 public OsmChangeImporter(ExtensionFileFilter filter) { 42 53 super(filter); … … 54 65 55 66 protected void importData(InputStream in, final File associatedFile, ProgressMonitor progressMonitor) throws IllegalDataException { 56 final DataSet dataSet = OsmChangeReader.parseDataSet(in, progressMonitor); 57 final OsmDataLayer layer = new OsmDataLayer(dataSet, associatedFile.getName(), associatedFile); 58 addDataLayer(dataSet, layer, associatedFile.getPath()); 67 final Pair<DataSet, NoteData> p = OsmChangeReader.parseDataSetAndNotes(in, progressMonitor); 68 final boolean hasOsmData = p.a != null && !p.a.allPrimitives().isEmpty(); 69 final boolean hasNotes = p.b != null && !p.b.getNotes().isEmpty(); 70 if (hasOsmData) { 71 addLayer(new OsmDataLayer(p.a, associatedFile.getName(), associatedFile)); 72 } 73 if (hasNotes) { 74 addLayer(new NoteLayer(p.b, associatedFile.getName())); 75 } 76 if (!hasOsmData && !hasNotes) { 77 // FIXME: remove UI stuff from IO subsystem 78 GuiHelper.runInEDT(() -> { 79 JOptionPane.showMessageDialog( 80 Main.parent, 81 tr("No data found in file {0}.", associatedFile.getPath()), 82 tr("Open OsmChange file"), 83 JOptionPane.INFORMATION_MESSAGE); 84 }); 85 } 59 86 } 60 87 61 protected void add DataLayer(final DataSet dataSet, final OsmDataLayer layer, final String filePath) {88 protected void addLayer(final Layer layer) { 62 89 // FIXME: remove UI stuff from IO subsystem 63 //64 90 GuiHelper.runInEDT(() -> { 65 if (dataSet.allPrimitives().isEmpty()) {66 JOptionPane.showMessageDialog(67 Main.parent,68 tr("No data found in file {0}.", filePath),69 tr("Open OsmChange file"),70 JOptionPane.INFORMATION_MESSAGE);71 }72 91 MainApplication.getLayerManager().addLayer(layer); 73 92 layer.onPostLoadFromFile(); -
trunk/src/org/openstreetmap/josm/gui/layer/NoteLayer.java
r13852 r14101 102 102 } 103 103 104 /** 105 * Create a new note layer with a notes data 106 * @param noteData Notes data 107 * @param name The name of the layer. Typically "Notes" 108 * @since 14101 109 */ 110 public NoteLayer(NoteData noteData, String name) { 111 super(name); 112 this.noteData = noteData; 113 this.noteData.addNoteDataUpdateListener(this); 114 } 115 104 116 /** Convenience constructor that creates a layer with an empty note list */ 105 117 public NoteLayer() {
Note:
See TracChangeset
for help on using the changeset viewer.