Changeset 5821 in josm for trunk/src/org/openstreetmap/josm/gui/dialogs/RelationListDialog.java
- Timestamp:
- 2013-04-02T00:55:56+02:00 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/gui/dialogs/RelationListDialog.java
r5799 r5821 16 16 import java.util.Collections; 17 17 import java.util.HashSet; 18 import java.util.Iterator;19 18 import java.util.List; 20 19 import java.util.Set; … … 22 21 import javax.swing.AbstractAction; 23 22 import javax.swing.AbstractListModel; 24 import javax.swing.Action;25 23 import javax.swing.DefaultListSelectionModel; 26 24 import javax.swing.JComponent; 27 25 import javax.swing.JList; 28 import javax.swing.JMenuItem;29 26 import javax.swing.JPanel; 30 27 import javax.swing.JPopupMenu; … … 39 36 import javax.swing.event.ListSelectionEvent; 40 37 import javax.swing.event.ListSelectionListener; 41 import javax.swing.event.PopupMenuListener;42 38 43 39 import org.openstreetmap.josm.Main; … … 69 65 import org.openstreetmap.josm.gui.MapView.LayerChangeListener; 70 66 import org.openstreetmap.josm.gui.OsmPrimitivRenderer; 67 import org.openstreetmap.josm.gui.PopupMenuHandler; 71 68 import org.openstreetmap.josm.gui.SideButton; 72 69 import org.openstreetmap.josm.gui.dialogs.relation.RelationEditor; … … 95 92 private final NewAction newAction; 96 93 97 /** the popup menu */ 98 private final RelationDialogPopupMenu popupMenu; 94 /** the popup menu and its handler */ 95 private final JPopupMenu popupMenu = new JPopupMenu(); 96 private final PopupMenuHandler popupMenuHandler = new PopupMenuHandler(popupMenu); 99 97 100 98 private final JTextField filter; … … 109 107 private final DownloadMembersAction downloadMembersAction = new DownloadMembersAction(); 110 108 private final DownloadSelectedIncompleteMembersAction downloadSelectedIncompleteMembersAction = new DownloadSelectedIncompleteMembersAction(); 111 private final SelectMembersAction selectMem ebersAction = new SelectMembersAction(false);109 private final SelectMembersAction selectMembersAction = new SelectMembersAction(false); 112 110 private final SelectMembersAction addMembersToSelectionAction = new SelectMembersAction(true); 113 111 private final SelectRelationAction selectRelationAction = new SelectRelationAction(false); 114 112 private final SelectRelationAction addRelationToSelectionAction = new SelectRelationAction(true); 115 /** add all selected primitives to the given re altions */113 /** add all selected primitives to the given relations */ 116 114 private final AddSelectionToRelations addSelectionToRelations = new AddSelectionToRelations(); 117 115 … … 154 152 } 155 153 }); 154 155 // Setup popup menu handler 156 setupPopupMenuHandler(); 156 157 157 158 JPanel pane = new JPanel(new BorderLayout()); … … 175 176 InputMapUtils.addEnterAction(displaylist, selectRelationAction); 176 177 177 popupMenu = new RelationDialogPopupMenu();178 179 178 // Edit relation on Ctrl-Enter 180 179 displaylist.getActionMap().put("edit", editAction); … … 186 185 // inform all actions about list of relations they need 187 186 private void updateActionsRelationLists() { 188 List<Relation> rels; 189 rels = model.getSelectedNonNewRelations(); 190 downloadMembersAction.setRelations(rels); 191 192 rels = model.getSelectedRelationsWithIncompleteMembers(); 193 downloadSelectedIncompleteMembersAction.setRelations(rels); 194 195 rels = model.getSelectedRelations(); 196 editAction.setRelations(rels); 197 deleteRelationsAction.setRelations(rels); 198 addSelectionToRelations.setRelations(rels); 199 selectMemebersAction.setRelations(rels); 200 addMembersToSelectionAction.setRelations(rels); 201 selectRelationAction.setRelations(rels); 202 addRelationToSelectionAction.setRelations(rels); 203 duplicateAction.setRelations(rels); 187 popupMenuHandler.setPrimitives(model.getSelectedRelations()); 204 188 } 205 189 … … 509 493 } 510 494 } 511 512 /**513 * Replies the list of selected relations with incomplete members514 *515 * @return the list of selected relations with incomplete members516 */517 public List<Relation> getSelectedRelationsWithIncompleteMembers() {518 List<Relation> ret = getSelectedNonNewRelations();519 Iterator<Relation> it = ret.iterator();520 while(it.hasNext()) {521 Relation r = it.next();522 if (!r.hasIncompleteMembers()) {523 it.remove();524 }525 }526 return ret;527 }528 495 529 496 private void updateFilteredRelations() { … … 569 536 570 537 /** 571 * Replies the list of selected, non-new relations. Empty list,572 * if there are no selected, non-new relations.573 *574 * @return the list of selected, non-new relations.575 */576 public List<Relation> getSelectedNonNewRelations() {577 ArrayList<Relation> ret = new ArrayList<Relation>();578 for (int i=0; i<getSize();i++) {579 if (!selectionModel.isSelectedIndex(i)) {580 continue;581 }582 if (getVisibleRelation(i).isNew()) {583 continue;584 }585 ret.add(getVisibleRelation(i));586 }587 return ret;588 }589 590 /**591 538 * Replies the list of selected relations. Empty list, 592 539 * if there are no selected relations. … … 656 603 } 657 604 658 class RelationDialogPopupMenu extends JPopupMenu { 659 660 public RelationDialogPopupMenu() { 661 // -- download members action 662 add(downloadMembersAction); 663 664 // -- download incomplete members action 665 add(downloadSelectedIncompleteMembersAction); 666 667 addSeparator(); 668 669 // -- select members action 670 add(selectMemebersAction); 671 add(addMembersToSelectionAction); 672 673 // -- select action 674 add(selectRelationAction); 675 add(addRelationToSelectionAction); 676 677 addSeparator(); 678 679 add(addSelectionToRelations); 680 } 681 } 682 605 private final void setupPopupMenuHandler() { 606 607 // -- download members action 608 popupMenuHandler.addAction(downloadMembersAction); 609 610 // -- download incomplete members action 611 popupMenuHandler.addAction(downloadSelectedIncompleteMembersAction); 612 613 popupMenuHandler.addSeparator(); 614 615 // -- select members action 616 popupMenuHandler.addAction(selectMembersAction); 617 popupMenuHandler.addAction(addMembersToSelectionAction); 618 619 // -- select action 620 popupMenuHandler.addAction(selectRelationAction); 621 popupMenuHandler.addAction(addRelationToSelectionAction); 622 623 popupMenuHandler.addSeparator(); 624 625 popupMenuHandler.addAction(addSelectionToRelations); 626 } 627 683 628 /* ---------------------------------------------------------------------------------- */ 684 /* Methods that can be called from plugins 629 /* Methods that can be called from plugins */ 685 630 /* ---------------------------------------------------------------------------------- */ 686 631 687 public void addPopupMenuSeparator() { 688 popupMenu.addSeparator(); 689 } 690 691 public JMenuItem addPopupMenuAction(Action a) { 692 return popupMenu.add(a); 693 } 694 695 public void addPopupMenuListener(PopupMenuListener l) { 696 popupMenu.addPopupMenuListener(l); 697 } 698 699 public void removePopupMenuListener(PopupMenuListener l) { 700 popupMenu.addPopupMenuListener(l); 632 /** 633 * Replies the popup menu handler. 634 * @return The popup menu handler 635 */ 636 public PopupMenuHandler getPopupMenuHandler() { 637 return popupMenuHandler; 701 638 } 702 639
Note:
See TracChangeset
for help on using the changeset viewer.