Ignore:
Timestamp:
2007-07-18T23:12:56+02:00 (19 years ago)
Author:
imi
Message:
  • added support for multiple data layers
File:
1 edited

Legend:

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

    r138 r290  
    33import static org.openstreetmap.josm.tools.I18n.tr;
    44
    5 import java.awt.event.ActionEvent;
    65import java.awt.event.InputEvent;
    76import java.awt.event.KeyEvent;
    87import java.io.File;
    98
    10 import javax.swing.JFileChooser;
    11 import javax.swing.filechooser.FileFilter;
    12 
    13 import org.openstreetmap.josm.Main;
     9import org.openstreetmap.josm.gui.layer.OsmDataLayer;
    1410
    1511/**
     
    1814 * @author imi
    1915 */
    20 public class SaveAsAction extends DiskAccessAction {
     16public class SaveAsAction extends SaveActionBase {
    2117   
    2218        /**
    2319         * Construct the action with "Save" as label.
    24          * @param layer Save only this layer. If <code>null</code>, save the whole Main
    25          *              data set.
     20         * @param layer Save this layer.
    2621         */
    27         public SaveAsAction() {
    28                 super(tr("Save as"), "save_as", tr("Save the current data to a new file."), KeyEvent.VK_S, InputEvent.CTRL_DOWN_MASK | InputEvent.SHIFT_DOWN_MASK);
     22        public SaveAsAction(OsmDataLayer layer) {
     23                super(tr("Save as"), "save_as", tr("Save the current data to a new file."), KeyEvent.VK_S, InputEvent.CTRL_DOWN_MASK | InputEvent.SHIFT_DOWN_MASK, layer);
    2924        }
    3025       
    31         public void actionPerformed(ActionEvent event) {
    32                 if (!checkSaveConditions())
    33                         return;
    34 
    35                 File file = openFileDialog();
    36                 if (file == null)
    37                         return;
    38 
    39                 SaveAction.save(file);
    40                 Main.main.editLayer().name = file.getName();
    41                 Main.main.editLayer().associatedFile = file;
    42                 Main.parent.repaint();
     26        protected File getFile(OsmDataLayer layer) {
     27                return openFileDialog();
    4328        }
    44 
    45         public static File openFileDialog() {
    46             JFileChooser fc = createAndOpenFileChooser(false, false);
    47                 if (fc == null)
    48                         return null;
    49 
    50                 File file = fc.getSelectedFile();
    51 
    52                 String fn = file.getPath();
    53                 if (fn.indexOf('.') == -1) {
    54                         FileFilter ff = fc.getFileFilter();
    55                         if (ff instanceof ExtensionFileFilter)
    56                                 fn = "." + ((ExtensionFileFilter)ff).defaultExtension;
    57                         else
    58                                 fn += ".osm";
    59                         file = new File(fn);
    60                 }
    61             return file;
    62     }
    6329}
Note: See TracChangeset for help on using the changeset viewer.