Ticket #7429: singleton.patch

File singleton.patch, 6.6 KB (added by xeen, 14 years ago)
  • src/org/openstreetmap/josm/actions/SaveAction.java

     
    11// License: GPL. Copyright 2007 by Immanuel Scholz and others
    22package org.openstreetmap.josm.actions;
    33
     4import static org.openstreetmap.josm.gui.help.HelpUtil.ht;
    45import static org.openstreetmap.josm.tools.I18n.tr;
    5 import static org.openstreetmap.josm.gui.help.HelpUtil.ht;
    66
    77import java.awt.event.KeyEvent;
    88import java.io.File;
     
    1919 * @author imi
    2020 */
    2121public class SaveAction extends SaveActionBase {
     22    private static SaveAction instance = new SaveAction();
    2223
    2324    /**
    2425     * Construct the action with "Save" as label.
    2526     * @param layer Save this layer.
    2627     */
    27     public SaveAction() {
     28    private SaveAction() {
    2829        super(tr("Save"), "save", tr("Save the current data."),
    2930                Shortcut.registerShortcut("system:save", tr("File: {0}", tr("Save")), KeyEvent.VK_S, Shortcut.CTRL));
    3031        putValue("help", ht("/Action/Save"));
    3132    }
    3233
     34    public static SaveAction getInstance() {
     35        return instance;
     36    }
     37
     38
    3339    @Override public File getFile(Layer layer) {
    3440        File f = layer.getAssociatedFile();
    3541        if(f != null && ! f.exists()) {
  • src/org/openstreetmap/josm/actions/SaveActionBase.java

     
    99import java.util.Collection;
    1010import java.util.LinkedList;
    1111import java.util.List;
     12
    1213import javax.swing.JFileChooser;
    1314import javax.swing.JOptionPane;
    1415import javax.swing.filechooser.FileFilter;
     
    3233
    3334    @Override
    3435    public void actionPerformed(ActionEvent e) {
    35         if (!isEnabled()) {
     36        if (!isEnabled())
    3637            return;
    37         }
    3838        boolean saved = doSave();
    3939        if (saved) {
    4040            addToFileOpenHistory();
     
    5959        return doInternalSave(layer, file);
    6060    }
    6161
    62     public boolean doSave(Layer layer, File file) {
     62    public static boolean doSave(Layer layer, File file) {
    6363        if(!checkSaveConditions(layer))
    6464            return false;
    6565        return doInternalSave(layer, file);
    6666    }
    6767
    68     private boolean doInternalSave(Layer layer, File file) {
     68    private static boolean doInternalSave(Layer layer, File file) {
    6969        if (file == null)
    7070            return false;
    7171
     
    103103     * there is no conflict etc.)
    104104     * @return <code>true</code>, if it is safe to save.
    105105     */
    106     public boolean checkSaveConditions(Layer layer) {
     106    public static boolean checkSaveConditions(Layer layer) {
    107107        if (layer instanceof GpxLayer)
    108108            return ((GpxLayer)layer).data != null;
    109109        else if (layer instanceof OsmDataLayer)  {
     
    152152     *
    153153     * @return <code>true</code>, if a save result in an empty data set.
    154154     */
    155     private boolean isDataSetEmpty(OsmDataLayer layer) {
     155    private static boolean isDataSetEmpty(OsmDataLayer layer) {
    156156        for (OsmPrimitive osm : layer.data.allNonDeletedPrimitives())
    157157            if (!osm.isDeleted() || !osm.isNewOrUndeleted())
    158158                return false;
  • src/org/openstreetmap/josm/gui/MainMenu.java

     
    119119    public final OpenFileAction openFile = new OpenFileAction();
    120120    public final RecentlyOpenedFilesMenu recentlyOpened = new RecentlyOpenedFilesMenu();
    121121    public final OpenLocationAction openLocation = new OpenLocationAction();
    122     public final JosmAction save = new SaveAction();
     122    public final JosmAction save = SaveAction.getInstance();
    123123    public final JosmAction saveAs = new SaveAsAction();
    124124    public JosmAction sessionLoad;
    125125    public JosmAction sessionSaveAs;
  • src/org/openstreetmap/josm/gui/layer/Layer.java

     
    365365        }
    366366
    367367        public void actionPerformed(ActionEvent e) {
    368             new SaveAction().doSave(layer);
     368            SaveAction.getInstance().doSave(layer);
    369369        }
    370370    }
    371371
  • src/org/openstreetmap/josm/gui/io/SaveLayerTask.java

     
    4747    public void run() {
    4848        try {
    4949            parentMonitor.subTask(tr("Saving layer to ''{0}'' ...", layerInfo.getFile().toString()));
    50             if (!new SaveAction().doSave(layerInfo.getLayer(), layerInfo.getFile())) {
     50            if (!SaveAction.doSave(layerInfo.getLayer(), layerInfo.getFile())) {
    5151                setFailed(true);
    5252                return;
    5353            }
  • src/org/openstreetmap/josm/io/session/OsmDataSessionExporter.java

     
    1818import java.io.PrintWriter;
    1919import java.io.UnsupportedEncodingException;
    2020import java.io.Writer;
     21import java.net.MalformedURLException;
    2122import java.net.URI;
    2223import java.net.URL;
    23 import java.net.MalformedURLException;
    2424import java.util.Collection;
    2525import java.util.Collections;
    2626
     
    3434import javax.swing.JTextField;
    3535import javax.swing.SwingConstants;
    3636
    37 import org.w3c.dom.Element;
    38 
    3937import org.openstreetmap.josm.actions.SaveAction;
    4038import org.openstreetmap.josm.gui.layer.Layer;
    4139import org.openstreetmap.josm.gui.layer.OsmDataLayer;
     
    4543import org.openstreetmap.josm.io.session.SessionWriter.ExportSupport;
    4644import org.openstreetmap.josm.tools.GBC;
    4745import org.openstreetmap.josm.tools.ImageProvider;
     46import org.w3c.dom.Element;
    4847
    4948public class OsmDataSessionExporter implements SessionLayerExporter {
    5049
     
    7473        }
    7574
    7675        public void actionPerformed(ActionEvent e) {
    77             new SaveAction().doSave(layer);
     76            SaveAction.getInstance().doSave(layer);
    7877            updateEnabledState();
    7978        }
    8079