Changeset 1373 in josm


Ignore:
Timestamp:
Feb 7, 2009 10:03:47 PM (4 years ago)
Author:
stoecker
Message:

fixed #1425. modified patch by xeen

Location:
trunk/src/org/openstreetmap/josm
Files:
1 added
2 edited

Legend:

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

    r1356 r1373  
    3030import org.openstreetmap.josm.actions.downloadtasks.DownloadOsmTask; 
    3131import org.openstreetmap.josm.actions.mapmode.MapMode; 
     32import org.openstreetmap.josm.actions.SaveAction; 
    3233import org.openstreetmap.josm.actions.search.SearchAction; 
    3334import org.openstreetmap.josm.data.Bounds; 
     
    3738import org.openstreetmap.josm.data.projection.Epsg4326; 
    3839import org.openstreetmap.josm.data.projection.Projection; 
     40import org.openstreetmap.josm.gui.ExtendedDialog; 
    3941import org.openstreetmap.josm.gui.GettingStarted; 
    4042import org.openstreetmap.josm.gui.MainMenu; 
     
    340342            } 
    341343            if (modified) { 
    342                 final String msg = uploadedModified ? "\n"+tr("Hint: Some changes came from uploading new data to the server.") : ""; 
    343                 final int answer = JOptionPane.showConfirmDialog( 
    344                         parent, tr("There are unsaved changes. Discard the changes and continue?")+msg, 
    345                         tr("Unsaved Changes"), JOptionPane.YES_NO_OPTION); 
    346                 if (answer != JOptionPane.YES_OPTION) 
     344                final String msg = uploadedModified ? "\n" 
     345                +tr("Hint: Some changes came from uploading new data to the server.") : ""; 
     346                int result = new ExtendedDialog(parent, tr("Unsaved Changes"), 
     347                new javax.swing.JLabel(tr("There are unsaved changes. Discard the changes and continue?")+msg), 
     348                new String[] {tr("Save and Exit"), tr("Discard and Exit"), tr("Cancel")}, 
     349                new String[] {"save.png", "exit.png", "cancel.png"}).getValue();  
     350 
     351                // Save before exiting 
     352                if(result == 1) { 
     353                    Boolean savefailed = false; 
     354                    for (final Layer l : map.mapView.getAllLayers()) { 
     355                        if (l instanceof OsmDataLayer && ((OsmDataLayer)l).isModified()) { 
     356                            SaveAction save = new SaveAction(l); 
     357                            if(!save.doSave()) 
     358                                savefailed = true; 
     359                        } 
     360                    } 
     361                    return savefailed; 
     362                } 
     363                else if(result != 2) // Cancel exiting unless the 2nd button was clicked 
    347364                    return true; 
    348365            } 
  • trunk/src/org/openstreetmap/josm/actions/SaveActionBase.java

    r1180 r1373  
    3434 
    3535    public void actionPerformed(ActionEvent e) { 
     36        doSave(); 
     37    } 
     38 
     39    public Boolean doSave() { 
    3640        Layer layer = this.layer; 
    3741        if (layer == null && Main.map != null && (Main.map.mapView.getActiveLayer() instanceof OsmDataLayer 
     
    4246 
    4347        if (!checkSaveConditions(layer)) 
    44             return; 
     48            return false; 
    4549 
    4650 
    4751        File file = getFile(layer); 
    4852        if (file == null) 
    49             return; 
     53            return false; 
    5054 
    5155        save(file, layer); 
     
    5458        layer.associatedFile = file; 
    5559        Main.parent.repaint(); 
     60        return true; 
    5661    } 
    5762 
Note: See TracChangeset for help on using the changeset viewer.