Changeset 3715 in josm for trunk/src/org/openstreetmap/josm/gui/MainMenu.java
- Timestamp:
- 2010-12-12T01:47:03+01:00 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/gui/MainMenu.java
r3710 r3715 5 5 import static org.openstreetmap.josm.tools.I18n.marktr; 6 6 import static org.openstreetmap.josm.tools.I18n.tr; 7 7 import static org.openstreetmap.josm.tools.I18n.trc; 8 9 import java.awt.Component; 10 import java.awt.event.ActionEvent; 8 11 import java.awt.event.KeyEvent; 12 import java.util.List; 9 13 10 14 import javax.swing.JCheckBoxMenuItem; … … 16 20 import org.openstreetmap.josm.Main; 17 21 import org.openstreetmap.josm.actions.AboutAction; 22 import org.openstreetmap.josm.actions.AddImageryLayerAction; 18 23 import org.openstreetmap.josm.actions.AddNodeAction; 19 24 import org.openstreetmap.josm.actions.AlignInCircleAction; … … 42 47 import org.openstreetmap.josm.actions.JosmAction; 43 48 import org.openstreetmap.josm.actions.JumpToAction; 49 import org.openstreetmap.josm.actions.Map_Rectifier_WMSmenuAction; 44 50 import org.openstreetmap.josm.actions.MergeLayerAction; 45 51 import org.openstreetmap.josm.actions.MergeNodesAction; … … 85 91 import org.openstreetmap.josm.actions.audio.AudioSlowerAction; 86 92 import org.openstreetmap.josm.actions.search.SearchAction; 93 import org.openstreetmap.josm.data.imagery.ImageryInfo; 94 import org.openstreetmap.josm.data.imagery.ImageryLayerInfo; 87 95 import org.openstreetmap.josm.gui.io.RecentlyOpenedFilesMenu; 96 import org.openstreetmap.josm.gui.layer.ImageryLayer; 88 97 import org.openstreetmap.josm.gui.layer.Layer; 98 import org.openstreetmap.josm.gui.layer.WMSLayer; 89 99 import org.openstreetmap.josm.gui.tagging.TaggingPresetSearchAction; 90 100 import org.openstreetmap.josm.tools.Shortcut; … … 180 190 public final JMenu toolsMenu = addMenu(marktr("Tools"), KeyEvent.VK_T, 3, ht("/Menu/Tools")); 181 191 public final JMenu presetsMenu = addMenu(marktr("Presets"), KeyEvent.VK_P, 4, ht("/Menu/Presets")); 192 public final JMenu imageryMenu = addMenu(marktr("Imagery"), KeyEvent.VK_I, 5, ht("/Menu/Imagery")); 182 193 public JMenu audioMenu = null; 183 public final JMenu helpMenu = addMenu(marktr("Help"), KeyEvent.VK_H, 5, ht("/Menu/Help"));184 public final int defaultMenuPos = 5;194 public final JMenu helpMenu = addMenu(marktr("Help"), KeyEvent.VK_H, 6, ht("/Menu/Help")); 195 public final int defaultMenuPos = 6; 185 196 186 197 public final JosmAction moveUpAction = new MoveAction(MoveAction.Direction.UP); … … 191 202 192 203 public final TaggingPresetSearchAction presetSearchAction = new TaggingPresetSearchAction(); 193 204 public final ImageryMenuUpdater imageryMenuUpdater; 194 205 195 206 /** … … 329 340 330 341 if (!Main.pref.getBoolean("audio.menuinvisible", false)) { 331 audioMenu = addMenu(marktr("Audio"), KeyEvent.VK_A, 5, ht("/Menu/Audio"));342 audioMenu = addMenu(marktr("Audio"), KeyEvent.VK_A, defaultMenuPos, ht("/Menu/Audio")); 332 343 add(audioMenu, audioPlayPause); 333 344 add(audioMenu, audioNext); … … 347 358 348 359 new PresetsMenuEnabler(presetsMenu).refreshEnabled(); 360 imageryMenuUpdater = new ImageryMenuUpdater(); 349 361 } 350 362 … … 378 390 } 379 391 } 392 393 public class ImageryMenuUpdater implements MapView.LayerChangeListener { 394 JMenu offsetSubMenu = new JMenu(trc("layer","Offset")); 395 396 public ImageryMenuUpdater() { 397 MapView.addLayerChangeListener(this); 398 } 399 400 public void refreshImageryMenu() { 401 imageryMenu.removeAll(); 402 403 // for each configured WMSInfo, add a menu entry. 404 for (final ImageryInfo u : ImageryLayerInfo.instance.getLayers()) { 405 imageryMenu.add(new JMenuItem(new AddImageryLayerAction(u))); 406 } 407 imageryMenu.addSeparator(); 408 imageryMenu.add(new JMenuItem(new Map_Rectifier_WMSmenuAction())); 409 410 imageryMenu.addSeparator(); 411 imageryMenu.add(offsetSubMenu); 412 imageryMenu.addSeparator(); 413 imageryMenu.add(new JMenuItem(new 414 JosmAction(tr("Blank Layer"), "blankmenu", tr("Open a blank WMS layer to load data from a file"), null, false) { 415 @Override 416 public void actionPerformed(ActionEvent ev) { 417 Main.main.addLayer(new WMSLayer()); 418 } 419 })); 420 refreshEnabled(); 421 } 422 423 public void refreshEnabled() { 424 imageryMenu.setEnabled(Main.map != null 425 && Main.map.mapView !=null 426 ); 427 } 428 429 public void refreshOffsetMenu() { 430 offsetSubMenu.removeAll(); 431 if (Main.map == null || Main.map.mapView == null) { 432 offsetSubMenu.setEnabled(false); 433 return; 434 } 435 List<ImageryLayer> layers = Main.map.mapView.getLayersOfType(ImageryLayer.class); 436 if (layers.isEmpty()) { 437 offsetSubMenu.setEnabled(false); 438 return; 439 } 440 offsetSubMenu.setEnabled(true); 441 if (layers.size() == 1) { 442 for (Component c : layers.get(0).getOffsetMenu()) { 443 offsetSubMenu.add(c); 444 } 445 return; 446 } 447 for (ImageryLayer layer : layers) { 448 JMenu subMenu = new JMenu(layer.getName()); 449 subMenu.setIcon(layer.getIcon()); 450 for (Component c : layer.getOffsetMenu()) { 451 subMenu.add(c); 452 } 453 offsetSubMenu.add(subMenu); 454 } 455 } 456 457 @Override 458 public void activeLayerChange(Layer oldLayer, Layer newLayer) { 459 } 460 461 @Override 462 public void layerAdded(Layer newLayer) { 463 if (newLayer instanceof ImageryLayer) { 464 refreshOffsetMenu(); 465 } 466 refreshEnabled(); 467 } 468 469 @Override 470 public void layerRemoved(Layer oldLayer) { 471 if (oldLayer instanceof ImageryLayer) { 472 refreshOffsetMenu(); 473 } 474 refreshEnabled(); 475 } 476 } 380 477 }
Note:
See TracChangeset
for help on using the changeset viewer.