Ignore:
Timestamp:
2012-08-20T01:11:45+02:00 (12 years ago)
Author:
Don-vip
Message:

fix #2961 - Improve usability of WMS Layer Saving/Loading

  • Replaced the unconventional method of creating a blank layer, then loading a .wms file to a standard File->Open approach
  • Fixed memory leaks with some actions registered as listeners but never destroyed
  • Layer interface modified to allow a generic approach of layer saving in SaveActionBase rather than the previous one restricted to OSM and GPX data
  • FileImporters and FileExporters can now be enabled/disabled at runtime, for example when the active layer changes
File:
1 edited

Legend:

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

    r5382 r5459  
    22package org.openstreetmap.josm.actions.mapmode;
    33
    4 import java.awt.*;
    54import static org.openstreetmap.josm.gui.help.HelpUtil.ht;
    65import static org.openstreetmap.josm.tools.I18n.marktr;
     
    87import static org.openstreetmap.josm.tools.I18n.trn;
    98
     9import java.awt.AWTEvent;
     10import java.awt.BasicStroke;
     11import java.awt.Color;
     12import java.awt.Component;
     13import java.awt.Cursor;
     14import java.awt.Graphics2D;
     15import java.awt.KeyboardFocusManager;
     16import java.awt.Point;
     17import java.awt.Stroke;
     18import java.awt.Toolkit;
    1019import java.awt.event.AWTEventListener;
    1120import java.awt.event.ActionEvent;
     
    2938import java.util.TreeSet;
    3039
    31 import javax.swing.*;
     40import javax.swing.AbstractAction;
     41import javax.swing.JCheckBoxMenuItem;
     42import javax.swing.JFrame;
     43import javax.swing.JMenuItem;
     44import javax.swing.JOptionPane;
     45import javax.swing.JPopupMenu;
     46import javax.swing.SwingUtilities;
     47import javax.swing.Timer;
    3248
    3349import org.openstreetmap.josm.Main;
     
    91107    private EastNorth currentMouseEastNorth;
    92108
    93     private SnapHelper snapHelper = new SnapHelper();
     109    private final SnapHelper snapHelper = new SnapHelper();
    94110
    95111    private Shortcut backspaceShortcut;
    96     private Shortcut snappingShortcut;
    97 
    98     private JCheckBoxMenuItem snapCheckboxMenuItem;
     112    private final Shortcut snappingShortcut;
     113
     114    private final SnapChangeAction snapChangeAction;
     115    private final JCheckBoxMenuItem snapCheckboxMenuItem;
    99116    private boolean useRepeatedShortcut;
    100117
     
    106123        snappingShortcut = Shortcut.registerShortcut("mapmode:drawanglesnapping",
    107124            tr("Mode: Draw Angle snapping"), KeyEvent.VK_TAB, Shortcut.DIRECT);
    108         addMenuItem();
     125        snapChangeAction = new SnapChangeAction();
     126        snapCheckboxMenuItem = addMenuItem();
    109127        snapHelper.setMenuCheckBox(snapCheckboxMenuItem);
    110128        cursorJoinNode = ImageProvider.getCursor("crosshair", "joinnode");
     
    112130    }
    113131
    114     private void addMenuItem() {
     132    private JCheckBoxMenuItem addMenuItem() {
    115133        int n=Main.main.menu.editMenu.getItemCount();
    116134        for (int i=n-1;i>0;i--) {
     
    120138            }
    121139        }
    122         snapCheckboxMenuItem = MainMenu.addWithCheckbox(Main.main.menu.editMenu, new SnapChangeAction(), MainMenu.WINDOW_MENU_GROUP.VOLATILE);
     140        return MainMenu.addWithCheckbox(Main.main.menu.editMenu, snapChangeAction, MainMenu.WINDOW_MENU_GROUP.VOLATILE);
    123141    }
    124142
     
    12071225    public void destroy() {
    12081226        super.destroy();
     1227        snapChangeAction.destroy();
    12091228    }
    12101229
Note: See TracChangeset for help on using the changeset viewer.