| 1191 | |
| 1192 | |
| 1193 | /** |
| 1194 | * Sets the current selection to the members of selected relation |
| 1195 | * |
| 1196 | */ |
| 1197 | class SelectRelationMembersAction extends AbstractAction { |
| 1198 | Relation relation; |
| 1199 | public SelectRelationMembersAction(Relation r) { |
| 1200 | relation = r; |
| 1201 | putValue(SHORT_DESCRIPTION,tr("Select the members of selected relation")); |
| 1202 | putValue(SMALL_ICON, ImageProvider.get("selectall")); |
| 1203 | putValue(NAME, tr("Select members")); |
| 1204 | } |
| 1205 | |
| 1206 | public void actionPerformed(ActionEvent e) { |
| 1207 | HashSet<OsmPrimitive> members = new HashSet<OsmPrimitive>(); |
| 1208 | members.addAll(relation.getMemberPrimitives()); |
| 1209 | Main.map.mapView.getEditLayer().data.setSelected(members); |
| 1210 | } |
| 1211 | |
| 1212 | } |
| 1213 | |
| 1214 | /** |
| 1215 | * Action for downloading incomplete members of selected relation |
| 1216 | * |
| 1217 | */ |
| 1218 | class DownloadIncompleteMembersAction extends AbstractAction { |
| 1219 | Relation relation; |
| 1220 | public DownloadIncompleteMembersAction(Relation r) { |
| 1221 | relation = r; |
| 1222 | putValue(SHORT_DESCRIPTION, tr("Download incomplete members of selected relations")); |
| 1223 | putValue(SMALL_ICON, ImageProvider.get("dialogs/relation", "downloadincompleteselected")); |
| 1224 | putValue(NAME, tr("Download incomplete members")); |
| 1225 | } |
| 1226 | |
| 1227 | public Set<OsmPrimitive> buildSetOfIncompleteMembers(Relation r) { |
| 1228 | Set<OsmPrimitive> ret = new HashSet<OsmPrimitive>(); |
| 1229 | ret.addAll(r.getIncompleteMembers()); |
| 1230 | return ret; |
| 1231 | } |
| 1232 | |
| 1233 | public void actionPerformed(ActionEvent e) { |
| 1234 | if (!relation.hasIncompleteMembers()) return; |
| 1235 | ArrayList<Relation> rels = new ArrayList<Relation>(); |
| 1236 | rels.add(relation); |
| 1237 | Main.worker.submit(new DownloadRelationMemberTask( |
| 1238 | rels, |
| 1239 | buildSetOfIncompleteMembers(relation), |
| 1240 | Main.map.mapView.getEditLayer() |
| 1241 | )); |
| 1242 | } |
| 1243 | } |
| 1244 | |
| 1245 | |