// License: GPL. For details, see LICENSE file. package org.openstreetmap.josm.actions; import static org.openstreetmap.josm.tools.I18n.tr; import java.awt.event.ActionEvent; import java.awt.event.KeyEvent; import org.openstreetmap.josm.Main; import org.openstreetmap.josm.data.osm.visitor.paint.MapRendererFactory; import org.openstreetmap.josm.data.osm.visitor.paint.StyledMapRenderer; import org.openstreetmap.josm.data.osm.visitor.paint.WireframeMapRenderer; import org.openstreetmap.josm.tools.Shortcut; /** * This class toggles the wireframe rendering mode. * @since 2530 */ public class WireframeToggleAction extends ToggleAction { /** * Constructs a new {@code WireframeToggleAction}. */ public WireframeToggleAction() { super(tr("Wireframe View"), null, /* no icon */ tr("Enable/disable rendering the map as wireframe only"), Shortcut.registerShortcut("menu:view:wireframe", tr("Toggle Wireframe view"), KeyEvent.VK_W, Shortcut.CTRL), false /* register toolbar */ ); putValue("toolbar", "wireframe"); Main.toolbar.register(this); setSelected(MapRendererFactory.getInstance().isWireframeMapRendererActive()); notifySelectedState(); } @Override protected void updateEnabledState() { setEnabled(Main.getLayerManager().getEditLayer() != null); } @Override public void actionPerformed(ActionEvent e) { toggleSelectedState(e); if (isSelected()) { MapRendererFactory.getInstance().activate(WireframeMapRenderer.class); } else { MapRendererFactory.getInstance().activate(StyledMapRenderer.class); } notifySelectedState(); if (Main.isDisplayingMapView()) { Main.map.mapView.repaint(); } } }