Ignore:
Timestamp:
2009-09-02T21:17:52+02:00 (15 years ago)
Author:
Gubaer
Message:

new: improved dialog for uploading/saving modified layers on exit
new: improved dialog for uploading/saving modified layers if layers are deleted
new: new progress monitor which can delegate rendering to any Swing component
more setters/getters for properties in OSM data classes (fields are @deprecated); started to update references in the code base

Location:
trunk/src/org/openstreetmap/josm/io
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/io/MultiFetchServerObjectReader.java

    r2000 r2025  
    168168    public MultiFetchServerObjectReader append(Node node) {
    169169        if (node == null) return this;
    170         if (node.id == 0) return this;
    171         remember(node.id, OsmPrimitiveType.NODE);
     170        if (node.getId() == 0) return this;
     171        remember(node.getId(), OsmPrimitiveType.NODE);
    172172        return this;
    173173    }
     
    182182    public MultiFetchServerObjectReader append(Way way) {
    183183        if (way == null) return this;
    184         if (way.id == 0) return this;
     184        if (way.getId() == 0) return this;
    185185        for (Node node: way.getNodes()) {
    186             if (node.id > 0) {
    187                 remember(node.id, OsmPrimitiveType.NODE);
    188             }
    189         }
    190         remember(way.id, OsmPrimitiveType.WAY);
     186            if (node.getId() > 0) {
     187                remember(node.getId(), OsmPrimitiveType.NODE);
     188            }
     189        }
     190        remember(way.getId(), OsmPrimitiveType.WAY);
    191191        return this;
    192192    }
     
    201201    public MultiFetchServerObjectReader append(Relation relation) {
    202202        if (relation == null) return this;
    203         if (relation.id == 0) return this;
    204         remember(relation.id, OsmPrimitiveType.RELATION);
     203        if (relation.getId() == 0) return this;
     204        remember(relation.getId(), OsmPrimitiveType.RELATION);
    205205        for (RelationMember member : relation.getMembers()) {
    206206            if (OsmPrimitiveType.from(member.member).equals(OsmPrimitiveType.RELATION)) {
    207207                // avoid infinite recursion in case of cyclic dependencies in relations
    208208                //
    209                 if (relations.contains(member.member.id)) {
     209                if (relations.contains(member.member.getId())) {
    210210                    continue;
    211211                }
     
    373373                String msg = "";
    374374                switch(type) {
    375                 case NODE: msg = tr("Fetching node with id {0} from ''{1}''", id, OsmApi.getOsmApi().getBaseUrl()); break;
    376                 case WAY: msg = tr("Fetching way with id {0} from ''{1}''", id, OsmApi.getOsmApi().getBaseUrl()); break;
    377                 case RELATION: msg = tr("Fetching relation with id {0} from ''{1}''", id, OsmApi.getOsmApi().getBaseUrl()); break;
     375                    case NODE: msg = tr("Fetching node with id {0} from ''{1}''", id, OsmApi.getOsmApi().getBaseUrl()); break;
     376                    case WAY: msg = tr("Fetching way with id {0} from ''{1}''", id, OsmApi.getOsmApi().getBaseUrl()); break;
     377                    case RELATION: msg = tr("Fetching relation with id {0} from ''{1}''", id, OsmApi.getOsmApi().getBaseUrl()); break;
    378378                }
    379379                progressMonitor.setCustomText(msg);
     
    411411        String msg = "";
    412412        switch(type) {
    413         case NODE: msg = tr("Fetching a package of nodes from ''{0}''", OsmApi.getOsmApi().getBaseUrl()); break;
    414         case WAY:  msg = tr("Fetching a package of ways from ''{0}''", OsmApi.getOsmApi().getBaseUrl()); break;
    415         case RELATION:  msg = tr("Fetching a package of relations from ''{0}''", OsmApi.getOsmApi().getBaseUrl()); break;
     413            case NODE: msg = tr("Fetching a package of nodes from ''{0}''", OsmApi.getOsmApi().getBaseUrl()); break;
     414            case WAY:  msg = tr("Fetching a package of ways from ''{0}''", OsmApi.getOsmApi().getBaseUrl()); break;
     415            case RELATION:  msg = tr("Fetching a package of relations from ''{0}''", OsmApi.getOsmApi().getBaseUrl()); break;
    416416        }
    417417        progressMonitor.setCustomText(msg);
  • trunk/src/org/openstreetmap/josm/io/OsmApi.java

    r1894 r2025  
    251251        if (version.equals("0.5")) {
    252252            // legacy mode does not return the new object version.
    253             sendRequest("PUT", OsmPrimitiveType.from(osm).getAPIName()+"/" + osm.id, toXml(osm, true));
     253            sendRequest("PUT", OsmPrimitiveType.from(osm).getAPIName()+"/" + osm.getId(), toXml(osm, true));
    254254        } else {
    255255            String ret = null;
    256256            // normal mode (0.6 and up) returns new object version.
    257257            try {
    258                 ret = sendRequest("PUT", OsmPrimitiveType.from(osm).getAPIName()+"/" + osm.id, toXml(osm, true));
     258                ret = sendRequest("PUT", OsmPrimitiveType.from(osm).getAPIName()+"/" + osm.getId(), toXml(osm, true));
    259259                osm.version = Integer.parseInt(ret.trim());
    260260            } catch(NumberFormatException e) {
    261                 throw new OsmTransferException(tr("unexpected format of new version of modified primitive ''{0}'', got ''{1}''", osm.id, ret));
     261                throw new OsmTransferException(tr("unexpected format of new version of modified primitive ''{0}'', got ''{1}''", osm.getId(), ret));
    262262            }
    263263        }
     
    303303     */
    304304    public void stopChangeset(ProgressMonitor progressMonitor) throws OsmTransferException {
    305         progressMonitor.beginTask(tr("Closing changeset..."));
     305        progressMonitor.beginTask(tr("Closing changeset {0}...", changeset.getId()));
    306306        try {
    307307            initialize();
    308             sendRequest("PUT", "changeset" + "/" + changeset.id + "/close", null);
     308            sendRequest("PUT", "changeset" + "/" + changeset.getId() + "/close", null);
    309309            changeset = null;
    310310        } finally {
     
    341341            String diff = duv.getDocument();
    342342            try {
    343                 String diffresult = sendRequest("POST", "changeset/" + changeset.id + "/upload", diff);
     343                String diffresult = sendRequest("POST", "changeset/" + changeset.getId() + "/upload", diff);
    344344                DiffResultReader.parseDiffResult(diffresult, list, processed, duv.getNewIdMap(),
    345345                        progressMonitor.createSubTaskMonitor(ProgressMonitor.ALL_TICKS, false));
  • trunk/src/org/openstreetmap/josm/io/OsmExporter.java

    r2017 r2025  
    7676                tmpFile.delete();
    7777            }
    78             layer.cleanupAfterSaveToDisk();
     78            layer.onPostSaveToFile();
    7979        } catch (IOException e) {
    8080            e.printStackTrace();
  • trunk/src/org/openstreetmap/josm/io/OsmImporter.java

    r1811 r2025  
    5050        Main.main.addLayer(layer);
    5151        layer.fireDataChange();
     52        layer.onPostLoadFromFile();
    5253    }
    5354}
  • trunk/src/org/openstreetmap/josm/io/OsmServerWriter.java

    r2004 r2025  
    9595                String msg = "";
    9696                switch(OsmPrimitiveType.from(osm)) {
    97                 case NODE: msg = marktr("{0}% ({1}/{2}), {3} left. Uploading node ''{4}'' (id: {5})"); break;
    98                 case WAY: msg = marktr("{0}% ({1}/{2}), {3} left. Uploading way ''{4}'' (id: {5})"); break;
    99                 case RELATION: msg = marktr("{0}% ({1}/{2}), {3} left. Uploading relation ''{4}'' (id: {5})"); break;
     97                    case NODE: msg = marktr("{0}% ({1}/{2}), {3} left. Uploading node ''{4}'' (id: {5})"); break;
     98                    case WAY: msg = marktr("{0}% ({1}/{2}), {3} left. Uploading way ''{4}'' (id: {5})"); break;
     99                    case RELATION: msg = marktr("{0}% ({1}/{2}), {3} left. Uploading relation ''{4}'' (id: {5})"); break;
    100100                }
    101101                progressMonitor.subTask(
     
    105105                                primitives.size(),
    106106                                time_left_str,
    107                                 osm.getName() == null ? osm.id : osm.getName(),
    108                                         osm.id));
     107                                osm.getName() == null ? osm.getId() : osm.getName(),
     108                                        osm.getId()));
    109109                makeApiRequest(osm,progressMonitor);
    110110                processed.add(osm);
     
    117117        } finally {
    118118            try {
    119                 api.stopChangeset(progressMonitor.createSubTaskMonitor(0, false));
     119                // starting the changeset may have failed, for instance because the user
     120                // cancelled the upload task. Only close the changeset if we currently have
     121                // an open changeset
     122
     123                if (api.getCurrentChangeset() != null && api.getCurrentChangeset().getId() > 0) {
     124                    api.stopChangeset(progressMonitor.createSubTaskMonitor(0, false));
     125                }
    120126            } catch(Exception e) {
    121127                Changeset changeset = api.getCurrentChangeset();
    122                 String changesetId = (changeset == null ? tr("unknown") : Long.toString(changeset.id));
     128                String changesetId = (changeset == null ? tr("unknown") : Long.toString(changeset.getId()));
    123129                logger.warning(tr("Failed to close changeset {0}, will be closed by server after timeout. Exception was: {1}",
    124130                        changesetId, e.toString()));
     
    149155            } catch (Exception ee) {
    150156                Changeset changeset = api.getCurrentChangeset();
    151                 String changesetId = (changeset == null ? tr("unknown") : Long.toString(changeset.id));
     157                String changesetId = (changeset == null ? tr("unknown") : Long.toString(changeset.getId()));
    152158                logger.warning(tr("Failed to close changeset {0}, will be closed by server after timeout. Exception was: {1}",
    153159                        changesetId, ee.toString()));
     
    166172
    167173        api.initialize();
    168 
    169         progressMonitor.beginTask("");
    170174
    171175        try {
     
    180184
    181185            if (useChangeset) {
     186                progressMonitor.beginTask(tr("Starting to upload in one request ..."));
    182187                uploadChangesAsDiffUpload(primitives, progressMonitor);
    183188            } else {
     189                progressMonitor.beginTask(tr("Starting to upload with one request per primitive ..."));
    184190                uploadChangesIndividually(primitives, progressMonitor);
    185191            }
     
    190196
    191197    void makeApiRequest(OsmPrimitive osm, ProgressMonitor progressMonitor) throws OsmTransferException {
    192         if (osm.deleted) {
     198        if (osm.isDeleted()) {
    193199            api.deletePrimitive(osm, progressMonitor);
    194         } else if (osm.id == 0) {
     200        } else if (osm.getId() == 0) {
    195201            api.createPrimitive(osm);
    196202        } else {
  • trunk/src/org/openstreetmap/josm/io/OsmWriter.java

    r1938 r2025  
    8585
    8686    private boolean shouldWrite(OsmPrimitive osm) {
    87         return osm.id != 0 || !osm.deleted;
     87        return osm.getId() != 0 || !osm.isDeleted();
    8888    }
    8989
     
    155155     */
    156156    private long getUsedId(OsmPrimitive osm) {
    157         if (osm.id != 0)
    158             return osm.id;
     157        if (osm.getId() != 0)
     158            return osm.getId();
    159159        if (usedNewIds.containsKey(osm))
    160160            return usedNewIds.get(osm);
     
    169169            }
    170170            for (Entry<String, String> e : osm.entrySet()) {
    171                 if ((osm instanceof Changeset) || !("created_by".equals(e.getKey())))
     171                if ((osm instanceof Changeset) || !("created_by".equals(e.getKey()))) {
    172172                    out.println("    <tag k='"+ XmlWriter.encode(e.getKey()) +
    173173                            "' v='"+XmlWriter.encode(e.getValue())+ "' />");
     174                }
    174175            }
    175176            out.println("  </" + tagname + ">");
     
    193194        if (!osmConform) {
    194195            String action = null;
    195             if (osm.deleted) {
     196            if (osm.isDeleted()) {
    196197                action = "delete";
    197             } else if (osm.modified) {
     198            } else if (osm.isModified()) {
    198199                action = "modify";
    199200            }
     
    209210            out.print(" user='"+XmlWriter.encode(osm.user.name)+"'");
    210211        }
    211         out.print(" visible='"+osm.visible+"'");
     212        out.print(" visible='"+osm.isVisible()+"'");
    212213        if (osm.version != -1) {
    213214            out.print(" version='"+osm.version+"'");
    214215        }
    215         if (this.changeset != null && this.changeset.id != 0) {
    216             out.print(" changeset='"+this.changeset.id+"'" );
     216        if (this.changeset != null && this.changeset.getId() != 0) {
     217            out.print(" changeset='"+this.changeset.getId()+"'" );
    217218        }
    218219    }
Note: See TracChangeset for help on using the changeset viewer.