Changeset 8225 in josm for trunk


Ignore:
Timestamp:
2015-04-18T22:44:31+02:00 (10 years ago)
Author:
simon04
Message:

Note dialog/reader/writer: use helper methods from DateUtils

Location:
trunk/src/org/openstreetmap/josm
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/gui/dialogs/NotesDialog.java

    r8224 r8225  
    1010import java.awt.event.MouseAdapter;
    1111import java.awt.event.MouseEvent;
    12 import java.text.SimpleDateFormat;
     12import java.text.DateFormat;
    1313import java.util.ArrayList;
    1414import java.util.Arrays;
     
    4646import org.openstreetmap.josm.gui.layer.NoteLayer;
    4747import org.openstreetmap.josm.tools.ImageProvider;
     48import org.openstreetmap.josm.tools.date.DateUtils;
    4849
    4950/**
     
    229230
    230231        private DefaultListCellRenderer defaultListCellRenderer = new DefaultListCellRenderer();
    231         private final SimpleDateFormat sdf = new SimpleDateFormat("dd MMM yyyy kk:mm");
     232        private final DateFormat dateFormat = DateUtils.getDateTimeFormat(DateFormat.MEDIUM, DateFormat.SHORT);
    232233
    233234        @Override
     
    241242                    userName = "<Anonymous>";
    242243                }
    243                 String toolTipText = userName + " @ " + sdf.format(note.getCreatedAt());
     244                String toolTipText = userName + " @ " + dateFormat.format(note.getCreatedAt());
    244245                JLabel jlabel = (JLabel)comp;
    245246                jlabel.setText(note.getId() + ": " +text);
  • trunk/src/org/openstreetmap/josm/io/NoteReader.java

    r8224 r8225  
    66import java.io.InputStream;
    77import java.nio.charset.StandardCharsets;
    8 import java.text.ParseException;
    9 import java.text.SimpleDateFormat;
    108import java.util.ArrayList;
    119import java.util.Date;
    1210import java.util.List;
    13 import java.util.Locale;
    1411
    1512import javax.xml.parsers.ParserConfigurationException;
     
    2219import org.openstreetmap.josm.data.notes.NoteComment.Action;
    2320import org.openstreetmap.josm.data.osm.User;
     21import org.openstreetmap.josm.tools.date.DateUtils;
    2422import org.xml.sax.Attributes;
    2523import org.xml.sax.InputSource;
     
    4947     */
    5048    private class Parser extends DefaultHandler {
    51 
    52         private final SimpleDateFormat ISO8601_FORMAT = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssX", Locale.ENGLISH);
    53         private final SimpleDateFormat NOTE_DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss z", Locale.ENGLISH);
    5449
    5550        private NoteParseMode parseMode;
     
    106101                } else {
    107102                    thisNote.setState(Note.State.closed);
    108                     thisNote.setClosedAt(parseDate(ISO8601_FORMAT, closedTimeStr));
    109                 }
    110                 thisNote.setCreatedAt(parseDate(ISO8601_FORMAT, attrs.getValue("created_at")));
     103                    thisNote.setClosedAt(DateUtils.fromString(closedTimeStr));
     104                }
     105                thisNote.setCreatedAt(DateUtils.fromString(attrs.getValue("created_at")));
    111106                break;
    112107            case "comment":
     
    119114                commentUsername = attrs.getValue("user");
    120115                noteAction = Action.valueOf(attrs.getValue("action"));
    121                 commentCreateDate = parseDate(ISO8601_FORMAT, attrs.getValue("timestamp"));
     116                commentCreateDate = DateUtils.fromString(attrs.getValue("timestamp"));
    122117                String isNew = attrs.getValue("is_new");
    123118                if(isNew == null) {
     
    166161                break;
    167162            case "date_created":
    168                 thisNote.setCreatedAt(parseDate(NOTE_DATE_FORMAT, buffer.toString()));
     163                thisNote.setCreatedAt(DateUtils.fromString(buffer.toString()));
    169164                break;
    170165            case "date_closed":
    171                 thisNote.setClosedAt(parseDate(NOTE_DATE_FORMAT, buffer.toString()));
     166                thisNote.setClosedAt(DateUtils.fromString(buffer.toString()));
    172167                break;
    173168            case "date":
    174                 commentCreateDate = parseDate(NOTE_DATE_FORMAT, buffer.toString());
     169                commentCreateDate = DateUtils.fromString(buffer.toString());
    175170                break;
    176171            case "user":
     
    196191        public void endDocument() throws SAXException  {
    197192            parsedNotes = notes;
    198         }
    199 
    200         /**
    201          * Convenience method to handle the date parsing try/catch. Will return null if
    202          * there is a parsing exception. This means whatever generated this XML is in error
    203          * and there isn't anything we can do about it.
    204          * @param dateStr - String to parse
    205          * @return Parsed date, null if parsing fails
    206          */
    207         private Date parseDate(SimpleDateFormat sdf, String dateStr) {
    208             try {
    209                 return sdf.parse(dateStr);
    210             } catch(ParseException e) {
    211                 Main.error(e);
    212                 return null;
    213             }
    214193        }
    215194    }
  • trunk/src/org/openstreetmap/josm/io/NoteWriter.java

    r7937 r8225  
    77import java.io.PrintWriter;
    88import java.nio.charset.StandardCharsets;
    9 import java.text.SimpleDateFormat;
    10 import java.util.Locale;
     9import java.text.DateFormat;
    1110
    1211import org.openstreetmap.josm.data.notes.Note;
     
    1413import org.openstreetmap.josm.data.osm.NoteData;
    1514import org.openstreetmap.josm.data.osm.User;
     15import org.openstreetmap.josm.tools.date.DateUtils;
    1616
    1717/**
     
    2323public class NoteWriter extends XmlWriter {
    2424
    25     private final SimpleDateFormat ISO8601_FORMAT = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssX", Locale.ENGLISH);
     25    private final DateFormat ISO8601_FORMAT = DateUtils.newIsoDateTimeFormat();
    2626
    2727    /**
Note: See TracChangeset for help on using the changeset viewer.