Changeset 146 in josm for src/org


Ignore:
Timestamp:
2006-10-04T19:56:06+02:00 (18 years ago)
Author:
imi
Message:
  • added "Align nodes in a circle" patch from Matthew Newton.
  • added a couple of unit tests
Location:
src/org/openstreetmap/josm
Files:
1 added
1 deleted
6 edited

Legend:

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

    r145 r146  
    3131
    3232import org.openstreetmap.josm.actions.AboutAction;
     33import org.openstreetmap.josm.actions.AlignInCircleAction;
    3334import org.openstreetmap.josm.actions.DownloadAction;
    3435import org.openstreetmap.josm.actions.ExitAction;
     
    174175                annotationTesterAction.putValue(Action.SMALL_ICON, ImageProvider.get("annotation-tester"));
    175176                final Action reverseSegmentAction = new ReverseSegmentAction();
     177                final Action alignInCircleAction = new AlignInCircleAction();
    176178                final Action uploadAction = new UploadAction();
    177179                final Action saveAction = new SaveAction();
     
    211213                editMenu.addSeparator();
    212214                editMenu.add(reverseSegmentAction);
     215                editMenu.add(alignInCircleAction);
    213216                editMenu.addSeparator();
    214217                editMenu.add(preferencesAction);
     
    239242                toolBar.add(undoAction);
    240243                toolBar.add(redoAction);
    241                 toolBar.addSeparator();
    242                 toolBar.add(reverseSegmentAction);
    243244                toolBar.addSeparator();
    244245                toolBar.add(preferencesAction);
  • src/org/openstreetmap/josm/actions/ExternalToolsAction.java

    r143 r146  
    7676                                final boolean addGpx = flags.contains("gpx");
    7777
    78                                 AddVisitor adder = new AddVisitor(fromDataSet, flags.contains("include_references"));
     78                                AddVisitor adder = new AddVisitor(fromDataSet);
     79                                if (flags.contains("include_references")) {
     80                                        adder = new AddVisitor(fromDataSet){
     81                                                @Override public void visit(Node n) {
     82                                                        if (!ds.nodes.contains(n))
     83                                                                super.visit(n);
     84                        }
     85                                                @Override public void visit(Segment s) {
     86                                super.visit(s);
     87                                        if (!s.incomplete) {
     88                                                if (!ds.nodes.contains(s.from))
     89                                                        s.from.visit(this);
     90                                                if (!ds.nodes.contains(s.to))
     91                                                        s.to.visit(this);
     92                                        }
     93                        }
     94                                                @Override public void visit(Way w) {
     95                                super.visit(w);
     96                                        for (Segment s : w.segments)
     97                                                if (!ds.segments.contains(s))
     98                                                        s.visit(this);
     99                        }
     100                                        };
     101                                }
    79102                                if (input.contains("selection")) {
    80103                                        Collection<OsmPrimitive> sel = Main.ds.getSelected();
  • src/org/openstreetmap/josm/command/Command.java

    r98 r146  
    22
    33import java.util.Collection;
     4import java.util.HashMap;
    45import java.util.HashSet;
     6import java.util.Map;
    57import java.util.Map.Entry;
    68
    79import javax.swing.tree.MutableTreeNode;
    810
     11import org.openstreetmap.josm.data.osm.Node;
    912import org.openstreetmap.josm.data.osm.OsmPrimitive;
    10 import org.openstreetmap.josm.data.osm.visitor.CloneVisitor;
     13import org.openstreetmap.josm.data.osm.Segment;
     14import org.openstreetmap.josm.data.osm.Way;
     15import org.openstreetmap.josm.data.osm.visitor.Visitor;
    1116
    1217
     
    2328abstract public class Command {
    2429
     30        private static final class CloneVisitor implements Visitor {
     31                public Map<OsmPrimitive, OsmPrimitive> orig = new HashMap<OsmPrimitive, OsmPrimitive>();
     32               
     33                public void visit(Node n) {
     34                        orig.put(n, new Node(n));
     35            }
     36                public void visit(Segment s) {
     37                        orig.put(s, new Segment(s));
     38            }
     39                public void visit(Way w) {
     40                        orig.put(w, new Way(w));
     41            }
     42        }
     43       
    2544        private CloneVisitor orig;
    2645       
  • src/org/openstreetmap/josm/command/MoveCommand.java

    r104 r146  
    44import static org.openstreetmap.josm.tools.I18n.trn;
    55
     6import java.util.Arrays;
    67import java.util.Collection;
    78import java.util.Iterator;
     
    5657        private List<OldState> oldState = new LinkedList<OldState>();
    5758
     59       
     60        public MoveCommand(OsmPrimitive osm, double x, double y) {
     61                this(Arrays.asList(new OsmPrimitive[]{osm}), x, y);
     62        }
    5863        /**
    5964         * Create a MoveCommand and assign the initial object set and movement vector.
  • src/org/openstreetmap/josm/data/osm/visitor/AddVisitor.java

    r142 r146  
    1717public class AddVisitor implements Visitor {
    1818       
    19         private final DataSet ds;
    20         private final boolean includeReferences;
    21        
    22         public AddVisitor(DataSet ds, boolean includeReferences) {
    23                 this.ds = ds;
    24                 this.includeReferences = includeReferences;
    25         }
     19        protected final DataSet ds;
    2620       
    2721        public AddVisitor(DataSet ds) {
    28                 this(ds, false);
     22                this.ds = ds;
    2923        }
    3024       
    3125        public void visit(Node n) {
    32                 if (!includeReferences || !ds.nodes.contains(n))
    33                         ds.nodes.add(n);
     26                ds.nodes.add(n);
    3427        }
    3528        public void visit(Segment s) {
    3629                ds.segments.add(s);
    37                 if (includeReferences && !s.incomplete) {
    38                         if (!ds.nodes.contains(s.from))
    39                                 s.from.visit(this);
    40                         if (!ds.nodes.contains(s.to))
    41                                 s.to.visit(this);
    42                 }
    4330        }
    4431        public void visit(Way w) {
    4532                ds.ways.add(w);
    46                 if (includeReferences)
    47                         for (Segment s : w.segments)
    48                                 if (!ds.segments.contains(s))
    49                                         s.visit(this);
    5033        }
    5134}
  • src/org/openstreetmap/josm/data/osm/visitor/BoundingXYVisitor.java

    r86 r146  
    99
    1010/**
    11  * Calculates the total bounding rectangle of a serie of OsmPrimitives, using the EastNorth values
    12  * as reference.
     11 * Calculates the total bounding rectangle of a serie of OsmPrimitives, using the
     12 * EastNorth values as reference.
    1313 * @author imi
    1414 */
Note: See TracChangeset for help on using the changeset viewer.