org.openstreetmap.josm.actions
Class UploadSelectionAction

java.lang.Object
  extended by javax.swing.AbstractAction
      extended by org.openstreetmap.josm.actions.JosmAction
          extended by org.openstreetmap.josm.actions.UploadSelectionAction
All Implemented Interfaces:
java.awt.event.ActionListener, java.io.Serializable, java.lang.Cloneable, java.util.EventListener, javax.swing.Action, Destroyable

public class UploadSelectionAction
extends JosmAction

Uploads the current selection to the server.

See Also:
Serialized Form

Nested Class Summary
(package private)  class UploadSelectionAction.DeletedParentsChecker
           
(package private) static class UploadSelectionAction.UploadHullBuilder
          Computes the collection of primitives to upload, given a collection of candidate primitives.
 
Field Summary
 
Fields inherited from class org.openstreetmap.josm.actions.JosmAction
sc
 
Fields inherited from class javax.swing.AbstractAction
changeSupport, enabled
 
Fields inherited from interface javax.swing.Action
ACCELERATOR_KEY, ACTION_COMMAND_KEY, DEFAULT, DISPLAYED_MNEMONIC_INDEX_KEY, LARGE_ICON_KEY, LONG_DESCRIPTION, MNEMONIC_KEY, NAME, SELECTED_KEY, SHORT_DESCRIPTION, SMALL_ICON
 
Constructor Summary
UploadSelectionAction()
           
 
Method Summary
 void actionPerformed(java.awt.event.ActionEvent e)
           
protected  java.util.Set<OsmPrimitive> getDeletedPrimitives(DataSet ds)
           
protected  java.util.Set<OsmPrimitive> getModifiedPrimitives(java.util.Collection<OsmPrimitive> primitives)
           
protected  boolean hasPrimitivesToDelete(java.util.Collection<OsmPrimitive> primitives)
          Replies true if there is at least one non-new, deleted primitive in primitives
protected  void processPostParentChecker(OsmDataLayer layer, java.util.Collection<OsmPrimitive> toUpload)
           
protected  void updateEnabledState()
          Override in subclasses to update the enabled state of the action when something in the JOSM state changes, i.e.
protected  void updateEnabledState(java.util.Collection<? extends OsmPrimitive> selection)
          Override in subclasses to update the enabled state of the action if the collection of selected primitives changes.
 void uploadPrimitives(OsmDataLayer layer, java.util.Collection<OsmPrimitive> toUpload)
          Uploads the primitives in toUpload to the server.
 
Methods inherited from class org.openstreetmap.josm.actions.JosmAction
destroy, getCurrentDataSet, getEditLayer, getShortcut, initEnabledState, installAdapters, setTooltip
 
Methods inherited from class javax.swing.AbstractAction
addPropertyChangeListener, clone, firePropertyChange, getKeys, getPropertyChangeListeners, getValue, isEnabled, putValue, removePropertyChangeListener, setEnabled
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

UploadSelectionAction

public UploadSelectionAction()
Method Detail

updateEnabledState

protected void updateEnabledState()
Description copied from class: JosmAction
Override in subclasses to update the enabled state of the action when something in the JOSM state changes, i.e. when a layer is removed or added. See JosmAction.updateEnabledState(Collection) to respond to changes in the collection of selected primitives. Default behavior is empty.

Overrides:
updateEnabledState in class JosmAction
See Also:
JosmAction.updateEnabledState(Collection), JosmAction.initEnabledState()

updateEnabledState

protected void updateEnabledState(java.util.Collection<? extends OsmPrimitive> selection)
Description copied from class: JosmAction
Override in subclasses to update the enabled state of the action if the collection of selected primitives changes. This method is called with the new selection.

Overrides:
updateEnabledState in class JosmAction
Parameters:
selection - the collection of selected primitives; may be empty, but not null
See Also:
JosmAction.updateEnabledState(), JosmAction.initEnabledState()

getDeletedPrimitives

protected java.util.Set<OsmPrimitive> getDeletedPrimitives(DataSet ds)

getModifiedPrimitives

protected java.util.Set<OsmPrimitive> getModifiedPrimitives(java.util.Collection<OsmPrimitive> primitives)

actionPerformed

public void actionPerformed(java.awt.event.ActionEvent e)

hasPrimitivesToDelete

protected boolean hasPrimitivesToDelete(java.util.Collection<OsmPrimitive> primitives)
Replies true if there is at least one non-new, deleted primitive in primitives

Parameters:
primitives - the primitives to scan
Returns:
true if there is at least one non-new, deleted primitive in primitives

uploadPrimitives

public void uploadPrimitives(OsmDataLayer layer,
                             java.util.Collection<OsmPrimitive> toUpload)
Uploads the primitives in toUpload to the server. Only uploads primitives which are either new, modified or deleted. Also checks whether toUpload has to be extended with deleted parents in order to avoid precondition violations on the server.

Parameters:
layer - the data layer from which we upload a subset of primitives
toUpload - the primitives to upload. If null or empty returns immediatelly

processPostParentChecker

protected void processPostParentChecker(OsmDataLayer layer,
                                        java.util.Collection<OsmPrimitive> toUpload)


JOSM