Ignore:
Timestamp:
2011-05-15T23:51:25+02:00 (13 years ago)
Author:
bastiK
Message:

PaintVisitor refactoring, includes hook for external MapRenderers (author: Gubaer)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/actions/WireframeToggleAction.java

    r3894 r4087  
    66import java.awt.event.ActionEvent;
    77import java.awt.event.KeyEvent;
    8 import java.util.ArrayList;
    9 import java.util.List;
    10 
    11 import javax.swing.ButtonModel;
    128
    139import org.openstreetmap.josm.Main;
     10import org.openstreetmap.josm.data.osm.visitor.paint.MapRendererFactory;
     11import org.openstreetmap.josm.data.osm.visitor.paint.StyledMapRenderer;
     12import org.openstreetmap.josm.data.osm.visitor.paint.WireframeMapRenderer;
    1413import org.openstreetmap.josm.tools.Shortcut;
    1514
    1615public class WireframeToggleAction extends JosmAction {
    17     private final List<ButtonModel> buttonModels = new ArrayList<ButtonModel>();
    18     //FIXME: replace with property Action.SELECTED_KEY when migrating to
    19     // Java 6
    20     private boolean selected;
    2116    public WireframeToggleAction() {
    2217        super(
     
    2722                true /* register shortcut */
    2823        );
    29         selected = Main.pref.getBoolean("draw.wireframe", false);
    30         notifySelectedState();
     24        putValue(SELECTED_KEY, MapRendererFactory.getInstance().isWireframeMapRendererActive());
    3125    }
    3226
    33     public void addButtonModel(ButtonModel model) {
    34         if (model != null && !buttonModels.contains(model)) {
    35             buttonModels.add(model);
    36             model.setSelected(selected);
     27    public void toggleSelectedState() {
     28        boolean selected = (Boolean)getValue(SELECTED_KEY);
     29
     30        if (selected){
     31            MapRendererFactory.getInstance().activate(WireframeMapRenderer.class);
     32        } else {
     33            MapRendererFactory.getInstance().activate(StyledMapRenderer.class);
    3734        }
    38     }
    39 
    40     public void removeButtonModel(ButtonModel model) {
    41         if (model != null && buttonModels.contains(model)) {
    42             buttonModels.remove(model);
    43         }
    44     }
    45 
    46     protected void notifySelectedState() {
    47         for (ButtonModel model: buttonModels) {
    48             if (model.isSelected() != selected) {
    49                 model.setSelected(selected);
    50             }
    51         }
    52     }
    53 
    54     protected void toggleSelectedState() {
    55         selected = !selected;
    56         Main.pref.put("draw.wireframe", selected);
    57         notifySelectedState();
    5835        if (Main.map != null) {
    5936            Main.map.mapView.repaint();
    6037        }
    6138    }
     39
    6240    public void actionPerformed(ActionEvent e) {
    6341        toggleSelectedState();
     
    6644    @Override
    6745    protected void updateEnabledState() {
    68         setEnabled(Main.map != null && Main.main.getEditLayer() != null);
    69     }
    70 
    71     public boolean isSelected() {
    72         return selected;
     46        setEnabled(Main.main.getEditLayer() != null);
    7347    }
    7448}
Note: See TracChangeset for help on using the changeset viewer.