org.openstreetmap.josm.actions.mapmode
Class ParallelWayAction

java.lang.Object
  extended by javax.swing.AbstractAction
      extended by org.openstreetmap.josm.actions.JosmAction
          extended by org.openstreetmap.josm.actions.mapmode.MapMode
              extended by org.openstreetmap.josm.actions.mapmode.ParallelWayAction
All Implemented Interfaces:
java.awt.event.ActionListener, java.awt.event.AWTEventListener, java.awt.event.MouseListener, java.awt.event.MouseMotionListener, java.io.Serializable, java.lang.Cloneable, java.util.EventListener, javax.swing.Action, MapViewPaintable, Destroyable

public class ParallelWayAction
extends MapMode
implements java.awt.event.AWTEventListener, MapViewPaintable

MapMode for making parallel ways. All calculations are done in projected coordinates.

See Also:
Serialized Form

Nested Class Summary
private static class ParallelWayAction.Mode
           
 
Field Summary
private  ModifiersSpec addToSelectionModifierCombo
           
private  boolean copyTags
           
private  boolean copyTagsDefault
           
private  ModifiersSpec copyTagsModifierCombo
           
private  EastNorth helperLineEnd
           
private  EastNorth helperLineStart
           
private  int initialMoveDelay
           
private  ParallelWayAction.Mode mode
           
private  boolean mouseHasBeenDragged
           
private  boolean mouseIsDown
           
private  java.awt.Point mousePressedPos
           
private  long mousePressedTime
           
private  MapView mv
           
private  ParallelWays pWays
           
private  WaySegment referenceSegment
           
private static long serialVersionUID
           
private  ModifiersSpec setSelectedModifierCombo
           
private  boolean snap
           
private  boolean snapDefault
           
private  double snapDistanceChinese
           
private  double snapDistanceImperial
           
private  double snapDistanceMetric
           
private  ModifiersSpec snapModifierCombo
           
private  double snapThreshold
           
(package private)  java.util.LinkedHashSet<Way> sourceWays
           
private  ModifiersSpec toggleSelectedModifierCombo
           
 
Fields inherited from class org.openstreetmap.josm.actions.mapmode.MapMode
alt, ctrl, cursor, shift
 
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
ParallelWayAction(MapFrame mapFrame)
           
 
Method Summary
private  void addSourceWay(Way w)
           
private  void clearSourceWays()
           
 void enterMode()
           
 void eventDispatched(java.awt.AWTEvent e)
           
 void exitMode()
           
 java.lang.String getModeHelpText()
           
private  java.lang.String getStringPref(java.lang.String subKey)
           
private  java.lang.String getStringPref(java.lang.String subKey, java.lang.String def)
           
private  boolean initParallelWays(java.awt.Point p, boolean copyTags)
           
private  boolean isModifiersValidForDragMode()
           
private  boolean isValidModifierCombination()
           
 boolean layerIsSupported(Layer layer)
           
private  boolean matchesCurrentModifiers(ModifiersSpec spec)
           
 void mouseDragged(java.awt.event.MouseEvent e)
           
 void mousePressed(java.awt.event.MouseEvent e)
           
 void mouseReleased(java.awt.event.MouseEvent e)
           
 void paint(java.awt.Graphics2D g, MapView mv, Bounds bbox)
          Paint the dataset using the engine set.
private  java.lang.String prefKey(java.lang.String subKey)
           
private  void removeSourceWay(Way w)
           
private  void removeWayHighlighting(java.util.Collection<Way> ways)
           
private  void resetMouseTrackingState()
           
private  boolean sanityCheck()
           
private  void setMode(ParallelWayAction.Mode mode)
           
private  void updateAllPreferences()
           
private  void updateCursor()
           
private  void updateFlagsChangeableAlways()
           
private  void updateFlagsOnlyChangeableOnPress()
           
private  void updateModeLocalPreferences()
           
private  boolean updateModifiersState(java.awt.event.InputEvent e)
           
 
Methods inherited from class org.openstreetmap.josm.actions.mapmode.MapMode
actionPerformed, mouseClicked, mouseEntered, mouseExited, mouseMoved, updateKeyModifiers, updateKeyModifiers, updateKeyModifiers, updateStatusLine
 
Methods inherited from class org.openstreetmap.josm.actions.JosmAction
destroy, getCurrentDataSet, getEditLayer, getShortcut, initEnabledState, installAdapters, setTooltip, updateEnabledState, updateEnabledState
 
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
 

Field Detail

serialVersionUID

private static final long serialVersionUID
See Also:
Constant Field Values

mode

private ParallelWayAction.Mode mode

copyTags

private boolean copyTags

copyTagsDefault

private boolean copyTagsDefault

snap

private boolean snap

snapDefault

private boolean snapDefault

snapThreshold

private double snapThreshold

snapDistanceMetric

private double snapDistanceMetric

snapDistanceImperial

private double snapDistanceImperial

snapDistanceChinese

private double snapDistanceChinese

snapModifierCombo

private ModifiersSpec snapModifierCombo

copyTagsModifierCombo

private ModifiersSpec copyTagsModifierCombo

addToSelectionModifierCombo

private ModifiersSpec addToSelectionModifierCombo

toggleSelectedModifierCombo

private ModifiersSpec toggleSelectedModifierCombo

setSelectedModifierCombo

private ModifiersSpec setSelectedModifierCombo

initialMoveDelay

private int initialMoveDelay

mv

private final MapView mv

mousePressedPos

private java.awt.Point mousePressedPos

mouseIsDown

private boolean mouseIsDown

mousePressedTime

private long mousePressedTime

mouseHasBeenDragged

private boolean mouseHasBeenDragged

referenceSegment

private WaySegment referenceSegment

pWays

private ParallelWays pWays

sourceWays

java.util.LinkedHashSet<Way> sourceWays

helperLineStart

private EastNorth helperLineStart

helperLineEnd

private EastNorth helperLineEnd
Constructor Detail

ParallelWayAction

public ParallelWayAction(MapFrame mapFrame)
Method Detail

enterMode

public void enterMode()
Overrides:
enterMode in class MapMode

exitMode

public void exitMode()
Overrides:
exitMode in class MapMode

getModeHelpText

public java.lang.String getModeHelpText()
Overrides:
getModeHelpText in class MapMode

updateAllPreferences

private void updateAllPreferences()

updateModeLocalPreferences

private void updateModeLocalPreferences()

layerIsSupported

public boolean layerIsSupported(Layer layer)
Overrides:
layerIsSupported in class MapMode

eventDispatched

public void eventDispatched(java.awt.AWTEvent e)
Specified by:
eventDispatched in interface java.awt.event.AWTEventListener

updateModifiersState

private boolean updateModifiersState(java.awt.event.InputEvent e)

updateCursor

private void updateCursor()

setMode

private void setMode(ParallelWayAction.Mode mode)

isValidModifierCombination

private boolean isValidModifierCombination()

sanityCheck

private boolean sanityCheck()

mousePressed

public void mousePressed(java.awt.event.MouseEvent e)
Specified by:
mousePressed in interface java.awt.event.MouseListener
Overrides:
mousePressed in class MapMode

mouseReleased

public void mouseReleased(java.awt.event.MouseEvent e)
Specified by:
mouseReleased in interface java.awt.event.MouseListener
Overrides:
mouseReleased in class MapMode

removeWayHighlighting

private void removeWayHighlighting(java.util.Collection<Way> ways)

mouseDragged

public void mouseDragged(java.awt.event.MouseEvent e)
Specified by:
mouseDragged in interface java.awt.event.MouseMotionListener
Overrides:
mouseDragged in class MapMode

matchesCurrentModifiers

private boolean matchesCurrentModifiers(ModifiersSpec spec)

paint

public void paint(java.awt.Graphics2D g,
                  MapView mv,
                  Bounds bbox)
Description copied from interface: MapViewPaintable
Paint the dataset using the engine set.

Specified by:
paint in interface MapViewPaintable
mv - The object that can translate GeoPoints to screen coordinates.

isModifiersValidForDragMode

private boolean isModifiersValidForDragMode()

updateFlagsOnlyChangeableOnPress

private void updateFlagsOnlyChangeableOnPress()

updateFlagsChangeableAlways

private void updateFlagsChangeableAlways()

addSourceWay

private void addSourceWay(Way w)

removeSourceWay

private void removeSourceWay(Way w)

clearSourceWays

private void clearSourceWays()

resetMouseTrackingState

private void resetMouseTrackingState()

initParallelWays

private boolean initParallelWays(java.awt.Point p,
                                 boolean copyTags)

prefKey

private java.lang.String prefKey(java.lang.String subKey)

getStringPref

private java.lang.String getStringPref(java.lang.String subKey,
                                       java.lang.String def)

getStringPref

private java.lang.String getStringPref(java.lang.String subKey)


JOSM