Ignore:
Timestamp:
2006-04-21T14:31:51+02:00 (20 years ago)
Author:
imi
Message:
  • added conflicts and resolve conflict dialog

This is one of those "changed everything" checkpoint.

Location:
src/org/openstreetmap/josm/actions/mapmode
Files:
7 edited
1 moved

Legend:

Unmodified
Added
Removed
  • src/org/openstreetmap/josm/actions/mapmode/AddNodeAction.java

    r71 r86  
    2727        }
    2828
    29         @Override
    30         public void registerListener() {
     29        @Override public void registerListener() {
    3130                super.registerListener();
    3231                mv.addMouseListener(this);
    3332        }
    3433
    35         @Override
    36         public void unregisterListener() {
     34        @Override public void unregisterListener() {
    3735                super.unregisterListener();
    3836                mv.removeMouseListener(this);
     
    4341         * position.
    4442         */
    45         @Override
    46         public void mouseClicked(MouseEvent e) {
     43        @Override public void mouseClicked(MouseEvent e) {
    4744                if (e.getButton() == MouseEvent.BUTTON1) {
    4845                        Node node = new Node(mv.getLatLon(e.getX(), e.getY()));
     
    5148                                return;
    5249                        }
    53                         mv.editLayer().add(new AddCommand(Main.main.ds, node));
     50                        mv.editLayer().add(new AddCommand(Main.ds, node));
    5451                        mv.repaint();
    5552                }
  • src/org/openstreetmap/josm/actions/mapmode/AddSegmentAction.java

    r84 r86  
    1111import org.openstreetmap.josm.Main;
    1212import org.openstreetmap.josm.command.AddCommand;
    13 import org.openstreetmap.josm.data.osm.LineSegment;
     13import org.openstreetmap.josm.data.osm.Segment;
    1414import org.openstreetmap.josm.data.osm.Node;
    1515import org.openstreetmap.josm.data.osm.OsmPrimitive;
     
    1717
    1818/**
    19  * The user can add a new line segment between two nodes by pressing on the
     19 * The user can add a new segment between two nodes by pressing on the
    2020 * starting node and dragging to the ending node.
    2121 *
    22  * No line segment can be created if there is already a line segment containing
     22 * No segment can be created if there is already a segment containing
    2323 * both nodes.
    2424 *
    2525 * @author imi
    2626 */
    27 public class AddLineSegmentAction extends MapMode implements MouseListener {
     27public class AddSegmentAction extends MapMode implements MouseListener {
    2828
    2929        /**
     
    4242       
    4343        /**
    44          * Create a new AddLineSegmentAction.
     44         * Create a new AddSegmentAction.
    4545         * @param mapFrame The MapFrame this action belongs to.
    4646         */
    47         public AddLineSegmentAction(MapFrame mapFrame) {
    48                 super("Add Line Segment", "addlinesegment", "Add a line segment between two nodes.", "G", KeyEvent.VK_G, mapFrame);
     47        public AddSegmentAction(MapFrame mapFrame) {
     48                super("Add segment", "addlinesegment", "Add a segment between two nodes.", "G", KeyEvent.VK_G, mapFrame);
    4949        }
    5050
    51         @Override
    52         public void registerListener() {
     51        @Override public void registerListener() {
    5352                super.registerListener();
    5453                mv.addMouseListener(this);
     
    5655        }
    5756
    58         @Override
    59         public void unregisterListener() {
     57        @Override public void unregisterListener() {
    6058                super.unregisterListener();
    6159                mv.removeMouseListener(this);
     
    6563
    6664       
    67         @Override
    68         public void actionPerformed(ActionEvent e) {
     65        @Override public void actionPerformed(ActionEvent e) {
    6966                super.actionPerformed(e);
    70                 makeLineSegment();
     67                makeSegment();
    7168        }
    7269
     
    7471         * If user clicked on a node, from the dragging with that node.
    7572         */
    76         @Override
    77         public void mousePressed(MouseEvent e) {
     73        @Override public void mousePressed(MouseEvent e) {
    7874                if (e.getButton() != MouseEvent.BUTTON1)
    7975                        return;
     
    9187         * the mouse button now.
    9288         */
    93         @Override
    94         public void mouseDragged(MouseEvent e) {
     89        @Override public void mouseDragged(MouseEvent e) {
    9590                if ((e.getModifiersEx() & MouseEvent.BUTTON1_DOWN_MASK) == 0)
    9691                        return;
     
    107102
    108103        /**
    109          * If left button was released, try to create the line segment.
     104         * If left button was released, try to create the segment.
    110105         */
    111         @Override
    112         public void mouseReleased(MouseEvent e) {
     106        @Override public void mouseReleased(MouseEvent e) {
    113107                if (e.getButton() == MouseEvent.BUTTON1) {
    114                         makeLineSegment();
    115                         first = null; // release line segment drawing
     108                        makeSegment();
     109                        first = null; // release segment drawing
    116110                }
    117111        }
    118112
    119113        /**
    120          * Create the line segment if first and second are different and there is
    121          * not already a line segment.
     114         * Create the segment if first and second are different and there is
     115         * not already a segment.
    122116         */
    123         private void makeLineSegment() {
     117        private void makeSegment() {
    124118                if (first == null || second == null) {
    125119                        first = null;
     
    136130               
    137131                if (start != end) {
    138                         // try to find a line segment
    139                         for (LineSegment ls : Main.main.ds.lineSegments)
     132                        // try to find a segment
     133                        for (Segment ls : Main.ds.segments)
    140134                                if ((start == ls.from && end == ls.to) || (end == ls.from && start == ls.to))
    141                                         return; // already a line segment here - be happy, do nothing.
     135                                        return; // already a segment here - be happy, do nothing.
    142136
    143                         LineSegment ls = new LineSegment(start, end);
    144                         mv.editLayer().add(new AddCommand(Main.main.ds, ls));
     137                        Segment ls = new Segment(start, end);
     138                        mv.editLayer().add(new AddCommand(Main.ds, ls));
    145139                }
    146140
  • src/org/openstreetmap/josm/actions/mapmode/AddWayAction.java

    r68 r86  
    1111import org.openstreetmap.josm.Main;
    1212import org.openstreetmap.josm.command.AddCommand;
    13 import org.openstreetmap.josm.data.osm.LineSegment;
     13import org.openstreetmap.josm.data.osm.Segment;
    1414import org.openstreetmap.josm.data.osm.OsmPrimitive;
    1515import org.openstreetmap.josm.data.osm.Way;
     
    1717
    1818/**
    19  * Add a new way from all selected line segments.
     19 * Add a new way from all selected segments.
    2020 *
    21  * If there is a selection when the mode is entered, all line segments in this
     21 * If there is a selection when the mode is entered, all segments in this
    2222 * selection form a new way, except the user holds down Shift.
    2323 *
    24  * The user can click on a line segment. If he holds down Shift, no way is
     24 * The user can click on a segment. If he holds down Shift, no way is
    2525 * created yet. If he holds down Alt, the whole way is considered instead of
    26  * the clicked line segment. If the user holds down Ctrl, no way is created
    27  * and the clicked line segment get removed from the list.
     26 * the clicked segment. If the user holds down Ctrl, no way is created
     27 * and the clicked segment get removed from the list.
    2828 *
    2929 * Also, the user may select a rectangle as in selection mode. No node, area or
     
    4747        }
    4848
    49         @Override
    50         public void actionPerformed(ActionEvent e) {
     49        @Override public void actionPerformed(ActionEvent e) {
    5150                makeWay();
    5251                super.actionPerformed(e);
     
    5857         */
    5958        private void makeWay() {
    60                 Collection<OsmPrimitive> selection = Main.main.ds.getSelected();
     59                Collection<OsmPrimitive> selection = Main.ds.getSelected();
    6160                if (selection.isEmpty())
    6261                        return;
    6362
    6463                // form a new way
    65                 LinkedList<LineSegment> lineSegments = new LinkedList<LineSegment>();
     64                LinkedList<Segment> segments = new LinkedList<Segment>();
    6665                int numberOfSelectedWays = 0;
    6766                for (OsmPrimitive osm : selection) {
    6867                        if (osm instanceof Way)
    6968                                numberOfSelectedWays++;
    70                         else if (osm instanceof LineSegment)
    71                                 lineSegments.add((LineSegment)osm);
     69                        else if (osm instanceof Segment)
     70                                segments.add((Segment)osm);
    7271                }
    7372               
     
    8180                                for (OsmPrimitive osm : selection)
    8281                                        if (osm instanceof Way)
    83                                                 lineSegments.addAll(((Way)osm).segments);
     82                                                segments.addAll(((Way)osm).segments);
    8483                        }
    8584                }
    8685               
    87                 // sort the line segments in best possible order. This is done by:
     86                // sort the segments in best possible order. This is done by:
    8887                // 0  if no elements in list, quit
    8988                // 1  taking the first ls as pivot, remove it from list
     
    9190                // 3  if found, attach it, remove it from list, goto 2
    9291                // 4  if not found, save the pivot-string and goto 0
    93                 LinkedList<LineSegment> sortedLineSegments = new LinkedList<LineSegment>();
    94                 while (!lineSegments.isEmpty()) {
    95                         LinkedList<LineSegment> pivotList = new LinkedList<LineSegment>();
    96                         pivotList.add(lineSegments.getFirst());
    97                         lineSegments.removeFirst();
     92                LinkedList<Segment> sortedSegments = new LinkedList<Segment>();
     93                while (!segments.isEmpty()) {
     94                        LinkedList<Segment> pivotList = new LinkedList<Segment>();
     95                        pivotList.add(segments.getFirst());
     96                        segments.removeFirst();
    9897                        for (boolean found = true; found;) {
    9998                                found = false;
    100                                 for (Iterator<LineSegment> it = lineSegments.iterator(); it.hasNext();) {
    101                                         LineSegment ls = it.next();
     99                                for (Iterator<Segment> it = segments.iterator(); it.hasNext();) {
     100                                        Segment ls = it.next();
    102101                                        if (ls.incomplete)
    103102                                                continue; // incomplete segments are never added to a new way
     
    113112                                }
    114113                        }
    115                         sortedLineSegments.addAll(pivotList);
     114                        sortedSegments.addAll(pivotList);
    116115                }
    117116               
    118117                Way t = new Way();
    119                 t.segments.addAll(sortedLineSegments);
    120                 mv.editLayer().add(new AddCommand(Main.main.ds, t));
    121                 Main.main.ds.clearSelection();
     118                t.segments.addAll(sortedSegments);
     119                mv.editLayer().add(new AddCommand(Main.ds, t));
     120                Main.ds.clearSelection();
    122121                mv.repaint();
    123122        }
  • src/org/openstreetmap/josm/actions/mapmode/DeleteAction.java

    r71 r86  
    2626 * @see #deleteWithReferences(OsmPrimitive)
    2727 *
    28  * Pressing Alt will select the way instead of a line segment, as usual.
     28 * Pressing Alt will select the way instead of a segment, as usual.
    2929 *
    3030 * If the user did not press Ctrl and the object has any references, the user
     
    4646        }
    4747
    48         @Override
    49         public void registerListener() {
     48        @Override public void registerListener() {
    5049                super.registerListener();
    5150                mv.addMouseListener(this);
    5251        }
    5352
    54         @Override
    55         public void unregisterListener() {
     53        @Override public void unregisterListener() {
    5654                super.unregisterListener();
    5755                mv.removeMouseListener(this);
     
    5957
    6058       
    61         @Override
    62         public void actionPerformed(ActionEvent e) {
     59        @Override public void actionPerformed(ActionEvent e) {
    6360                super.actionPerformed(e);
    6461                boolean ctrl = (e.getModifiers() & ActionEvent.CTRL_MASK) != 0;
    6562                if (ctrl)
    66                         deleteWithReferences(Main.main.ds.getSelected());
     63                        deleteWithReferences(Main.ds.getSelected());
    6764                else
    68                         delete(Main.main.ds.getSelected(), false);
     65                        delete(Main.ds.getSelected(), false);
    6966                mv.repaint();
    7067        }
     
    7471         * position.
    7572         */
    76         @Override
    77         public void mouseClicked(MouseEvent e) {
     73        @Override public void mouseClicked(MouseEvent e) {
    7874                if (e.getButton() != MouseEvent.BUTTON1)
    7975                        return;
     
    9490         * Delete the primitives and everything they references.
    9591         *
    96          * If a node is deleted, the node and all line segments, ways and areas
     92         * If a node is deleted, the node and all segments, ways and areas
    9793         * the node is part of are deleted as well.
    9894         *
    99          * If a line segment is deleted, all ways the line segment is part of
     95         * If a segment is deleted, all ways the segment is part of
    10096         * are deleted as well. No nodes are deleted.
    10197         *
    102          * If a way is deleted, only the way and no line segments or nodes are
     98         * If a way is deleted, only the way and no segments or nodes are
    10399         * deleted.
    104100         *
     
    110106                Collection<Command> deleteCommands = new LinkedList<Command>();
    111107                for (OsmPrimitive osm : selection)
    112                         deleteCommands.add(new DeleteCommand(Main.main.ds, osm));
     108                        deleteCommands.add(new DeleteCommand(osm));
    113109                if (!deleteCommands.isEmpty())
    114110                        mv.editLayer().add(new SequenceCommand(deleteCommands));
     
    126122                Collection<Command> deleteCommands = new LinkedList<Command>();
    127123                for (OsmPrimitive osm : selection) {
    128                         CollectBackReferencesVisitor v = new CollectBackReferencesVisitor(Main.main.ds);
     124                        CollectBackReferencesVisitor v = new CollectBackReferencesVisitor(Main.ds);
    129125                        osm.visit(v);
    130126                        if (!selection.containsAll(v.data)) {
     
    132128                                        JOptionPane.showMessageDialog(Main.main, "This object is in use.");
    133129                        } else
    134                                 deleteCommands.add(new DeleteCommand(Main.main.ds, osm));
     130                                deleteCommands.add(new DeleteCommand(osm));
    135131                }
    136132                if (!deleteCommands.isEmpty())
  • src/org/openstreetmap/josm/actions/mapmode/MapMode.java

    r68 r86  
    1414/**
    1515 * A class implementing MapMode is able to be selected as an mode for map editing.
    16  * As example scrolling the map is a MapMode, connecting Nodes to new LineSegments
     16 * As example scrolling the map is a MapMode, connecting Nodes to new Segments
    1717 * is another.
    1818 *
  • src/org/openstreetmap/josm/actions/mapmode/MoveAction.java

    r71 r86  
    55import java.awt.event.KeyEvent;
    66import java.awt.event.MouseEvent;
     7import java.util.Arrays;
    78import java.util.Collection;
    89
     
    5152        }
    5253
    53         @Override
    54         public void registerListener() {
     54        @Override public void registerListener() {
    5555                super.registerListener();
    5656                mv.addMouseListener(this);
     
    5858        }
    5959
    60         @Override
    61         public void unregisterListener() {
     60        @Override public void unregisterListener() {
    6261                super.unregisterListener();
    6362                mv.removeMouseListener(this);
     
    7069         * objects.
    7170         */
    72         @Override
    73         public void mouseDragged(MouseEvent e) {
     71        @Override public void mouseDragged(MouseEvent e) {
    7472                if ((e.getModifiersEx() & MouseEvent.BUTTON1_DOWN_MASK) == 0)
    7573                        return;
     
    8785                        return;
    8886
    89                 Collection<OsmPrimitive> selection = Main.main.ds.getSelected();
     87                Collection<OsmPrimitive> selection = Main.ds.getSelected();
    9088                Collection<Node> affectedNodes = AllNodesVisitor.getAllNodes(selection);
    9189               
     
    117115         * cursor to movement.
    118116         */
    119         @Override
    120         public void mousePressed(MouseEvent e) {
     117        @Override public void mousePressed(MouseEvent e) {
    121118                if (e.getButton() != MouseEvent.BUTTON1)
    122119                        return;
    123120
    124                 if (Main.main.ds.getSelected().size() == 0) {
     121                if (Main.ds.getSelected().size() == 0) {
    125122                        OsmPrimitive osm = mv.getNearest(e.getPoint(), (e.getModifiersEx() & MouseEvent.ALT_DOWN_MASK) != 0);
    126123                        if (osm != null)
    127                                 osm.setSelected(true);
     124                                Main.ds.setSelected(Arrays.asList(new OsmPrimitive[]{osm}));
    128125                        singleOsmPrimitive = osm;
    129126                        mv.repaint();
     
    139136         * Restore the old mouse cursor.
    140137         */
    141         @Override
    142         public void mouseReleased(MouseEvent e) {
     138        @Override public void mouseReleased(MouseEvent e) {
    143139                mv.setCursor(oldCursor);
    144140                if (singleOsmPrimitive != null) {
    145                         singleOsmPrimitive.setSelected(false);
     141                        Main.ds.clearSelection();
    146142                        mv.repaint();
    147143                }
  • src/org/openstreetmap/josm/actions/mapmode/SelectionAction.java

    r71 r86  
    44import java.awt.event.KeyEvent;
    55import java.util.Collection;
     6import java.util.LinkedList;
    67
    78import org.openstreetmap.josm.Main;
     
    4344 * pixel are considered "only click". If that happens, the nearest Node will
    4445 * be selected if there is any within 10 pixel range. If there is no Node within
    45  * 10 pixel, the nearest LineSegment (or Street, if user hold down the Alt-Key)
    46  * within 10 pixel range is selected. If there is no LineSegment within 10 pixel
     46 * 10 pixel, the nearest Segment (or Street, if user hold down the Alt-Key)
     47 * within 10 pixel range is selected. If there is no Segment within 10 pixel
    4748 * and the user clicked in or 10 pixel away from an area, this area is selected.
    4849 * If there is even no area, nothing is selected. Shift and Ctrl key applies to
     
    6768        }
    6869
    69         @Override
    70         public void registerListener() {
     70        @Override public void registerListener() {
    7171                super.registerListener();
    7272                selectionManager.register(mv);
    7373        }
    7474
    75         @Override
    76         public void unregisterListener() {
     75        @Override public void unregisterListener() {
    7776                super.unregisterListener();
    7877                selectionManager.unregister(mv);
     
    8786                        return; // not allowed together
    8887
     88                Collection<OsmPrimitive> curSel;
    8989                if (!ctrl && !shift)
    90                         Main.main.ds.clearSelection(); // new selection will replace the old.
     90                        curSel = new LinkedList<OsmPrimitive>(); // new selection will replace the old.
     91                else
     92                        curSel = Main.ds.getSelected();
    9193
    9294                Collection<OsmPrimitive> selectionList = selectionManager.getObjectsInRectangle(r,alt);
    9395                for (OsmPrimitive osm : selectionList)
    94                         osm.setSelected(!ctrl);
     96                        if (ctrl)
     97                                curSel.remove(osm);
     98                        else
     99                                curSel.add(osm);
     100                Main.ds.setSelected(curSel);
    95101                mv.repaint();
    96102        }
  • src/org/openstreetmap/josm/actions/mapmode/ZoomAction.java

    r71 r86  
    5757        }
    5858
    59         @Override
    60         public void registerListener() {
     59        @Override public void registerListener() {
    6160                super.registerListener();
    6261                selectionManager.register(mv);
    6362        }
    6463
    65         @Override
    66         public void unregisterListener() {
     64        @Override public void unregisterListener() {
    6765                super.unregisterListener();
    6866                selectionManager.unregister(mv);
Note: See TracChangeset for help on using the changeset viewer.