Changeset 3290 in josm
- Timestamp:
- 2010-06-01T17:31:06+02:00 (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java
r3286 r3290 53 53 import org.openstreetmap.josm.data.osm.OsmPrimitiveType; 54 54 import org.openstreetmap.josm.data.osm.Relation; 55 import org.openstreetmap.josm.data.osm.RelationMember; 55 56 import org.openstreetmap.josm.data.osm.Way; 56 57 import org.openstreetmap.josm.data.osm.event.AbstractDatasetChangedEvent; … … 73 74 import org.openstreetmap.josm.gui.MapView.EditLayerChangeListener; 74 75 import org.openstreetmap.josm.gui.dialogs.relation.DownloadRelationMemberTask; 76 import org.openstreetmap.josm.gui.dialogs.relation.RelationEditor; 75 77 import org.openstreetmap.josm.gui.layer.OsmDataLayer; 76 78 import org.openstreetmap.josm.gui.widgets.PopupMenuLauncher; … … 93 95 private ZoomToJOSMSelectionAction actZoomToJOSMSelection; 94 96 private ZoomToListSelection actZoomToListSelection; 97 private SetRelationSelection actSetRelationSelection; 98 private EditRelationSelection actEditRelationSelection; 95 99 private DownloadSelectedIncompleteMembersAction actDownloadSelectedIncompleteMembers; 96 100 private InspectAction actInspect; … … 174 178 lstPrimitives.getSelectionModel().addListSelectionListener(actZoomToListSelection); 175 179 180 actSetRelationSelection = new SetRelationSelection(); 181 lstPrimitives.getSelectionModel().addListSelectionListener(actSetRelationSelection); 182 183 actEditRelationSelection = new EditRelationSelection(); 184 lstPrimitives.getSelectionModel().addListSelectionListener(actEditRelationSelection); 185 176 186 actDownloadSelectedIncompleteMembers = new DownloadSelectedIncompleteMembersAction(); 177 187 lstPrimitives.getSelectionModel().addListSelectionListener(actDownloadSelectedIncompleteMembers); … … 251 261 add(actZoomToListSelection); 252 262 addSeparator(); 263 add(actSetRelationSelection); 264 add(actEditRelationSelection); 265 addSeparator(); 253 266 add(actDownloadSelectedIncompleteMembers); 254 267 addSeparator(); … … 391 404 public void updateEnabledState() { 392 405 setEnabled(!model.getSelected().isEmpty()); 406 } 407 408 public void valueChanged(ListSelectionEvent e) { 409 updateEnabledState(); 410 } 411 } 412 413 /** 414 * The action for setting and editing a relation in relation list dialog 415 * 416 */ 417 class EditRelationSelection extends SetRelationSelection { 418 public EditRelationSelection() { 419 putValue(NAME, tr("Call editor for relation")); 420 putValue(SHORT_DESCRIPTION, tr("Call relation editor for selected relation")); 421 putValue(SMALL_ICON, ImageProvider.get("dialogs", "edit")); 422 updateEnabledState(); 423 } 424 425 public void actionPerformed(ActionEvent e) { 426 Relation relation = (Relation)model.getSelected().toArray()[0]; 427 Collection<RelationMember> members = new HashSet<RelationMember>(); 428 Collection<OsmPrimitive> selection = model.getAllElements(); 429 for (RelationMember member: relation.getMembers()) { 430 if (selection.contains(member.getMember())) 431 members.add(member); 432 } 433 Main.map.relationListDialog.selectRelation(relation); 434 RelationEditor.getEditor(Main.map.mapView.getEditLayer(), relation, 435 members).setVisible(true); 436 } 437 } 438 439 /** 440 * The action for setting a relation in relation list dialog 441 * 442 */ 443 class SetRelationSelection extends AbstractAction implements ListSelectionListener{ 444 public SetRelationSelection() { 445 putValue(NAME, tr("Select in relation list")); 446 putValue(SHORT_DESCRIPTION, tr("Select relation in relation list.")); 447 putValue(SMALL_ICON, ImageProvider.get("dialogs", "selectionlist")); 448 updateEnabledState(); 449 } 450 451 public void actionPerformed(ActionEvent e) { 452 Relation relation = (Relation)model.getSelected().toArray()[0]; 453 Main.map.relationListDialog.selectRelation(relation); 454 } 455 456 public void updateEnabledState() { 457 Object[] sel = model.getSelected().toArray(); 458 setEnabled(sel.length == 1 && sel[0] instanceof Relation); 393 459 } 394 460 … … 497 563 } 498 564 return sel; 565 } 566 567 /** 568 * Replies the collection of OSM primitives in the view 569 * of this model 570 * 571 * @return 572 */ 573 public Collection<OsmPrimitive> getAllElements() { 574 return selection; 499 575 } 500 576
Note:
See TracChangeset
for help on using the changeset viewer.