Changeset 7732 in josm


Ignore:
Timestamp:
2014-11-19T09:49:45+01:00 (6 years ago)
Author:
Don-vip
Message:

fix #10766 - Save notes to file (patch by ToeBee)

Location:
trunk/src/org/openstreetmap/josm
Files:
2 added
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/actions/ExtensionFileFilter.java

    r7578 r7732  
    9797                "org.openstreetmap.josm.io.OsmBzip2Exporter",
    9898                "org.openstreetmap.josm.io.GeoJSONExporter",
    99                 "org.openstreetmap.josm.io.WMSLayerExporter"
     99                "org.openstreetmap.josm.io.WMSLayerExporter",
     100                "org.openstreetmap.josm.io.NoteExporter"
    100101        };
    101102
  • trunk/src/org/openstreetmap/josm/data/osm/NoteData.java

    r7699 r7732  
    3737    public NoteData(List<Note> notes) {
    3838        noteList = notes;
     39        for (Note note : notes) {
     40            if (note.getId() <= newNoteId) {
     41                newNoteId = note.getId() - 1;
     42            }
     43        }
    3944    }
    4045
  • trunk/src/org/openstreetmap/josm/gui/layer/NoteLayer.java

    r7699 r7732  
    99import java.awt.event.MouseEvent;
    1010import java.awt.event.MouseListener;
     11import java.io.File;
    1112import java.text.SimpleDateFormat;
    1213import java.util.ArrayList;
     
    1920
    2021import org.openstreetmap.josm.Main;
     22import org.openstreetmap.josm.actions.SaveActionBase;
    2123import org.openstreetmap.josm.data.Bounds;
    2224import org.openstreetmap.josm.data.notes.Note;
     
    2931import org.openstreetmap.josm.gui.dialogs.LayerListPopup;
    3032import org.openstreetmap.josm.gui.dialogs.NoteDialog;
     33import org.openstreetmap.josm.io.NoteExporter;
    3134import org.openstreetmap.josm.io.XmlWriter;
    3235import org.openstreetmap.josm.tools.ColorHelper;
     
    7982    public boolean requiresUploadToServer() {
    8083        return isModified();
     84    }
     85
     86    @Override
     87    public boolean isSavable() {
     88        return true;
     89    }
     90
     91    @Override
     92    public boolean requiresSaveToFile() {
     93        Main.debug("associated notes file: " + getAssociatedFile());
     94        return getAssociatedFile() != null && isModified();
    8195    }
    8296
     
    108122                if (commentText != null && commentText.trim().length() > 0) {
    109123                    sb.append(sep);
    110                     String userName = comment.getUser().getName();
     124                    String userName = XmlWriter.encode(comment.getUser().getName());
    111125                    if (userName == null || userName.trim().length() == 0) {
    112126                        userName = "&lt;Anonymous&gt;";
     
    191205        actions.add(LayerListDialog.getInstance().createDeleteLayerAction());
    192206        actions.add(new LayerListPopup.InfoAction(this));
     207        actions.add(new LayerSaveAction(this));
     208        actions.add(new LayerSaveAsAction(this));
    193209        return actions.toArray(new Action[actions.size()]);
    194210    }
     
    217233
    218234    @Override
     235    public File createAndOpenSaveFileChooser() {
     236        return SaveActionBase.createAndOpenSaveFileChooser(tr("Save GPX file"), NoteExporter.FILE_FILTER);
     237    }
     238
     239    @Override
    219240    public void mousePressed(MouseEvent e) { }
    220241
  • trunk/src/org/openstreetmap/josm/io/NoteReader.java

    r7663 r7732  
    137137            if("comment".equals(qName)) {
    138138                User commentUser = User.createOsmUser(commentUid, commentUsername);
     139                if (commentUid == 0) {
     140                    commentUser = User.getAnonymous();
     141                }
    139142                if(parseMode == NoteParseMode.API) {
    140143                    commentIsNew = false;
     
    164167            case "date_created":
    165168                thisNote.setCreatedAt(parseDate(NOTE_DATE_FORMAT, buffer.toString()));
     169                break;
     170            case "date_closed":
     171                thisNote.setClosedAt(parseDate(NOTE_DATE_FORMAT, buffer.toString()));
    166172                break;
    167173            case "date":
Note: See TracChangeset for help on using the changeset viewer.