Changeset 4114 in josm


Ignore:
Timestamp:
Jun 1, 2011 10:23:11 PM (2 years ago)
Author:
stoecker
Message:

setting a save file in the close layer dialog now works as expected

Location:
trunk/src/org/openstreetmap/josm
Files:
4 edited

Legend:

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

    r2323 r4114  
    3737        } 
    3838 
    39         // FIXME: why only for GpxLayer? 
     39        // Ask for overwrite in case of GpxLayer: GpxLayers usually are imports 
     40        // and modifying is an error most of the time. 
    4041        if(f != null && layer instanceof GpxLayer) { 
    4142            ExtendedDialog dialog = new ExtendedDialog( 
  • trunk/src/org/openstreetmap/josm/actions/SaveActionBase.java

    r4045 r4114  
    4646 
    4747    public boolean doSave(Layer layer) { 
    48         if (layer == null) 
    49             return false; 
    50         if ( !(layer instanceof OsmDataLayer) && !(layer instanceof GpxLayer)) 
    51             return false; 
    52         if (!checkSaveConditions(layer)) 
    53             return false; 
    54  
    55         File file = getFile(layer); 
     48        if(!checkSaveConditions(layer)) 
     49            return false; 
     50        return doInternalSave(layer, getFile(layer)); 
     51    } 
     52 
     53    public boolean doSave(Layer layer, File file) { 
     54        if(!checkSaveConditions(layer)) 
     55            return false; 
     56        return doInternalSave(layer, file); 
     57    } 
     58 
     59    private boolean doInternalSave(Layer layer, File file) { 
    5660        if (file == null) 
    5761            return false; 
     
    9195     */ 
    9296    public boolean checkSaveConditions(Layer layer) { 
    93         if (layer instanceof OsmDataLayer && isDataSetEmpty((OsmDataLayer)layer)) { 
    94             ExtendedDialog dialog = new ExtendedDialog( 
    95                     Main.parent, 
    96                     tr("Empty document"), 
    97                     new String[] {tr("Save anyway"), tr("Cancel")} 
    98             ); 
    99             dialog.setContent(tr("The document contains no data.")); 
    100             dialog.setButtonIcons(new String[] {"save.png", "cancel.png"}); 
    101             dialog.showDialog(); 
    102             if (dialog.getValue() != 1) return false; 
    103         } 
    104  
    105         if (layer instanceof GpxLayer && ((GpxLayer)layer).data == null) 
    106             return false; 
    107         if (layer instanceof OsmDataLayer)  { 
     97        if (layer instanceof GpxLayer) 
     98            return ((GpxLayer)layer).data != null; 
     99        else if (layer instanceof OsmDataLayer)  { 
     100            if (isDataSetEmpty((OsmDataLayer)layer)) { 
     101                ExtendedDialog dialog = new ExtendedDialog( 
     102                        Main.parent, 
     103                        tr("Empty document"), 
     104                        new String[] {tr("Save anyway"), tr("Cancel")} 
     105                ); 
     106                dialog.setContent(tr("The document contains no data.")); 
     107                dialog.setButtonIcons(new String[] {"save.png", "cancel.png"}); 
     108                dialog.showDialog(); 
     109                if (dialog.getValue() != 1) return false; 
     110            } 
     111 
    108112            ConflictCollection conflicts = ((OsmDataLayer)layer).getConflicts(); 
    109113            if (conflicts != null && !conflicts.isEmpty()) { 
     
    119123                if (dialog.getValue() != 1) return false; 
    120124            } 
    121         } 
    122         return true; 
     125            return true; 
     126        } 
     127        return false; 
    123128    } 
    124129 
  • trunk/src/org/openstreetmap/josm/gui/io/SaveLayerTask.java

    r3083 r4114  
    4848        try { 
    4949            parentMonitor.subTask(tr("Saving layer to ''{0}'' ...", layerInfo.getFile().toString())); 
    50             layerInfo.getLayer().setAssociatedFile(layerInfo.getFile()); 
    51             if (!new SaveAction().doSave(layerInfo.getLayer())) { 
     50            if (!new SaveAction().doSave(layerInfo.getLayer(), layerInfo.getFile())) { 
    5251                setFailed(true); 
    5352                return; 
  • trunk/src/org/openstreetmap/josm/gui/io/SaveLayersModel.java

    r3083 r4114  
    116116        List<SaveLayerInfo> ret =new ArrayList<SaveLayerInfo>(); 
    117117        for (SaveLayerInfo info: layerInfo) { 
    118             if (info.isDoSaveToFile() && info.getFile() != null && ! info.getFile().canWrite()) { 
     118            if (info.isDoSaveToFile() && info.getFile() != null && info.getFile().exists() && !info.getFile().canWrite()) { 
    119119                ret.add(info); 
    120120            } 
Note: See TracChangeset for help on using the changeset viewer.