Changeset 3102 in josm for trunk/src/org/openstreetmap/josm/gui/dialogs/RelationListDialog.java
- Timestamp:
- 2010-03-10T10:00:20+01:00 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/gui/dialogs/RelationListDialog.java
r3020 r3102 15 15 import java.util.Comparator; 16 16 import java.util.HashSet; 17 import java.util.Iterator; 17 18 import java.util.List; 18 19 import java.util.Set; … … 52 53 import org.openstreetmap.josm.gui.SideButton; 53 54 import org.openstreetmap.josm.gui.MapView.LayerChangeListener; 55 import org.openstreetmap.josm.gui.dialogs.relation.DownloadRelationMemberTask; 54 56 import org.openstreetmap.josm.gui.dialogs.relation.DownloadRelationTask; 55 57 import org.openstreetmap.josm.gui.dialogs.relation.RelationEditor; … … 234 236 235 237 @Override public void mouseClicked(MouseEvent e) { 238 if (Main.main.getEditLayer() == null) return; 236 239 if (e.getClickCount() == 2 && SwingUtilities.isLeftMouseButton(e)) { 237 240 if (e.isControlDown()) { … … 254 257 } 255 258 @Override public void mousePressed(MouseEvent e) { 259 if (Main.main.getEditLayer() == null) return; 256 260 if (e.isPopupTrigger()) { 257 261 openPopup(e); … … 259 263 } 260 264 @Override public void mouseReleased(MouseEvent e) { 265 if (Main.main.getEditLayer() == null) return; 261 266 if (e.isPopupTrigger()) { 262 267 openPopup(e); … … 507 512 Main.map.mapView.getEditLayer()) 508 513 ); 514 } 515 } 516 517 /** 518 * Action for downloading incomplete members of selected relations 519 * 520 */ 521 class DownloadSelectedIncompleteMembersAction extends AbstractAction implements ListSelectionListener{ 522 public DownloadSelectedIncompleteMembersAction() { 523 putValue(SHORT_DESCRIPTION, tr("Download incomplete members of selected relations")); 524 putValue(SMALL_ICON, ImageProvider.get("dialogs/relation", "downloadincompleteselected")); 525 putValue(NAME, tr("Download incomplete members")); 526 updateEnabledState(); 527 } 528 529 public Set<OsmPrimitive> buildSetOfIncompleteMembers(List<Relation> rels) { 530 Set<OsmPrimitive> ret = new HashSet<OsmPrimitive>(); 531 for(Relation r: rels) { 532 ret.addAll(r.getIncompleteMembers()); 533 } 534 return ret; 535 } 536 537 public void actionPerformed(ActionEvent e) { 538 if (!isEnabled()) 539 return; 540 List<Relation> rels = model.getSelectedRelationsWithIncompleteMembers(); 541 if (rels.isEmpty()) return; 542 Main.worker.submit(new DownloadRelationMemberTask( 543 rels, 544 buildSetOfIncompleteMembers(rels), 545 Main.map.mapView.getEditLayer() 546 )); 547 } 548 549 protected void updateEnabledState() { 550 setEnabled(!model.getSelectedRelationsWithIncompleteMembers().isEmpty()); 551 } 552 553 public void valueChanged(ListSelectionEvent e) { 554 updateEnabledState(); 509 555 } 510 556 } … … 623 669 } 624 670 671 /** 672 * Replies the list of selected relations with incomplete members 673 * 674 * @return the list of selected relations with incomplete members 675 */ 676 public List<Relation> getSelectedRelationsWithIncompleteMembers() { 677 List<Relation> ret = getSelectedNonNewRelations(); 678 Iterator<Relation> it = ret.iterator(); 679 while(it.hasNext()) { 680 Relation r = it.next(); 681 if (!r.hasIncompleteMembers()) { 682 it.remove(); 683 } 684 } 685 return ret; 686 } 687 625 688 public Object getElementAt(int index) { 626 689 return relations.get(index); … … 715 778 add(downloadMembersAction); 716 779 780 // -- download incomplete members action 781 // 782 DownloadSelectedIncompleteMembersAction downloadSelectedIncompleteMembers = new DownloadSelectedIncompleteMembersAction(); 783 displaylist.addListSelectionListener(downloadSelectedIncompleteMembers); 784 add(downloadSelectedIncompleteMembers); 785 786 addSeparator(); 787 717 788 // -- select members action 718 789 //
Note:
See TracChangeset
for help on using the changeset viewer.