Changeset 9520 in josm
- Timestamp:
- 2016-01-17T23:43:52+01:00 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetContentPanel.java
r9493 r9520 280 280 } 281 281 282 class SelectInCurrentLayerAction extends AbstractAction implements ListSelectionListener, EditLayerChangeListener { 283 284 SelectInCurrentLayerAction() { 285 putValue(NAME, tr("Select in layer")); 286 putValue(SMALL_ICON, ImageProvider.get("dialogs", "select")); 287 putValue(SHORT_DESCRIPTION, tr("Select the corresponding primitives in the current data layer")); 288 updateEnabledState(); 289 } 290 291 @Override 292 public void actionPerformed(ActionEvent arg0) { 293 if (!isEnabled()) 294 return; 295 if (Main.main == null || !Main.main.hasEditLayer()) return; 282 abstract class SelectionBasedAction extends AbstractAction implements ListSelectionListener, EditLayerChangeListener { 283 284 protected Set<OsmPrimitive> getTarget() { 285 if (!isEnabled() || Main.main == null || !Main.main.hasEditLayer()) { 286 return null; 287 } 296 288 OsmDataLayer layer = Main.main.getEditLayer(); 297 Set<HistoryOsmPrimitive> selected = model.getSelectedPrimitives();298 289 Set<OsmPrimitive> target = new HashSet<>(); 299 290 for (HistoryOsmPrimitive p : model.getSelectedPrimitives()) { … … 303 294 } 304 295 } 305 if (target.isEmpty()) { 306 alertNoPrimitivesTo(selected, tr("Nothing to select"), 307 HelpUtil.ht("/Dialog/ChangesetCacheManager#NothingToSelectInLayer")); 308 return; 309 } 310 layer.data.setSelected(target); 296 return target; 311 297 } 312 298 … … 328 314 updateEnabledState(); 329 315 } 330 } 331 332 class ZoomInCurrentLayerAction extends AbstractAction implements ListSelectionListener, EditLayerChangeListener { 316 317 } 318 319 class SelectInCurrentLayerAction extends SelectionBasedAction { 320 321 SelectInCurrentLayerAction() { 322 putValue(NAME, tr("Select in layer")); 323 putValue(SMALL_ICON, ImageProvider.get("dialogs", "select")); 324 putValue(SHORT_DESCRIPTION, tr("Select the corresponding primitives in the current data layer")); 325 updateEnabledState(); 326 } 327 328 @Override 329 public void actionPerformed(ActionEvent arg0) { 330 final Set<OsmPrimitive> target = getTarget(); 331 if (target == null) { 332 return; 333 } else if (target.isEmpty()) { 334 alertNoPrimitivesTo(model.getSelectedPrimitives(), tr("Nothing to select"), 335 HelpUtil.ht("/Dialog/ChangesetCacheManager#NothingToSelectInLayer")); 336 return; 337 } 338 Main.main.getEditLayer().data.setSelected(target); 339 } 340 } 341 342 class ZoomInCurrentLayerAction extends SelectionBasedAction { 333 343 334 344 ZoomInCurrentLayerAction() { … … 341 351 @Override 342 352 public void actionPerformed(ActionEvent arg0) { 343 if (!isEnabled()) 353 final Set<OsmPrimitive> target = getTarget(); 354 if (target == null) { 344 355 return; 345 if (Main.main == null || !Main.main.hasEditLayer()) return; 346 OsmDataLayer layer = Main.main.getEditLayer(); 347 Set<HistoryOsmPrimitive> selected = model.getSelectedPrimitives(); 348 Set<OsmPrimitive> target = new HashSet<>(); 349 for (HistoryOsmPrimitive p : model.getSelectedPrimitives()) { 350 OsmPrimitive op = layer.data.getPrimitiveById(p.getPrimitiveId()); 351 if (op != null) { 352 target.add(op); 353 } 354 } 355 if (target.isEmpty()) { 356 alertNoPrimitivesTo(selected, tr("Nothing to zoom to"), 356 } else if (target.isEmpty()) { 357 alertNoPrimitivesTo(model.getSelectedPrimitives(), tr("Nothing to zoom to"), 357 358 HelpUtil.ht("/Dialog/ChangesetCacheManager#NothingToZoomTo")); 358 359 return; 359 360 } 360 layer.data.setSelected(target);361 Main.main.getEditLayer().data.setSelected(target); 361 362 AutoScaleAction.zoomToSelection(); 362 }363 364 public final void updateEnabledState() {365 if (Main.main == null || !Main.main.hasEditLayer()) {366 setEnabled(false);367 return;368 }369 setEnabled(model.hasSelectedPrimitives());370 }371 372 @Override373 public void valueChanged(ListSelectionEvent e) {374 updateEnabledState();375 }376 377 @Override378 public void editLayerChanged(OsmDataLayer oldLayer, OsmDataLayer newLayer) {379 updateEnabledState();380 363 } 381 364 }
Note:
See TracChangeset
for help on using the changeset viewer.