source: josm/trunk/src/org/openstreetmap/josm/actions/WireframeToggleAction.java@ 17018

Last change on this file since 17018 was 17018, checked in by Klumbumbus, 4 years ago

see #19786 - Add missing icons to View menu, wireframe_small icon improved (sharper at 16 and 24 px), all icons self created, PD and CC0 licensed

  • Property svn:eol-style set to native
File size: 2.0 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.actions;
3
4import static org.openstreetmap.josm.tools.I18n.tr;
5
6import java.awt.event.ActionEvent;
7import java.awt.event.KeyEvent;
8
9import org.openstreetmap.josm.data.osm.visitor.paint.MapRendererFactory;
10import org.openstreetmap.josm.data.osm.visitor.paint.StyledMapRenderer;
11import org.openstreetmap.josm.data.osm.visitor.paint.WireframeMapRenderer;
12import org.openstreetmap.josm.gui.MainApplication;
13import org.openstreetmap.josm.gui.layer.OsmDataLayer;
14import org.openstreetmap.josm.tools.Shortcut;
15
16/**
17 * This class toggles the wireframe rendering mode.
18 * @since 2530
19 */
20public class WireframeToggleAction extends ToggleAction {
21
22 /**
23 * Constructs a new {@code WireframeToggleAction}.
24 */
25 public WireframeToggleAction() {
26 super(tr("Wireframe View"),
27 "dialogs/mappaint/wireframe_small",
28 tr("Enable/disable rendering the map as wireframe only"),
29 Shortcut.registerShortcut("menu:view:wireframe", tr("Toggle Wireframe view"), KeyEvent.VK_W, Shortcut.CTRL),
30 false /* register toolbar */
31 );
32 setToolbarId("wireframe");
33 MainApplication.getToolbar().register(this);
34 setSelected(MapRendererFactory.getInstance().isWireframeMapRendererActive());
35 notifySelectedState();
36 }
37
38 @Override
39 protected boolean listenToSelectionChange() {
40 return false;
41 }
42
43 @Override
44 protected void updateEnabledState() {
45 setEnabled(getLayerManager().getActiveData() != null);
46 }
47
48 @Override
49 public void actionPerformed(ActionEvent e) {
50 toggleSelectedState(e);
51 if (isSelected()) {
52 MapRendererFactory.getInstance().activate(WireframeMapRenderer.class);
53 } else {
54 MapRendererFactory.getInstance().activate(StyledMapRenderer.class);
55 }
56
57 notifySelectedState();
58 getLayerManager().getLayersOfType(OsmDataLayer.class).forEach(OsmDataLayer::invalidate);
59 }
60}
Note: See TracBrowser for help on using the repository browser.