- Timestamp:
- 2020-10-15T16:30:03+02:00 (4 years ago)
- Location:
- trunk/src/org/openstreetmap/josm/gui/dialogs/relation
- Files:
-
- 1 deleted
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/gui/dialogs/relation/MemberTableModel.java
r17174 r17206 134 134 // just trigger a repaint - the display name of the relation members may have changed 135 135 Collection<RelationMember> sel = getSelectedMembers(); 136 GuiHelper.runInEDT(this::fireTableDataChanged); 136 GuiHelper.runInEDTAndWait(this::fireTableDataChanged); 137 137 setSelectedMembers(sel); 138 138 } -
trunk/src/org/openstreetmap/josm/gui/dialogs/relation/ReferringRelationsBrowser.java
r15678 r17206 10 10 import java.awt.event.MouseAdapter; 11 11 import java.awt.event.MouseEvent; 12 import java.util.Collections; 13 import java.util.List; 14 import java.util.stream.Collectors; 12 15 13 16 import javax.swing.AbstractAction; … … 23 26 import javax.swing.event.ListSelectionListener; 24 27 28 import org.openstreetmap.josm.actions.downloadtasks.DownloadReferrersTask; 29 import org.openstreetmap.josm.data.osm.OsmPrimitive; 30 import org.openstreetmap.josm.data.osm.PrimitiveId; 25 31 import org.openstreetmap.josm.data.osm.Relation; 26 32 import org.openstreetmap.josm.gui.MainApplication; 27 33 import org.openstreetmap.josm.gui.PrimitiveRenderer; 34 import org.openstreetmap.josm.gui.io.DownloadPrimitivesTask; 28 35 import org.openstreetmap.josm.gui.layer.OsmDataLayer; 29 import org.openstreetmap.josm.gui. progress.swing.PleaseWaitProgressMonitor;36 import org.openstreetmap.josm.gui.util.GuiHelper; 30 37 import org.openstreetmap.josm.tools.ImageProvider; 31 38 … … 118 125 @Override 119 126 public void actionPerformed(ActionEvent e) { 120 boolean full = cbReadFull.isSelected(); 121 final ParentRelationLoadingTask task = new ParentRelationLoadingTask( 122 model.getRelation(), 123 getLayer(), 124 full, 125 new PleaseWaitProgressMonitor(tr("Loading parent relations")) 126 ); 127 task.setContinuation(() -> { 128 if (task.isCanceled() || task.hasError()) 129 return; 130 model.populate(task.getParents()); 131 }); 127 DownloadReferrersTask task = new DownloadReferrersTask(getLayer(), Collections.singleton(model.getRelation())); 132 128 MainApplication.worker.submit(task); 129 MainApplication.worker.submit(() -> { 130 if (cbReadFull.isSelected() && !task.getProgressMonitor().isCanceled()) { 131 // download all members of parents 132 List<PrimitiveId> parentsChildren = model.getRelation().referrers(Relation.class) 133 .collect(Collectors.toSet()).stream().flatMap(r -> r.getMemberPrimitives().stream()) 134 .distinct().map(OsmPrimitive::getPrimitiveId).distinct().collect(Collectors.toList()); 135 new DownloadPrimitivesTask(getLayer(), parentsChildren, false).run(); 136 } 137 }); 138 GuiHelper.executeByMainWorkerInEDT(() -> 139 model.populate(model.getRelation().getReferrers().stream() 140 .filter(Relation.class::isInstance) 141 .map(Relation.class::cast) 142 .collect(Collectors.toList())) 143 ); 133 144 } 134 145
Note:
See TracChangeset
for help on using the changeset viewer.