Changeset 15404 in josm for trunk/src/org/openstreetmap/josm/actions/SaveAction.java
- Timestamp:
- 2019-10-02T23:11:24+02:00 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/actions/SaveAction.java
r14397 r15404 6 6 7 7 import java.awt.event.KeyEvent; 8 import java.beans.PropertyChangeListener; 8 9 import java.io.File; 9 10 … … 12 13 import org.openstreetmap.josm.gui.layer.GpxLayer; 13 14 import org.openstreetmap.josm.gui.layer.Layer; 15 import org.openstreetmap.josm.gui.layer.LayerManager.LayerAddEvent; 16 import org.openstreetmap.josm.gui.layer.LayerManager.LayerRemoveEvent; 17 import org.openstreetmap.josm.gui.layer.OsmDataLayer; 18 import org.openstreetmap.josm.gui.layer.SaveToFile; 14 19 import org.openstreetmap.josm.tools.Shortcut; 15 20 … … 21 26 public final class SaveAction extends SaveActionBase { 22 27 private static SaveAction instance = new SaveAction(); 28 29 private final PropertyChangeListener updateOnRequireSaveChange = evt -> { 30 if (OsmDataLayer.REQUIRES_SAVE_TO_DISK_PROP.equals(evt.getPropertyName())) { 31 updateEnabledState(); 32 } 33 }; 23 34 24 35 /** … … 39 50 } 40 51 41 @Override public File getFile(Layer layer) { 52 @Override 53 protected LayerChangeAdapter buildLayerChangeAdapter() { 54 return new LayerChangeAdapter() { 55 @Override 56 public void layerAdded(LayerAddEvent e) { 57 if (e.getAddedLayer() instanceof OsmDataLayer) { 58 e.getAddedLayer().addPropertyChangeListener(updateOnRequireSaveChange); 59 } 60 super.layerAdded(e); 61 } 62 63 @Override 64 public void layerRemoving(LayerRemoveEvent e) { 65 if (e.getRemovedLayer() instanceof OsmDataLayer) { 66 e.getRemovedLayer().removePropertyChangeListener(updateOnRequireSaveChange); 67 } 68 super.layerRemoving(e); 69 } 70 }; 71 } 72 73 @Override 74 protected void updateEnabledState() { 75 Layer activeLayer = getLayerManager().getActiveLayer(); 76 setEnabled(activeLayer != null && activeLayer.isSavable() 77 && (!(activeLayer.getAssociatedFile() != null 78 && activeLayer instanceof SaveToFile && !((SaveToFile) activeLayer).requiresSaveToFile()))); 79 } 80 81 @Override 82 public File getFile(Layer layer) { 42 83 File f = layer.getAssociatedFile(); 43 84 if (f != null && !f.exists()) {
Note:
See TracChangeset
for help on using the changeset viewer.