Ignore:
Timestamp:
2009-11-21T20:13:15+01:00 (14 years ago)
Author:
Gubaer
Message:

Code related to #3999. Uncommented for the time being.

File:
1 edited

Legend:

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

    r2484 r2494  
    7676import org.openstreetmap.josm.gui.tagging.ac.AutoCompletionCache;
    7777import org.openstreetmap.josm.gui.tagging.ac.AutoCompletionList;
    78 import org.openstreetmap.josm.io.OsmApi;
     78import org.openstreetmap.josm.io.OsmServerBackreferenceReader;
    7979import org.openstreetmap.josm.io.OsmServerObjectReader;
    8080import org.openstreetmap.josm.io.OsmTransferException;
     
    8787 *
    8888 */
    89 public class GenericRelationEditor extends RelationEditor {
     89public class GenericRelationEditor extends RelationEditor  {
    9090
    9191    static private final Logger logger = Logger.getLogger(GenericRelationEditor.class.getName());
     
    13811381        private OsmDataLayer curLayer;
    13821382        private MemberTableModel memberTableModel;
     1383        private OsmServerObjectReader objectReader;
     1384        private OsmServerBackreferenceReader parentReader;
    13831385
    13841386        public DownloadTask(List<Relation> relations, OsmDataLayer curLayer, MemberTableModel memberTableModel, Dialog parent) {
     
    13991401        protected void cancel() {
    14001402            cancelled = true;
    1401             OsmApi.getOsmApi().cancel();
     1403            synchronized(this) {
     1404                if (objectReader != null) {
     1405                    objectReader.cancel();
     1406                } else if (parentReader != null) {
     1407                    parentReader.cancel();
     1408                }
     1409            }
    14021410        }
    14031411
     
    14191427            try {
    14201428                for (Relation relation : relations) {
    1421                     progressMonitor.indeterminateSubTask("");
    1422                     OsmServerObjectReader reader = new OsmServerObjectReader(relation.getId(), OsmPrimitiveType.RELATION,
    1423                             true);
    1424                     final DataSet dataSet = reader.parseOsm(progressMonitor
     1429                    // download the relation
     1430                    //
     1431                    progressMonitor.indeterminateSubTask(tr("Downloading relation ''{0}''", relation.getDisplayName(DefaultNameFormatter.getInstance())));
     1432                    synchronized(this) {
     1433                        if (cancelled) return;
     1434                        objectReader = new OsmServerObjectReader(relation.getId(), OsmPrimitiveType.RELATION, true /* full download */);
     1435                    }
     1436                    final DataSet dataSet = objectReader.parseOsm(progressMonitor
    14251437                            .createSubTaskMonitor(ProgressMonitor.ALL_TICKS, false));
    14261438                    if (dataSet == null)
    14271439                        return;
     1440                    synchronized (this) {
     1441                        if (cancelled) return;
     1442                        objectReader = null;
     1443                    }
     1444
     1445                    // download referring objects of the downloaded member objects
     1446                    //
     1447                    // asked for in #3999, but uncommented for the time being. Could be used
     1448                    // later, perhaps if user explicity requests so (for instance by checking
     1449                    // a checkbox)
     1450                    //                    for (OsmPrimitive p: relation.getMemberPrimitives()) {
     1451                    //                        synchronized(this) {
     1452                    //                            if (cancelled) return;
     1453                    //                            parentReader = new OsmServerBackreferenceReader(p);
     1454                    //                        }
     1455                    //                        DataSet parents = parentReader.parseOsm(progressMonitor.createSubTaskMonitor(1, false));
     1456                    //                        synchronized(this) {
     1457                    //                            if (cancelled) return;
     1458                    //                            parentReader = null;
     1459                    //                        }
     1460                    //                        DataSetMerger merger = new DataSetMerger(dataSet, parents);
     1461                    //                        merger.merge();
     1462                    //                    }
     1463                    //                    if (cancelled) return;
     1464
    14281465                    // has to run on the EDT because mergeFrom may trigger events
    14291466                    // which update the UI
     
    14381475                            }
    14391476                    );
    1440 
    14411477                }
    14421478            } catch (Exception e) {
Note: See TracChangeset for help on using the changeset viewer.