Changeset 5821 in josm for trunk/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.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/SelectionListDialog.java
r5806 r5821 24 24 import javax.swing.AbstractAction; 25 25 import javax.swing.AbstractListModel; 26 import javax.swing.Action;27 26 import javax.swing.DefaultListSelectionModel; 28 27 import javax.swing.JList; … … 35 34 import javax.swing.event.ListSelectionEvent; 36 35 import javax.swing.event.ListSelectionListener; 37 import javax.swing.event.PopupMenuListener;38 36 39 37 import org.openstreetmap.josm.Main; … … 67 65 import org.openstreetmap.josm.gui.MapView.EditLayerChangeListener; 68 66 import org.openstreetmap.josm.gui.OsmPrimitivRenderer; 67 import org.openstreetmap.josm.gui.PopupMenuHandler; 69 68 import org.openstreetmap.josm.gui.SideButton; 70 69 import org.openstreetmap.josm.gui.layer.OsmDataLayer; … … 92 91 private DownloadSelectedIncompleteMembersAction actDownloadSelectedIncompleteMembers; 93 92 94 private SelectionPopup popupMenu; 93 /** the popup menu and its handler */ 94 private final ListPopupMenu popupMenu; 95 private final PopupMenuHandler popupMenuHandler; 95 96 96 97 /** … … 148 149 actDownloadSelectedIncompleteMembers = new DownloadSelectedIncompleteMembersAction(); 149 150 151 popupMenu = new ListPopupMenu(lstPrimitives); 152 popupMenuHandler = setupPopupMenuHandler(); 153 150 154 lstPrimitives.addListSelectionListener(new ListSelectionListener() { 151 155 @Override 152 156 public void valueChanged(ListSelectionEvent e) { 153 157 actZoomToListSelection.valueChanged(e); 154 List<Relation> rels; 155 rels = model.getSelectedRelationsWithIncompleteMembers(); 156 actDownloadSelectedIncompleteMembers.setRelations(rels); 157 rels = OsmPrimitive.getFilteredList(model.getSelected(), Relation.class); 158 actSetRelationSelection.setRelations(rels); 159 actEditRelationSelection.setRelations(rels); 158 popupMenuHandler.setPrimitives(model.getSelected()); 160 159 } 161 160 }); … … 164 163 lstPrimitives.addMouseListener(new DblClickHandler()); 165 164 166 popupMenu = new SelectionPopup(lstPrimitives);167 165 InputMapUtils.addEnterAction(lstPrimitives, actZoomToListSelection); 168 166 } … … 221 219 } 222 220 223 /** 224 * The popup menu for the selection list 225 */ 226 class SelectionPopup extends ListPopupMenu { 227 public SelectionPopup(JList list) { 228 super(list); 229 add(actZoomToJOSMSelection); 230 add(actZoomToListSelection); 231 addSeparator(); 232 add(actSetRelationSelection); 233 add(actEditRelationSelection); 234 addSeparator(); 235 add(actDownloadSelectedIncompleteMembers); 236 } 237 } 238 239 public void addPopupMenuSeparator() { 240 popupMenu.addSeparator(); 241 } 242 243 public JMenuItem addPopupMenuAction(Action a) { 244 return popupMenu.add(a); 245 } 246 247 public void addPopupMenuListener(PopupMenuListener l) { 248 popupMenu.addPopupMenuListener(l); 249 } 250 251 public void removePopupMenuListener(PopupMenuListener l) { 252 popupMenu.addPopupMenuListener(l); 221 private final PopupMenuHandler setupPopupMenuHandler() { 222 PopupMenuHandler handler = new PopupMenuHandler(popupMenu); 223 handler.addAction(actZoomToJOSMSelection); 224 handler.addAction(actZoomToListSelection); 225 handler.addSeparator(); 226 handler.addAction(actSetRelationSelection); 227 handler.addAction(actEditRelationSelection); 228 handler.addSeparator(); 229 handler.addAction(actDownloadSelectedIncompleteMembers); 230 return handler; 231 } 232 233 /** 234 * Replies the popup menu handler. 235 * @return The popup menu handler 236 */ 237 public PopupMenuHandler getPopupMenuHandler() { 238 return popupMenuHandler; 253 239 } 254 240 … … 596 582 } 597 583 setSelected(sel); 598 }599 600 /**601 * Replies the list of selected relations with incomplete members602 *603 * @return the list of selected relations with incomplete members604 */605 public List<Relation> getSelectedRelationsWithIncompleteMembers() {606 List<Relation> ret = new LinkedList<Relation>();607 for(int i=0; i<getSize(); i++) {608 if (!selectionModel.isSelectedIndex(i)) {609 continue;610 }611 OsmPrimitive p = selection.get(i);612 if (! (p instanceof Relation)) {613 continue;614 }615 if (p.isNew()) {616 continue;617 }618 Relation r = (Relation)p;619 if (r.hasIncompleteMembers()) {620 ret.add(r);621 }622 }623 return ret;624 584 } 625 585
Note:
See TracChangeset
for help on using the changeset viewer.