Ticket #6895: 6895.patch

File 6895.patch, 3.6 KB (added by simon04, 13 years ago)
  • src/org/openstreetmap/josm/gui/MainMenu.java

    diff --git a/src/org/openstreetmap/josm/gui/MainMenu.java b/src/org/openstreetmap/josm/gui/MainMenu.java
    index cce2765..272e96d 100644
    a b import org.openstreetmap.josm.actions.audio.AudioSlowerAction;  
    9191import org.openstreetmap.josm.actions.search.SearchAction;
    9292import org.openstreetmap.josm.gui.io.RecentlyOpenedFilesMenu;
    9393import org.openstreetmap.josm.gui.layer.Layer;
     94import org.openstreetmap.josm.gui.mappaint.MapPaintMenu;
    9495import org.openstreetmap.josm.gui.tagging.TaggingPresetSearchAction;
    9596import org.openstreetmap.josm.tools.Shortcut;
    9697
    public class MainMenu extends JMenuBar {  
    285286        wireframe.setAccelerator(wireFrameToggleAction.getShortcut().getKeyStroke());
    286287        wireFrameToggleAction.addButtonModel(wireframe.getModel());
    287288
     289        viewMenu.add(new MapPaintMenu());
    288290        viewMenu.addSeparator();
    289291        add(viewMenu, new ZoomInAction());
    290292        add(viewMenu, new ZoomOutAction());
  • new file src/org/openstreetmap/josm/gui/mappaint/MapPaintMenu.java

    diff --git a/src/org/openstreetmap/josm/gui/mappaint/MapPaintMenu.java b/src/org/openstreetmap/josm/gui/mappaint/MapPaintMenu.java
    new file mode 100644
    index 0000000..8304e52
    - +  
     1package org.openstreetmap.josm.gui.mappaint;
     2
     3import static org.openstreetmap.josm.tools.I18n.tr;
     4
     5import java.awt.event.ActionEvent;
     6import javax.swing.JCheckBoxMenuItem;
     7import javax.swing.JMenu;
     8import org.openstreetmap.josm.Main;
     9import org.openstreetmap.josm.actions.JosmAction;
     10import org.openstreetmap.josm.gui.mappaint.MapPaintStyles.MapPaintSylesUpdateListener;
     11import org.openstreetmap.josm.tools.ImageProvider;
     12
     13public class MapPaintMenu extends JMenu implements MapPaintSylesUpdateListener {
     14
     15    private static class MapPaintAction extends JosmAction {
     16
     17        private StyleSource style;
     18        private JCheckBoxMenuItem button;
     19
     20        public MapPaintAction(StyleSource style) {
     21            super(style.getDisplayString(), style.icon,
     22                    tr("Select the map painting styles"), null, style.icon != null);
     23            if (style.icon == null) {
     24                putValue("toolbar", "mappaint/" + style.getDisplayString());
     25                Main.toolbar.register(this);
     26            }
     27            this.button = new JCheckBoxMenuItem(this);
     28            this.style = style;
     29            updateButton();
     30        }
     31
     32        private void updateButton() {
     33            button.getModel().setSelected(style.active);
     34        }
     35
     36        private void toggleStyle() {
     37            MapPaintStyles.toggleStyleActive(MapPaintStyles.getStyles().getStyleSources().indexOf(style));
     38            updateButton();
     39        }
     40
     41        @Override
     42        public void actionPerformed(ActionEvent ae) {
     43            toggleStyle();
     44        }
     45
     46        public JCheckBoxMenuItem getButton() {
     47            return button;
     48        }
     49
     50        @Override
     51        public void updateEnabledState() {
     52            setEnabled(Main.map != null && Main.main.getEditLayer() != null);
     53        }
     54    }
     55
     56    public MapPaintMenu() {
     57        super(tr("Map Paint Styles"));
     58        setIcon(ImageProvider.get("dialogs", "mapstyle"));
     59        MapPaintStyles.addMapPaintSylesUpdateListener(this);
     60    }
     61
     62    @Override
     63    public void mapPaintStylesUpdated() {
     64        removeAll();
     65        for (StyleSource style : MapPaintStyles.getStyles().getStyleSources()) {
     66            add(new MapPaintAction(style).getButton());
     67        }
     68    }
     69
     70    @Override
     71    public void mapPaintStyleEntryUpdated(int idx) {
     72        mapPaintStylesUpdated();
     73    }
     74}