Changeset 1852 in josm for trunk/src/org


Ignore:
Timestamp:
2009-07-26T11:32:04+02:00 (15 years ago)
Author:
Gubaer
Message:

fixed #3094: Relation editor tries to download objects with id:0 from the server
Parent relations now also displayed for new relations

Location:
trunk/src/org/openstreetmap/josm/gui/dialogs/relation
Files:
2 edited

Legend:

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

    r1850 r1852  
    419419                while(! relationsToDownload.isEmpty() && !cancelled) {
    420420                    Relation r = relationsToDownload.pop();
     421                    if (r.id == 0) {
     422                        continue;
     423                    }
    421424                    rememberChildRelationsToDownload(r);
    422425                    progressMonitor.setCustomText(tr("Downloading relation {0}", nameFormatter.getName(r)));
     
    514517        }
    515518
     519        protected void mergeDataSet(DataSet dataSet) {
     520            if (dataSet != null) {
     521                final MergeVisitor visitor = new MergeVisitor(getLayer().data, dataSet);
     522                visitor.merge();
     523                // FIXME: this is necessary because there are dialogs listening
     524                // for DataChangeEvents which manipulate Swing components on this
     525                // thread.
     526                //
     527                SwingUtilities.invokeLater(new Runnable() {
     528                    public void run() {
     529                        getLayer().fireDataChange();
     530                    }
     531                });
     532                if (!visitor.getConflicts().isEmpty()) {
     533                    getLayer().getConflicts().add(visitor.getConflicts());
     534                    conflictsCount +=  visitor.getConflicts().size();
     535                }
     536            }
     537        }
     538
    516539        @Override
    517540        protected void realRun() throws SAXException, IOException, OsmTransferException {
     
    521544                while(it.hasNext() && !cancelled) {
    522545                    Relation r = it.next();
     546                    if (r.id == 0) {
     547                        continue;
     548                    }
    523549                    progressMonitor.setCustomText(tr("Downloading relation {0}", nameFormatter.getName(r)));
    524550                    OsmServerObjectReader reader = new OsmServerObjectReader(r.id, OsmPrimitiveType.RELATION,
     
    526552                    DataSet dataSet = reader.parseOsm(progressMonitor
    527553                            .createSubTaskMonitor(ProgressMonitor.ALL_TICKS, false));
    528                     if (dataSet != null) {
    529                         final MergeVisitor visitor = new MergeVisitor(getLayer().data, dataSet);
    530                         visitor.merge();
    531                         // FIXME: this is necessary because there are dialogs listening
    532                         // for DataChangeEvents which manipulate Swing components on this
    533                         // thread.
    534                         //
    535                         SwingUtilities.invokeLater(new Runnable() {
    536                             public void run() {
    537                                 getLayer().fireDataChange();
    538                             }
    539                         });
    540                         if (!visitor.getConflicts().isEmpty()) {
    541                             getLayer().getConflicts().add(visitor.getConflicts());
    542                             conflictsCount +=  visitor.getConflicts().size();
    543                         }
    544                     }
     554                    mergeDataSet(dataSet);
    545555                    refreshView(r);
    546556                }
  • trunk/src/org/openstreetmap/josm/gui/dialogs/relation/GenericRelationEditor.java

    r1851 r1852  
    161161        JTabbedPane tabbedPane = new JTabbedPane();
    162162        tabbedPane.add(tr("Tags and Members"), pnl);
    163         if (relation != null && relation.id > 0) {
    164             referrerBrowser = new ReferringRelationsBrowser(getLayer(), referrerModel, this);
    165             tabbedPane.add(tr("Parent Relations"), referrerBrowser);
    166         }
     163        referrerBrowser = new ReferringRelationsBrowser(getLayer(), referrerModel, this);
     164        tabbedPane.add(tr("Parent Relations"), referrerBrowser);
    167165        tabbedPane.add(tr("Child Relations"), new ChildRelationBrowser(getLayer(), relation));
    168166        tabbedPane.addChangeListener(
Note: See TracChangeset for help on using the changeset viewer.