source: josm/trunk/src/org/openstreetmap/josm/actions/UpdateModifiedAction.java@ 8148

Last change on this file since 8148 was 7434, checked in by Don-vip, 10 years ago

fix #8885 (see #4614) - add offline mode with new command line argument --offline which can take one of several of these values (comma separated):

  • josm_website: to disable all accesses to JOSM website (when not cached, disables Getting Started page, help, plugin list, styles, imagery, presets, rules)
  • osm_api: to disable all accesses to OSM API (disables download, upload, changeset queries, history, user message notification)
  • all: alias to disable all values. Currently equivalent to "josm_website,osm_api"

Plus improved javadoc, fixed EDT violations, and fixed a bug with HTTP redirection sent without "Location" header

  • Property svn:eol-style set to native
File size: 2.3 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.actions;
3
4import static org.openstreetmap.josm.gui.help.HelpUtil.ht;
5import static org.openstreetmap.josm.tools.I18n.tr;
6
7import java.awt.event.KeyEvent;
8import java.util.Collection;
9import java.util.Collections;
10
11import org.openstreetmap.josm.Main;
12import org.openstreetmap.josm.data.osm.OsmPrimitive;
13import org.openstreetmap.josm.io.OnlineResource;
14import org.openstreetmap.josm.tools.Shortcut;
15
16/**
17 * This action synchronizes a set of primitives with their state on the server.
18 * @since 2682
19 */
20public class UpdateModifiedAction extends UpdateSelectionAction {
21
22 /**
23 * Constructs a new {@code UpdateModifiedAction}.
24 */
25 public UpdateModifiedAction() {
26 super(tr("Update modified"), "updatedata",
27 tr("Updates the currently modified objects from the server (re-downloads data)"),
28 Shortcut.registerShortcut("file:updatemodified",
29 tr("File: {0}", tr("Update modified")), KeyEvent.VK_M,
30 Shortcut.ALT_CTRL),
31 true, "updatemodified");
32 putValue("help", ht("/Action/UpdateModified"));
33 }
34
35 // FIXME: overrides the behaviour of UpdateSelectionAction. Doesn't update
36 // the enabled state based on the current selection because
37 // it doesn't depend on it.
38 // The action should be enabled/disabled based on whether there is a least
39 // one modified object in the current dataset. Unfortunately, there is no
40 // efficient way to find out here. getDataSet().allModifiedPrimitives() is
41 // too heavy weight because it loops over the whole dataset.
42 // Perhaps this action should be a DataSetListener? Or it could listen to the
43 // REQUIRES_SAVE_TO_DISK_PROP and REQUIRES_UPLOAD_TO_SERVER_PROP properties
44 // in the OsmLayer?
45 //
46 @Override
47 protected void updateEnabledState() {
48 setEnabled(getCurrentDataSet() != null && !Main.isOffline(OnlineResource.OSM_API));
49 }
50
51 @Override
52 protected void updateEnabledState(Collection<? extends OsmPrimitive> selection) {
53 }
54
55 @Override
56 public Collection<OsmPrimitive> getData() {
57 if (getCurrentDataSet() == null) return Collections.emptyList();
58 return getCurrentDataSet().allModifiedPrimitives();
59 }
60}
Note: See TracBrowser for help on using the repository browser.